前言¶
在生成式 AI 的应用场景里,让角色在无数个场景中保持一致的视觉形象一直是个难点。传统做法是在每次调用生图 API 时重复写一遍角色描述,很容易写漏、写错,导致角色特征在场景切换时发生微妙变化。数字人形象养成工作室(Agent Identity Studio)通过将「角色身份」和「场景描述」分层,解决了这个问题。
是什么¶
这是 SkillHub 上的一个 Agent Skill,兼容任何支持 Skill 加载的 Agent 框架(如 OpenClaw、WorkBuddy)。它的核心是让 AI Agent 在生成图片时,身份层固定不变,场景层只负责地点、穿搭、光影、构图等变化,从而保证角色特征在无限场景中始终保持一致。
核心功能¶
身份初始化¶
在 Agent 中发起角色创建请求,例如:
帮我创建一个数字人形象:银色短发、琥珀色眼睛、活泼开朗的少女
Skill 会自动完成:
- 读取角色描述
- 生成 3 张验证照
- 等待确认锁定身份
确认后,角色身份被固化在 YAML 文件中,后续所有场景都基于此身份生成。
场景写真生成¶
身份确认后,只需一句话即可生成场景照:
帮我拍一张雨中撑伞的场景照,要有电影感
Skill 会根据场景描述设计 Scene Card,将身份层和场景层拼接成完整的 Prompt,调用生图 API 返回图片。
角色一致性保障¶
身份层(Character Sheet)包含五官、发色、瞳色、发饰、身材、气质等固定特征。场景层(Scene Card)只负责地点、穿搭、光影、表情、构图等变化,不会修改身份层的内容。这样无论换什么场景、穿搭、光影,角色特征永远保持一致。
审核自动处理¶
MiniMax 的内容审核对身体描述比较敏感。Skill 内置了一套安全话术体系:
- 展现身材曲线:
form-fitting dress that hugs her curves(安全) - 好看的腿:
showing shapely legs(安全) - 领口设计:
V-neck dress with elegant draping(安全)
原则是「描述衣服怎么穿,不描述身体长什么样」。被拦截后自动降级 Prompt 重试,最多 2 次。
Cosplay 模式¶
在 Cosplay 场景下,可以换装不换人。角色特征(发色、瞳色等)保持不变,只切换穿搭和场景。
身材分级系统¶
根据构图类型,自动选择对应级别的身材描述:
- 特写/头像:不加身材描述(画面只有脸)
- 半身照:基础体型 + 衣服勾勒
- 全身照:完整体型 + 腿部 + 姿态
- 宽松衣服:自动追加补偿词
系统根据 Scene Card 的 composition 字段自动选择对应级别。
参考图双策略¶
根据构图类型,选择不同的参考图来锁定不同特征:
- 半身 / 特写:使用正面参考图,锁定面部特征
- 全身:使用 3/4 侧面参考图,锁定身体比例
参考图可选不强制。对于原生画风角色,纯 Prompt 的一致性反而更好。参考图更适合「非原生」角色(如用户上传自己画的角色)的锚定。
支持两种传参方式:
- 本地 data:URI(
data:image/png;base64,...)— 不依赖外部 URL - 公开 URL — 适合已部署到 CDN 的参考图
⚠️ 注意:MiniMax 的 image_base64 字段完全不可用,必须通过 image_file 字段传递(URL 或 data:URI 均可)。
安装与启用¶
第一步:安装技能¶
将 agent-identity-studio/ 文件夹放到你的 Agent 平台的 Skills 目录下即可。
不同平台的路径示例:
# WorkBuddy / CodeBuddy
~/.workbuddy/skills/agent-identity-studio/
# OpenClaw
~/.claw/skills/agent-identity-studio/
# 其他平台:参考对应文档的 Skill 安装目录
安装成功后,Agent 会自动识别 agent-identity-studio 技能。
第二步:获取 API Key(二选一即可)¶
方式 A:MiniMax(默认引擎)¶
- 前往 MiniMax开放平台 注册
- 创建应用,获取 API Key
- 设为环境变量:
MINIMAX_API_KEY
方式 B:腾讯混元生图 3.0(via 腾讯云 SDK)¶
- 前往 腾讯云控制台 开通混元生图服务
- 在 API密钥管理 获取 SecretId + SecretKey
- 设为环境变量:
TENCENT_SECRET_ID+TENCENT_SECRET_KEY - 安装 SDK:
pip install tencentcloud-sdk-python-aiart - 切换引擎:
IDENTITY_STUDIO_ENGINE=hunyuan
# Windows PowerShell — 以 MiniMax 为例
[Environment]::SetEnvironmentVariable('MINIMAX_API_KEY', '你的key', 'User')
# 如果用混元
[Environment]::SetEnvironmentVariable('TENCENT_SECRET_ID', '你的SecretId', 'User')
[Environment]::SetEnvironmentVariable('TENCENT_SECRET_KEY', '你的SecretKey', 'User')
[Environment]::SetEnvironmentVariable('IDENTITY_STUDIO_ENGINE', 'hunyuan', 'User')
pip install tencentcloud-sdk-python-aiart
引擎对比¶
| 引擎 | 模型 | 单张成本 | 速度 | 参考图 | 外部依赖 |
|---|---|---|---|---|---|
| MiniMax | image-01 | ~¥0.025 | 15-30s | 1张(data:URI / URL) | 无 |
| 腾讯混元 | HY-Image-V3.0 | ~¥0.20 | 4-7s | 最多3张 | tencentcloud-sdk-python-aiart |
典型用法¶
| 你说的话 | Skill 做什么 |
|---|---|
| 「创建一个角色:红色长发、绿眼睛的魔法少女」 | 初始化 Character Sheet → 生成3张验证照 |
| 「帮我拍一张咖啡馆的照片」 | 设计 Scene Card → 拼装 Prompt → 调用 API → 返回图片 |
| 「来一组周末居家写真集,4张」 | 批量生成多场景 Session |
| 「头发颜色再深一点」 | 修改 Character Sheet → 重新验证 |
| 「Cosplay成樱岛麻衣」 | 换装不换人模式 |
适用场景与注意¶
适合需要让角色在多个场景中保持一致视觉形象的 Agent 应用,如虚拟偶像、故事生成、互动小说等。
注意:
- 角色身份确认(形象初始化)后才能进行场景拍摄
- 全身照避免使用
tall/model-like/slender等描述 - 确认
character-sheet.yaml已创建且meta.confirmed=true - 新终端需重启才能读到环境变量
官方地址¶
- 官方地址:https://api.skillhub.cn/user_d763f1a5/agent-identity-skill
- GitHub:https://github.com/amayazhao/agent-identity-studio
- 在线 Demo:https://amayazhao.github.io/nami-gallery/skill.html