角色定妆工作流
本章节来自 webkubor 在实际项目《沸腾之雪》中沉淀的工程实践,系统解决 AI 生图人脸一致性 与 电影质感 两大核心问题。
一、为什么需要「定妆工作流」?
用 AI 生图做角色时,最常遇到的两个痛点:
- 人脸漂移:每次出图脸都不一样,同一个角色换个服装就认不出来
- 质感失控:插画感/赛璐璐感太强,出不来真实电影感
解法:摄影语言 + 锚点管理 + 分步操作
二、工具链
| 工具 | 用途 |
|---|---|
| nanobanana-plus | 生图 MCP Server(webkubor 自研,支持 Imagen 4 Ultra 与宽高比切换) |
| Imagen 4 Ultra | Google 当前最高质量生图模型 |
| Gemini Flash edit_image | 图片编辑(换服装/背景,保留脸型) |
| Python PIL | 三视图拼合、水印批处理脚本 |
nanobanana-plus 开源地址:github.com/webkubor/nanobanana-plus
三、核心三步工作流
Step 1:建立 face anchor JSON
为每个角色建立一份面部锚点描述,防止每次出图脸都漂移:
json
{
"facial_anchors": {
"face_shape": "Soft oval face",
"eyes": "Crescent-moon shaped eyes, natural double eyelids",
"hair": "Jet black straight hair with straight-cut bangs",
"skin": "Fair luminous porcelain skin"
}
}每次生图都把这份 JSON 的内容翻译进 Prompt,作为人脸的「不变底座」。
Step 2:分步换装(减少人脸漂移)
这是最容易踩的坑:
❌ 错误做法:一次性换服装 + 换背景
✅ 正确做法:先只换服装 → 确认脸型稳定 → 再只换背景
每一步都以上一步的输出图作为参考底图,而不是从文字重新生成。
Step 3:定妆照 → 三视图
- 必须用定妆照做底图,不能纯文生图(否则角色一致性极差)
- 正面 / 侧面 / 四分之三角各生成一张
- 用 PIL 脚本横向拼合,输出到
character_sheets/统一管理
四、Prompt 公式
提升真实感的核心词
Hasselblad medium format camera, 90mm prime lens f/1.8
35mm film grain, visible skin pores
Rembrandt lighting + hair rim light + face fill light
glass skin, natural healthy glow
NOT anime, NOT illustration, photorealistic防常见问题速查
| 问题 | 解决方案 |
|---|---|
| 脸显老 | 加 DO NOT age the face, age: late 20s |
| 图中出现水印/文字 | 加 STRICTLY NO TEXT, NO WATERMARK |
| 武器/道具数量错误 | 明确写 EXACTLY TWO blades, NOT three |
| 侧脸不好看 | 加 beautiful face from side angle, high nose bridge |
五、实战案例:《沸腾之雪》角色体系
《沸腾之雪》是 webkubor 用以上工作流制作的 AI 原生武侠微电影,所有角色均有完整定妆体系。
已完成的角色(部分):
| 角色 | 人设 | 服装 |
|---|---|---|
| 顾栖月 | 花神,轻功第一 | 白色汉服 + 玉笛 |
| 燕照绫 | 大漠赤练 | 朱红轻甲 |
| 陆听潮 | 北荒双刀客 | 暗绿防雨短披 |
| 温小婉 | 南楚皇后 | 玄红凤袍 |
每个角色均配有:
- ✅ face anchor JSON
- ✅ 官方定妆照
- ✅ 三视图(可直接用于 AI 视频生成参考)
六、一句话总结
AI 生图 = 摄影语言 + 锚点管理 + 分步操作
把它当成一个「无人机器摄影棚」来控制,结果会完全不同。
相关资源
- nanobanana-plus:github.com/webkubor/nanobanana-plus
- 图片编辑进阶:图片编辑提示
- 多图参考技巧:参考图高级用法