# Lock Character Reference

> **基准角色形象图还没跑出来、或反复跑不稳定**时调用——连一张能当参考的固定形象图都还没定下来。角色数 ≥3、或要换机位/景别/动作保持同一个人时也调用。 **分界**：基准图尚未确立 → 本 skill；基准图已稳、只是批量出图里某几张人物跑偏 → shot-breakdown。 本地 Qwen-Image-Edit 只能在同一张底图改衣服/风格，换机位换景别即失效，角色数应压到 1-2 个。 不适用：形象已锁定只问单镜提示词（emotion-to-camera-language）、云端平台有原生一致性时。 Trigger: 角色形象没定下来 / 参考图跑不稳 / 换个角度就变脸 / lock character

- Skill: `l-trunks/lock-character-reference` (Agent Skill, multi-file: 3 files)
- Install (CLI): `npx skillmds@latest add l-trunks/lock-character-reference`
- Raw SKILL.md: https://api.skillmd.com/api/skills/l-trunks/lock-character-reference/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: L-Trunks (https://skillmd.com/u/l-trunks)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/l-trunks/lock-character-reference

---


# 角色形象先锁定

## R — 核心命题 (Reading)

**核心角色的固定形象图必须先跑出来，没有它后面每一步都白做。**

正确顺序是：文生图先锁死一张形象参考 → 再拿它去图生视频。跳过第一步直接批量出图，得到的是一批长得都差不多但没有一个是「同一个人」的图，剪在一起观众立刻出戏。

这条约束不随工具变化 —— 换模型只改变「怎么锁」，不改变「必须先锁」。

> 方法论来源见仓库根目录 [ATTRIBUTION.md](../../ATTRIBUTION.md)。

---

## I — 方法论骨架 (Interpretation)

在任何镜头正式生产之前，第一道硬性工序是：把每个出场角色的固定形象参考图先跑出来。这张图不是"参考一下"，而是后续所有镜头生成时角色外观的唯一基准——形象图不稳定或跑不出来，整个项目在这一步就应该停下来，不该带着一个不确定的角色形象往下做分镜。

这条规则在云端平台（S1/S2 的环境）执行起来相对轻松，因为画布式平台自带跨镜角色一致性能力，形象图定下来之后，无论换机位、换景别、换动作，角色都能大体保持同一个人。

本地条件完全不同：唯一能用的一致性工具是 Qwen-Image-Edit，它只能在**同一张底图**上做局部编辑——换衣服、换画风可以，但换机位、换景别、换动作会让它失效，因为这些操作本质上要求模型"想象"这个人从另一个角度/在做另一件事时长什么样，而 Qwen-Image-Edit 不具备这个能力，只会输出崩坏的形象。

这个限制反推出一个来源没有明说的结论：本地条件下，一部短片能稳定支撑的角色数量应该压到 1-2 个。角色越多，需要跨机位/跨景别复用形象的次数越多，一致性崩坏的概率就越高——这也是 S2《深夜抓捕醉酒小猫实录》多角色多机位设计始终没能投产的三个根因之一。

---

## A1 — 来源中的应用 (Past Application)

### 案例 1: S1《后山野花》——角色形象图先锁死→矩阵化生图→镜头拆解筛选，含实际弃用

- **问题**: 先跑出核心角色固定形象图，再结合导演简报和脚本做矩阵化生图（16 宫格），从一批结果里筛选符合脚本意图的画面
- **方法论的使用**: 筛选中发现模型问题——主角人物形象不对、村长人物形象也不对，只有小孩的形象是对的；这些场景被判定"都不在范畴里面"，直接弃用，不将就使用
- **结论**: 角色形象是全片一致性的地基，形象不对的素材即使构图/剧情合适也不能用；发现问题后接受较大代价的调整，比硬凑更可行
- **结果**: 因为形象图问题，原定的结局场景后来被整个换掉；最终成片仍完成并入围 LipTV 首届赛事——证明"形象不锁死宁可弃用、必要时改故事"这条路径是可行的

---

## A2 — 触发场景 (Future Trigger) ★

### 用户会在什么情境下需要这个 skill?

1. 准备开始做分镜/生产，但还没有为核心角色单独跑出一张固定形象图
2. 已经跑出角色形象图，但反复抽卡都不稳定（每次长相有细微差异）
3. 计划的短片里有 3 个及以上出场角色，想知道能不能全部保证一致
4. 想让某个已锁定形象的角色换一个机位、景别，或做一个新动作，发现生成结果"变了个人"

### 语言信号

- "角色形象图还没定 / 主角长什么样还没锁"
- "为什么换个机位/角度，这猫（人）看着不像同一只（个）了"
- "这个片子要几个角色，会不会顾不过来"
- "character consistency / reference image / same character across shots"

### 与相邻 skill 的区分（定稿）

- 与 `emotion-to-camera-language` 的区别：那个 skill **依赖**本 skill——它假设角色形象已经锁定，管的是单镜内部怎么用机位/光位/景深/人物状态写提示词；本 skill 管的是"能不能先稳定拿到这个角色"这个前置工序，没锁死之前不该进入 `emotion-to-camera-language`
- 与 `material-driven-storyboard` 的区别：那个 skill 管动作/镜头这一层的素材是否可行（有没有对应驱动视频）；本 skill 管角色外观这一层是否可行（形象图能不能锁死）。二者是**两条独立的可行性检查线**，没有严格的先后顺序——项目起步时既可能先有故事去反推素材（`material-driven-storyboard` 先行），也可能先锁定了一个心仪的角色形象再去检查动作素材（本 skill 先行）；但两者都必须在正式批量生成（`shot-breakdown`）之前完成，且常常交替往返：锁完角色发现某个动作没素材，退回改角色设定或改故事，如此反复
- 与 `shot-breakdown`（镜头拆解）的区别：那个 skill 管生成一批图之后怎么筛选/修正景别机位；本 skill 是镜头拆解的**前置条件**——形象图没锁死，矩阵化生图筛出来的结果连"是不是同一个人"都判断不了

---

## E — 可执行步骤 (Execution)

1. **确认角色数量，超过 2 个先做精简建议**
   - 数出剧本里需要保持跨镜一致的核心角色数量
   - 若 ≥3 个，向用户说明本地限制（Qwen-Image-Edit 仅能同底图编辑，角色越多一致性崩坏概率越高），建议合并/删减到 1-2 个主角，次要角色可接受较低的一致性要求或只出现在单一机位
   - 完成标准：得到一份不超过 2 个"必须跨镜一致"的核心角色清单

2. **为每个核心角色跑出固定形象参考图**
   - 用文生图（z-image 等）为每个角色单独生成形象图，明确外观细节（发型、服装、体型/花色特征）
   - 完成标准：形象图清晰、无明显肢体/五官崩坏，且用户确认"就是这个角色"

3. **判停条件：形象图反复跑不稳定**
   - 若同一角色连续多次抽卡后，五官/花色/体型仍有明显漂移，视为项目卡点
   - 判停：不要带着不确定的形象图继续往下做分镜；先换模型/checkpoint 重试，或收窄描述细节，直到拿到一张稳定的形象图再继续
   - 完成标准：拿到用户确认"稳定可复用"的最终形象图，才能进入下一步

4. **把形象图设为后续所有镜头的参考图输入，且只做同底图编辑**
   - 后续图生图/换装/写实化等工序，一律以该形象图为参考底图，只允许改动服装、风格等局部属性
   - 完成标准：写清楚"本片角色参考图 = 某张图"，作为共享前提写入分镜表

5. **校验每一镜是否要求超出同底图编辑范围**
   - 逐镜检查是否要求换机位、换景别、换动作
   - 若是，明确告知用户这已超出本地一致性能力边界，需要接受该镜角色一致性下降，或转 `material-driven-storyboard` 思路换一种可行的实现方式（如换驱动视频、改用静态图）
   - 完成标准：分镜表里每一镜都明确标注"同底图编辑可行"或"已知一致性风险，用户已知情"

---

## B — 边界 (Boundary) ★

### 不要在以下情况使用此 skill

- 用户在云端画布平台（即梦/可灵等）上创作，该平台原生具备角色一致性能力——此时不必如此保守地限制角色数量或编辑范围，可按 S1/S2 原有流程走
- 讨论的是非叙事类出图（产品图、UI、示意图），没有"跨镜同一角色"这个需求
- 角色形象已经稳定锁定，用户只是在问某一镜的机位/光位/人物状态怎么写——转 `emotion-to-camera-language`

### 来源中警告的失败模式

- **形象图没锁死就往下做**：S1 明确警告"不然你后面是完全没办法做的"——没有稳定形象图，后续所有镜头的生成和筛选都失去了判断基准
- **形象跑偏还硬用**：S1 案例中主角、村长形象不对仍被生成出来，若不弃用会导致全片角色前后不一致；正确做法是弃用并接受改故事的代价
- **跨机位/跨景别硬套同一致性方法**：S3 边界明确指出 Qwen-Image-Edit 只能同底图改，换机位/景别会崩，这不是"多试几次"能解决的概率问题，而是能力边界问题

### 作者的盲点 / 局限

- S1/S2 的角色一致性经验建立在画布平台/云端模型自带能力之上，本地条件明显更弱，二者**没有真正提供"本地条件下怎么保持一致性"的解法**，只提供了"要不要先锁形象"这个前置顺序
- "角色数量应压到 1-2 个"是本次蒸馏基于 Qwen-Image-Edit 能力边界的推导结论，**来源中没有任何一处明确提出这个数字**，属于外推而非实测验证；若本地未来接入更强的角色一致性工具（如原生 IP-Adapter 级别能力），这条数字上限需要重新评估
- S1 案例的"改结局"解法依赖故事本身有留白/隐喻式收尾的弹性（莲花意象），并非所有故事都能承受"角色形象崩了就换结局"这种代价较大的调整

### 容易混淆的邻近方法论

- 与"抽卡-筛选-拼接"不是一回事——那是针对任意镜头生成结果的通用验收策略；本 skill 专门针对**形象图这一张图**的验收，且失败后果更严重（形象图崩，后面全崩，不是单镜可用不可用的问题）
- 与"矩阵化生图→镜头拆解"（S1 方法）不是同一层：镜头拆解假设角色形象已经稳定，只处理景别/机位筛选；本 skill 是镜头拆解能够成立的前提

---

## 相关 skills

- depends-on: 无（本 skill 是全流程最前置的可行性检查之一，不依赖其他 skill）
- contrasts-with: 无
- composes-with: `material-driven-storyboard`（角色外观可行性 vs 动作/素材可行性，两条独立检查线常在项目早期交替确认，无强制先后顺序，但都要在 `shot-breakdown` 批量生成前完成）

---

## 审计信息

- **验证通过**: V1 ✓（S1、S2 两个独立来源都把它列为前置必做项） / V2 ✓（可推导"多角色片怎么办"——本地条件下角色数量应压到 1-2 个，因 Qwen-Image-Edit 只能同底图改，角色越多越容易崩，来源没讲这个推论） / V3 ✓（不是常识——常识会说"保持一致"，但"必须先跑出固定形象图，跑不出就别往下做"是硬性工序判断）
- **测试通过率**: 待阶段 4
- **蒸馏时间**: 2026-08-01

