From bd9086426f92d8964d3d3f6e661a3e4552976eac Mon Sep 17 00:00:00 2001 From: yjy415 <2471352175@qq.com> Date: Sat, 4 Jul 2026 20:59:23 +0800 Subject: [PATCH 1/5] Fix: HiDream-O1 LoRA loading --- comfy/lora.py | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/comfy/lora.py b/comfy/lora.py index 427cf98aa..d29816830 100644 --- a/comfy/lora.py +++ b/comfy/lora.py @@ -304,6 +304,15 @@ def model_lora_keys_unet(model, key_map={}): key_map["lycoris_{}".format(key_lora.replace(".", "_"))] = k #SimpleTuner lycoris format key_map["transformer.{}".format(key_lora)] = k #SimpleTuner regular format + if isinstance(model, comfy.model_base.HiDreamO1): + for k in sdk: + if k.startswith("diffusion_model."): + if k.endswith(".weight"): + key_lora = k[len("diffusion_model."):-len(".weight")] + key_map["lycoris_{}".format(key_lora.replace(".", "_"))] = k + key_map["transformer.{}".format(key_lora)] = k + key_map["model.{}".format(key_lora)] = k + if isinstance(model, comfy.model_base.ACEStep): for k in sdk: if k.startswith("diffusion_model.") and k.endswith(".weight"): #Official ACE step lora format From c4f414081cda6801ef1aeff8eed2eea27a15f909 Mon Sep 17 00:00:00 2001 From: yjy415 <2471352175@qq.com> Date: Mon, 13 Jul 2026 19:26:10 +0800 Subject: [PATCH 2/5] Fix: HiDream-O1 LoRA prefix for landing --- comfy/lora.py | 2 -- 1 file changed, 2 deletions(-) diff --git a/comfy/lora.py b/comfy/lora.py index d29816830..f0af526b5 100644 --- a/comfy/lora.py +++ b/comfy/lora.py @@ -309,8 +309,6 @@ def model_lora_keys_unet(model, key_map={}): if k.startswith("diffusion_model."): if k.endswith(".weight"): key_lora = k[len("diffusion_model."):-len(".weight")] - key_map["lycoris_{}".format(key_lora.replace(".", "_"))] = k - key_map["transformer.{}".format(key_lora)] = k key_map["model.{}".format(key_lora)] = k if isinstance(model, comfy.model_base.ACEStep): From 301f02d01920354da41e0c92afaa42478f37bf27 Mon Sep 17 00:00:00 2001 From: yjy415 <2471352175@qq.com> Date: Sun, 16 Aug 2026 11:40:15 +0800 Subject: [PATCH 3/5] Support MiniMax-H3 loras trained with DiffSynth-Studio. --- comfy/lora_convert.py | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/comfy/lora_convert.py b/comfy/lora_convert.py index 749e81df3..30ec1024f 100644 --- a/comfy/lora_convert.py +++ b/comfy/lora_convert.py @@ -32,6 +32,12 @@ def convert_uso_lora(sd): sd_out[k_to] = tensor return sd_out +def convert_lora_minimax_h3(sd): + sd_out = {} + for k in sd: + sd_out["diffusion_model.{}".format(k)] = sd[k] + return sd_out + def convert_lora(sd): if "img_in.lora_A.weight" in sd and "single_blocks.0.norm.key_norm.scale" in sd: @@ -40,4 +46,6 @@ def convert_lora(sd): return convert_lora_wan_fun(sd) if "single_blocks.37.processor.qkv_lora.up.weight" in sd and "double_blocks.18.processor.qkv_lora2.up.weight" in sd: return convert_uso_lora(sd) + if "blocks.0.attn.qkv_proj.lora_A.default.weight" in sd: + return convert_lora_minimax_h3(sd) return sd From 3b7c8c78920ffb826a9b0ed348a67e155e2269b4 Mon Sep 17 00:00:00 2001 From: yjy415 <2471352175@qq.com> Date: Sun, 16 Aug 2026 13:25:17 +0800 Subject: [PATCH 4/5] Support MiniSupport MiniMax-H3 and HiDreamO1 loras trained with DiffSynth-Studio and ModelScope --- comfy/lora.py | 6 ++++++ comfy/lora_convert.py | 9 --------- 2 files changed, 6 insertions(+), 9 deletions(-) diff --git a/comfy/lora.py b/comfy/lora.py index f0af526b5..aa98be152 100644 --- a/comfy/lora.py +++ b/comfy/lora.py @@ -381,6 +381,12 @@ def model_lora_keys_unet(model, key_map={}): key_lora = k[len("diffusion_model."):-len(".weight")] key_map["{}".format(key_lora)] = k + if isinstance(model, comfy.model_base.MiniMaxH3): + for k in sdk: + if k.startswith("diffusion_model.") and k.endswith(".weight"): + key_lora = k[len("diffusion_model."):-len(".weight")] + key_map[key_lora] = k + return key_map diff --git a/comfy/lora_convert.py b/comfy/lora_convert.py index 30ec1024f..3580375f1 100644 --- a/comfy/lora_convert.py +++ b/comfy/lora_convert.py @@ -32,13 +32,6 @@ def convert_uso_lora(sd): sd_out[k_to] = tensor return sd_out -def convert_lora_minimax_h3(sd): - sd_out = {} - for k in sd: - sd_out["diffusion_model.{}".format(k)] = sd[k] - return sd_out - - def convert_lora(sd): if "img_in.lora_A.weight" in sd and "single_blocks.0.norm.key_norm.scale" in sd: return convert_lora_bfl_control(sd) @@ -46,6 +39,4 @@ def convert_lora(sd): return convert_lora_wan_fun(sd) if "single_blocks.37.processor.qkv_lora.up.weight" in sd and "double_blocks.18.processor.qkv_lora2.up.weight" in sd: return convert_uso_lora(sd) - if "blocks.0.attn.qkv_proj.lora_A.default.weight" in sd: - return convert_lora_minimax_h3(sd) return sd From 7e1a0f6849214224e3f64386a3bb1bd9c259f986 Mon Sep 17 00:00:00 2001 From: yjy415 <2471352175@qq.com> Date: Sun, 16 Aug 2026 13:29:24 +0800 Subject: [PATCH 5/5] fix --- comfy/lora_convert.py | 1 + 1 file changed, 1 insertion(+) diff --git a/comfy/lora_convert.py b/comfy/lora_convert.py index 3580375f1..749e81df3 100644 --- a/comfy/lora_convert.py +++ b/comfy/lora_convert.py @@ -32,6 +32,7 @@ def convert_uso_lora(sd): sd_out[k_to] = tensor return sd_out + def convert_lora(sd): if "img_in.lora_A.weight" in sd and "single_blocks.0.norm.key_norm.scale" in sd: return convert_lora_bfl_control(sd)