Repository navigation
Musubi 引擎支持 Ideogram 4 LoRA 训练 #424
Copy link
Copy link
Open
Labels
P1High priority issue that affects user experience but is not an immediate release blockerHigh priority issue that affects user experience but is not an immediate release blockerenhancementNew feature or requestNew feature or requeststatus:todoNot yet implemented; ready for triage or workNot yet implemented; ready for triage or work
Description
目标
让 Musubi 引擎支持 Ideogram 4 的 LoRA 训练,并在训练页提供对应模型入口(任务队列、日志、预览、缓存等沿用现有能力)。
对应路线图 docs/roadmap.md 3.2.0:「常规模型支持更新,包括评估通过 Musubi 接入 Ideogram-4;须独立完成本仓适配与验收」。
上游现状(已核实)
- musubi-tuner 自 v0.3.3(2026-06-19) 起支持 Ideogram 4 的 LoRA 训练 / 缓存 / 推理:
ideogram4_train_network.py、ideogram4_cache_latents.py、ideogram4_cache_text_encoder_outputs.py、src/musubi_tuner/ideogram4/**、networks/lora_ideogram4.py。 - 我们 pin 的提交
e0cbd8f3(2026-08-13)已包含上述脚本;installer 会整包拷贝上游顶层*.py+src/,因此不需要改上游,也不需要提前升 pin。 - 上游当前仅支持 LoRA(全量微调仍在未合并草案 PR);LoRA 不能 merge 回 FP8 基底。上游文档
docs/ideogram4.md标注为 experimental。
必须处理的上游缺陷(本仓需打补丁)
pin 版本的 src/musubi_tuner/ideogram4/ideogram4_utils.py 中,load_ideogram4_text_encoder() 在 _materialize_meta_tensors()(内部 to_empty())之后没有重建 rotary embedding:非持久化的 inv_freq 缓冲不在 checkpoint 里,to_empty() 之后保持未初始化 → 文本编码器缓存为垃圾值,训练结果不可用。上游 v0.3.6(PR #1139)修复。
处理方式(建议):沿用 model_assets.patch_krea2_tokenizer_path 的运行时源码补丁先例,打等价补丁;不升级 pin。升 pin = transformers 5.17 / diffusers 0.40 / torch 2.6 依赖大迁移 + krea2_train_network.py +159/−70 改动,已验收的 Krea 2 需全部重验,应作为独立任务另行评估。
范围与边界
- 权重:官方仅发量化权重(FP8 / NVFP4),无 BF16/FP16 DiT;组件为 cond DiT + uncond DiT(非对称 CFG)+ Qwen3-VL-8B TE + Flux2 VAE(Comfy-Org 单文件布局)。
- 许可:Ideogram Non-Commercial,权重在 HF 上 gated。整合包不得预置权重;下载/安装页需明示许可与来源,用户自行获取。
- 显存与缓存:9.3B FP8 DiT + Qwen3-VL-8B TE;TE 缓存 128 token ≈ 13.6 MB/图(1k 图 ≈ 13.6 GB,256 token 翻倍),需纳入缓存目录管理。
- 上游实验性:上游 issue #978 报告 TE 预缓存 OOM 与 resume 变慢,真机验收需覆盖这两个场景。
实现清单
后端(mikazuki/engines/musubi/)
-
manifest.py:TRAIN_TYPES增加ideogram4-lora→ideogram4;CAPABILITIES.model_families同步 -
run.py:去掉写死的model_train_type = "krea2-lora",按 registry variant 分派 -
adapter.py:NETWORK_MODULE按模型族切换(musubi_tuner.networks.lora_ideogram4)、字段白名单与量化-only 约束(不加 krea2 专属的 bf16/fp8 配对规则) -
launcher.py/extension_state.py:三阶段脚本名与就绪检查按族取 -
preflight.py:DiT / TE / VAE 组件检查与提示 -
model_assets.py:ideogram4-lora资源清单 + rotary 补丁 -
utils/config_import.py:识别ideogram4-lora配置 -
process.py:三阶段任务组(cache latents → cache TE → train) - 测试:
tests/test_musubi_backend.py、test_engine_registry.py、test_model_assets.py、test_config_import.py
前端
-
mikazuki/schema/ideogram4-lora.ts(字段按上游docs/ideogram4.md定) -
frontend/src/training/modules.ts、params.ts、i18n、路由、Musubi 闸门页 - 前端测试
文档
- 训练文档(组件路径 / 许可 / 显存与缓存说明)
- CHANGELOG、
docs/dev-progress.md、docs/roadmap.md同步
验收标准
- 三阶段(cache latents → cache TE → train)真机跑通 3 步冒烟并保存 LoRA
- 预览采样正常;TE 缓存复用后二次启动不发散
- 前端模型入口、参数校验与预检报错正确;pytest + typecheck + lint + vitest 全绿
- 许可与「不预置权重」边界在界面与文档中明确
参考
- 上游文档:https://github.com/kohya-ss/musubi-tuner/blob/main/docs/ideogram4.md
- 本仓计划:
docs/musubi-tuner-engine-plan.md - 本仓先例:Krea 2 接入(Feat/kohya standalone env #392 之后的 musubi 引擎线)
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
P1High priority issue that affects user experience but is not an immediate release blockerHigh priority issue that affects user experience but is not an immediate release blockerenhancementNew feature or requestNew feature or requeststatus:todoNot yet implemented; ready for triage or workNot yet implemented; ready for triage or work
Activity
wochenlong commentedon Oct 10, 2026
实现已提交:PR #425(前后端 + 文档)。
已完成
待办(需要 GPU 真机,PR 合并前不写发布说明)
注意:权重为非商用许可的 FP8 量化文件,整合包不预置,需用户自行下载。
fix(musubi): fall back when the rotary rebuild rejects the device kwa…
fix(musubi): independent-review follow-ups for Ideogram 4 (#424)
wochenlong commentedon Oct 10, 2026
已合并到 dev:PR #425 → merge commit
2bdccd1b1(CI 全绿:portable-fast / portable-git ubuntu+windows)。合并前走了独立审查,结果:无 P0,1 个 P1 + 6 个 P2,已全部处理:
vae_dtype保留在训练 TOML(它同时影响采样 VAE 加载),只有text_cache_dtype是缓存专用,dry-run 返回同样的过滤结果;未注册的模型族改为显式报错,不再静默回退到 Krea 2;移除上游明确忽略的ideogram4_timestep_mu/std;跨页携带的vae/fp8_*等改为只对 musubi/klein 页面生效(kohya 页面继续共享外部 VAE)。仍然待办(需要 GPU 真机):三阶段冒烟并保存 LoRA、采样预览、缓存复用二次启动不发散(验证 rotary 补丁在 transformers 4.57 上生效)、显存实测与 blocks_to_swap 档位建议。这条能力在真机验收完成前不建议写进发布说明。