学完这篇,你能搭起一套可复用的角色面部一致性流程,让同一角色在几十个分镜里脸不跑偏。
AI 生成真人短剧,最头疼的不是画质,而是第 3 个镜头里的主角和第 1 个镜头像两个人。下面按顺序走六步,每一步都给出具体工具和参数。
第一步:先定一张“基准脸”,把种子和参数锁死
这一步要产出每个角色唯一的定妆照,作为后续所有生成工作的对照基准片。
用 Midjourney 或本地 Flux / SDXL 生成一张正面、平光、无遮挡、纯色背景、1024×1024 以上的半身像。ComfyUI 里在 KSampler 节点的 seed 输入框填固定值(例如 20250301),并把 steps、cfg、采样器、模型名全部记到一张表格里;AUTOMATIC1111 WebUI 则把 Seed 填成相同数字,不要勾选随机。
注意:不要拿带刘海遮眼、侧脸、笑到变形的图当基准脸,后面所有参考图都从它派生,源图跑偏会一路错到底。
第二步:为每个角色建 5-6 张多角度参考图库
这一步要得到同一张脸的正、左右 45 度、侧面、微低头、微仰头,供后续参考图驱动使用。
在 ComfyUI 里加载第一步的基准图,挂 IPAdapter(需安装 ComfyUI_IPAdapter_plus),权重给 0.4–0.5 的低强度,提示词只改角度描述,如 slightly turned head, 45 degree view。每张出 4 张,人工筛掉不像的,按 角色名/正面.png、角色名/左45.png 命名存进同一个文件夹。
第三步:分镜图用 FaceID / InstantID 锁脸
这一步是在生成每个镜头画面时,把角色身份注入进去,让脸不随提示词漂移。
ComfyUI 中右键 → Add Node → IPAdapter → IPAdapter FaceID(搭配 insightface 的 antelopev2 模型)。权重按景别给:
- 近景、特写:
0.75–0.85
- 中景:
0.55–0.7
- 有动作、侧身、回头:
0.45–0.6
用 InstantID 的话,identity strength 设 0.8–1.0、权重 0.8;用 PuLID 则 weight 设 0.7。
注意:权重拉到 1.0 会让脸僵成贴图,一换姿势就崩,宁可低一点靠后期补。
第四步:戏份重的角色单独训一个 LoRA
这一步解决的是参考图压不住的情况,比如一个角色要出 30 个以上镜头。
每角色准备 20–30 张第二步的图(多角度、多表情、多光线),用 kohya_ss 训 SDXL LoRA:network_dim=32、network_alpha=16、learning_rate=1e-4、batch_size=1、epoch=10–15。触发词统一设成不常见字符串,比如 gj_role_lin。生成时 LoRA 权重 0.7–0.9,再叠一层 FaceID 0.5 做双保险。
注意:训练集里混进一张别人的脸就会污染整个 LoRA,图必须逐张人工过。
第五步:图生视频阶段别让脸继续飘
这一步是把定好的首帧送进视频模型,保持面部不崩。
在可灵、即梦、Vidu 里选“图生视频”,上传第三步产出的分镜图作首帧,运镜幅度选“小”,提示词里重复角色锚点特征(发色、瞳色、下颌线、痣)。同一角色同一场景的镜头连着拍,用上一镜的末帧当下一镜首帧。
注意:大幅度的转头、低头、大特写切侧脸是翻车重灾区,能拆成两个中近景就别用一个长镜头硬扛。
第六步:兜底修脸 + 逐镜检查
这一步是把仍有偏差的镜头救回来。
用 FaceFusion 3.x 或 ComfyUI 的 ReActor 节点换脸,source 填基准脸,face_enhancer 选 gfpgan_1.4、权重 0.5。全部镜头过一遍,重点看三个指标:鼻梁宽度、眼距、下颌线走向,连续三个镜头一致才算过。
小结
- 基准脸先行,种子、采样器、模型版本全部记录成表
- 每角色 5-6 张多角度参考图,是后面所有锁脸手段的原料
- FaceID / InstantID 权重按景别给,近景高、动作镜头低
- 高频角色上 LoRA,与 FaceID 叠加使用,触发词写死
- 视频阶段靠首帧 + 小运镜 + 连拍续帧,兜底用 FaceFusion 换脸
- 最后一定要逐镜检查鼻梁、眼距、下颌线三项硬指标