fix cover generation
This commit is contained in:
+48
-11
@@ -14,14 +14,20 @@ async function performCoverGeneration(project) {
|
||||
const t0 = Date.now();
|
||||
const prompt = generatePicturePrompt(project);
|
||||
// Utiliser generateImageV2 qui renvoie directement l'URL publique
|
||||
logger.info("🎨 [Cover] Calling model V2", { projectId: project.id });
|
||||
logger.info("🎨 [Cover] Calling model V2", {
|
||||
projectId: project.id,
|
||||
promptPreview: String(prompt).slice(0, 160),
|
||||
});
|
||||
let coverUrl = "";
|
||||
try {
|
||||
// Utiliser une taille fixe de 1024 pixels
|
||||
coverUrl = await generateImageV2(prompt, 1024);
|
||||
console.log("coverUrl", coverUrl);
|
||||
} catch (e) {
|
||||
logger.error("❌ [Cover] generateImageV2 failed", e);
|
||||
logger.error("❌ [Cover] generateImageV2 failed", {
|
||||
projectId: project.id,
|
||||
error: e?.message || String(e),
|
||||
});
|
||||
throw e;
|
||||
}
|
||||
if (!coverUrl) {
|
||||
@@ -62,17 +68,28 @@ async function performCombineGeneration(project) {
|
||||
);
|
||||
}
|
||||
|
||||
logger.info("🧩 [Combine] Inputs detected", {
|
||||
bgPreview: String(background).slice(0, 80),
|
||||
fgPreview: String(foreground).slice(0, 80),
|
||||
});
|
||||
|
||||
const combinedUrl = await CombineCoverAndPicture(background, foreground);
|
||||
|
||||
// Sauvegarder le résultat et marquer comme généré
|
||||
await db.collection("projects").doc(project.id).set(
|
||||
{
|
||||
"cover.result": combinedUrl,
|
||||
coverStatus: "GENERATED",
|
||||
updatedAt: admin.firestore.FieldValue.serverTimestamp(),
|
||||
},
|
||||
{ merge: true },
|
||||
);
|
||||
await db
|
||||
.collection("projects")
|
||||
.doc(project.id)
|
||||
.set(
|
||||
{
|
||||
cover: {
|
||||
...project.cover,
|
||||
result: combinedUrl,
|
||||
},
|
||||
coverStatus: "GENERATED",
|
||||
updatedAt: admin.firestore.FieldValue.serverTimestamp(),
|
||||
},
|
||||
{ merge: true },
|
||||
);
|
||||
|
||||
logger.info("✅ [Cover] Combined image saved", {
|
||||
projectId: project.id,
|
||||
@@ -102,6 +119,11 @@ exports.onTaskCreateGenerateCover = onDocumentCreated(
|
||||
if (!["cover", "combine"]?.includes(type)) {
|
||||
throw new Error(`Type de tâche non supporté: ${type}`);
|
||||
}
|
||||
logger.info("🧵 [Task] Received", {
|
||||
taskId: event?.params?.taskId,
|
||||
type,
|
||||
projectId,
|
||||
});
|
||||
await db.collection("projects").doc(projectId).update({
|
||||
coverStatus: "GENERATING",
|
||||
updatedAt: admin.firestore.FieldValue.serverTimestamp(),
|
||||
@@ -114,6 +136,12 @@ exports.onTaskCreateGenerateCover = onDocumentCreated(
|
||||
}
|
||||
project.id = projectId;
|
||||
|
||||
logger.info("🔎 [Task] Project loaded", {
|
||||
projectId,
|
||||
hasGeneratedBackground: !!project?.cover?.generatedBackground,
|
||||
hasUserForeground: !!project?.cover?.userForeground,
|
||||
});
|
||||
|
||||
if (type === "cover") {
|
||||
logger.info("🎨 [Task] Start cover generation", { projectId });
|
||||
coverUrl = await performCoverGeneration(project);
|
||||
@@ -129,9 +157,18 @@ exports.onTaskCreateGenerateCover = onDocumentCreated(
|
||||
coverUrl,
|
||||
updatedAt: admin.firestore.FieldValue.serverTimestamp(),
|
||||
});
|
||||
logger.info("📦 [Task] Marked DONE", {
|
||||
taskId: event?.params?.taskId,
|
||||
projectId,
|
||||
});
|
||||
return;
|
||||
} catch (error) {
|
||||
logger.error("❌ [Task] Cover generation error", error);
|
||||
logger.error("❌ [Task] Cover generation error", {
|
||||
taskId: event?.params?.taskId,
|
||||
projectId,
|
||||
type,
|
||||
error: error?.message || String(error),
|
||||
});
|
||||
await event.data.ref.set(
|
||||
{ status: "ERROR", error: error?.message || "Erreur" },
|
||||
{ merge: true },
|
||||
|
||||
Reference in New Issue
Block a user