diff --git a/app/(chat)/api/chat/route.ts b/app/(chat)/api/chat/route.ts index 573f170ee..924967975 100644 --- a/app/(chat)/api/chat/route.ts +++ b/app/(chat)/api/chat/route.ts @@ -7272,13 +7272,17 @@ export async function POST(request: Request) { productImageCount: sceneProductSlotCount, includeModelImage: sceneModelSlotEnabled, }); - const rawSceneSlotPrompt = - sceneSlot?.promptTemplate || selectedAgentPreset.promptTemplate || ""; - const dedupedSceneSlotPrompt = dedupeAgentSlotPromptAgainstWorkflow({ - workflowPrompt: hiddenPromptText || null, - slotPrompt: rawSceneSlotPrompt, - modeType: "scene_generation", - }); + const shouldAppendSceneSlotPrompt = !hiddenPromptText; + const rawSceneSlotPrompt = shouldAppendSceneSlotPrompt + ? sceneSlot?.promptTemplate || selectedAgentPreset.promptTemplate || "" + : ""; + const dedupedSceneSlotPrompt = rawSceneSlotPrompt + ? dedupeAgentSlotPromptAgainstWorkflow({ + workflowPrompt: hiddenPromptText || null, + slotPrompt: rawSceneSlotPrompt, + modeType: "scene_generation", + }) + : ""; const scenePrompt = buildAgentSceneWorkflowPrompt({ workflowPrompt: hiddenPromptText || null, @@ -7302,6 +7306,7 @@ export async function POST(request: Request) { includesWorkflowPrompt: Boolean(hiddenPromptText), includesUserSupplementPrompt: Boolean(sanitizedUserSupplementPrompt), includesModelImage: sceneModelSlotEnabled, + shouldAppendSceneSlotPrompt, includesSceneSlotPrompt: Boolean(dedupedSceneSlotPrompt), productImageCount: sceneProductSlotCount, uploadedImageCount: sharedUploadedImageUrls.length, @@ -7345,9 +7350,13 @@ export async function POST(request: Request) { resolvedImageCount, sourceImageCount: sourceImageUrls.length, sourceAssetCount: sourceAssetIds.length, - promptStrategy: hiddenPromptText || sanitizedUserSupplementPrompt - ? "workflow_only" - : "legacy_template_fallback", + promptStrategy: hiddenPromptText + ? "workflow_plus_image_lock" + : rawSceneSlotPrompt + ? "legacy_template_fallback" + : sanitizedUserSupplementPrompt + ? "workflow_plus_user_supplement" + : "workflow_only", promptLength: String(scenePrompt || `生成${selectedAgentPreset.name}`).length, aspectRatio: typeof mergedImageParams.aspectRatio === "string"