fix: optimize prompts to prevent product deformation & completely remove black border from blur effect
This commit is contained in:
parent
fbf2ecaf87
commit
c5ea1ee3d6
@ -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完全一致。`;
|
||||
}
|
||||
|
||||
// 添加用户补充的关键词
|
||||
|
||||
@ -557,14 +557,14 @@ export function SceneFusionView({ onBack }: SceneFusionViewProps) {
|
||||
<div className="w-full h-full flex flex-col items-center justify-center p-0 relative overflow-hidden">
|
||||
{scene.status === 'processing' ? (
|
||||
<>
|
||||
{/* 背景模糊图 - 使用负边距扩展避免黑边 */}
|
||||
{/* 背景模糊图 - 使用更大的负边距和缩放确保完全覆盖,消除黑边 */}
|
||||
<img
|
||||
src={scene.image}
|
||||
alt="生成中"
|
||||
className="absolute -inset-4 w-[calc(100%+2rem)] h-[calc(100%+2rem)] object-cover blur-lg opacity-90"
|
||||
className="absolute -inset-8 w-[calc(100%+4rem)] h-[calc(100%+4rem)] object-cover blur-xl scale-110"
|
||||
/>
|
||||
{/* 动态遮罩层 - 减轻暗度 */}
|
||||
<div className="absolute inset-0 bg-black/30" />
|
||||
{/* 动态遮罩层 */}
|
||||
<div className="absolute inset-0 bg-black/25" />
|
||||
|
||||
{/* 动态光效 - 模拟扫描效果 */}
|
||||
<div className="absolute inset-0 bg-[linear-gradient(90deg,transparent,rgba(255,255,255,0.3),transparent)] bg-[length:200%_100%] animate-[shimmer_2s_infinite]" />
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user