diff --git a/src/name_conversion.cpp b/src/name_conversion.cpp index 63c916edd..af8a7f572 100644 --- a/src/name_conversion.cpp +++ b/src/name_conversion.cpp @@ -1449,12 +1449,21 @@ std::string convert_tensor_name(std::string name, SDVersion version) { {"te2.", "cond_stage_model.1.transformer."}, {"te1.", "cond_stage_model.transformer."}, {"te3.", "text_encoders.t5xxl.transformer."}, + {"clip_vision.", "cond_stage_model.transformer."}, }; if (sd_version_is_flux(version)) { prefix_map["te1."] = "text_encoders.clip_l.transformer."; } + if (sd_version_is_unet(version)) { + prefix_map["clip_l."] = "cond_stage_model.transformer."; + prefix_map["clip_g."] = "cond_stage_model.1.transformer."; + } else { + prefix_map["clip_l."] = "text_encoders.clip_l.transformer."; + prefix_map["clip_g."] = "text_encoders.clip_g.transformer."; + } + replace_with_prefix_map(name, prefix_map); if (sd_version_is_boogu_image(version) || sd_version_is_krea2(version) || sd_version_is_mage_flow(version)) { diff --git a/src/stable-diffusion.cpp b/src/stable-diffusion.cpp index de3088178..24e6839ae 100644 --- a/src/stable-diffusion.cpp +++ b/src/stable-diffusion.cpp @@ -762,28 +762,23 @@ class StableDiffusionGGML { } } - bool is_unet = sd_version_is_unet(model_loader.get_sd_version()); - if (strlen(SAFE_STR(sd_ctx_params->clip_l_path)) > 0) { LOG_INFO("loading clip_l from '%s'", sd_ctx_params->clip_l_path); - std::string prefix = is_unet ? "cond_stage_model.transformer." : "text_encoders.clip_l.transformer."; - if (!model_loader.init_from_file(sd_ctx_params->clip_l_path, prefix)) { + if (!model_loader.init_from_file(sd_ctx_params->clip_l_path, "clip_l.")) { LOG_WARN("loading clip_l from '%s' failed", sd_ctx_params->clip_l_path); } } if (strlen(SAFE_STR(sd_ctx_params->clip_g_path)) > 0) { LOG_INFO("loading clip_g from '%s'", sd_ctx_params->clip_g_path); - std::string prefix = is_unet ? "cond_stage_model.1.transformer." : "text_encoders.clip_g.transformer."; - if (!model_loader.init_from_file(sd_ctx_params->clip_g_path, prefix)) { + if (!model_loader.init_from_file(sd_ctx_params->clip_g_path, "clip_g.")) { LOG_WARN("loading clip_g from '%s' failed", sd_ctx_params->clip_g_path); } } if (strlen(SAFE_STR(sd_ctx_params->clip_vision_path)) > 0) { LOG_INFO("loading clip_vision from '%s'", sd_ctx_params->clip_vision_path); - std::string prefix = "cond_stage_model.transformer."; - if (!model_loader.init_from_file(sd_ctx_params->clip_vision_path, prefix)) { + if (!model_loader.init_from_file(sd_ctx_params->clip_vision_path, "clip_vision.")) { LOG_WARN("loading clip_vision from '%s' failed", sd_ctx_params->clip_vision_path); } }