Zemi续篇:HarukadGenerator 从 SDXL 到 V3 的开发记录
开发日志 / 技术复盘

HarukadGenerator V3 研发记录

这篇不是单纯的项目宣传页,而是 HarukadGenerator 在 2026 年春季到 V3 期间的研发过程记录。它重点说明我为什么放弃原路线、如何解决伪像素、如何重新理解提示词,以及为什么最后把工具重构为桌面应用。

类型 开发日志 / 技术复盘
状态 持续推进中
职责 AI 工作流、LoRA 训练、后处理、桌面端重构
时间 2026.04 - 2026.06
SDXLLoRAComfyUIKohya SSElectronVue 3PythonFastAPI

转向 SDXL#

上学期一直用 SD1.5,虽然能跑通基础训练流程,但提示词理解能力始终是瓶颈。模型能生成“像素风”图片,却很难稳定理解游戏资产需要的主体、方向、轮廓和可读性。

4 月份开始,我彻底放弃 SD1.5 主线,转向 SDXL。SDXL 的提示词理解能力明显更强,但它没有直接解决我最头疼的问题:伪像素

伪像素看起来像像素图,但实际上存在抗锯齿、模糊边缘、色阶过渡和插画式细节。这样的图放在网页上可能好看,放进游戏里就会非常不统一。

第一次 SDXL 实验

基于 pixeldiffusionXL,用最开始积累的 20 张左右训练集进行 LoRA 训练。结果证明 SDXL 路线更有潜力,但仅靠换模型不能解决资产可用性问题。

后处理:打不过就绕路#

我最开始的想法是“训练出一个完全理解像素画的 LoRA”。但多轮测试后发现,模型本身很难稳定输出真正干净的像素块。

于是我换了一个思路:不再要求模型一步到位,而是让模型负责生成高质量草稿,再用后处理把它拉回像素资产规范。

后处理流程
把伪像素输出转成更可用的像素资产
1
SDXL 生成
先获得主体清晰、构图可读的高分辨率候选图。
2
缩小采样
按目标尺寸缩小,把连续细节压回块状结构。
3
调色板量化
控制唯一色数量,减少不必要的过渡色。
4
像素评估
通过网格、边缘、色彩和噪点指标筛选结果。
SDXL 原始生成(示意) 图片暂时无法显示
后处理结果(待替换真实对比图) 图片暂时无法显示
SDXL 原始生成(示意) 后处理结果(待替换真实对比图)
素材占位说明

上方对比图目前仍使用同一张占位图。后续需要把真实的 before / after 图放进 /Images/ 后替换路径,这样这部分才会成为完整展示。

这个阶段的核心收获是:后处理不是补救,而是资产管线的一部分。AI 生成图如果要进入游戏,就必须经过“规格化”。

提示词工作流:从强约束到纯净提示词#

后处理路线确定后,我曾经构建过一套 200+ 正负提示词的强约束工作流。它在早期确实有帮助,因为低质量模型需要大量描述来限制结果。

但当训练集和 LoRA 质量提升后,情况反过来了。

有一次我把那些复杂提示词全部删掉,只保留更纯净的核心触发词,结果生成质量反而明显提升。这个现象一开始很反直觉,但后来想通了:高质量 LoRA 已经学到了目标风格,过多提示词反而会把模型拉回杂乱的通用图像分布。

问题
200+ 强约束提示词让早期输出更稳定,但在 LoRA 质量提升后开始制造噪声,导致杂色、不对称、伪细节和风格漂移。
方案
删除多余约束,改用更纯净的触发词,让 LoRA 自身承担风格和主体表达。
结果
输出质量出现明显跃迁,单一主体像素图的稳定性提高。
结论
提示词不是越多越强。模型能力变化后,原来的优化手段可能会变成污染源。

数据集扩充#

最初训练集只有 20 张左右,覆盖范围太窄。为了让模型理解更多游戏物品,我用强约束工作流生成大量候选图,再进行手动筛选。

训练集最终扩展到约 112 张,覆盖武器、药水、盔甲、道具、场景物件等类别。

筛选标准很严格:

  • 风格不一致的不要
  • 伪像素严重的不要
  • 主体轮廓不清楚的不要
  • 构图混乱的不要
  • 细节虽然好看但不适合作为游戏素材的不要
数据集经验

这个阶段让我更明确地意识到:10 张高质量、方向明确的数据,比 100 张杂乱图更有价值。训练数据本身就是设计的一部分。

方向控制:单 LoRA 失败之后#

游戏资产经常需要方向一致。比如同一个道具可能需要左向、右向、正面、背面。如果模型只能随机生成,就很难进入真正的游戏生产流程。

我最开始尝试把方向提示直接加入主体 LoRA 训练,但持续两周左右效果都不理想。模型能够理解“物品是什么”,却很难稳定理解“物品朝向应该如何变化”。

最后我改成多 LoRA 方案。

多 LoRA 方向方案

主体 LoRA
Asset LoRA

负责物品类型、像素风格、主体结构和整体质量。

方向 LoRA
Direction LoRA

专门训练方向概念,控制朝向而不承担主体生成。

权重策略
0.7-1.0 + 0.3-0.6

主体 LoRA 权重较高,方向 LoRA 权重较低,避免破坏主体质量。

推理组合
Multi-LoRA Inference

通过不同权重组合测试方向约束与画面稳定性的平衡点。

这个方案初步证明可行,也让我意识到:当一个模型概念过载时,与其继续往同一个 LoRA 里塞能力,不如拆分职责。

像素纯度评估#

只靠肉眼筛图效率太低,而且很难复盘为什么某张图“看起来不对”。于是我设计了 7 维度像素纯度评估体系。

维度检查内容
网格纯净度是否存在亚像素和缩放回弹问题
调色板经济性颜色数量是否过多
边缘硬度边缘是否足够块状、清晰
抖动模式是否存在合理的像素纹理
像素聚类色块是否形成稳定区域
离散像素是否存在孤立噪点
轮廓一致性外轮廓是否稳定可读

这些指标不一定能完全替代人眼,但可以帮我把“感觉不好”拆成具体问题。

V3:推倒 WebUI,重建桌面应用#

到 V3 时,我已经不满足于一个临时 webui。因为真正的工具需要处理本地文件、批量任务、模型路径、生成画廊、预设管理和后端进程生命周期。

所以我把项目重构成 Electron + Vue 3 + Python/FastAPI 的桌面应用。

V3 重建内容
桌面端架构确定
2026.05 完成

主进程、渲染进程、后端进程分离,Electron 负责生命周期和 IPC。

批量生成队列
2026.05 完成

支持暂停、恢复、逐图更新和任务状态反馈。

实时画廊
2026.05 完成

生成结果按物品与任务分组,支持缩放查看。

像素评估面板
2026.06 完成

把 7 维评分接入前端,用雷达图进行可视化。

主题与交互重做
2026.06 进行中

重建深色像素主题、缩放系统、标题栏和更适合长时间使用的 UI。

V3 的意义不只是 UI 更好看,而是项目从“研究脚本”变成“可以被人使用的工具”。

当前结论#

HarukadGenerator 到目前为止最重要的结论有三个。

  1. AI 生成必须配套后处理:否则结果很难稳定进入游戏资产管线。
  2. 提示词要随模型能力变化而变化:强约束在早期是拐杖,后期可能是噪声。
  3. 工具链比单次生成更重要:作品集里真正有价值的是稳定、可重复、可解释的生产流程。
目前状态

HarukadGenerator 已经从“能跑”进入“可维护、可扩展、可展示”的阶段。下一步要补的是更完整的真实案例、开源文档和面向他人使用的安装流程。

相关#

HarukadGenerator 项目介绍 面向作品集和招聘展示的项目介绍页。 /posts/pixelgene-intro/
Zemi 周记(第1〜13周) 早期研究记录,包含 SD1.5、GeneEvoDungeon 和最初的像素资产实验。 /posts/zemi/
项目一览 查看所有已整理的项目。 /projects
连接中...

...

...

加载歌词中...

00:00 00:00

播放列表

(0)