外观
提示词工程为何有效
提示词不是"咒语",而是给模型的一份条件输入。理解它为什么有效,你才能写出稳定的提示词、并在出问题时知道改哪里。本章先讲机制,再给图像与视频两套模板。
1. 机制:提示词如何控制生成
回到第 1 章的架构图:
- 你的提示词被文本编码器(CLIP 类模型或多模态大模型,如 HunyuanVideo 用 MLLM 做文本编码)压缩成一个条件向量;
- 在每一步去噪中,DiT 主干通过交叉注意力读取这个条件向量,决定"这一步该往哪个方向还原画面"。
训练时,模型见过海量"图/视频 + 文字描述"配对,学的是两者的联合分布。所以——
提示词的本质是"在训练分布中定位":你写的每个词,都在把采样范围收窄到训练数据里与之强关联的画面区域。
由此推出四条编写铁律:
- 写训练集里"常见"的描述就有效:摄影/美术术语("逆光""浅景深(背景虚化)""广角仰拍")在训练数据中出现频率高、关联画面稳定。
- 抽象指令无效:"更有感觉一点""高级一些"没有对应的稳定画面区域,模型只能瞎猜。
- 否定与复杂逻辑弱:"不要出现手"反而提高了"手"的激活度(负面内容请用专门的负面提示词栏位)。
- 越具体越稳定:"黑色短发三七分、戴银色细框眼镜"比"好看的发型"锁得更死。
从词到 token:tokenizer 的直觉
提示词进入文本编码器的第一步是切词(tokenization):句子被切成固定词表里的 token。这带来两个实操后果:
- 常见词是完整 token,生造词被切碎。你自造的角色名、生僻词在词表里不存在,会被切成无意义的碎片——对模型而言约等于噪声。这就是为什么 LoRA 触发词(如
hero_guchen)需要专门训练才能把"这个角色"的意义灌进那串 token(见角色一致性);也是为什么直接用角色名写提示词("顾辰转身")对未训练的模型毫无锁定作用。 - 中文工具写中文即可。国产工具(即梦、可灵)的文本编码器针对中文优化过,硬翻成英文反而可能引入翻译损耗;面向英文底模的工具(Midjourney、部分开源模型)反之。
CLIP:图文配对的训练目标
文本编码器(CLIP 类模型,OpenAI 2021)的训练方式是对比学习:喂入海量"图 + 文字描述"配对,训练目标只有一个——让配对图文的向量互相靠近、让错配的互相推远。数亿对样本训练下来,文本向量空间与图像向量空间被"对齐"了:词"逆光"的向量坐标,就落在所有逆光照片向量的聚集区旁边。
所以"提示词在训练分布中定位"不是比喻,是几何事实:你写下"逆光",条件向量就被放进了逆光照片密集的区域,去噪过程自然被拉向那里。推论随之成立:训练数据里越常见的概念,定位越准("逆光""特写"有数百万样本);越冷僻的概念,定位越糊(生造词附近一片空白,模型只能最近邻瞎猜)。铁律 1、2 的根因在此。
注意力图:词与画面区域的对应
交叉注意力(机制见图生视频)的权重矩阵可以可视化:每个文本 token 在画面上都有一张"热力分布图"。研究(Prompt-to-Prompt 等)证实:注意力图与最终画面的语义布局高度对应——"黑发"的热力集中在头发区域,"眼镜"集中在面部。
这一机制直接解释四个高频实操现象:
- 关键词被"忽略":提示词写太长时,总注意力被几十个词分薄,关键词权重被稀释到不起作用——对策是删冗余、写短句,而不是再加词。
- 顺序敏感:排在前面的词天然获得更高权重(位置先验)——所以重要信息(画风、主体)要前置,模板把画风词放句首就是这个道理。
- 权重语法的原理:
(词:1.2)这类语法(有此功能的工具)并非直接在注意力权重上乘系数——主流实现(A1111/ComfyUI 的 emphasis)是直接缩放该词的条件向量(embedding),经交叉注意力传导,等效于在注意力分配上加权。它是"放大器"不是"新词":词本身无效时加权也救不回来。 - 属性污染(串色/串特征):"黑发男性与白发老者同框"——两个主体的注意力区域重叠时,"黑"会渗漏到老者头上。这是多人同框崩坏的机制根因之一,工程解法仍是图像资产章的规避策略:拆单人镜头。
2. 图像提示词模板
推荐结构(按此顺序组织,中文工具直接写中文即可):
text
[画风] + [主体与外观] + [动作/表情] + [场景] + [构图/镜头] + [光影氛围] + [质量词]实操示例(即梦/Seedream 出角色定妆照,画风段取 CG 厚涂·人物段基准组全组——本站主线示例角色顾辰):
text
3D CG 渲染风格,写实比例美型角色,次表面散射肤质,发丝根根分明,物理材质渲染,电影级布光。一位28岁男性,
黑色短发三七分,戴银色细框眼镜,眉眼深邃,身穿深灰西装外套与黑色高领内搭。正面站立全身像,
表情冷峻克制直视镜头。纯白色背景。正面平视构图,人物居中。柔和均匀打光。高清,材质精致,细节丰富。要点:
- 画风词放最前:它决定整个采样区域("3D CG 渲染""赛璐璐""国风工笔")。
- 外观描述只写"区别性特征":发型发色、标志性配饰、服装。大众脸特征不用写。
- 负面提示词(有该栏位的工具):
低画质,模糊,多余手指,面部畸形,文字,水印;CG 厚涂档另加防仿真人词组(见画风图谱 §2 谱系三)。 - 同风格复用:把画风段+质量词段存为固定模板,全剧复用——这是"风格统一"的工程手段。
3. 视频提示词模板
视频提示词比图像多两个维度:动作与运镜。
text
[主体(已在参考图中时从简)] + [单一动作] + [运镜] + [氛围/节奏]实操示例(即梦图生视频,已用 @引用 锁角色):
text
@图1 的男性摘下眼镜缓缓擦拭,再抬眼直视镜头,眼神从平静转为锋利。
镜头从中景缓慢推近至面部特写。氛围紧张,节奏由慢到快。单镜头单动作原则:一个 3~6 秒的镜头只写一个主动作。"男性擦眼镜然后转身冲出会议室上车"= 三个动作挤进一次采样,几乎每个工具都会崩。复杂动作拆成多个镜头,用首尾帧衔接。
参考图模式下不复述外貌:角色已由参考图/元素锁定,再写外貌描述会与图像条件打架(详见角色一致性)。
4. 运镜词汇表
视频模型对以下运镜词的响应最稳定(训练数据中大量存在):
| 运镜 | 提示词写法 | 漫剧典型用途 |
|---|---|---|
| 推 | 镜头缓慢推近 | 强调情绪、揭示细节 |
| 拉 | 镜头逐渐拉远 | 收尾、展示环境 |
| 摇 | 镜头左右摇动 | 扫视场景、跟随对话 |
| 移 | 镜头平移 | 跟随移动主体 |
| 跟 | 镜头跟随主体 | 追逐、行进 |
| 环绕 | 镜头环绕主体 | 高光时刻、变身 |
| 升降 | 镜头升起/俯拍 | 开场定场、压迫感 |
| 手持感 | 轻微晃动的手持镜头 | 紧张、纪实感 |
组合原则:一个镜头一个运镜。"推近+环绕+拉升"三连写进去,模型只会给你一段混乱的漂移。
5. 迭代方法论:像调试代码一样调试提示词
你的开发者背景在这里是降维优势:
- 单变量修改:每次只改一处(一个词/一个参数),生成对比。一次改三处,你永远不知道哪处起了作用。
- 版本管理:用表格或 Git 管理提示词版本——
v1 初稿 → v2 加光影 → v3 换运镜词,每条记录生成结果链接与积分消耗。 - 固定随机种子复现(有该功能的工具):调好结构后固定 seed 微调措辞。
- 建立个人词库:把验证有效的画风词、运镜词、质量词沉淀为自己的"代码片段库",全剧复用。
调试实录:一张定妆照的 5 轮单变量迭代
以下是一次真实节奏的调试过程(即梦出图,目标:顾辰定妆照·CG 厚涂,即 §2 示例与图像资产章示例图的角色)。每一轮只改一个变量,记录改动与判定——注意"判定"永远对照验收目标,而不是"感觉还行":
| 轮次 | 提示词(改动处加粗) | 结果 | 判定 |
|---|---|---|---|
| v1 | 西装男性戴着眼镜 | 画风随机偏真人照片感(滑向仿真人方向);姿势扭曲;背景杂乱街道 | ✗ 三个问题,但一次只改一个 |
| v2 | **3D CG 渲染风格,写实比例美型角色,次表面散射肤质。**西装男性戴着眼镜 | 画风正确(CG 美型,不跑真人) | ✗ 姿势仍扭曲 → 下轮改姿势 |
| v3 | …男性正面站立全身像,双手自然垂于身侧,表情冷峻直视镜头 | 姿势稳定、信息完整 | ✗ 背景仍杂乱 → 下轮改背景 |
| v4 | …纯白色背景 | 背景干净,符合定妆照规格 | ✗ 光影平淡 → 下轮补光影 |
| v5 | …柔和均匀打光。高清,材质精致,细节丰富 | 全项过检 | ✓ 定稿,存入画风模板库 |
两个要点:① v1 到 v5 的任何一轮如果同时改两处,就无法归因"是哪一处起了作用"——单变量不是慢,是唯一能积累确定性的路径;② 定稿的 v5 不是终点,它的画风段+质量词段被抽出来存为模板,此后全剧所有图都从这个模板出发(见 §2"同风格复用")。
常见失效模式与诊断
| 失效模式 | 机制根因 | 对策 |
|---|---|---|
| 关键词被忽略(写了不出现) | 提示词过长,注意力权重被稀释(见 §1) | 删冗余词、写短句;关键词前置;有权重语法的工具适当加权 |
| 属性串到别的物体上(串色/串特征) | 多主体注意力区域重叠渗漏(见 §1) | 拆单人镜头;或把属性与主体写进同一短句绑定 |
| 画风与描述不符 | 画风词权重不足,或该词在训练分布中模糊 | 画风词放句首;换成更高频的画风词(查画风图谱的提示词段) |
| 画面出现没写的东西 | 训练分布中的强关联被顺带激活 | 写入负面提示词栏;正文中换一个不携带该关联的近义词 |
| 换工具/换模型版本后提示词全失效 | 各家文本编码器与训练分布不同 | 提示词库按"工具 × 模型版本"分桶管理,迁移后重新做单变量校准 |
| 自造词/角色名无锁定效果 | 生造词被 tokenizer 切碎,无语义(见 §1) | 训练 LoRA 把意义灌进触发词;未训练时用完整外貌描述代替名字 |
6. 用 LLM 帮你写提示词
漫剧工作流里的标准做法:把你写的分镜描述丢给 LLM(豆包/Kimi/DeepSeek 等任一),让它翻译成上面的模板结构。
示例指令:
text
你是我的 AI 视频提示词助手。请把下面的分镜描述翻译成即梦图生视频提示词,
结构为:主体 + 单一动作 + 运镜 + 氛围。角色外貌不要写(已由参考图锁定)。
分镜:男主角在雨后都市街头转身,看向镜头,表情从平静转为锋利。但验收权在你:LLM 不知道当前模型的脾气(哪个词有效、哪个词会崩),生成的提示词必须经过你的单变量测试再进词库。这就是为什么要先懂机制——否则你只能盲信 LLM 的输出。
自测
- 为什么"更有感觉一点"这类抽象指令无效?
- 参考图模式下为什么不要复述角色外貌?
- "单变量修改"解决的是什么问题?
- 为什么重要信息(画风、主体)要放在提示词前半段?
- "黑发男性与白发老者同框"为什么常把黑发染到老者头上?工程上怎么规避?
查看答案
- 抽象词在训练分布中没有稳定关联的画面区域,模型只能瞎猜——提示词的本质是"在训练分布中定位",而 CLIP 对齐后的向量空间里,"有感觉"附近没有密集的训练样本(见第 1 节)。
- 角色外貌已由参考图的图像条件锁定,文字复述会与图像条件打架、反而引入漂移;参考图模式下提示词只写动作和场景(见第 3 节)。
- 一次改多处时无法归因"哪处起了作用";单变量修改才能定位有效改动,把验证过的词沉淀进个人词库(见第 5 节调试实录)。
- 交叉注意力中,靠前的 token 天然获得更高权重(位置先验);埋在长提示词后半段的关键词会被稀释到不起作用(见第 1 节"注意力图")。
- 多人同框时两个主体的注意力区域重叠,属性沿重叠区渗漏(属性污染)。规避:拆成单人镜头分镜(漫剧通行做法),或把属性与主体写进同一短句显式绑定(见第 1 节与图像资产·多人镜头处理)。
动手练习
用同一个角色设定图,分别用"模糊版"和"结构化版"两组提示词各生成 3 张图,对比一致性差异;再任选一个画面写一版视频提示词,按"单镜头单动作"原则拆成两个镜头的版本,对比生成效果。提示词与结果按图像资产生产的资产库规范归档。