Enable VAE tiling for Qwen-Image-2.1 (#5)
* init
Signed-off-by: Isotr0py <mozf@inferact.ai>
* fix
Signed-off-by: Isotr0py <mozf@inferact.ai>
* test(diffusion): add Qwen-Image-2.1 unit tests
Signed-off-by: Isotr0py <mozf@inferact.ai>
* fix(diffusion): Qwen-Image-2.1 VAE spatial ratio, tiling e2e verification
- AutoencoderKLQwenImage21: derive spatial_compression_ratio from the
architecture (2 ** len(temperal_downsample) = 16x) instead of trusting
the checkpoint's scale_factor_spatial=8, which corrupted tiled
decode/encode geometry (output cropped to half size) and tiling gating.
- pipeline: _read_vae_scale_factor prefers the architecture-derived value
for the same reason.
- models/qwen_image_21/__init__: lazy exports to break the circular import
distributed VAE -> package __init__ -> pipeline -> distributed VAE.
- Add VAE unit tests: ratio derivation, tiled vs untiled decode/encode
consistency, distributed tile_split/exec/merge == tiled_decode.
- e2e matrix (GB200, seed 42, 20 steps) all green; see e2e_out/qwen21_vae/.
- examples: qwen_image_21_edit.py gains --vae-use-tiling.
- docs: mark VAE patch-parallel verified for Qwen-Image-2.1; recipe notes
the default-tile banding limitation at 2048px+.
* clean tests
Signed-off-by: Isotr0py <mozf@inferact.ai>
* fix cudnn determination
Signed-off-by: Isotr0py <mozf@inferact.ai>
---------
Signed-off-by: Isotr0py <mozf@inferact.ai>