diff --git a/src/model.h b/src/model.h index 17272f7d..d02ed65b 100644 --- a/src/model.h +++ b/src/model.h @@ -186,6 +186,13 @@ static inline bool sd_version_is_ideogram4(SDVersion version) { return false; } +static inline bool sd_version_uses_flux_vae(SDVersion version) { + if (sd_version_is_flux(version) || sd_version_is_z_image(version) || sd_version_is_boogu_image(version) || sd_version_is_longcat(version)) { + return true; + } + return false; +} + static inline bool sd_version_uses_flux2_vae(SDVersion version) { if (sd_version_is_flux2(version) || sd_version_is_ernie_image(version) || sd_version_is_lens(version) || sd_version_is_ideogram4(version)) { return true; diff --git a/src/model/vae/auto_encoder_kl.hpp b/src/model/vae/auto_encoder_kl.hpp index 51e1feda..e41f5fd4 100644 --- a/src/model/vae/auto_encoder_kl.hpp +++ b/src/model/vae/auto_encoder_kl.hpp @@ -682,7 +682,7 @@ struct AutoEncoderKL : public VAE { } else if (sd_version_is_sd3(version)) { scale_factor = 1.5305f; shift_factor = 0.0609f; - } else if (sd_version_is_flux(version) || sd_version_is_z_image(version) || sd_version_is_boogu_image(version) || sd_version_is_longcat(version)) { + } else if (sd_version_uses_flux_vae(version)) { scale_factor = 0.3611f; shift_factor = 0.1159f; } else if (sd_version_uses_flux2_vae(version)) { diff --git a/src/stable-diffusion.cpp b/src/stable-diffusion.cpp index a1a007d5..2a61f5d1 100644 --- a/src/stable-diffusion.cpp +++ b/src/stable-diffusion.cpp @@ -1719,7 +1719,7 @@ public: if (sd_version_is_sd3(version)) { latent_rgb_proj = sd3_latent_rgb_proj; latent_rgb_bias = sd3_latent_rgb_bias; - } else if (sd_version_is_flux(version) || sd_version_is_z_image(version) || sd_version_is_boogu_image(version) || sd_version_is_longcat(version)) { + } else if (sd_version_uses_flux_vae(version)) { latent_rgb_proj = flux_latent_rgb_proj; latent_rgb_bias = flux_latent_rgb_bias; } else if (sd_version_is_wan(version) || sd_version_is_qwen_image(version) || sd_version_is_anima(version)) {