fix(ai): 图片创作自由模式改用 _FREE_VARIATIONS,第2张起不再凭空出广告文案
纯文生图同批多张时复用了套图的 _COVER_VARIATIONS,其中"卖点文案分区/ 留出标题价签区"等指令让模型在第2张起自己画出护肤广告文案。自由模式 新建 _FREE_VARIATIONS(只换视角/景别/光线/机位),并显式禁止画面加任何 文字/卖点/标题/价签。套图 mode=cover 仍用 _COVER_VARIATIONS,不受影响。 Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@@ -979,6 +979,17 @@ _COVER_VARIATIONS = [
|
|||||||
"本张:促销封面版式,留出标题/价签区,高对比配色,强视觉冲击构图",
|
"本张:促销封面版式,留出标题/价签区,高对比配色,强视觉冲击构图",
|
||||||
]
|
]
|
||||||
|
|
||||||
|
# 图片创作「自由模式」专用变体:用户没要广告,只是想要同一想法的不同张。
|
||||||
|
# 只换视角/景别/光线/机位,严禁加任何文字、卖点、标题、价签(那是套图 _COVER_VARIATIONS 的活)。
|
||||||
|
# 复用套图变体会让第 2 张起凭空长出护肤广告文案(PMC 自由模式反馈)。
|
||||||
|
_FREE_VARIATIONS = [
|
||||||
|
"换一个视角与构图",
|
||||||
|
"换一种镜头景别(近景 / 中景 / 远景任选其一)与光线氛围",
|
||||||
|
"换一个拍摄角度和背景环境,主体保持不变",
|
||||||
|
"换一种构图与色调,画面更有层次",
|
||||||
|
"调整主体在画面中的位置与景深,换个机位",
|
||||||
|
]
|
||||||
|
|
||||||
# 平台套图优化版(对照「平台套图线上提示词优化版.md」):平台差异 + slot 版式 + 低信息密度上限。
|
# 平台套图优化版(对照「平台套图线上提示词优化版.md」):平台差异 + slot 版式 + 低信息密度上限。
|
||||||
# 平台 id 用规范化 key(前端 dy/tb… 已在 PLATFORM_ID_MAP 里映射成这些 canonical key)。
|
# 平台 id 用规范化 key(前端 dy/tb… 已在 PLATFORM_ID_MAP 里映射成这些 canonical key)。
|
||||||
_PLATFORM_NAMES = {
|
_PLATFORM_NAMES = {
|
||||||
@@ -2428,9 +2439,12 @@ def run_standalone_image_task(*, task_id: str) -> None:
|
|||||||
response = provider.image_generation(model=model_config.name, endpoint=model_config.endpoint, prompt=edit_prompt, image=edit_images, size=vsize)
|
response = provider.image_generation(model=model_config.name, endpoint=model_config.endpoint, prompt=edit_prompt, image=edit_images, size=vsize)
|
||||||
else:
|
else:
|
||||||
# 纯文生图同批多张要不同构图,否则雷同(PMC#24);index>0 追加换版式指令。
|
# 纯文生图同批多张要不同构图,否则雷同(PMC#24);index>0 追加换版式指令。
|
||||||
|
# 自由模式只换构图/视角/光线、绝不加文字卖点(_FREE_VARIATIONS);
|
||||||
|
# 套图卖点版式归 mode=cover,不在这条裸文生图分支里。
|
||||||
gen_prompt = prompt
|
gen_prompt = prompt
|
||||||
if index > 0:
|
if index > 0:
|
||||||
gen_prompt = f"{prompt}。{_COVER_VARIATIONS[index % len(_COVER_VARIATIONS)]},换一种构图与视角。"
|
variation = _FREE_VARIATIONS[index % len(_FREE_VARIATIONS)]
|
||||||
|
gen_prompt = f"{prompt}。{variation},不要在画面中添加任何文字、卖点、标题或价签。"
|
||||||
response = provider.image_generation(model=model_config.name, endpoint=model_config.endpoint, prompt=gen_prompt)
|
response = provider.image_generation(model=model_config.name, endpoint=model_config.endpoint, prompt=gen_prompt)
|
||||||
media = provider.extract_first_media_url(response)
|
media = provider.extract_first_media_url(response)
|
||||||
with transaction.atomic():
|
with transaction.atomic():
|
||||||
|
|||||||
Reference in New Issue
Block a user