HarukadGenerator
HarukadGenerator 是我围绕毕业研究开发的 AI 辅助像素游戏资产生成系统。它面向独立游戏开发者,目标是把角色、怪物、道具、场景图块等资产从“难以持续生产的美术瓶颈”变成一条可批量生成、可评估、可后处理、可导出的工具链。
HarukadGenerator 的全称可以理解为 HARUKA-D2333 Pixel Art Game Asset Generator。它不是一个单纯调用生图模型的壳,而是一套围绕游戏资产生产流程重新设计的工具。
我做这个项目的原因很实际:在做 GeneEvoDungeon 这类独立游戏原型时,代码可以自己写,机制可以自己试,但像素资产会迅速变成瓶颈。角色、怪物、道具、场景图块需要风格统一,还要能被游戏引擎直接使用。只靠临时外包或手动画,很难支撑长期迭代。
让没有稳定美术产能的独立开发者,也能快速得到“可用、统一、可继续加工”的像素游戏资产。这个项目的重点不是取代美术,而是降低从创意到可运行原型之间的资产门槛。
解决的问题
独立游戏开发中的美术资产并不是“画几张图”这么简单。真正困难的是持续、统一、可控。
系统架构
HarukadGenerator 采用三进程分离架构。这样做的核心原因是:AI 推理、桌面 UI 和本地文件系统操作的稳定性要求完全不同,混在一起会让项目很难维护。
三进程架构
负责窗口管理、原生文件系统访问、IPC 通信中枢、托盘与生命周期控制。
负责界面、配置管理、批量任务队列、画布预览、缩放与生成结果管理。
负责 SDXL 推理、LoRA 加载、后处理管线、ComfyUI API 桥接与图像分析。
通过可切换 checkpoint 与 LoRA 组合控制资产类型、像素风格和方向。
用 7 维度像素纯度评分替代纯主观判断,辅助筛选可用资产。
内置游戏道具预设,生成结果按任务和物品分组管理。
这个架构的好处是:后端推理崩溃不会直接拖垮 UI,渲染进程也不需要理解模型细节;主进程像一个调度者,负责把桌面应用和 AI 后端粘合起来。
关键功能
1. 批量生成与预设系统
系统内置约 200 种游戏像素道具预设,覆盖药水、武器、盔甲、配饰、食物、资源、工具、钥匙、魔法、宝藏和自然物件等类别。
这些预设不是简单模板,而是为了批量生产游戏资产而设计的输入起点。每个预设都应该能被进一步调整,用于快速生成同风格的候选图。
2. 后处理管线
SDXL 生成像素图时常见的问题是“看起来像像素,但不是像素”。边缘有抗锯齿,颜色有过渡,局部细节像插画。
我的处理方式是承认模型输出不完美,然后在后处理中把它转成更接近像素资产的形式。
- 将高分辨率生成图缩小到目标像素尺寸
- 进行色块采样和调色板量化
- 控制唯一色数量和边缘硬度
- 输出可用于进一步编辑的块状像素图
与其要求模型一次生成完美像素,不如把 AI 输出看作高质量草稿,再通过后处理把它拉回游戏资产规范。
3. 多 LoRA 方向控制
游戏资产不只需要“生成一把剑”,还可能需要正面、侧面、背面、左向、右向等方向一致的版本。单一 LoRA 同时承担主体风格和方向理解时,容易互相干扰。
因此我采用了多 LoRA 叠加方案。
- 主体 LoRA:控制物品类型和像素风格
- 方向 LoRA:控制朝向概念
- 权重组合:主体权重较高,方向权重较低,避免方向约束破坏主体质量
这个方案不是一开始就有的,而是在直接训练方向失败之后逐渐摸出来的。
4. 7 维像素纯度评估
为了避免每张图都只靠肉眼判断,我设计了像素纯度评分体系。
| 维度 | 目标 |
|---|---|
| 网格纯净度 | 检查是否存在不符合像素网格的细碎噪声 |
| 调色板经济性 | 检查颜色数量是否过多 |
| 边缘硬度 | 判断边缘是否足够块状 |
| 抖动模式 | 识别像素画常见的局部纹理 |
| 像素聚类 | 判断色块是否形成稳定结构 |
| 离散像素 | 检测孤立噪点 |
| 轮廓一致性 | 判断外轮廓是否稳定可读 |
前端用雷达图展示这些维度,让图像筛选不再完全依赖“我觉得好不好看”。
研发路线
从 GeneEvoDungeon 的资产需求出发,开始尝试 AI 生成像素游戏素材。
配置训练环境、制作早期数据集,验证 LoRA 路线可行,但伪像素问题明显。
放弃 SD1.5 主线,改用 SDXL 与 pixeldiffusionXL 等模型路线。
通过缩小与色块采样,把伪像素输出转为更稳定的像素图。
从强约束提示词转向更纯净的触发词,并将训练集扩充到 112 张。
通过主体 LoRA + 方向 LoRA 的组合,初步解决方向控制问题。
重构为 Electron + Vue 3 + Python/FastAPI 的三进程桌面工具。
我从这个项目展示什么能力
HarukadGenerator 对作品集来说最重要的不是“用了 AI”,而是它能展示我如何处理一个跨领域问题。
- 我能把游戏开发中的实际痛点转化为工具需求
- 我能理解并调试 AI 生成工作流,而不是只调用现成接口
- 我能搭建桌面端、前端、后端、推理环境之间的完整链路
- 我能用评估指标和批量流程让结果变得可重复
- 我能在失败路线中不断调整方案,而不是卡在单一技术选择上
这个项目还在制作中,部分展示图、批量测试样本、真实使用案例和开源化文档还需要继续补齐。当前版本更适合作为毕业研究与技术作品集的核心项目介绍。