From 0ba205ce5c261de21dc69b75b24ea89daaa370db Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?St=C3=A9phane=20du=20Hamel?= Date: Mon, 3 Nov 2025 00:36:52 +0100 Subject: [PATCH 1/2] Fix TAE encoding --- stable-diffusion.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/stable-diffusion.cpp b/stable-diffusion.cpp index 49f6530f3..086bce1cc 100644 --- a/stable-diffusion.cpp +++ b/stable-diffusion.cpp @@ -1451,7 +1451,7 @@ class StableDiffusionGGML { } } else if (version == VERSION_CHROMA_RADIANCE) { // pass - } else { + } else if (!use_tiny_autoencoder) { ggml_ext_tensor_iter(latent, [&](ggml_tensor* latent, int64_t i0, int64_t i1, int64_t i2, int64_t i3) { float value = ggml_ext_tensor_get_f32(latent, i0, i1, i2, i3); value = (value - shift_factor) * scale_factor; From 1d986372be1eb35a75b625e3fb88728c92d199e7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?St=C3=A9phane=20du=20Hamel?= Date: Mon, 3 Nov 2025 15:00:08 +0100 Subject: [PATCH 2/2] move fix to get_first_stage_encoding --- stable-diffusion.cpp | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/stable-diffusion.cpp b/stable-diffusion.cpp index 086bce1cc..853e17c77 100644 --- a/stable-diffusion.cpp +++ b/stable-diffusion.cpp @@ -1451,7 +1451,7 @@ class StableDiffusionGGML { } } else if (version == VERSION_CHROMA_RADIANCE) { // pass - } else if (!use_tiny_autoencoder) { + } else { ggml_ext_tensor_iter(latent, [&](ggml_tensor* latent, int64_t i0, int64_t i1, int64_t i2, int64_t i3) { float value = ggml_ext_tensor_get_f32(latent, i0, i1, i2, i3); value = (value - shift_factor) * scale_factor; @@ -1646,7 +1646,9 @@ class StableDiffusionGGML { } else { latent = gaussian_latent_sample(work_ctx, vae_output); } - process_latent_in(latent); + if (!use_tiny_autoencoder) { + process_latent_in(latent); + } if (sd_version_is_qwen_image(version)) { latent = ggml_reshape_4d(work_ctx, latent, latent->ne[0], latent->ne[1], latent->ne[3], 1); }