diff --git a/otherarch/sdcpp/stable-diffusion.cpp b/otherarch/sdcpp/stable-diffusion.cpp index 031f88dc0e0..53b77a8e40d 100644 --- a/otherarch/sdcpp/stable-diffusion.cpp +++ b/otherarch/sdcpp/stable-diffusion.cpp @@ -1553,10 +1553,19 @@ class StableDiffusionGGML { if (vae_tiling_params.enabled && !encode_video) { // TODO wan2.2 vae support? int C = sd_version_is_dit(version) ? 16 : 4; - if (!use_tiny_autoencoder) { - C *= 2; + int NE2, NE3; + if (sd_version_is_qwen_image(version)) { + NE2 = x->ne[3]; + NE3 = C; + } + else { + if (!use_tiny_autoencoder) { + C *= 2; + } + NE2 = C; + NE3 = x->ne[3]; } - result = ggml_new_tensor_4d(work_ctx, GGML_TYPE_F32, W, H, C, x->ne[3]); + result = ggml_new_tensor_4d(work_ctx, GGML_TYPE_F32, W, H, NE2, NE3); } if (sd_version_is_qwen_image(version)) {