441 lines
18 KiB
Markdown
441 lines
18 KiB
Markdown
---
|
||
name: anime-style-forge
|
||
display-name-zh: 二次元风格锻造
|
||
description: |
|
||
专注二次元/动漫/角色风格化的图片生成与转换。覆盖日系、国漫、韩系、欧美等多画风体系,
|
||
通过溯源分析定位参考图的画风基因,用 10 维拆解→3 维坍缩精准锁定风格灵魂,
|
||
匹配最优工具与 prompt 写法进行生成。
|
||
Trigger on: "动漫化", "二次元风格", "改成国漫风", "赛璐璐", "吉卜力风格",
|
||
"韩系水彩", "玄幻3D", "Q版", "日漫风", "画风转换", "漫画风格", "立绘",
|
||
"anime style", "manga style", "webtoon style", "ghibli style",
|
||
或任何涉及将内容转为特定二次元/动漫画风的请求。
|
||
Key distinction: 用户要求生成或转换为某种二次元/动漫画风。
|
||
Do NOT trigger for: 写实摄影风格、纯 logo 设计、通用图片编辑(裁剪/去背景等)。
|
||
summary-cn: 上传参考图,复刻画风生成新图
|
||
summary-en: Forge anime characters in target styles
|
||
version: 0.2.3
|
||
tags: [Creative, Image, Anime, Style-Transfer, Character, Manga, Donghua, Manhwa]
|
||
tags-cn: [创意, 图片, 动漫, 风格迁移, 角色, 漫画, 国漫, 韩漫]
|
||
exported-by: MiniMax-hub
|
||
---
|
||
|
||
# Anime Style Forge — 二次元风格锻造
|
||
|
||
用户描述一个角色/场景 + 指定画风 → 生成对应风格的图片。
|
||
或上传一张图 + 指定画风 → 转换为目标风格。
|
||
|
||
## 核心理念
|
||
|
||
- **画风溯源驱动**:先判断参考图/目标风格属于哪个画风谱系(时代、流派、制作方式),再匹配工具和 prompt 写法
|
||
- **10 维→3 维坍缩**:内部 10 维分析二次元画风特征,坍缩为用户可感知的 画风 / 角色 / 调性 3 维
|
||
- **风格档案库**:每种画风沉淀完整的视觉基因(prompt 模板 + 负向词 + 参数预设 + 踩坑提醒),不靠模型"猜"
|
||
- **操作极轻**:一句话 + 一张图(可选)→ 直接出图,先出结果再迭代
|
||
|
||
## 约定
|
||
|
||
- 中间产物存储在 `./.anime-style-forge/{session_name}/`
|
||
- **单图输出**:每次生成只输出 1 张完整图片。Prompt 中严禁出现 "grid"、"collage"、"2x2"、"4-panel"
|
||
- **四宫格裁剪**:部分引擎输出 2×2 四宫格而非单图,生成后**必须**自动裁剪为单图(见 Phase 3 单图提取流程),用户只看到最终单图
|
||
- **⚠️ 信息屏蔽规则**:
|
||
- **禁止向用户暴露具体模型/引擎名称**(如底层使用的任何生图模型名、版本号、公司名)。对用户使用能力描述替代(如"最适合该风格的引擎"、"擅长 3D 渲染的引擎"、"擅长日系动漫的引擎"等)
|
||
- **禁止向用户暴露 agent 底层工作流**(如 `read_media`、`image agent`、`editing agent` 等内部调用细节)。对用户只展示结果和创作意图
|
||
- 内部路由表(`model-knowledge-base.md`、速查表等)仅供 agent 决策参考,**不向用户展示**
|
||
- **参考图策略(按引擎能力区分)**:
|
||
- **编辑型引擎**:风格微调/局部编辑专用 → **必须传参考图**,prompt 用编辑指令式
|
||
- **人脸锁定型引擎**:传原图锁住面部特征
|
||
- **文生图引擎**:→ **不传参考图**,纯文字 prompt 重建内容
|
||
- 参考图始终先分析提取角色特征,但只有编辑型/锁定型引擎在生成调用时传入
|
||
- 所有风格档案见 `references/style-bank.md`
|
||
- 画风视觉指纹见 `references/style-fingerprints.md`
|
||
- 模型能力与选择指南见 `references/model-knowledge-base.md`(内部参考,不向用户展示)
|
||
|
||
---
|
||
|
||
## Pipeline
|
||
|
||
```
|
||
Phase 0 → Phase 1 → Phase 2 → Phase 3 → Phase 4 → Phase 5
|
||
输入 画风定位 快选 出图 迭代 输出
|
||
```
|
||
|
||
---
|
||
|
||
## Phase 0: 输入
|
||
|
||
**三种输入模式**:
|
||
|
||
| 模式 | 输入 | 示例 |
|
||
|------|------|------|
|
||
| **纯文字生成** | 角色/场景描述 + 目标画风 | "画一个国漫玄幻风格的男角色,黑袍持剑" |
|
||
| **风格转换** | 参考图 + 目标画风 | [上传照片] "改成吉卜力风格" |
|
||
| **画风识别** | 参考图(无指定风格) | [上传图] "这是什么画风?帮我出同风格的" |
|
||
|
||
文件结构:
|
||
```
|
||
.anime-style-forge/{session_name}/
|
||
├── analysis.json # Phase 1 分析结果
|
||
├── generation_log.md # 生成记录
|
||
└── outputs/ # 生成图片 v1_01.png …
|
||
```
|
||
|
||
---
|
||
|
||
## Phase 1: 画风定位
|
||
|
||
### 分支判断
|
||
|
||
- **用户已指定画风**(如"国漫3D")→ 直接跳到 1c 风格匹配
|
||
- **用户上传参考图但未指定**(如"这种风格")→ 执行 1a + 1b 分析
|
||
- **用户说"动漫化"但没说哪种**→ 执行 1a 分析后推荐
|
||
|
||
### 1a. 画风溯源
|
||
|
||
分析参考图的画风来源,对照 `references/style-fingerprints.md`。
|
||
|
||
**分析要点**(内部执行,不向用户展示调用细节):
|
||
- 逐一比对 style-fingerprints.md 中的视觉指纹
|
||
- 重点分析:线条处理方式、上色技法、人物比例、面部画法、色彩体系
|
||
- 输出字段:style_family / style_id / confidence / clues / era_feel / production / alt_style
|
||
|
||
### 1b. 10 维画风分析
|
||
|
||
**分析维度**(内部执行):
|
||
1. 线条(Linework):粗细、清洁度、可见度、描边风格
|
||
2. 上色(Coloring):赛璐璃/渐变/水彩/厚涂/平涂
|
||
3. 人物比例(Proportions):头身比、写实度、Q版程度
|
||
4. 面部画法(Face):眼睛大小/画法、鼻子处理、嘴巴风格
|
||
5. 色彩体系(Palette):饱和度、色温、主色调、配色逻辑
|
||
6. 光影处理(Shading):二分阴影/柔和渐变/无阴影/戏剧性
|
||
7. 背景风格(Background):写实/简化/纯色/氛围化
|
||
8. 年代感(Era):哪个年代的画风特征
|
||
9. 媒介质感(Medium):数码/传统/3D/混合
|
||
10. 文化圈(Origin):日系/国风/韩系/欧美/混合
|
||
```
|
||
|
||
### 1c. 坍缩为 画风 / 角色 / 调性
|
||
|
||
| 维度 | 对应底层 | 含义 |
|
||
|------|---------|------|
|
||
| **画风** | 线条 + 上色 + 媒介 + 年代 | 用什么技法画的 |
|
||
| **角色** | 人物比例 + 面部画法 + 光影 | 人物长什么样 |
|
||
| **调性** | 色彩 + 背景 + 文化圈 | 整体什么感觉 |
|
||
|
||
取子维度 score 加权平均,确定画风的**灵魂轴**(最有辨识度的 1-2 个维度)。
|
||
|
||
### 1d. 风格匹配
|
||
|
||
将分析结果与 `references/style-bank.md` 中的风格档案匹配。
|
||
|
||
**匹配优先级**:
|
||
1. style_id 精确匹配
|
||
2. style_family + era_feel + production 组合匹配
|
||
3. 10 维特征向量最近邻匹配
|
||
4. 无法匹配 → 列出 Top 3 相近风格供用户选择
|
||
|
||
### 1e. 写入 analysis.json
|
||
|
||
```json
|
||
{
|
||
"origin": { "style_family": "...", "style_id": "...", "confidence": 0.85, "clues": [...] },
|
||
"dimensions": { "linework": {...}, "coloring": {...}, ... },
|
||
"collapsed": { "style_axis": 0.9, "character_axis": 0.7, "tone_axis": 0.8 },
|
||
"soul": { "primary": "画风", "summary": "90年代赛璐璐动画,硬朗线条+二分阴影是灵魂" }
|
||
}
|
||
```
|
||
|
||
---
|
||
|
||
## Phase 2: 快选
|
||
|
||
### 展示画风定位结果(必须执行)
|
||
|
||
向用户展示定位结果时,**不暴露模型名称和内部路由**:
|
||
|
||
```
|
||
🎨 画风定位
|
||
风格:[style_name]([style_id])
|
||
家族:[style_family] · [era_feel] · [production]
|
||
置信度:[confidence]
|
||
判断依据:[top 3 clues]
|
||
灵魂轴:[soul_summary]
|
||
|
||
🛠️ 推荐方案
|
||
Prompt 策略:[针对该风格的关键词方向]
|
||
预期效果:[该风格的视觉特点描述]
|
||
```
|
||
|
||
### 任务类型维度决策(⚠️ 必须先于画风路由执行)
|
||
|
||
> 风格路由表只解决"用什么画风出图",但有些任务的核心瓶颈不是风格,而是**一致性 / 指令遵循 / 输出格式**。这三个维度会覆盖风格路由的优先级。先走此框架,再查风格路由表。
|
||
|
||
#### 决策三问(按顺序)
|
||
|
||
**Q1:这张图需要参考上一张(或其他已生成图)吗?**
|
||
- 是 → 必须选 `max_refs ≥ 1` 的引擎,**排除 Niji 7 / MJ V7**(它们 max_refs=0,无法接受参考图)
|
||
- 否 → 继续 Q2
|
||
|
||
**Q2:这个任务的输出会被下一步复用为参考图吗?**
|
||
- 是 → 必须单图输出,**排除 Niji 7 / MJ V7**(它们固定输出四宫格,裁剪后才能传)
|
||
- 否 → 继续 Q3
|
||
|
||
**Q3:一致性 vs 风格极致,哪个是第一优先级?**
|
||
- 一致性优先 → **nano_banana 首选**(指令遵循强 + max_refs=10 + 单图输出)
|
||
- 风格优先 → 进入下方画风路由表
|
||
|
||
#### 任务类型 → 引擎约束速查
|
||
|
||
| 任务类型 | 核心需求 | 引擎约束 | 推荐 |
|
||
|---------|---------|---------|------|
|
||
| **分镜/多帧连续**(同角色/同场景 N≥2 张) | 跨图一致性 + 构图可锁定 | max_refs ≥ 1,单图输出 | **nano_banana** |
|
||
| **构图固定只改变量**(光影/季节/时间) | 构图锁定(传上一帧作 ref) | max_refs ≥ 1 | **nano_banana** |
|
||
| **表情差分**(同角色多表情) | 角色一致性(面部锁定) | max_refs ≥ 1 | **nano_banana** |
|
||
| **三视图 / 多角度立绘**(同角色) | 角色一致性 | max_refs ≥ 1 | **nano_banana** |
|
||
| **单张独立图**(立绘/头像/场景) | 风格准确度 | 无约束 | → 画风路由表 |
|
||
| **风格转换**(参考图→目标风格) | 参考图传递 + 重建 | max_refs ≥ 1,文生图路径 | 目标风格首选引擎 |
|
||
|
||
#### nano_banana 在分镜/多帧任务中的优势
|
||
|
||
- `max_refs = 10`:每一帧都可以把前一帧作为参考图传入,逐帧锚定人物外貌和场景构图
|
||
- 单图输出:不存在四宫格裁剪问题,输出即可直接传入下一帧
|
||
- 指令遵循强:「构图不变,只改光线方向」「同一角色,只换表情」等硬约束执行率高
|
||
- 中英文均支持:场景细节描述灵活
|
||
|
||
> ⚠️ **常见错配**:看到"分镜"任务 → 直接查画风路由表 → 选 Niji 7 / MJ V7 → 多帧角色漂移 + 无法传参考图。**必须先过决策三问。**
|
||
|
||
### 画风→引擎路由(⚠️ 内部使用,不向用户展示)
|
||
|
||
> 完整速查表见 `references/model-knowledge-base.md` →「画风→模型推荐速查表」节。按画风 id 查首选/备选引擎,再用上方「任务类型维度决策三问」覆盖校验。
|
||
|
||
**降级规则**:首选模型不可用时使用备选,**保持原风格的 prompt 写法不变**。
|
||
|
||
### 生成路径选择(必须询问)
|
||
|
||
根据任务类型选择路径(向用户描述路径时不提及具体引擎名称):
|
||
|
||
- **文生图重建(风格转换首选 ⭐)**:分析原图提取所有特征,然后用目标风格的最优引擎纯文字重新生成。画质和风格深度最高。**跨风格转换必须走此路径。**
|
||
- **局部编辑(仅限细微修改)**:传入原图 + 编辑指令。仅适用于改发色/改服装颜色/加配饰等**不改变整体风格**的局部修改。
|
||
- **人脸锁定**:传入原图锁住面部特征 + 风格 prompt,人物最像但风格转化程度不确定
|
||
- **多引擎对比**:同一内容用 2-3 个引擎各出一张,对比挑选最佳
|
||
|
||
### 内容方向确认
|
||
|
||
- 用户已描述内容 → 直接进入 Phase 3
|
||
- 用户只给了风格没给内容 → 问"你想画什么?"
|
||
- 用户只给了参考图说"同风格" → 问"保留原图内容还是换新内容?"
|
||
|
||
**快捷指令**:
|
||
- `换风格`:保留内容,只切换画风
|
||
- `出立绘`:全身/半身角色立绘
|
||
- `出头像`:方形头像构图
|
||
- `多风格`:同一内容出 N 种画风对比
|
||
- `多模型`:同一风格用多个模型各出一张对比
|
||
|
||
### 风格转换路径选择(⚠️ 内部决策,不向用户展示)
|
||
|
||
先问用户一个问题:"更在意**人物像**还是**风格到位**?"
|
||
|
||
| 用户优先级 | 路径 |
|
||
|-----------|------|
|
||
| 要像原图的人 | 人脸锁定型引擎 + 目标风格 prompt;或文生图引擎 + 精细角色描述 |
|
||
| 要画风到位 | 文生图路径(不传参考图);查 KB 速查表选首选引擎 |
|
||
| 两者都要 | 两条路径各出一张,让用户对比挑选 |
|
||
|
||
---
|
||
|
||
## Phase 3: 出图
|
||
|
||
### Prompt 构建
|
||
|
||
从 `references/style-bank.md` 加载匹配风格的完整档案,按以下结构组装:
|
||
|
||
```
|
||
最终 Prompt = [风格锚点词] + [角色/场景描述] + [画风细化词] + [画质增强词]
|
||
负向 Prompt = [风格专属负向词] + [通用负向词]
|
||
```
|
||
|
||
**各风格轴对 Prompt 的影响**:
|
||
|
||
| 灵魂轴 | Prompt 侧重 |
|
||
|--------|------------|
|
||
| 画风 | 线条描述、上色技法、媒介关键词、年代风格标签 |
|
||
| 角色 | 头身比、面部特征、服装细节、姿势动作 |
|
||
| 调性 | 色彩关键词、光影描述、氛围形容词、背景处理 |
|
||
|
||
### 角色描述规范
|
||
|
||
二次元角色描述需包含(按重要性排序):
|
||
|
||
1. **性别/种族/年龄段**:少女/少年/成年/幼儿
|
||
2. **发型发色**:具体描述(如"黑色长直发,刘海遮住右眼")
|
||
3. **眼睛**:颜色、大小、特殊特征
|
||
4. **服装**:具体描述材质和款式(如"白色丝绸汉服,金色刺绣")
|
||
5. **姿势/动作**:静态姿势或动态动作
|
||
6. **表情**:情绪状态
|
||
7. **配件/道具**:武器、饰品、宠物等
|
||
|
||
### 尺寸规则
|
||
|
||
询问用户或根据用途自动选择:
|
||
|
||
| 用途 | 推荐尺寸 |
|
||
|------|---------|
|
||
| 头像 | 1:1 |
|
||
| 立绘/角色卡 | 2:3 或 3:4(竖版)|
|
||
| 场景/横版 | 16:9 |
|
||
| 手机壁纸 | 9:16 |
|
||
| 条漫/Webtoon | 9:16(窄长)|
|
||
|
||
若有参考图,默认跟随原图比例(用 ffprobe 测量后映射,**禁止猜测**)。
|
||
|
||
### 生成执行
|
||
|
||
**按引擎分别执行**,查阅 `references/model-knowledge-base.md` 获取引擎专属 prompt 写法。
|
||
|
||
#### 四宫格单图提取流程
|
||
|
||
Midjourney(Niji 7 / V7)固定输出 2×2 四宫格(4 张变体拼在一张图中),**不是单图**。**每次调用 MJ 生图后必须立即执行以下裁剪步骤,不得跳过**:
|
||
|
||
1. 生成完成后,用 `read_media` 分析四宫格,评估 4 个面板(左上/右上/左下/右下)的质量
|
||
2. 选出最佳面板(编号 1=左上, 2=右上, 3=左下, 4=右下)
|
||
3. **立即用 bash ffmpeg 命令裁剪**(以下四选一,`INPUT` 替换为实际路径,`OUTPUT` 替换为目标路径):
|
||
```bash
|
||
# 面板1 左上
|
||
ffmpeg -i INPUT -vf "crop=iw/2:ih/2:0:0" OUTPUT
|
||
# 面板2 右上
|
||
ffmpeg -i INPUT -vf "crop=iw/2:ih/2:iw/2:0" OUTPUT
|
||
# 面板3 左下
|
||
ffmpeg -i INPUT -vf "crop=iw/2:ih/2:0:ih/2" OUTPUT
|
||
# 面板4 右下
|
||
ffmpeg -i INPUT -vf "crop=iw/2:ih/2:iw/2:ih/2" OUTPUT
|
||
```
|
||
4. 裁剪后的单图才是最终输出,四宫格原图**不得**作为交付物展示给用户
|
||
|
||
⚠️ **此流程不可跳过,且必须用 bash ffmpeg 实际执行裁剪**。仅描述"选了哪张"而不裁剪等同于未执行。向用户展示的必须是裁剪后的单图路径,不是四宫格路径。
|
||
|
||
#### 各引擎 Prompt 语言与参考图传递(⚠️ 内部参考,不向用户展示)
|
||
|
||
> 详见 `references/model-knowledge-base.md`,此处仅为快速索引。
|
||
> 向用户解释时只说"我会用最适合这个风格的方式生成",不提具体引擎名。
|
||
|
||
输出保存到 `.anime-style-forge/{session_name}/outputs/v{版本}_{序号}.png`。
|
||
|
||
同步更新 `generation_log.md`:
|
||
```markdown
|
||
## v1 — 2026-04-27
|
||
- 风格:jp_cel(日系赛璃璃)
|
||
- Prompt:[完整 prompt]
|
||
- 负向:[完整负向词]
|
||
- 结果:v1_01 ~ v1_04
|
||
```
|
||
|
||
---
|
||
|
||
## Phase 4: 迭代
|
||
|
||
展示结果后询问满意度:
|
||
|
||
| 选项 | 动作 |
|
||
|------|------|
|
||
| ✅ 满意 | → Phase 5 输出 |
|
||
| 🔧 微调 | 在 prompt 层调整,不回 Phase 1 |
|
||
| 🔄 换风格 | 切换到另一个 style_id,保留内容描述 |
|
||
| 🎨 混搭 | "这张的线条 + 那张的配色" → 组合维度重新生成 |
|
||
|
||
**微调映射表**:
|
||
|
||
| 用户反馈 | Prompt 动作 |
|
||
|---------|-----------|
|
||
| "线条再粗一点" | 增强 `bold outlines, thick lineart` |
|
||
| "颜色太鲜了" | 降饱和,加 `muted`, `desaturated` |
|
||
| "眼睛画得不对" | 细化眼睛描述,加 `detailed {style} eyes` |
|
||
| "不够二次元" | 增强风格锚点词权重,加 `anime, 2D` |
|
||
| "太二次元了/想半写实" | 减弱风格词,加 `semi-realistic` |
|
||
| "背景太复杂" | 加 `simple background, solid color bg` |
|
||
| "动作不自然" | 重新描述姿势,加 `natural pose` |
|
||
| "像AI画的" | 加 `hand-drawn feel`,去 `highly detailed` 等过度修饰词 |
|
||
| "想要某某番/游戏的感觉" | 切换到对应作品的风格档案 |
|
||
|
||
---
|
||
|
||
## Phase 5: 输出
|
||
|
||
交付清单:
|
||
|
||
```
|
||
📦 交付
|
||
画风:[style_name]
|
||
灵魂轴:[soul_summary]
|
||
生成数量:[N] 张([M] 轮迭代)
|
||
文件位置:.anime-style-forge/{session_name}/outputs/
|
||
使用 Prompt:[完整 prompt,方便复用]
|
||
```
|
||
|
||
**可选操作**:
|
||
|
||
- **风格入库**:将本次成功的风格参数存入 `.anime-style-forge/style-library/{风格名}.md`,供未来复用
|
||
- **多风格对比**:同一内容用 2-3 种画风各出一组,生成对比展示页
|
||
- **继续变体**:基于最满意的一张继续出变体
|
||
|
||
---
|
||
|
||
## 文件结构
|
||
|
||
```
|
||
anime-style-forge/
|
||
├── SKILL.md # 本文件
|
||
├── references/
|
||
│ ├── style-bank.md # 风格档案库(核心)
|
||
│ ├── style-fingerprints.md # 画风视觉指纹(溯源用)
|
||
│ ├── model-knowledge-base.md # 生图模型能力矩阵与选择指南
|
||
│ ├── benchmark-notes.md # Benchmark 实测经验与已知弱项
|
||
│ └── analysis-example.md # 分析示例
|
||
└── assets/
|
||
└── template.html # 结果展示网页模板
|
||
```
|
||
|
||
## 使用示例
|
||
|
||
**示例 1:指定风格生成**
|
||
```
|
||
用户:画一个国漫玄幻3D风格的角色,黑袍持剑站在云海上
|
||
|
||
→ Phase 1: 直接匹配 cn_xuan3d
|
||
→ Phase 2: 展示风格档案 + 确认
|
||
→ Phase 3: 组装 prompt(Unreal Engine + 中式玄幻元素 + 角色描述)
|
||
→ Phase 4: 出图,用户对结果微调
|
||
→ Phase 5: 交付 + prompt 留存
|
||
```
|
||
|
||
**示例 2:风格转换**
|
||
```
|
||
用户:[上传真人照片] 帮我动漫化
|
||
|
||
→ Phase 1: 默认 jp_cel,分析原图面部/服装/背景
|
||
→ Phase 2: "推荐赛璐璃风格,也可以选吉卜力/韩系水彩"
|
||
→ Phase 3: 文生图,prompt 重建原图内容 + 赛璐璃风格词
|
||
→ 输出
|
||
```
|
||
|
||
**示例 3:画风识别 + 同款**
|
||
```
|
||
用户:[上传一张韩漫截图] 这是什么风格?帮我出一个同风格的角色
|
||
|
||
→ Phase 1: 溯源分析 → kr_webtoon,灵魂轴=画风(干净勾线+明快平涂)
|
||
→ Phase 2: 展示分析 + 问角色描述
|
||
→ Phase 3: 用 kr_webtoon 模板生成
|
||
→ 输出
|
||
```
|
||
|
||
**示例 4:多风格对比**
|
||
```
|
||
用户:同一个角色帮我出吉卜力、国漫3D、韩系水彩三种风格
|
||
|
||
→ Phase 1: 并行加载 jp_ghibli / cn_xuan3d / kr_watercolor
|
||
→ Phase 3: 三种风格各出2张 = 6张
|
||
→ Phase 5: 生成对比展示页
|
||
```
|
||
|
||
|
||
|
||
> 📋 Benchmark 实测经验见 `references/benchmark-notes.md`
|