From 46fd09a4cf4875e6d0a24408ca640521939fee65 Mon Sep 17 00:00:00 2001 From: leejet Date: Wed, 17 Dec 2025 00:59:35 +0800 Subject: [PATCH 1/3] feat: add support for underline style lora of flux --- name_conversion.cpp | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/name_conversion.cpp b/name_conversion.cpp index 8b521486d..c8e4d306f 100644 --- a/name_conversion.cpp +++ b/name_conversion.cpp @@ -835,6 +835,7 @@ std::string convert_sep_to_dot(std::string name) { "proj_out", "transformer_blocks", "single_transformer_blocks", + "single_blocks", "diffusion_model", "cond_stage_model", "first_stage_model", @@ -876,7 +877,12 @@ std::string convert_sep_to_dot(std::string name) { "ff_context", "norm_added_q", "norm_added_v", - "to_add_out"}; + "to_add_out", + "txt_mod", + "img_mod", + "txt_mlp", + "img_mlp", + }; // record the positions of underscores that should NOT be replaced std::unordered_set protected_positions; @@ -1020,7 +1026,9 @@ std::string convert_tensor_name(std::string name, SDVersion version) { } } - if (sd_version_is_unet(version) || is_lycoris_underline) { + // LOG_DEBUG("name %s %d", name.c_str(), version); + + if (sd_version_is_unet(version) || sd_version_is_flux(version) || is_lycoris_underline) { name = convert_sep_to_dot(name); } } From 4775c5ce3375f1bbf268717557ec8042e229cf83 Mon Sep 17 00:00:00 2001 From: leejet Date: Wed, 17 Dec 2025 21:58:37 +0800 Subject: [PATCH 2/3] add support for underline style lora of t5 --- name_conversion.cpp | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/name_conversion.cpp b/name_conversion.cpp index c8e4d306f..4341bb113 100644 --- a/name_conversion.cpp +++ b/name_conversion.cpp @@ -882,6 +882,8 @@ std::string convert_sep_to_dot(std::string name) { "img_mod", "txt_mlp", "img_mlp", + "wi_0", + "wi_1", }; // record the positions of underscores that should NOT be replaced @@ -1033,7 +1035,7 @@ std::string convert_tensor_name(std::string name, SDVersion version) { } } - std::vector> prefix_map = { + std::unordered_map prefix_map = { {"diffusion_model.", "model.diffusion_model."}, {"unet.", "model.diffusion_model."}, {"transformer.", "model.diffusion_model."}, // dit @@ -1048,8 +1050,13 @@ std::string convert_tensor_name(std::string name, SDVersion version) { // {"te2.text_model.encoder.layers.", "cond_stage_model.1.model.transformer.resblocks."}, {"te2.", "cond_stage_model.1.transformer."}, {"te1.", "cond_stage_model.transformer."}, + {"te3.", "text_encoders.t5xxl."}, }; + if (sd_version_is_flux(version)) { + prefix_map["te1."] = "text_encoders.clip_l."; + } + replace_with_prefix_map(name, prefix_map); // diffusion model From 6bff0d99f14f2e2bcb46a7c4f46e760870f255a5 Mon Sep 17 00:00:00 2001 From: leejet Date: Wed, 17 Dec 2025 23:58:57 +0800 Subject: [PATCH 3/3] fix --- name_conversion.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/name_conversion.cpp b/name_conversion.cpp index 4341bb113..22bd45741 100644 --- a/name_conversion.cpp +++ b/name_conversion.cpp @@ -1050,11 +1050,11 @@ std::string convert_tensor_name(std::string name, SDVersion version) { // {"te2.text_model.encoder.layers.", "cond_stage_model.1.model.transformer.resblocks."}, {"te2.", "cond_stage_model.1.transformer."}, {"te1.", "cond_stage_model.transformer."}, - {"te3.", "text_encoders.t5xxl."}, + {"te3.", "text_encoders.t5xxl.transformer."}, }; if (sd_version_is_flux(version)) { - prefix_map["te1."] = "text_encoders.clip_l."; + prefix_map["te1."] = "text_encoders.clip_l.transformer."; } replace_with_prefix_map(name, prefix_map);