AI角色一致性指南:如何让你的角色在每张图里都长一个样

2026/02/27

上个月我试着用AI做一本12页的儿童绘本。主角是个红头发、有雀斑、穿黄色雨衣的小女孩。第1页效果很棒。到了第3页,雀斑没了。第7页头发变成了棕色。到最后一页,连脸型都变了——下巴更圆了,鼻子也不一样了,看起来像是她表姐而不是同一个人。

我花在重新生成图片上的时间比写故事还多。如果你用AI做过漫画、绘本或者任何系列图片,大概率体验过这种痛苦。角色一致性——让你的角色在多张图片里看起来是同一个人——是当前AI绘画领域最让人头疼的问题,没有之一。

这篇指南讲的都是实际管用的方法。不讲理论,不画大饼。全是我过去三年在 Midjourney、ComfyUI、Leonardo AI 和各种一致性工具上反复测试后总结出来的具体技巧、参数值和工作流。

为什么AI角色在多次生成之间会变样

简单来说:AI图片生成器没有记忆。

你每次生成图片,都是从随机噪声开始的。扩散模型在你的文本提示词引导下,一步步去除噪声,最终形成一张图。但每次的起始噪声都不同,所以即使用完全相同的提示词,每次生成的图片也不一样。

你写的"一个棕色头发的女孩"会被概率性地解读。这次生成把"棕色"理解成栗色,下次是巧克力色,再下次是红棕色。模型并没有偷懒或出错——它做的正是它被设计来做的事:创造多样性。

更糟的是,哪怕你只改了一个词。把"站在公园里"换成"坐在公园里",改变的不仅是姿势。整张图会从头开始重新生成。脸型、发质、肤色——一切都重新来过。

这不是bug,这是扩散模型的底层运作方式。一致性不会自动发生,你必须用刻意的技巧去强制实现它。

主要有三种方法,组合使用效果最好。

方法一:参考图与角色锚定

这是单独使用时最靠谱的技巧。思路很简单:先创建一张角色的标准定义图,然后每次生成新图都以它为参考。

创建你的锚点图

在生成任何场景之前,先做好一张参考图作为你的"真相来源"。这张锚点图应该满足以下条件:

  • 全身或半身照 ——展示足够多的角色细节来体现体型比例
  • 正面朝向 ——正对镜头,没有夸张的透视
  • 纯色背景 ——白色或纯色,不要有任何干扰元素
  • 自然表情 ——微笑或自然状态,不要极端的表情
  • 光线均匀 ——均匀打光,没有遮挡面部特征的硬阴影

花点时间把这一张图做好。需要重新生成20次甚至50次都没关系。这张图会成为后续所有生成的锚点,在这里花的功夫能帮你之后省下好几个小时。

最重要的原则:永远参考最初的锚点图,绝对不要参考上一次的生成结果。如果你用第5张图做第6张的参考,再用第6张做第7张的参考,误差会不断累积。到第20张的时候,你的角色已经面目全非了。永远回到源头去参考。

各工具的具体操作

Midjourney:使用 --cref(character reference,角色参考)参数。上传你的锚点图,然后在每个提示词中加上 --cref [image_url]。搭配 --cw(character weight,角色权重)来控制匹配强度——取值范围0到100,100是最强匹配。我通常以 --cw 80 作为起点,再根据实际效果调整。

Leonardo AI:使用 Character Reference 功能。上传你的锚点图,强度设为 Low、Mid 或 High。建议从 Mid 开始。Low 给模型太多自由发挥的空间,容易走样。High 可能让输出显得僵硬或过拟合。Mid 对大多数场景来说是最佳平衡点。

ComfyUI + IP-Adapter:这是最灵活但也最考验技术功底的方案。IP-Adapter 内部的 CLIP 视觉模型会把你的参考图缩放到 224×224 像素。这意味着人脸必须居中且占据画面主体——方形裁剪效果最好。关键参数设置:

  • IP-Adapter 权重设为 0.8 或更低。权重太高会产生伪影,并降低提示词的控制力
  • 增加采样步数(用40-50步替代默认的20-30步),给模型更多时间来协调参考图和提示词之间的关系
  • 如果你主要关心面部一致性,使用 IPAdapter FaceID Plus 变体。它专门针对面部特征优化,而不是整体构图

通用建议:如果你的工具支持多张参考图,提供2-3个角度——正面、四分之三侧面和侧面。多角度参考能帮助模型更好地理解你角色的三维面部结构。

方法二:提示词工程实现角色一致性

光靠参考图还不够,如果你的提示词写得马虎,结果照样会翻车。文本描述的部分同样重要。

构建 Character DNA 描述块

写一段完整的文本来描述角色的每一个视觉细节。这就是你的 Character DNA——一份完整的角色规格说明,每次写提示词都要原封不动地复制粘贴进去。

举个例子:

[Character: Mira] 25-year-old woman, oval face, warm brown skin,
dark brown almond-shaped eyes, black wavy shoulder-length hair with
side part, small nose, full lips, thin eyebrows. Wearing a navy blue
bomber jacket over white crew-neck t-shirt, dark indigo slim jeans,
white low-top sneakers. Athletic build, approximately 5'6" height.

关键词是原封不动。不要换说法,不要缩写,不要换近义词。如果你的锚点提示词写的是"navy blue bomber jacket",后面就不要简写成"blue jacket"。"Navy blue bomber jacket"和"blue jacket"生成出来的结果会有明显差异。

我见过很多人精心打磨第一张图的描述,后面就开始偷懒。漂移就是从这里开始的。

锁定你的画风关键词

画风关键词在每个提示词里都必须完全一致。如果你第一张图用的是"digital illustration, soft lighting, Studio Ghibli inspired, muted color palette"——就把这些词原样粘贴到每个提示词里。不要三页之后突然换成"anime style, bright colors"。哪怕是微小的风格变化,都会连锁反应式地影响角色外观。

善用反向提示词

反向提示词不仅仅是用来避免畸形的。它也是一致性工具。找出容易漂移的特征,主动屏蔽掉:

  • 角色是短发?加上:"no long hair, no ponytail"
  • 棕色眼睛?加上:"no blue eyes, no green eyes"
  • 没有胡子?加上:"no beard, no stubble, no facial hair"

我为每个角色项目都维护一份"漂移观察清单"——记录我发现模型最爱擅自改动的特征。发色和眼睛颜色是最常见的"惯犯"。配饰(眼镜、耳环、帽子)是第二容易在多次生成中消失的。

保持描述顺序一致

这听起来有点吹毛求疵,但确实有用。如果你在一个提示词里写"brown hair, blue eyes, tall",在下一个里写"tall, blue eyes, brown hair",你就引入了不必要的变量。模型会根据词语位置分配权重——出现在提示词前面的词通常获得更多注意力。选定一个顺序,然后一直保持。

方法三:专用一致性工具

上面的手动方法确实有效,但也需要花精力和具备一定技术基础。如果你不想折腾 ComfyUI 节点或者维护提示词表格,现在有越来越多专门为角色一致性设计的工具。

以下是各种方案的优劣对比:

方案优势劣势
手动提示词 + seed免费,适用于任何工具耗时,结果不稳定,需要技术经验
ComfyUI + IP-Adapter控制力和灵活性最强需要技术配置、GPU硬件,学习曲线陡峭
Midjourney --cref简单易用,原生集成控制有限,封闭生态,需要付费订阅
专用平台技术门槛低,内置一致性功能比手动工作流的微调选项少

如果是做社交媒体内容或营销素材,用专用工具或 Midjourney 的 --cref 通常是最合理的选择。如果是做50页的专业漫画、需要像素级的精确控制,ComfyUI 工作流能给你最大的灵活度。如果想快速测试角色原型和创意,一个角色创建工具能自动处理一致性问题,让你迭代得更快。

正确答案取决于你的项目规模、技术水平,以及你愿意在配置上花多少时间。我在不同项目中使用不同的方案——没有唯一最优解。

Consistent Character AI 这样的工具把参考图方案做了自动化封装。你上传一次角色参考图,之后就可以在不同姿势、服装和场景中生成这个角色,不需要手动管理提示词、seed 或适配器权重。代价是少了一些精细控制,但对大多数创作者来说这个取舍是值得的。

Seed值:被忽视的一致性要素

大多数教程都跳过了这个话题,但 seed 控制真的很重要。

每次AI生成都会用到一个 seed 值——一个决定初始随机噪声模式的数字。相同的 seed + 相同的提示词 + 相同的模型 = 几乎一样的输出。

记录下你最满意的那些生成的 seed 值。当你想创建同一角色的变体时,从相同的 seed 开始。这不能保证面部完全一致(提示词的变化仍然会影响输出),但它会让生成结果偏向相似的面部特征。

有些创作者会使用系统性的 seed 递增——场景1用 seed 42,场景2用 seed 43,场景3用 seed 44。输出不会完全一样,但它们共享底层的模式,这对一致性有帮助。

需要注意的是:单靠 seed 是不够的。在相同 seed 下改一个词,依然可能生成一张完全不同的脸。Seed 最适合作为多技巧组合中的一层——把它和参考图、一致性提示词结合起来使用,效果最好。

进阶:多角色场景与视频

多角色场景

保持一个角色一致已经很难了。在同一张图里保持两个或更多角色各自不同且各自一致,难度更上一层楼。

我见过最常见的错误是:分别生成各个角色,然后试着合成在一起。光照、比例和透视永远不可能完美匹配。尽可能在一次生成中就把所有角色放在一起。

如果你的工具支持,可以使用标签化的位置结构:

@Milo: 10-year-old boy, brown skin, short curly black hair, red hoodie
@Luna: white rabbit with floppy ears, pink nose, gray spots on back

Scene: Forest clearing, afternoon light.
@Milo stands on the left, pointing upward at a bird.
@Luna sits at his feet on the right, looking up at @Milo.

三段式公式:(1)定义每个角色,(2)设定他们的位置,(3)描述他们的动作。这样能给模型清晰的空间关系,而不是寄希望于它自己猜谁站哪儿。

视频角色一致性

视频又增加了一整个新的难度维度,因为每一帧都可能引入漂移。面部可能变形,特征可能在运动中偏移,本来流畅的动画变成了"变脸现场"。

以下是有助于改善一致性的关键参数:

  • 运动强度:保持在 0.3-0.5 之间。更高的值会产生更夸张的动作,但面部变形的风险也显著增加
  • 时长:3-5秒的片段一致性表现最好。越长的片段累积的漂移越多
  • 分辨率:更高的分辨率在运动中能更好地保持面部细节
  • 运动隔离:使用 Motion Brush 或类似工具将运动限制在特定区域。让脸部保持相对静止,身体动就好

如果你要生成角色动画,先准备一张你满意的静态图,然后从这张图开始做动画,而不是纯文本生成视频。图片转视频比文本转视频能保留多得多的角色细节。

会破坏一致性的常见错误

这些错误我全都犯过。希望你能避免这些坑:

  1. 跳过锚点图。 没有参考图就直接开始生成场景。解决办法:永远先做锚点图,哪怕要花一个小时。

  2. 链式引用。 用第5张的结果做第6张的参考,再用第6张做第7张的参考。漂移会不断累积。解决办法:每次生成都参考最初的锚点图。

  3. 改写描述。 把"auburn wavy hair past shoulders"改成"reddish wavy hair"。解决办法:直接复制粘贴 Character DNA 描述块。每一次都是。

  4. 忽略 seed。 每次都让工具随机选一个 seed。解决办法:记录你的 seed 值,同一角色复用它们。

  5. 不检查漂移。 生成了30张图,到第31张才发现角色在第12张就已经变样了。解决办法:每生成5-10张,就和锚点图做一次对比。

  6. 视频动作太复杂。 提示词写"角色一边旋转一边风吹过头发"。解决办法:让动作保持简单。"角色微微向右转头"才是你的好朋友。

  7. 长视频不做测试。 直接生成10秒的片段然后祈祷它能用。解决办法:先生成3秒的测试片段。确认一致性没问题。然后再加长。

快速上手:5步一致性工作流

如果你只想赶紧开始,这是最精简的工作流:

第1步:写好 Character DNA。 在打开任何工具之前,在纸上或文档里写下角色的每一个外貌细节、服装配件和风格关键词。越具体越好。比如"苍白皮肤,鼻梁和脸颊上有淡淡的雀斑,铜红色直发齐下巴并留有齐刘海。"

第2步:生成一张锚点图。 用你的 Character DNA 作为提示词。正面朝向,纯色背景,良好光线。反复生成直到你得到一张真正满意的。把这张图永久保存。

第3步:锁定你的设置。 记录下生成锚点图时使用的模型版本、seed 值、风格关键词和反向提示词。这些就是你后续所有生成的基线。

第4步:用一致的输入生成场景。 每次生成新场景时,粘贴同样的 Character DNA,上传同一张参考图,使用同样的风格关键词。只改场景描述和姿势。

第5步:定期和锚点图对比。 每隔5-10次生成,把新图和锚点图放在一起看。如果你发现了漂移——头发变暗了、雀斑消失了、脸型变了——丢掉那张图,从锚点图重新生成。不要从已经漂移的图开始。

这五个步骤不能保证你每次生成都完美。但它们能把你的重新生成率降低80%以上,而且从第一张到最后一张,你的角色看起来都明显是同一个人。

从这里开始就好。等你需要的时候再逐步加入进阶技巧。每多加一个技巧,其他的也会跟着变得更好用。


对角色一致性有疑问,或者想分享你的工作流?欢迎联系我们:support@consistentcharacterai.org

团队

团队