From c5ea1ee3d6854646bcfe5325ad39e3a20f42304c Mon Sep 17 00:00:00 2001 From: Your Name Date: Sun, 18 Jan 2026 16:30:36 +0800 Subject: [PATCH] fix: optimize prompts to prevent product deformation & completely remove black border from blur effect --- app/api/scene-fusion/route.ts | 11 ++++++----- components/scene-fusion-view.tsx | 8 ++++---- 2 files changed, 10 insertions(+), 9 deletions(-) diff --git a/app/api/scene-fusion/route.ts b/app/api/scene-fusion/route.ts index 990c5b882..8d9e23db7 100644 --- a/app/api/scene-fusion/route.ts +++ b/app/api/scene-fusion/route.ts @@ -26,8 +26,8 @@ const sceneFusionRequestSchema = z.object({ })).min(1, "至少需要一个场景图").max(20, "最多支持20个场景图"), }); -// 默认提示词(当数据库未配置时使用) -const FALLBACK_PROMPT = "将图1的产品替换到图2的场景中,保持图1产品的外观、颜色和细节不变,自然融合到图2的环境中。"; +// 默认提示词(当数据库未配置时使用)- 优化版本,强调保持产品原样 +const FALLBACK_PROMPT = "严格按照图1产品的原始形状、尺寸比例、颜色、材质和所有细节,将其完整地放置到图2的场景中。禁止对产品进行任何变形、拉伸、压缩或颜色改变。产品必须与图1完全一致,只改变其所处的环境背景。"; /** * 获取场景裂变配置 @@ -238,12 +238,13 @@ function buildPrompt( let prompt = defaultPrompt; // 如果用户提供了具体的产品名称和被替换物体名称,构建更精确的提示词 + // 所有模板都强调:严格保持产品原样,禁止变形 if (productName && targetName) { - prompt = `将图1中的"${productName}"替换掉图2场景中的"${targetName}",保持"${productName}"的外观、颜色和细节不变,自然融合到图2的环境中。`; + prompt = `严格按照图1中"${productName}"的原始形状、尺寸比例、颜色、材质和所有细节,将其完整地放置到图2场景中,替换掉图2中的"${targetName}"。禁止对"${productName}"进行任何变形、拉伸、压缩或颜色改变。"${productName}"必须与图1完全一致。`; } else if (productName) { - prompt = `将图1中的"${productName}"融合到图2的场景中,保持"${productName}"的外观、颜色和细节不变,自然融合到图2的环境中。`; + prompt = `严格按照图1中"${productName}"的原始形状、尺寸比例、颜色、材质和所有细节,将其完整地放置到图2的场景中。禁止对"${productName}"进行任何变形、拉伸、压缩或颜色改变。"${productName}"必须与图1完全一致。`; } else if (targetName) { - prompt = `将图1的产品替换掉图2场景中的"${targetName}",保持图1产品的外观、颜色和细节不变,自然融合到图2的环境中。`; + prompt = `严格按照图1产品的原始形状、尺寸比例、颜色、材质和所有细节,将其完整地放置到图2场景中,替换掉图2中的"${targetName}"。禁止对产品进行任何变形、拉伸、压缩或颜色改变。产品必须与图1完全一致。`; } // 添加用户补充的关键词 diff --git a/components/scene-fusion-view.tsx b/components/scene-fusion-view.tsx index 9ed3d8055..01a2f195a 100644 --- a/components/scene-fusion-view.tsx +++ b/components/scene-fusion-view.tsx @@ -557,14 +557,14 @@ export function SceneFusionView({ onBack }: SceneFusionViewProps) {
{scene.status === 'processing' ? ( <> - {/* 背景模糊图 - 使用负边距扩展避免黑边 */} + {/* 背景模糊图 - 使用更大的负边距和缩放确保完全覆盖,消除黑边 */} 生成中 - {/* 动态遮罩层 - 减轻暗度 */} -
+ {/* 动态遮罩层 */} +
{/* 动态光效 - 模拟扫描效果 */}