图像提示:文生图描述技巧

文生图提示(text-to-image prompting)用自然语言描述想要的图像,扩散模型据描述去噪生成画面。与文本模型不同,文生图模型把提示当作「画面说明书」,关注主体、环境、风格、光线、构图、介质等视觉要素,而非逻辑推理。主流模型包括 Stable Diffusion 系(如 SDXL,常配合 ComfyUI、Automatic1111 等界面)、DALL·E、Midjourney,它们的提示语法与权重约定各不相同,但「描述越具体、要素越齐全」这一点是共通的。本文讲清要素清单、权重语法、迭代方法、模型差异与常见坑。

是什么

文生图提示由一组视觉要素构成,通常按重要性排列为:主体 → 环境/动作 → 风格/介质 → 光线 → 构图 → 画质词。主体是画面主角(橘猫、赛博城市);环境是它所处的场景(窗台午后、雨夜街道);风格/介质决定呈现语言(水彩、胶片、3D 渲染);光线与构图控制观感(柔光、近景特写);画质词影响清晰度与细节密度。模型在训练时见过的是「长描述→图」的配对,因此提示越接近训练数据的 caption 风格,映射越稳。不同界面还提供尺寸、步数、种子等参数,与提示共同决定产出。

要素清单:逐个写清楚

  • 主体:具体且可辨识,如「一只橘猫」优于「一只猫」,「戴眼镜的老人」优于「一个人」。主体模糊,模型只能自由发挥。
  • 环境/动作:交代场景与行为,「趴在午后窗台」「在雨中奔跑」,给画面以叙事,也锁定主体状态。
  • 风格/介质:水彩、油画、像素艺术、胶片摄影、虚幻引擎渲染——风格词对观感影响最大,常被当作「主开关」。
  • 光线:柔光、侧逆光、霓虹、自然光,决定氛围与立体感,也是区分「廉价感」与「电影感」的关键。
  • 构图:近景特写、广角、对称、三分法,控制主体位置与张力。
  • 画质词:高细节、8k、锐利,通常提升清晰度,但不同模型对这类词的敏感度不同,过多反而稀释重点。

把抽象诉求翻译成这份清单,比写一句口号有效得多。

权重与语法:让模型听话

不同模型对「强调某要素」的语法支持不同,错用等于没写。Stable Diffusion 系用括号与冒号加权重,如 (orange cat:1.3) 表示把「橘猫」权重提到 1.3 倍,(rainy street):1.5 可嵌套;权重过高会让该要素过饱和甚至扭曲,要小步试探。负面提示(negative prompt)单独成框,列出不想要的内容,模型会主动远离:

正向:一只橘猫,趴在午后窗台,水彩风格,柔光,近景特写,高细节。
负面:文字,畸变,多余肢体,模糊,低分辨率。

Midjourney 不吃括号权重,改用参数:--ar 16:9 定比例、--v 6 定版本、--s 250 定风格化强度。DALL·E 基本不支持权重语法,靠把要素写进句子自然强调。换模型前先看对应文档,不要跨模型照搬语法。

为什么讲究写法

提示的写法直接决定生成的贴合度与可控性。OpenAI 的研究(Betker 等, 2023, arXiv:2309.16678)系统比较了用简短提示与用更接近训练 caption 的详尽描述,结论是用「像人类标注者会写的那样」的详细、结构化描述,能显著提升生成质量与文本-图像的一致性。底层原因在于:扩散模型在训练时见过的是「长描述→图」的配对,提示风格越接近训练 caption,模型越「知道」该怎么映射。这也是为什么「提示工程」在文生图领域成立——措辞本身就是控制变量。

怎么写

把要素拆开、按重要性排列。调用图像 API 时,提示即请求体里的 prompt 字段,其他参数控制尺寸与质量:

curl https://api.openai.com/v1/images/generations \
  -H "Authorization: Bearer $OPENAI_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "dall-e-3",
    "prompt": "一只橘猫趴在午后窗台,水彩风格,柔光,近景特写",
    "size": "1024x1024",
    "quality": "hd"
  }'

工程上建议把提示模板化:固定风格词、留出主体变量,用脚本批量生成,保证同一系列图视觉一致。对 Stable Diffusion 系,还可把常用组合存为「风格预设」,复用时不重复写长串词;ComfyUI 这类节点式界面更能把「提示 → 采样 → 出图」固化为可复用工作流。

迭代:从第一稿到稳定产出

别指望一次出图就完美,把它当迭代循环。第一稿先定主体与风格,看模型抓没抓对;第二稿加环境、光线、构图收紧观感;第三稿用负面提示修反复出现的瑕疵(畸变、文字、多指)。Stable Diffusion 系可固定种子(seed)做小幅变量实验,只改一个要素看差异,比每次全随机更易归因。记录「哪段提示对应哪类效果」,形成个人/团队的小字典——这比每次重新摸索省得多。对批量化产,用同一模板 + 不同主体变量,比每张都重写更稳。

不同模型的差异

同一段提示在不同模型上结果迥异,不是你写错了,是训练数据与语法不同。Stable Diffusion 系开放、可本地部署、权重语法丰富,适合要可控与可复现的场景;DALL·E 易用、对自然语言友好、基本不吃权重,适合快速出图但不便精细调权;Midjourney 出图质感强、社区参数成熟,但语法与本地部署都不太一样。落地前先选定模型,再按它的语法写提示,不要混用。涉及真人肖像、受版权角色须遵守各平台政策,商用前确认授权与可商用性。

注意点

  • 避免堆砌互相矛盾的形容词(如「极简又极其繁复」),模型会在权重间摇摆,输出不稳定甚至崩坏。
  • 权重符号与参数因模型而异:SD 用 ():,Midjourney 用 --ar--v--s,DALL·E 基本不吃权重语法。换模型前先看对应文档,不要照搬。
  • 负面提示不是万能的,对结构性错误(如多指、错位)只能缓解不能根除;关键产出仍要人工筛选。
  • 涉及真人肖像、受版权角色须遵守各平台使用政策,商用前确认授权与可商用性,避免侵权。
  • 长提示不等于好提示:要素齐全但彼此冲突,效果反而差;以「能否据此独立画出图」为自检标准。

小结

文生图提示把视觉要素写成说明书,详尽且一致的描述能提升贴合度——研究也支持这一结论。配合权重语法与负面提示、按模型差异调整写法、模板化迭代复用,可稳定产出目标画面。

参考与延伸阅读

本文累计阅读