Commit bb6a0cc for stable-diffusion.cpp

commit bb6a0ccfa31ef24d776d951580a51599797d8cc0
Author: leejet <leejet714@gmail.com>
Date:   Sun Oct 25 16:55:45 2026 +0800

    feat: support FLUX.3 Diffusers LoRA tensor names (#2214)

diff --git a/src/name_conversion.cpp b/src/name_conversion.cpp
index f37c4dd..57a41c5 100644
--- a/src/name_conversion.cpp
+++ b/src/name_conversion.cpp
@@ -708,6 +708,24 @@ std::string convert_diffusers_dit_to_original_flux(std::string name) {
     return name;
 }

+static std::string convert_diffusers_dit_to_original_flux3(std::string name) {
+    static const std::vector<std::pair<std::string, std::string>> prefix_map = {
+        {"single_transformer_blocks.", "single_blocks."},
+        {"mode_blocks.", "content_mode_blocks."},
+    };
+    static const std::vector<std::pair<std::string, std::string>> name_map = {
+        {".attn.to_q.", ".q_proj."},
+        {".attn.to_k.", ".k_proj."},
+        {".attn.to_v.", ".v_proj."},
+        {".attn.to_out.0.", ".attn_out."},
+        {".ff.linear_in.", ".mlp_in."},
+        {".ff.linear_out.", ".mlp_out."},
+    };
+    replace_with_prefix_map(name, prefix_map);
+    replace_with_name_map(name, name_map);
+    return name;
+}
+
 std::string convert_hunyuan_video_to_original_flux(std::string name) {
     int num_layers        = 54;
     int num_single_layers = 0;
@@ -1077,6 +1095,8 @@ std::string convert_diffusion_model_name(std::string name, std::string prefix, S
         name = convert_diffusers_dit_to_original_sd3(name);
     } else if (sd_version_is_flux(version) || sd_version_is_flux2(version) || sd_version_is_longcat(version) || sd_version_is_sefi_image(version)) {
         name = convert_diffusers_dit_to_original_flux(name);
+    } else if (sd_version_is_flux3(version)) {
+        name = convert_diffusers_dit_to_original_flux3(name);
     } else if (sd_version_is_hunyuan_video(version)) {
         name = convert_hunyuan_video_to_original_flux(name);
     } else if (version == VERSION_MOSS_IMAGE) {