我如何让个人 IP 进入文章配图:从角色资产到一致性生成

最近我把一个橙色卫衣、圆框眼镜的 3D 男孩形象,做成了可以进入文章叙事的个人 IP。

它不是每次生图时随机出现的“头像”,也不是把原照片统一套一层滤镜,而是让同一个角色在不同文章里承担不同的动作:他可以操作内容加工机器、面对一团被放大的焦虑,也可以把一次经历交给 AI 复盘,最后沉淀成一个 Skill。

这件事真正难的地方,不是“能不能生成一张好看的图”,而是三个问题:

  1. AI 能不能持续认出“这是同一个人”;
  2. 角色能不能服务文章的核心观点,而不是只站在画面里摆姿势;
  3. 服装、标识和画面风格能不能稳定保留。

这篇文章记录我是怎么把这三个问题拆开解决的。

核心结论

个人 IP 自动配图的核心,不是把一张照片直接交给 AI 修图,而是把“角色身份”和“文章场景”分离:参考图负责回答“他是谁”,文章负责回答“他此刻在做什么”。

一、先区分三种完全不同的图片角色

最开始我也把这三件事混在了一起,结果生成出来的图很难看。后来才发现,提示词里必须明确每张图片的角色。

1. 身份参考图:回答“他是谁”

我最终采用的身份参考,是一张已经验证过效果的成功样片:

  • 棕色、蓬松的卷发;
  • 大的圆框棕色眼镜;
  • 温暖的 3D 卡通比例;
  • 橙色卫衣;
  • 胸前有深色几何徽记;
  • 整体是柔和、干净、偏编辑插画的质感。

这张图的作用是锁定角色身份和渲染语言。它不负责告诉 AI 下一张图里应该出现什么机器、什么文件夹或什么场景。

2. 场景请求:回答“他在做什么”

文章内容决定场景。

比如文章在复盘去司法局阅卷时的焦虑,我没有要求 AI “把原图改成焦虑风格”,而是把文章拆成几个认知锚点:

  • 未知的信息会被想象成巨大的威胁;
  • “顺利/不顺利”的标签,不等于事实本身;
  • 想象中的复杂流程,可能只是一个简单的文件整理过程;
  • 录音、AI 深度复盘和 Skill,可以形成一个持续反馈的闭环。

每个锚点对应一张图,每张图只表达一个清晰关系。

3. 编辑目标:回答“只改已有图的哪一处”

后来我又提出了一个具体要求:衣服上必须有“苏苏”。这时就不能重新生成一张全新的场景,而应该把已经满意的图片作为编辑目标,并明确告诉模型:

只在橙色卫衣胸前徽记下方加入“苏苏”,其他内容保持不变。

这三个角色一旦混淆,模型就会把身份参考图里的内容机器、姿势或构图也一起复制,或者为了追求新场景把人物的发型、眼镜和衣服改掉。

二、这次实际采用的工作流

整个流程可以压缩成一条管线:

flowchart LR
  A[身份参考图] --> B[固定角色不变量]
  B --> C[读取文章并提取认知锚点]
  C --> D[为每个锚点设计一个场景]
  D --> E[逐张生成 16:9 插图]
  E --> F[视觉检查角色与构图]
  F --> G[局部编辑加入“苏苏”]
  G --> H[保存最终版本并保留旧版本]

第一步:先把角色当作资产,而不是一句形容词

如果每次只写“一个可爱的男孩”,模型会自由发挥。要获得相对稳定的角色,至少要把下面几类信息固定下来:

维度本次固定内容
脸部识别棕色蓬松卷发、圆框棕色眼镜、温和的少年感
服装橙色卫衣、深色几何胸前徽记
署名标识徽记下方加入清晰的“苏苏”
画面语言温暖 3D、干净白底、柔和阴影、编辑插画质感
输出比例16:9 横向,适合文章正文

其中,“苏苏”不是一次性的文字要求,而是角色资产的一部分。只要角色出现在画面里,它就应该成为一个可检查的不变量。

第二步:为文章制作认知锚点,而不是复述文章段落

文章里有很多句子,但不可能把所有句子都画出来。比较有效的做法,是问自己:

如果读者只看这一张图,他应该立刻理解哪一个关系?

这次的四张图分别对应:

  1. 未知 → 被大脑放大成威胁:男孩拉着一根红线,线的另一端连接着写有“未知”的文件夹,后面投射出巨大的怪物影子。
  2. 标签 → 事实:男孩分别举起“顺利”和“不顺利”的圆牌,中间的文件夹只写“事实”,表达先把标签与事实分开。
  3. 担忧 → 整理:左侧是一团纠缠的红线,右侧则是归档好的文件夹和证据材料,表达现实流程往往比想象简单。
  4. 录音 → AI 复盘 → Skill:同一个男孩沿着一条连续路径出现三次,把口述经历交给 AI 分析,再沉淀成“焦虑应对”的能力卡片。

这种拆法有一个好处:画面不会变成文章截图,也不会堆满解释性文字;角色的动作本身就是观点。

第三步:给模型明确标注参考图的用途

生成阶段,我会在提示词里直接写清楚:

Attached image role: identity and rendering reference only.
Use it to preserve the same character identity:
tousled chestnut-brown hair, large round brown glasses,
orange sweatshirt, dark geometric chest emblem.
Do not copy the reference image's props, text, or composition.

这句话非常重要。它告诉模型:参考图只负责“角色是谁”,不是要求它复刻参考图里的内容机器或动作。

然后再补充场景变量,例如:

Scene: the same character is separating a neutral fact folder
from two emotional labels, “顺利” and “不顺利”.
Keep one clear visual relationship and generous white space.

这样,角色约束和文章内容约束就分开了。

三、为什么第一次生成会失败

我第一次尝试时犯了两个错误。

错误一:把身份参考图当成了待编辑原图

我把原先的浴室自拍图直接当成编辑目标,要求模型保留自拍语义,再套用另一套“小黑”线稿风格。结果是人物既没有保持原来的 3D 质感,也没有真正进入文章叙事,只得到了一张风格混杂的图。

后来我把任务改成:

  • 旧照片只提供身份线索;
  • 成功样片负责提供角色和渲染参考;
  • 每一张文章配图重新设计场景。

画面质量马上稳定了很多。

错误二:调用了错误的角色资产

在文章配图流程里,系统当时解析到的角色包是“灰色外套、工装短裤”的另一版形象,而我真正想要的是橙色卫衣、圆框眼镜的男孩。

这说明“角色已经注册”并不等于“当前角色就是我脑中想的那个角色”。执行前还需要核对:

  1. 当前角色清单指向谁;
  2. 角色参考图是不是用户认可的那一张;
  3. 服装和标识是否已经写进角色不变量;
  4. 如果注册资产和用户指定样片冲突,应该以用户最新确认的样片为准。

这次我没有覆盖旧版本,而是把正确形象重新生成到独立目录,方便比较和回退。

四、衣服上的“苏苏”为什么要单独做一轮编辑

直接要求模型在复杂场景里生成大量准确文字,成功率并不稳定。尤其当画面里已经有“录音”“AI复盘”“焦虑应对”“认知”“情绪”等文字时,再要求它同时准确生成服装标识,容易造成文字互相污染。

所以我采用了两阶段策略:

阶段一:先把角色和文章场景画对

先只关注:

  • 人物是否是同一个人;
  • 文章认知锚点是否表达清楚;
  • 构图是否适合正文;
  • 场景中已有的文字是否足够少。

阶段二:把“苏苏”作为局部编辑

编辑提示词只允许一项变化:

The attached image is the edit target.
Make exactly one visual change: add the exact Chinese characters “苏苏”
below the existing chest emblem on the orange sweatshirt.
Preserve the face, hair, glasses, pose, props, background, lighting,
composition, and all existing labels.

第四张图里有三个同一角色的出现,所以还要额外写明:每一个可见的角色都必须带同样的“苏苏”标识。否则模型很可能只给其中一个角色加字。

最终带署名的四张图保存在:

.punk-ip-assets/illustrations/judicial-review-anxiety-orange-ip-susu/

每张图都是 1672×941 的 PNG。原来的无字版本和旧的灰色外套版本都保留,没有直接覆盖。

五、实现中各个工具分别负责什么

这套流程不是一个 Skill 包办所有事情,而是几个层次协作:

层次负责的问题本次作用
个人 IP 配图 Skill如何管理角色、拆文章、列认知锚点组织“角色资产 → 文章场景”的工作流
imagegen如何生成或编辑位图逐张生成插图,并对服装标识做局部编辑
角色参考图角色长什么样锁定发型、眼镜、卫衣和整体质感
Obsidian 文章需要表达什么提供焦虑复盘的事实、认知和行动结构
人工检查结果是否真的符合预期检查角色漂移、文字错误、构图和尺寸

这也解释了为什么“文章配图 Skill”不是简单的修图工具。它更像一个内容编排层:先理解文章,再决定人物应该在画面里做什么,最后才把任务交给图像模型。

六、如果要把它做成真正可复用的 Skill

这次已经跑通了单篇文章,但要让它长期稳定使用,还需要把经验固化成四类文件:

character.json                 # 角色不变量与版本信息
character-reference-clean.png  # 干净的身份参考图
article-workflow.md            # 文章拆解与 shot list 规则
illustration-style.md          # 画面比例、材质、留白和风格规则

每次调用时,Skill 可以按下面的顺序工作:

  1. 读取当前确认的角色版本;
  2. 检查角色参考图和服装标识;
  3. 阅读文章,提取 3—6 个认知锚点;
  4. 判断文章适合“核心动作图”还是“流程拆解图”;
  5. 为每个锚点生成一条独立 prompt;
  6. 使用同一角色参考逐张生成;
  7. 自动检查尺寸、文件数量和文件命名;
  8. 对需要准确文字的地方单独做局部编辑;
  9. 保留原图、生成图和最终修订版,避免不可逆覆盖。

真正稳定的关键,是把“角色不变量”和“每篇文章的场景变量”写成两个不同的数据结构。角色不变量不能随着文章变化,场景变量则必须随着文章变化。

七、这套方法的边界

它并不能保证模型百分之百复制同一张脸,也不能保证一次生成就得到准确的中文文字。更现实的目标是:

  • 让角色的关键识别特征保持稳定;
  • 让服装和署名成为可检查的固定符号;
  • 让每张图只承担一个认知任务;
  • 让错误可以通过局部编辑修正,而不是整套推倒重来。

如果画面里需要大段正文、表格或复杂流程,最好把图像模型负责的内容限制在“人物、道具和关系”,文字排版交给 Markdown、HTML 或后期设计工具。图像模型适合制造视觉关系,不适合承担整篇文章的排版工作。

相关概念

结语:不是让 AI 记住我,而是让系统知道什么不能变

这次实践让我觉得,个人 IP 配图的核心并不是“让 AI 记住苏苏长什么样”,而是把“苏苏是谁”拆成一组可验证的约束:棕色卷发、圆框眼镜、橙色卫衣、胸前徽记,以及徽记下方的“苏苏”。

文章再提供另一组变量:这一次要表达未知、事实、现实流程,还是复盘闭环。

当这两组变量被分开之后,角色就不再是贴在文章外面的装饰,而是可以真正参与文章思考的叙事角色。