Revert "优化Dota2生图提示词中的中文文字生成约束\n\n- 为中日文版本增加固定标题与副标题文案模板\n- 收紧提示词,限制只生成少量大字并禁止小字和密集说明\n- 将雷达图文字约束为简短英文缩写以降低中文错字概率"

This reverts commit 5881998499.
This commit is contained in:
liuwei
2026-04-29 15:48:34 +08:00
parent 5881998499
commit 77a49dfb45

View File

@@ -223,67 +223,6 @@ def resolve_text_language(image_index: int) -> str:
return DEFAULT_LANGUAGE_VARIANTS[variant_index]
def build_text_variant_spec(hero: Dict[str, str], image_index: int) -> Dict[str, str]:
"""
为当前候选图生成更严格的文案版式约束。
优化思路:
1. 让模型只画“少量、大号、固定”的文字,减少中文错字和糊字概率;
2. 中文版本只保留英雄名 + 一个四字短句,不再要求大量小字说明;
3. 雷达图内部不再放复杂中文标签,只允许简短英文缩写,降低文字生成难度;
4. 每张图给一个明确的标题/副标题组合,让模型更容易稳定复现。
"""
hero_name_cn = hero["localized_name"]
hero_name_en = hero["english_name"].upper()
text_language = resolve_text_language(image_index)
zh_variants = [
{
"title": hero_name_cn,
"subtitle": "至宝觉醒",
},
{
"title": hero_name_cn,
"subtitle": "王者降临",
},
]
ja_variants = [
{
"title": hero_name_en,
"subtitle": "覚醒",
},
{
"title": hero_name_en,
"subtitle": "降臨",
},
]
if text_language == "zh":
variant = zh_variants[(image_index - 1) % len(zh_variants)]
return {
"language": "中文",
"title": variant["title"],
"subtitle": variant["subtitle"],
"text_spec": (
f"画面里只允许出现两组大字中文,且必须准确写成:主标题“{variant['title']}”,副标题“{variant['subtitle']}”。"
"文字必须足够大、足够粗、边缘清晰、像漫画海报印刷字。"
"宁可字少,也不要出现任何小字、密集说明、段落字、模糊字、错别字。"
),
}
variant = ja_variants[(image_index - 1) % len(ja_variants)]
return {
"language": "日文",
"title": variant["title"],
"subtitle": variant["subtitle"],
"text_spec": (
f"画面里只允许出现两组大字,且必须准确写成:主标题“{variant['title']}”,副标题“{variant['subtitle']}”。"
"文字必须足够大、足够粗、边缘清晰、像漫画海报印刷字。"
"宁可字少,也不要出现任何小字、密集说明、段落字、模糊字、乱码。"
),
}
def build_consistent_prompt(hero: Dict[str, str], image_index: int) -> str:
"""
构造统一风格的提示词。
@@ -295,8 +234,13 @@ def build_consistent_prompt(hero: Dict[str, str], image_index: int) -> str:
"""
hero_name_cn = hero["localized_name"]
hero_name_en = hero["english_name"]
text_variant = build_text_variant_spec(hero, image_index)
text_language_label = text_variant["language"]
text_language = resolve_text_language(image_index)
if text_language == "zh":
text_language_desc = "画面中的标题、副标题、能力说明文字统一使用中文排版,字体要有热血漫画海报感,禁止出现日文。"
text_language_label = "中文"
else:
text_language_desc = "画面中的标题、副标题、能力说明文字统一使用日文排版,字体要有热血漫画海报感,禁止出现中文。"
text_language_label = "日文"
return f"""
请为短视频封面创作一张高完成度竖版插画,主体是 Dota2 英雄 {hero_name_cn}{hero_name_en})。
@@ -306,18 +250,16 @@ def build_consistent_prompt(hero: Dict[str, str], image_index: int) -> str:
2. 画面整体要强烈偏向 JOJO 气质:夸张肌肉与体块、强烈明暗对比、戏剧化姿势、锐利线条、张力十足的漫画分镜感、厚重阴影、速度线、压迫感构图。
3. 需要比普通日漫更偏 JOJO 风,风格统一、成熟、硬朗、华丽,视觉冲击力强。
4. 画面左下角固定放一个“能力雷达图”,用日式游戏 UI 风格表现,半透明发光面板,结构清晰。
5. 画面中加入醒目的漫画海报式文字排版,但文字数量必须极少,只保留主标题和副标题两组大字
5. 画面中加入醒目的文字排版,像热血漫画标题与角色名字幕,排版要高级,不能乱码
6. 构图固定为 9:16 竖版海报,适合抖音封面,角色居中偏上,保留底部与左下角的信息区。
7. 背景使用史诗感能量、替身感氛围、漫画速度线、粒子、光效,但不要遮挡主体脸和武器。
8. 质感统一为高细节、高完成度、商业海报、收藏级插画。
9. {text_variant["text_spec"]}
10. 左下角的能力雷达图可以保留,但图内不要写复杂中文或复杂日文,只允许非常少量、清晰、规则的英文缩写标签,例如 ATK、DEF、SPD、MAG、ULT。
9. {text_language_desc}
稳定性要求:
1. 全系列都保持相同的版式语言、相同的信息层级、相同的雷达图位置、相同的标题风格。
2. 当前是同一英雄的第 {image_index} 张候选图,本张必须输出{text_language_label}版本;请只在姿势、镜头角度、背景能量流向上做有限变化,不要改变整体系列风格。
3. 不要出现水印、签名、Logo、拼贴、多角色、手部崩坏、脸部畸形、文字糊成乱码。
4. 不要生成小字,不要生成说明段落,不要生成多行密集文本,不要在画面边缘塞满看不清的字。
""".strip()