diff --git a/name_conversion.cpp b/name_conversion.cpp index 8b521486d..6a8ae72c0 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,18 @@ 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", + "proj_mlp", + "wi_0", + "wi_1", + "norm1_context", + "ff_context", + "x_embedder", + }; // record the positions of underscores that should NOT be replaced std::unordered_set protected_positions; @@ -1020,12 +1032,14 @@ 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); } } - std::vector> prefix_map = { + std::unordered_map prefix_map = { {"diffusion_model.", "model.diffusion_model."}, {"unet.", "model.diffusion_model."}, {"transformer.", "model.diffusion_model."}, // dit @@ -1040,8 +1054,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.transformer."}, }; + if (sd_version_is_flux(version)) { + prefix_map["te1."] = "text_encoders.clip_l.transformer."; + } + replace_with_prefix_map(name, prefix_map); // diffusion model