提示词解剖学
一句"画只猫"和一段结构化的 spec,喂给同一个模型,得到的是两个世界。这一章把提示词拆开看:它由哪 14 个字段构成、该按什么顺序组织、何时该补细节何时该收手,以及怎样把"逐字文本"稳稳钉在画面上。
模型不会读心。它只会把你给的每一个词,当成一束需要被满足的约束去摆放像素。提示词工程的全部要义,就是把"你脑子里那张图"翻译成一份模型能逐项执行的清单——既不含糊,也不臃肿。
本书把这份清单叫做 shared prompt schema。它是一套贯穿"内置"与"CLI"两种模式的通用脚手架:你先用它把需求想清楚、写整齐,再决定用哪种模式去执行。这一章只讲"怎么写",执行细节留给后面的章节。
完整字段表:一条提示词的 14 个零件
一条成熟的提示词,可以拆成 14 个字段。你不必每条都填满——但心里要有这张表,才知道自己漏掉了什么。下面这张配方卡,是把"一张暮色书桌静物照"按字段逐项摊开的样子:
共享提示词 14 字段 · 以"暮色书桌静物"为例
photorealistic-natural(写实自然照)。background 参数。background 开关。真正只属于 CLI 的,是画质(quality)、输入保真度(input fidelity)、蒙版、输出格式与输出路径——那些到 CLI 章节再说。结构原则:场景 → 主体 → 细节 → 约束
14 个字段不必按表格顺序堆。真正好用的写作顺序,是从"大"到"小"再到"边界",分四段推进——这恰好对应人眼建立一幅画面的方式:先有舞台,再有演员,然后是质感,最后划清楚边框。
① 先搭舞台(场景/背景)
主体站在哪儿?周遭环境如何?先确立空间,模型才有地方"放东西"。
② 再放主角(主体)
画面的绝对中心是什么,写清楚、写靠前。主体含糊,后面再多细节也救不回。
③ 然后上细节(风格·光线·配色·材质·构图)
把质感一层层叠上去。这是"普通"和"对味"的分水岭。
④ 最后划边界(约束 + 避免)
明确要保留什么、坚决不要什么。边界放最后,像给画面装一道护栏。
顺序本身就是信息。越靠前的词,模型越当回事。所以把"主体"和"最不可妥协的约束"往前放,把可有可无的氛围词往后放。一条读起来像"舞台说明"的提示词,几乎总比一串无序的形容词更稳。
具体度政策:该补的补,该收的收
新手最容易走两个极端:要么一句"画只猫"丢过去,要么把 200 个形容词堆成一座山。技能给的政策很克制——看用户原话的具体程度,再决定补多少:
- 用户已经写得很具体、很详细 → 你只做规范化 / 结构化:把它整理成清晰、面向生产的 spec,不擅自加料。
- 用户写得很笼统 → 在能实质改善画面的地方做得体的增强:补构图、取景、用途、合理的场景具体化。
核心分寸是一句话:让目标更清晰、更可执行,但绝不盲目堆细节。哪些增强算"得体",哪些算"越界",这条线必须画清楚:
✓ 允许的增强
- 构图 / 取景:补一个机位、景别、画幅比例。
- 精细度 / 用途:说明这是缩略草稿还是终稿、印刷还是屏幕。
- 实用布局:在请求已隐含的范围内,安排元素的相对位置。
- 合理的场景具体化:为已定的请求补一个站得住脚的环境细节。
✗ 不允许的增强
- 凭空加角色 / 物体:请求里没有暗示的人或东西,别自作主张塞进去。
- 编品牌 / 口号 / 配色 / 叙事:用户没提的,不要替他发明。
- 不被支持的定位:版面撑不起的任意"放这儿放那儿"。
- 堆砌细节:为了显得"专业"而加的、对画面无实质贡献的词。
把政策落到一个真实例子上。下面是一条笼统提示词,以及把它规范化 + 得体增强后的样子——注意:我们补的是构图、光线、用途,但没有替用户发明任何品牌、人物或叙事。
逐字文本:把字钉在画面上
"画面里要带字"是出图最容易翻车的环节。模型会把你随手写的文字理解成"大概那个意思",于是你常拿到拼错、漏字、字体乱飞的结果。规矩只有几条,但每条都要照做:
- 逐字引用:要出现在画面里的文字,原样、带引号写进提示词,并明确"逐字渲染、不要改写"。
- 指定字体与位置:说清楚用什么字体风格、放在画面的哪个位置、多大。位置不交代,字就会乱落。
- 棘手词逐字母拼写:生僻词、专有名词、易错词,逐个字母拼给它,并要求逐字母渲染。
- 编辑场景每轮重复:在多轮编辑里,每一轮都要把这段逐字文本和位置重新说一遍——模型不会自动记住上一轮的约定。
需要文字精确的图(海报、UI、信息图、含字编辑),不要图快用低画质出。若走 CLI 回退,低画质(low)适合缩略、草稿、快速迭代;一旦"文字必须对",就该用 medium / high / auto 这类终稿级画质。校验时逐字比对,错一个字母都算没过。
多图引用、重复不变量与单次迭代
当提示词涉及多张图、或进入反复修改时,还有三条纪律能帮你少走弯路。它们都很朴素,但漏掉任何一条,对话很快就会乱套。
① 多图按 index 引用
给了不止一张输入图时,用序号点名,别用"那张图""左边那个"这种模糊指代。比如"参考第 1 张的配色、保留第 2 张的主体姿态、把它合成进第 3 张的背景"。这样模型才知道每张图扮演什么角色(参考图 / 编辑目标 / 合成素材)。
② 编辑每轮重复不变量
编辑的本质是"改一处,保其余"。模型不会默认记住"上一轮我们说过脸不能动"。所以每一轮编辑,都要把不变量(invariants)——必须原样保留的部分——和这次要改的点一起重新声明。还要记住:内置编辑只对"对话上下文里可见的图"生效,要编辑本地文件得先用 view_image 把它载入对话,再走内置 edit。
③ 单次只改一处,再复检
一口气改五个地方,出了问题你根本不知道是哪条指令的锅。正确节奏是:一次只改一个变量 → 看结果 → 再改下一个。慢,但稳,且可回溯。
把这三条连起来看,它们其实是同一个原则的三个侧面:消除歧义。序号消除"指哪张"的歧义,重复不变量消除"哪儿该保留"的歧义,单次迭代消除"是哪条指令起的作用"的歧义。提示词写得好不好,很大程度上就看你替模型消除了多少歧义。
一条好提示词由 14 个字段构成,写作顺序是场景 → 主体 → 细节 → 约束,从大到小、从有到无。具体度看人下菜:用户已具体就只规范化,笼统才得体增强——补构图、光线、用途可以,凭空发明品牌/人物/叙事不行。画面带字要逐字引用 + 指定字体位置,棘手词逐字母拼写,文字密集稿别用草稿画质。涉及多图与编辑时守三条纪律:按 index 引用、每轮重复不变量、单次只改一处再复检。归根结底,全章只在做一件事——替模型消除歧义。