跳到正文

角色场景与制作资产管理

将剧本中的角色、场景和道具整理为一致的制作资产,记录视觉依据和后续使用要求。

开源精选视频内容27 个文件2,909 Stars浏览次数 0zenstory-ai/drama-skills MIT版本 f53fb20
开始使用

下载前阅读 SKILL.md 中的使用条件,并确认所用工具支持对应能力。

输入资料
确认后的故事或剧本 角色、场景和美术设定 阅读本节完整说明
交付内容
制作资产资料 角色场景说明与连续性依据 阅读本节完整说明
环境与依赖
只有安装、升级或排障时运行 python3 scripts/selftest.py。 阅读本节完整说明
  1. 获取完整包,保留配套文件的目录结构。
  2. 按照原文准备所需工具、依赖与输入资料。
  3. 阅读对应使用步骤与输入输出说明,在自己的环境中验证结果。

使用提示摘自原文,配套文件保留来源版本;实际运行条件以各包说明为准。

正文

获取原文件

references/character-and-look.md

目录

  1. 分工
  2. Character:最小稳定识别集
  3. Look:一次相容的外观组合
  4. 可选声音方向:身份锚点不等于本场 delivery
  5. 制作形态与身份锚点的可表达性
  6. 合成例:顾禾
  7. 角色 设定集 的实用检查

分工

  • Character 回答“这个人持续是谁、怎样被再次认出”。
  • Look 回答“这个人在一个明确时段以怎样的完整外观出现”。

把两者拆开,是为了换装、受伤、湿污和年龄变化时仍能复用人物身份,同时让图片提示 词与分镜精确选择一个相容造型。

画面代称要覆盖每一种正文语言

画面代称 是下游覆盖检查唯一用来匹配的字符串:冻结关键帧、图片提示词、视频提示词里出现了这个词, 才算「这一镜点了这个资产的名」。匹配是逐字的,不做翻译。

问题在于三份正文的语言不一定相同:图片提示词与冻结关键帧跟 format/prompt_language, 视频提示词优先跟已接受的 video_prompt_language。而校验器只按后者的解析结果决定要不要强制 「代称不能等于名字」——于是一个 zh + en 混配的项目很容易写成只有英文代称, 然后中文正文里这个资产永远匹配不上。

这种失败是静默的:匹配不上不会报错,只会让覆盖检查对这条资产整个不生效, 看起来一路绿灯。所以:

  • 一个资产的 画面代称 要把它在各份正文里实际会出现的写法都列上(中文名与英文代称并列), 不是二选一;
  • 正文里确实不该靠名字识别时才写 画面代称:无,那是明确的弃权,不是省事。

Character:最小稳定识别集

从剧本与 creator reference 中选择足以区别此人的持久锚点:

  • 叙事身份与关系(用于消歧,不是外观替代品);
  • 稳定的面部/头部比例、体态轮廓、永久特征;
  • 基础发质/发际等稳定部分;具体梳法可属于 Look;
  • 永久性饰物仅在确实不随 Look 变化时作为 anchor;
  • 表演/声音的持续事实可写入 设定集,供后续提示词或 casting 参考,但不伪装成可见外观。

锚点要有区分度且能被观察。“漂亮年轻女性”“霸总气质”“电影感”都不足以认人。 也不要过度指定剧本没有要求的肤色、年龄、五官或身体特征;以 creator_decision_needed 暴露空缺。

锚点集合里至少有一条在侧面成立、一条在背面成立。很多镜头只给到侧身、背影或 远景,只在正脸可读的特征(眉眼间距、瞳色、唇形)不能是唯一识别通道;轮廓与重心、 发型剪影与发际形状、肩背线、固定配饰的外形都可以承担这两个方向。写法示例: ["方额窄下颌", "后颈发际收成尖角", "右肩比左肩低约两指、起步时先出右肩"]——第一条正面 成立,第二条背面成立,第三条侧面与背影都成立。

同时写出全组可比较的尺度次序:谁高于谁、差多少量级,并给一个绝对参照点。示例: 「甲最高,乙比甲矮约一个头,丙比乙再矮半头;甲站直时头顶与门框上沿齐平」。这条次序由 Character 拥有,换鞋、加厚外套、盘发都不改写它(那些属于 Look)。剧本没有给出身高 关系时,以 creator_decision_needed 暴露,由创作者定,不由角色表模板的默认体型补齐。

人物关系帮助理解谁控制空间、谁观察谁、谁会保护或攻击谁,但不自动决定美丑、肤色、 体型或面部善恶感。主角不因“主角”字段自动变漂亮,反派也不因“反派”字段自动变丑。 需要视觉层级时,从创作者已接受的社会位置、职业使用痕迹、轮廓区别、服装职责、姿态和 调度中取证;审美理想化、夸张或反类型都是创作者选择,不能由关系标签偷偷补完。

reviewed_invariant AST-04: 临时淤青、制服、雨水、当天妆容不得成为 Character 持久锚点,否则同一人恢复后会被误判成另一身份。

Look:一次相容的外观组合

一个 Look 只容纳能同时存在的组合:

  • 服装层次与鞋履;
  • 发型整理、妆容、伪装;
  • 伤势、包扎、污渍、湿度、天气化;
  • 与身体绑定的可见配件;手持道具仍绑定 Prop,不吞进 Look;
  • cause、valid_from、valid_until 和 source refs。

写 Look 时先引用 Character identity,再只写相对 base/前一 Look 的差异。不要复制整段 脸部描述形成第二份权威。

可选声音方向:身份锚点不等于本场 delivery

AST-07 · reviewed_invariant:项目需要跨集保持声音时,可在 Character 记录 voice_direction:语言/方言范围、 创作者授权的参考音频绑定、用于选型与验收的判据、已接受的专名发音。紧张、淋雨、受伤、 耳语、某句重音和临时音量属于场景/台词 delivery,不要固化成声音身份;变声、年龄跨度或 伪装若跨段持续,则记录有来源和有效范围的变体。

音色的载体是参考音频,不是一段文字描述。没有参考时保持 reference: null 并标「待选型」, 不要用形容词冒充音色身份。参考绑定要写清这次借用它的什么、哪些内容不能跟着来 (那条参考里的情绪、录音空间、背景内容永远不进身份),以及证据到了哪一步—— 详见 声音方向。声音方向直接写在对应人物的 视觉设定.md 条目中,不另建 配音表或第二份权威。

文本引用只能保证角色、台词、声音方向与引用关系没有被改写,不能保证任何真实合成结果、 口型或音色复现。引用使用 视觉设定.md 内的可见 ID,不把网址、外部任务字段或服务参数写进设定; 参考音频本身留在 输入/,不复制进 视觉设定.md,也不进公开交付。

资产阶段不生成音频,也不调用任何语音、合成或克隆服务。 记录先落进文件、由创作者 确认;实际 TTS 交给 $short-drama-produce,并须对它展示的本次任务预览明确确认。

什么时候值得新 Look

craft_default AST-03: 满足任一条件时提议:跨多个 block/scene 持续;会重复使用; 需要独立角色参考图;改变观众识别/剧情信息;下游必须精确绑定。瞬时表情、姿势、 视线和手位由 shot/continuity 处理,通常不新建 Look。

造型不能互相污染

  • “工作服”和“庆典礼服”如果时空不重叠,就不能在同一 Look 中同时出现;
  • 包扎在 source block 后才生效,前面镜头不能提前绑定;
  • 外套脱下后仍是同一 Character,但应切换 Look 或记录可追踪的 layer delta;
  • 若雨水只造成短暂局部湿痕,可用 delta;若跨集保持并需视觉复现,再升为 Look。

制作形态与身份锚点的可表达性

写最小稳定识别集之前,先读 视觉设定.md 的“项目视觉方向”和已明确的制作形态;尚未决定且会 实质影响识别通道时,向创作者给出选择,不从对话记忆补造。

原因很直接:形态决定观众靠什么通道认人,因而决定哪些锚点在这个项目里根本可被表达。

主要识别通道 值得写的锚点 写了也看不见的锚点
面部结构 面部比例、眉眼鼻唇相对关系、下颌与颧骨体积 只有大远景才成立的体量差
剪影与线条 轮廓与肩背重心、发型剪影与发际形状、固定配饰外形、服装廓形、步态负重 细微的五官不对称、浅色小痣、依赖真实皮肤纹理的痕迹
材质与表面 皮肤/毛发/布料的可比较表面状态、长期使用痕迹 需要柔和过渡才能读出的体积差

写实细节与身份连续性

craft_default:写实项目可以在稳定识别特征之外,补充皮肤纹理、自然不对称或使用痕迹。 远景中不易读出的细节,不宜单独承担跨镜识别。

痣、疤和牙齿形态等如果是人物既定特征,仍须保持;不能因它们难生成就允许随镜变化。 毛孔、细纹等微观纹理不必逐像素一致。是否需要这些细节由画面尺度与已接受风格决定。

taste_option:偶像化、漫画或其他风格可采用更平滑的表面,不以写实程度判错。

边界:形态选通道,身份定事实

  • reviewed_invariant:形态可以改变锚点的表达通道与颗粒度,不得改写身份事实本身。 不能因为“不好画”把五十岁写成二十五岁、把厚重体格写成修长,也不能为了轮廓好看新增 疤痕、异色瞳或不存在的配饰。
  • 已确认身份在当前形态下找不到可靠表达通道时,标为“需创作者决定”:由创作者决定 换形态还是改身份,资产环节不静默调整。
  • Look 层同理:形态决定服装层次、材质响应能表达到多细,不决定 Look 由哪些单品组成,也不 决定 cause、valid_from、valid_until。
  • 形态同样不改写地理、持物归属、可读文字政策与故事状态;这四项分别属于 Location/View、 Prop/State、text policy 与 write/develop owner。

模板槽位不得覆盖身份锚点

reviewed_invariant:模板槽位不得覆盖已确认的身份锚点;当模板默认值与当前身份冲突时, 身份优先,模板让位。

合成例:角色甲的锚点是五十岁上下、体格厚重、肩背略沉。若角色表模板对每一条记录 机械填入“九头身黄金比例、极度修长的双腿”,角色甲的身份就在没有任何创作者决定的情况下被 改写;而且因为每个角色都带同一句,下游会把它读成风格统一,不会当成冲突。角色乙即使确实 修长,也应由自己的当前视觉设定写出,不由模板默认值代写。

排查方式:把同一批角色记录并排看,找出逐字重复且与该角色无关的描述句;不能追溯到某条 当前视觉设定的,删除或改写成该角色的真实锚点,并在预览里说明改动。

合成例:顾禾

Character CHAR-GUHE 的当前锚点:窄长脸、左眉尾短缺口、自然卷黑发、肩背略前倾。 这些锚点不会因本集换装改变。

  • LOOK-GUHE-WORK:灰绿工作夹克、深色长裤、头发低束;渡站值班期有效。
  • LOOK-GUHE-RAIN:在工作装外加橙色旧雨衣,兜帽放下;从 SC004 出门前穿上, 到 SC006 脱下。
  • SC005 右肩湿痕:若只维持几镜,作为 delta 指向 LOOK-GUHE-RAIN,不是 CHAR-GUHE-WET。

反例:“橙色雨衣女人,湿头发,脸上有伤”被直接写成 Character identity。这样雨衣 脱下、头发变干、伤口愈合时,人物就失去所有所谓“身份锚点”。

角色 设定集 的实用检查

  • 去掉本集服装和伤污后,这个人还能与其他角色区分吗?
  • 每个 Look 是否只引用一个 Character,并且内部状态能同时成立?
  • 造型变化是否有 source/cause/validity,而不是凭审美换装?
  • 相同显示名是否误合并,不同称谓是否误拆分?
  • 手持物是否仍由 Prop/State 拥有,未被埋进角色描述?
  • creator 是否接受了新增身份锚点,而不是系统替其补完?

群演可以按制作需要使用 group Character;一旦某个个体有台词、关键交接或跨镜连续, 应提议独立身份。此颗粒度是 taste_option,但选择要能满足故事追踪。

CONTACT HAONAN

联系haonan

医疗 AI · 产品与独立开发

刘浩南

关注医疗 AI 从 demo 到真实落地,聚焦产品化、商业化与院内工作流效率提升。

12年医疗产研经验,大湾区头部医疗AI公司前产品总监,独立开发者

医疗 AI 产品化医疗 AI 商业化院内工作流效率
刘浩南的微信联系二维码
微信扫一扫,联系 haonan