Isotr0py
3affc7766d
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>
2026-09-18 10:02:50 +08:00
..
2026-09-04 17:05:05 +00:00
2026-09-08 00:53:20 -07:00
2026-09-08 10:08:38 -06:00
2026-07-29 02:46:27 +00:00
2026-09-06 05:40:09 +08:00
2026-07-20 20:02:30 +08:00
2026-09-08 10:08:38 -06:00
2026-07-24 22:42:45 +08:00
2026-08-01 03:19:21 +00:00
2026-08-28 09:05:41 -06:00
2026-08-27 12:51:15 +08:00
2026-08-01 03:19:21 +00:00
2026-09-08 15:53:20 +00:00
2026-09-08 10:08:38 -06:00
2026-06-29 18:09:19 +02:00
2026-08-21 14:15:37 +08:00
2026-09-10 12:08:28 +08:00
2026-08-11 15:31:02 +08:00
2026-07-14 17:24:03 +08:00
2026-07-11 16:25:41 -07:00
2026-09-04 17:05:05 +00:00
2026-08-11 15:23:46 +00:00
2026-09-07 13:38:23 +08:00
2026-08-25 02:09:00 +00:00
2026-09-08 10:08:38 -06:00
2026-09-10 12:08:28 +08:00
2026-09-08 22:48:08 -07:00
2026-08-28 08:32:32 +08:00
2026-07-04 03:45:49 +00:00
2026-09-09 09:58:42 +00:00
2026-07-20 16:16:31 +08:00
2026-06-29 18:09:19 +02:00
2026-07-08 10:29:41 +08:00
2026-09-08 18:58:38 -07:00
2026-07-02 16:32:05 +02:00
2026-09-08 10:08:38 -06:00
2026-09-10 12:08:28 +08:00
2026-09-18 10:02:50 +08:00
2026-09-07 15:56:51 +08:00
2026-08-18 23:57:55 -06:00
2026-07-30 15:09:48 +00:00
2026-07-24 22:42:45 +08:00
2026-08-18 14:03:31 +00:00
2026-09-08 10:08:38 -06:00
2026-08-23 04:22:05 +00:00
2026-06-22 15:17:00 +08:00
2026-09-09 14:34:46 +00:00
2026-07-02 16:32:05 +02:00
2025-11-30 18:20:44 +08:00
2026-08-22 21:37:20 +08:00
2026-09-09 16:40:32 +08:00
2026-08-18 23:42:03 +08:00
2026-03-05 23:56:14 +08:00
2026-09-08 10:08:38 -06:00