You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

无法将LoRA权重合并至Flux Dev基础模型的解决方案咨询

解决SimpleTuner训练Flux LoRA无adapter_config.json的合并问题

方法1:手动创建adapter_config.json适配PEFT加载

PEFT的PeftModel依赖adapter_config.json识别LoRA参数配置,你可以根据SimpleTuner训练Flux的默认参数生成该文件:

  1. 在你的checkpoint文件夹下新建adapter_config.json,内容如下(若训练时修改过r/alpha值,需同步调整对应字段):
{
  "peft_type": "LORA",
  "task_type": "TEXT_TO_IMAGE_GENERATION",
  "r": 8,
  "lora_alpha": 16,
  "target_modules": [
    "q_proj",
    "k_proj",
    "v_proj",
    "out_proj",
    "gate_proj",
    "up_proj",
    "down_proj"
  ],
  "lora_dropout": 0.05,
  "bias": "none",
  "modules_to_save": null,
  "inference_mode": true
}
  1. 运行你原来的代码即可正常加载合并:
from peft import PeftModel
from diffusers import FluxTransformer2DModel

lora_path = "<path_to_checkpoint_folder>"
base_model = FluxTransformer2DModel.from_pretrained("<local_path_to_flux_model>", subfolder='transformer')
model = PeftModel.from_pretrained(base_model, lora_path)
merged_model = model.merge_and_unload()

# 保存合并后的模型
merged_model.save_pretrained("<path_to_save_merged_model>")

方法2:手动加载LoRA权重并合并(无需PEFT)

如果不想依赖PEFT框架,可直接读取safetensors权重文件,手动合并到基础模型:

import torch
from safetensors.torch import load_file
from diffusers import FluxTransformer2DModel

# 加载基础模型
base_model = FluxTransformer2DModel.from_pretrained("<local_path_to_flux_model>", subfolder='transformer')
# 加载LoRA权重
lora_weights = load_file("<path_to_checkpoint_folder>/pytorch_lora_weights.safetensors")

# 遍历LoRA权重执行合并
for name, param in lora_weights.items():
    if ".lora_A" in name:
        base_layer_name = name.replace(".lora_A", "")
        lora_A = param
        lora_B = lora_weights[name.replace(".lora_A", ".lora_B")]
        alpha = 16  # 训练默认alpha值,修改过则同步调整
        scaling = alpha / 8  # 8是训练默认r值,修改过则同步调整
        
        base_layer = base_model.get_submodule(base_layer_name)
        with torch.no_grad():
            # LoRA合并公式:基础权重 += B*A*scaling
            base_layer.weight.data += torch.matmul(lora_B, lora_A) * scaling

# 保存合并后的模型
base_model.save_pretrained("<path_to_save_merged_model>")

注意事项

  • 若训练时自定义了r(秩)或alpha参数,必须同步修改代码中对应数值,否则合并结果会失真。
  • 合并完成后建议生成测试图片,验证模型效果是否符合预期。

内容的提问来源于stack exchange,提问作者user1875136

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.16 17:43:21