你写 storefront with a sign that says "OPEN",结果招牌上写着 OPEM、0PEN,甚至像西里尔、希腊或彻底瞎编的字母。换成中文、日文、阿拉伯文,结果更崩。多数人会以为是自己 Prompt 没写好——其实这是模型能力的本质限制:SD 1.5、SDXL base、Midjourney v4-v5 根本没在对齐的”图-文字”配对上训练过画面内文字。它们学的是”看起来像字母的形状”,不是真正的文字。
修法是换文字向模型(Flux、DALL-E 3、Ideogram)、把文字砍到 1-2 个词并加引号、或者用非文字向模型出场景再到 Canva / Figma / Photoshop 后期补字。
常见原因
按命中率从高到低:
1. Flux 之前的模型完全没学文字
SD 1.5、SD 2.1、SDXL base/refiner、Midjourney v4-v5、DALL-E 2 这些老模型都没法稳定渲染清晰文字。训练标签里没把 “OPEN” 对应到 O-P-E-N 四个字符——它们学的是”招牌形状的物体上有字母状记号”。
如何判断:你用的就是这些模型。哪怕短、常见的英文单词也是糊的。
2. 文字太长
文字向模型也会在 4-6 个词后崩。"GRAND OPENING TODAY 50% OFF" 几乎在哪个模型都不行。字符串越长,每个字符漂移的概率越大。
如何判断:Prompt 里的文字超过 6 个词或 30 个字符。
3. 在拉丁向模型上要非拉丁文字
要中文、日文假名 / 汉字、阿拉伯文、希伯来文、泰文、天城文——但模型主要在英文招牌上训练。Flux 也好不到哪去,输出是”形似但不是真字符”的瞎编。
如何判断:要的是非拉丁字符。输出看着像那种文字,但不是真字。
4. 文字没加引号
a sign that says OPEN 有歧义——OPEN 也是普通英语单词。a sign that says "OPEN" 才明确。没引号时,文字向模型有时会把单词当语义而不是字形。
如何判断:Prompt 里有文字内容但没用引号包起来。
5. 风格 LoRA 扭曲了字形
强绘画 / 动漫 / 草图风 LoRA 会从设计上扭曲字母形状——它们的训练数据是风格化插画,本身就不追求字体清晰。
如何判断:同 Prompt 去掉 LoRA,文字干净得多(虽然仍不完美)。
最短修复路径
Step 1:换文字向模型
当前对画面内文字稳定的模型:
Flux 1 [dev] 或 [pro] - 英文文字最强开源模型
DALL-E 3(通过 ChatGPT 或 Bing Image Creator)- 短英文非常稳
Ideogram 2.0 - 专为文字设计、能处理短段落
Midjourney v6 - 比 v5 好多了,但 4+ 词仍不完美
GPT Image (gpt-image-1) - 横幅式短文字效果好
文字量大就选 Ideogram 或 DALL-E 3。要艺术风格 + 短文字就选 Flux dev。
Step 2:文字砍短 + 加引号
改写 Prompt:
# 差
"storefront with a giant sign that says GRAND OPENING TODAY"
# 较好
'storefront with a sign that says "OPEN"'
# 长文案的最佳做法
'storefront with a sign that says "OPEN" in bold letters, smaller sign below'
(小招牌单独再生成一张,或直接后期)
字面文字永远用双引号包起来。限制在 1-3 个词。需要更多就拆成多个视觉元素。
Step 3:非拉丁文字——出场景 + 后期补字
中文、日文、阿拉伯文之类,别让图像模型自己渲染:
- 生成场景时把招牌留空或填占位(
sign that says "SIGN"或blank rectangular sign) - 在 Figma、Canva、Photoshop 里打开
- 用真实字体把真文字打上去
- 用 Photoshop
Edit > Transform > Perspective或 Figma 的”沿路径排字”匹配透视 - 用色调调整图层匹配光照
匹配画面透视最稳的字体:任意干净无衬线(Noto Sans 通用、苹方简 PingFang 中文、Hiragino 日文、Cairo 阿拉伯文)。
Step 4:Midjourney + 后期组合
想要 MJ 的美学但文字必须清晰:
1. MJ 里生成场景,故意把招牌留空
2. 放大导出
3. Canva 里用手写或草图字体打上文字
4. 微微变形和偏移,匹配那种绘画感背景
这样既拿到 MJ 的艺术感,又有真排版。
Step 5:Flux 上给文字 Prompt 加权重
Flux 对文字加权语法响应不错。试试:
'a vintage diner sign with the text "EAT" in bold red letters,
clear legible letterforms, sharp typography, no gibberish, no fake letters,
1950s neon sign style'
加 clear legible letterforms 和 no gibberish, no fake letters 这种反向锚词能提高成功率。
预防建议
- 在模型轮换里常备一个”文字向”preset(本地 Flux dev、网页 Ideogram)
- 任何带文字的交付永远规划两步走:先出图、后期补字
- 按格式(店招、海报、横幅)做 Figma / Canva 模板,文字图层可调
- 文字关键的活儿永远不要用 SD 1.5 或 SDXL base,哪怕只出一张也换模型
- 非拉丁脚本从第一天就假设要走后期,预留时间