AI Toolkit LoRA 模型合并:完整调参指南

AI Toolkit LoRA 模型合并:完整调参指南 AI Toolkit LoRA 模型合并完整调参指南【免费下载链接】ai-toolkitThe ultimate training toolkit for finetuning diffusion models项目地址: https://gitcode.com/GitHub_Trending/ai/ai-toolkitAI Toolkit 内置 LoRA 模型合并流程多个独立训练的权重文件按指定强度融合为单个 checkpoint最终输出 bfloat16 或 fp16 文件。三步完成 LoRA 模型合并快速上手准备文件用同一底模训练两个以上 LoRA例如按 config/examples/train_lora_flex_24gb.yaml 得到.safetensors文件。写输入清单合并输入是一个 JSON 数组每项包含path文件位置和strength强度两个字段。执行命令在项目根目录运行。python ui_scripts/merge_loras.py \ --loras [{path: output/lora_a.safetensors, strength: 1.0}, {path: output/lora_b.safetensors, strength: 0.5}] \ --output output/merged_lora.safetensors \ --save_dtype bfloat16运行结束后会打印{ok: true, num_loras: 2, ...}合并结果写入--output指定路径。合并机制2 句话版本合并的核心是“先缩放、再相加”每个 LoRA 的张量乘以自己的强度后按 key 累加进同一个 state dict。在 AI Toolkit 模型融合的两条入口里处理方式不同扩展流程 extensions/example/ExampleMergeModels.py 中weight是相对值会先归一化到总和为 1 再缩放权重total_weight sum(m.weight for m in self.models_to_merge) weight_adjust 1.0 / total_weight for model in self.models_to_merge: model.weight * weight_adjustCLI 脚本里的strength则是绝对值、不做归一化写配置时两种口径不能混用。LoRA 权重融合配置指南按场景双模型等权合并改哪个字段--loras中两个条目的strength。影响什么两组权重以相同强度相加输出风格约各占一半。推荐值1.0 / 1.0若输出过强或色彩发闷两者同时降到 0.7 / 0.7 再合并。三模型以上不等权配置改哪个字段清单中每项的强度数量不受限制扩展配置里对应weight字段。影响什么扩展流程会把 1.0 / 1.0 / 0.3 先归一化为 1/2.3、1/2.3、0.3/2.3 再应用CLI 则按原值直接计算字段写法参考 extensions/example/config/config.example.yaml。推荐值主体风格 1.0辅助风格 0.3–0.5避免弱项风格被强风格淹没。精度与显存平衡改哪个字段--save_dtype默认 bfloat16与--device默认 cpu。影响什么输出文件大小、精度以及能否一次性跑完合并全程按 float32 计算只是最终落盘时转换。推荐值默认存 bfloat16 或 fp16显存紧张时保持--device cpu更多显存管理见 toolkit/memory_management/。进阶场景与已知限制上述流程之外多模型合并调参还有三个常见扩展方向动态权重调整继承 jobs/process/BaseExtensionProcess.py 写自定义流程对不同张量施加不同强度曲线适用于同一 LoRA 在部分层需要更强的场景。条件激活不合并推理时靠宿主工具的多 LoRA 槽位按提示词启用适用于几个 LoRA 只按题材按需使用的场景。分层融合在合并脚本中按 key 过滤 state dict如只合并注意力相关层适用于两个 LoRA 在特定层互相打架的场景。已知限制输入必须同底模训练同 key 张量 rank 不一致时只会零填充到最大维度维度不兼容则直接报错。合并是权重的线性加法而非再训练无法修复 LoRA 之间的特征冲突效果变差只能靠调强度弥补示例扩展是整模型合并仅面向 SD1.x/SD2.x。常见问题Q合并后效果变差或风格发糊怎么调先把所有 strength 从 1.0 降到 0.5–0.7 重新合并若只有某个 LoRA 过强先按 config/examples/mod_lora_scale.yaml 把它的target_weight重标到 1.0再参与合并。Q显存不够怎么办保持默认--device cpu即可脚本在 float32 下完成合并后从 CPU 落盘只占用系统内存不需要把模型放到 GPU。Q合并出的文件比预期大检查--save_dtype是否误设为 fp32默认 bfloat16 时文件大小与单个 LoRA 相当。延伸资源整体使用说明见 README.md合并实现分别在 ui_scripts/merge_loras.py 与 extensions/example/示例配置在 extensions/example/config/config.example.yaml。【免费下载链接】ai-toolkitThe ultimate training toolkit for finetuning diffusion models项目地址: https://gitcode.com/GitHub_Trending/ai/ai-toolkit创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考