--- 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`