Skip to content

角色定妆工作流

本章节来自 webkubor 在实际项目《沸腾之雪》中沉淀的工程实践,系统解决 AI 生图人脸一致性电影质感 两大核心问题。


一、为什么需要「定妆工作流」?

用 AI 生图做角色时,最常遇到的两个痛点:

  • 人脸漂移:每次出图脸都不一样,同一个角色换个服装就认不出来
  • 质感失控:插画感/赛璐璐感太强,出不来真实电影感

解法:摄影语言 + 锚点管理 + 分步操作


二、工具链

工具用途
nanobanana-plus生图 MCP Server(webkubor 自研,支持 Imagen 4 Ultra 与宽高比切换)
Imagen 4 UltraGoogle 当前最高质量生图模型
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 生图 = 摄影语言 + 锚点管理 + 分步操作
把它当成一个「无人机器摄影棚」来控制,结果会完全不同。


相关资源

Released under the Academic Free License v3.0.