一次生成 20 个角色却全都撞脸:我用“角色合同”重做了批量生成流程

一次生成 20 个角色却全都撞脸:我用"角色合同"重做了批量生成流程

很多 AI 角色项目有一个很隐蔽的问题:单张图挑出来都不错,二十张铺开后却像同一个模特换装。客户说"人物没有辨识度",团队通常继续改提示词、换模型、抽种子,成本增加了,撞脸依旧存在。

根因是流程里缺少一个中间层:角色身份没有被建模

把角色生成看成数据建模

我现在会先给每个角色建立 character_id,并把描述拆成两个集合。

第一组是不可随意变化的身份锚点:年龄段、脸型、五官比例、体态、发型轮廓和标志物。第二组是镜头允许变化的属性:衣服、动作、背景、光照和表情。

ts 复制代码
type CharacterContract = {
  characterId: string
  identityAnchors: {
    ageBand: string
    faceShape: string
    bodyType: string
    hairSilhouette: string
    signatureProp?: string
  }
  allowedVariations: Array<'outfit' | 'pose' | 'lighting' | 'camera'>
}

有了这层结构,生成失败不再只是"感觉不像"。系统可以记录是哪一个锚点漂移,也可以只重做冲突字段。

批次差异来自矩阵,不来自随机数

如果同一批角色都是"二十多岁、精致五官、标准身材",模型自然会收敛到相似面孔。要提高可分性,需要在生成前做差异矩阵。

角色 年龄 轮廓 体态 发型 标志物
店主 48 方脸 敦实 短发 黑框眼镜
产品经理 31 长脸 清瘦 侧分 银色腕表
工程师 26 圆脸 微胖 卷发 无眼镜

这里最重要的是排他性。除了写"店主戴黑框眼镜",还应写"其他角色不得使用眼镜作为标志物"。除了定义产品经理清瘦,也要避免其他核心角色使用相同轮廓与体态组合。

这比单纯增加提示词长度有效,因为它是在控制角色集合的分布。

先产身份证,再产海报和镜头

每个角色先生成一张标准基准图:中性背景、稳定光线、无遮挡、正面或三分之二侧面。把图片哈希与角色合同、模型版本、提示词版本和种子绑定。

之后所有海报、分镜和视频镜头都引用该版本的角色身份证。造型发生变化时新建版本,不覆盖旧版本。这样,历史物料不会因为一次设定更新而失去可复现性。

验收要看两个方向

只检查"同一角色是否一致"还不够,还必须检查"不同角色是否足够不同"。

  • 角色内一致性:同一个人在远景、近景和不同情绪下仍可辨认;
  • 角色间可分性:不同人物放在同一画面或缩略图墙里不会混淆。

我会先做一个很朴素的盲认测试:隐藏角色名,把全批缩略图铺开,观察成员能否在两秒内完成区分。然后再用视觉向量相似度筛出疑似撞脸的组合,交给人工复核。

向量距离不能替代美术判断,但很适合做第一层筛查。最终状态只保留三种:通过、定点修改、推倒重建。不要让"差不多"进入后续几十个镜头。

这套方法为什么适合小团队

小团队最怕隐性返工。早期少花半小时建角色合同,通常能省下后期逐镜头修脸、重做封面和重新让客户确认的时间。

更重要的是,合同可以被程序读取。后续可以接入提示词组装、资产命名、重复检测、版本管理和自动验收,把角色资产从零散图片变成可维护的数据。

最后

批量角色生成不是"多调用几次模型",而是一个身份设计与质量控制问题。稳定的顺序应该是:角色合同 → 差异矩阵 → 基准身份证 → 场景生成 → 双向验收。

当角色要进入企业官网、小程序、App 或小游戏时,这种可追踪方式尤其重要。更多可复用的视觉资产可以在如意图库查看,智能体工程实践可参考《大鹏 Codex 智能体软件工程》

相关推荐
用户594404103562 小时前
Go 语言高性能 Web 服务开发:基于 Gin + GORM + Redis 构建 RESTful API
后端
Python私教2 小时前
App 第一版该砍什么?用三问法守住 MVP 的工程底线
后端·mvp
ServBay2 小时前
AI 工程师必备的 9 个 Python 库,从数据验证到模型优化
后端·python·ai编程
Python私教2 小时前
软件开发报价差 3 倍,真正的工程冲突不在价格
后端·架构
kisshyshy2 小时前
掘金同款社区数据库设计:9张表带你吃透建表、索引与约束
后端·sql·markdown
元界metalite2 小时前
SpringBoot项目Maven-BOM统一版本就不会冲突吗
后端
蓝宝石Kaze2 小时前
Gin 框架快速上手
后端
TechLee2 小时前
跨语言加解密总对不上?这个纯 Go 神库让 AES/RSA 与 PHP、Java 100% 互通
java·后端·算法
用户594404103563 小时前
从零手写轻量级 RPC 框架:基于 Netty + Zookeeper 的核心实现
后端