fix: optimize volcano vision prompt - only generate 1 image for scene fusion
This commit is contained in:
parent
da99fbdc93
commit
0272f5e391
@ -287,16 +287,10 @@ async function convertMessagesToVolcanoFormat(messages: any[]): Promise<{ prompt
|
||||
}
|
||||
}
|
||||
|
||||
// 强制要求生成 3 张图片:在提示词后添加明确指令
|
||||
let enhancedPrompt = prompt;
|
||||
if (base64Images.length > 0) {
|
||||
// 图生图:明确要求生成 3 个变体
|
||||
enhancedPrompt += "。请生成 3 个不同的变体。";
|
||||
} else {
|
||||
// 文生图:明确要求生成 3 张不同图片
|
||||
enhancedPrompt += "。请生成 3 张不同风格的图片。";
|
||||
}
|
||||
console.log("[Volcano Vision] Enhanced prompt:", enhancedPrompt.substring(0, 150));
|
||||
// 不在这里添加"生成多个变体"的提示,由调用方根据maxImages决定
|
||||
// 这样可以避免在场景裂变等只需要1张图片的场景中生成多张图片
|
||||
const enhancedPrompt = prompt;
|
||||
console.log("[Volcano Vision] Prompt:", enhancedPrompt.substring(0, 150));
|
||||
|
||||
// 构建请求体
|
||||
const result: { prompt: string; image?: string | string[] } = { prompt: enhancedPrompt };
|
||||
@ -326,7 +320,29 @@ async function sendVolcanoRequest(
|
||||
console.log("[Volcano Vision] Using model:", modelId);
|
||||
|
||||
// 转换消息格式(含 Base64 转换)
|
||||
const { prompt, image } = await convertMessagesToVolcanoFormat(messages);
|
||||
let { prompt, image } = await convertMessagesToVolcanoFormat(messages);
|
||||
|
||||
// 根据 maxImages 参数优化提示词
|
||||
if (maxImages === 1) {
|
||||
// 只生成1张图片时,明确指示只生成1张,避免生成多张
|
||||
if (!prompt.includes("只生成") && !prompt.includes("生成1张") && !prompt.includes("生成一张")) {
|
||||
prompt = prompt.trim();
|
||||
// 移除末尾的句号(如果有),然后添加明确指令
|
||||
if (prompt.endsWith("。") || prompt.endsWith(".")) {
|
||||
prompt = prompt.slice(0, -1);
|
||||
}
|
||||
prompt += "。只生成1张图片。";
|
||||
}
|
||||
} else if (maxImages > 1) {
|
||||
// 生成多张图片时,明确要求生成多个变体
|
||||
if (!prompt.includes("生成") || (!prompt.includes("变体") && !prompt.includes("不同"))) {
|
||||
prompt = prompt.trim();
|
||||
if (prompt.endsWith("。") || prompt.endsWith(".")) {
|
||||
prompt = prompt.slice(0, -1);
|
||||
}
|
||||
prompt += `。请生成 ${maxImages} 个不同的变体。`;
|
||||
}
|
||||
}
|
||||
|
||||
console.log("[Volcano Vision] Prompt:", prompt.substring(0, 100) + "...");
|
||||
console.log("[Volcano Vision] Image count:", image ? (Array.isArray(image) ? image.length : 1) : 0);
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user