From b395a6972de35d3db29bb150067dccb5b07c6e30 Mon Sep 17 00:00:00 2001 From: leejet Date: Mon, 22 Jun 2026 22:39:42 +0800 Subject: [PATCH] refactor: add Flux VAE version helper (#1696) --- src/model.h | 7 +++++++ src/model/vae/auto_encoder_kl.hpp | 2 +- src/stable-diffusion.cpp | 2 +- 3 files changed, 9 insertions(+), 2 deletions(-) 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)) {