使用 /Users/kimi/Downloads/images/01-main-scene.png 作为唯一目标风格参考,将
/Users/kimi/work/gameStarterKit/apps/art/fairygui/assets/ 下支持转换的图片逐张转换为统一风格。
处理时优先转换像素尺寸小的图片。每张正式图片必须由一个独立 sub agent 使用 $imagegen
生成,父线程只负责分析、调度、验收、记录和 QA。
请使用 `$image-style-transfer` 和 `$imagegen` 完成 FairyGUI 图片素材的风格转换,并实际执行,
不要只给方案。
目标风格参考图:
`/Users/kimi/Downloads/images/01-main-scene.png`
待处理目录:
`/Users/kimi/work/gameStarterKit/apps/art/fairygui/assets/`
一、建立清单
1. 递归扫描待处理目录中的 PNG、JPG、JPEG、WebP 图片,重新统计实际数量,不依赖旧清单。
2. 在修改任何图片前记录:
- 绝对路径和相对路径
- 图片类型:角色、场景或图标
- 原始宽度、高度、像素面积、格式和透明通道
- 主体语义、用途、功能状态及配对关系
- 是否属于九宫格、进度条、按钮状态组、文字图、Logo 或 Spine atlas
3. 为每张图片分配唯一 item ID。存在同名文件时不得混淆,必须保留原始相对路径映射。
二、处理顺序
1. 使用 `宽度 × 高度` 的像素面积作为第一排序条件,面积越小越优先。
2. 像素面积相同时,最长边更短的图片优先。
3. 仍然相同时,按原始相对路径字典序排列。
4. 先完成当前批次的生成、验收、记录和 QA,再进入下一批,不得跳过待处理的小尺寸图片提前转换大图。
5. Spine atlas、文字图、Logo 及其他不受当前 skill 支持的素材单独进入特殊素材清单,不参与普通图片排序。
三、工作目录与安全要求
1. 不要直接覆盖 assets 中的原图。先建立符合 `$image-style-transfer` 要求的临时
`ref/source/target` 工作目录,并维护 `artstyle.md`、`artrule.md` 和 `list.md`。
2. 将目标参考图放入 `ref/`,把 assets 中的原图作为 semantic/feature source;source 不是风格参考。
3. 临时目录中的文件使用唯一 item ID 防止同名冲突,同时在清单中记录原始相对路径、文件名和格式。
4. PNG 和 JPG 等不同输出格式可以拆成独立 run,但最终必须恢复原始文件格式和相对路径。
5. 只有图片通过全部验收后,才能复制回对应的 assets 原路径。
6. 不修改 XML、字体、`.skel`、atlas 描述、`.desc`、package 文件或其他非图片资源。
四、目标风格
参考图是目标画法、配色、材质和细节密度的唯一权威。统一采用:
- 高品质写实奇幻城建游戏风格
- 深青黑色、低透明度 UI 底板
- 香槟金色细描边和精致金属装饰
- 冷蓝色、翠绿色宝石高光
- 羊皮纸色、象牙金色功能图标
- 克制的高光、阴影和立体层次
- 清晰、精致且在原始小尺寸下容易辨认的轮廓
禁止漂移到紫色仙侠风、卡通 Q 版、现代扁平化、厚重描边、霓虹光污染、廉价塑料质感或高饱和手游风。
五、sub agent 分工
1. 每一张正式 source 图片必须交给一个独立 sub agent。
2. 一个 sub agent 只能处理一张图片,不得批量处理多张。
3. 每批最多 5 张,并行数量不得超过当前可用 agent 槽位。
4. 父线程不得代替 sub agent 调用 `$imagegen` 生成、修图或补图。
5. sub agent 必须读取该 item 的 source、参考图、`artstyle.md`、`artrule.md` 和识别信息。
6. sub agent 必须使用 `$imagegen`,并在返回前自行检查语义、风格、透明背景和小尺寸可读性。
7. sub agent 只返回 `$imagegen` 生成结果的绝对路径和一句 QA 说明,不得编辑 list、manifest 或启动下一批。
8. 当前 item 不合格时,退回同一 item 重生;最多重试 3 次。
六、语义与功能约束
1. 图标必须保留原有符号、方向、功能、状态和小尺寸可识别性。
2. 按钮、页签、开关以及 enabled/disabled、selected/unselected 配对素材必须保持同一设计系统和明确的状态差异。
3. 场景必须保留主要空间结构、时间氛围、关键物件和用途。
4. 角色必须保留身份、服装类别、关键道具、动作和合理的持握、怀抱或背负关系。
5. 不得凭空添加文字、数字、Logo、水印、角色、道具或无关装饰。
6. source 只提供语义,不得照抄 source 的旧画法、线条、材质、装饰复杂度或渲染方式。
七、输出规格硬约束
1. 每张最终图片的像素宽度和高度必须与对应原图完全相同。
2. 文件格式、文件名、扩展名和相对目录必须保持不变。
3. 原图存在 Alpha 通道时,输出必须保留 Alpha 通道和透明背景。
4. 不得出现白底、黑底、透明边缘脏色、半透明光晕溢出、锯齿或裁切。
5. 主体方向、功能区域、安全边距和基本占比必须继续适配原 FairyGUI 布局。
6. 不允许通过非等比拉伸满足尺寸。必要时可使用确定性的高质量等比缩放和透明画布适配,但不得裁掉主体。
7. 九宫格和可拉伸底图必须检查边缘、圆角、描边及中心区域,确保拉伸后没有接缝或明显变形。
八、小尺寸图片专项要求
1. 必须在最终原始像素尺寸下目视检查,不能只看插值放大的预览图。
2. 保持原始轮廓、方向、功能语义、透明边界和安全边距。
3. 避免过密纹理、过细金线和缩小后粘连的装饰。
4. 可以先在较大画布生成,再通过确定性的高质量方式缩小到原尺寸。
5. 缩小后若主体模糊、轮廓粘连、状态不清或语义无法辨认,必须重新生成。
九、特殊素材
1. `Dynamic_Spine/**` 下的 atlas 贴图必须保持所有图块坐标、透明区域和 atlas 布局完全一致。
当前流程无法保证时,保留原图并在清单中标记 blocked,不得盲目替换。
2. 中文文字图和 Logo 必须保持文字内容、字形结构和可读性完全正确。无法保证时不得替换,标记 blocked。
3. UI 整页、字体、复杂 atlas 或其他超出 `$image-style-transfer` 支持范围的素材必须进入例外报告,不能伪造完成状态。
4. blocked 素材不能计入转换成功数量,也不能被不合格生成图覆盖。
十、父线程逐图验收
父线程必须同时打开 source、target、目标参考图和 QA 拼图进行目视检查,不能只依赖脚本或 sub agent 的 QA 说明。
逐图检查:
- 语义、用途和功能状态是否正确
- 是否符合参考图的共同视觉语言
- 最终宽高、格式、透明通道、文件名和路径是否与原图一致
- 是否存在模糊、锯齿、裁切、拉伸、脏边、错字或多余元素
- 配对素材的风格、尺寸、对齐和状态差异是否一致
- 九宫格及进度条素材是否仍可正常拉伸
- 是否泄漏 source 的旧风格
- 是否与本批或此前结果过度重复
十一、批次闭环
1. 每批生成 source/target 对照 QA 拼图和 ref/target 风格漂移检查图。
2. 当前批所有图片完成验收、清单回写和 QA 后,才能进入下一批。
3. 不合格图片最多重试 3 次;仍不合格时保留原图并标记 blocked。
4. 全部普通素材结束后,再汇总特殊素材和 blocked 原因,不得用跳过来冒充成功。
十二、回写与验证
1. 仅将验收通过的目标图复制回原始 assets 相对路径。
2. 回写后再次逐文件校验宽高、格式、Alpha、文件名和路径。
3. 运行:
- `npm run test:fgui`
- `npm run typecheck`
4. 测试失败时定位是否由本次图片替换导致;未解决前不得宣称完成。
最终汇报:
- 扫描图片总数
- 转换成功数量
- blocked 数量及逐项原因
- 未修改数量及原因
- 实际修改文件清单
- 每批 QA 拼图和风格漂移检查图路径
- 尺寸、格式、Alpha 校验结果
- `npm run test:fgui` 和 `npm run typecheck` 结果
优先保证资源可用性,其次才是风格变化。任何不能同时满足原尺寸、透明通道、功能语义和目标风格的结果, 都不得覆盖项目中的原始资源。