Qwen Image 2.1 benchmarks

Test hardware and platform limits.

Leaf control: Windows and native Linux use Diffusers leaf offloading with use_stream=True. WSL uses use_stream=False because streamed leaf offloading was incompatible with the tested WSL environment; this is not a limitation established for every WSL setup. This setting concerns weight offloading, not video VAE decode streaming.

Base BF16, 512×512, 20 steps, seed 42, capybara prompt, CFG 1 and KV cache. Shared official leaf text encoder; resident untiled VAE on Windows/Linux, untiled non-streamed leaf VAE on WSL.

Presets resolve to the executed transformer runtimes; the VAE route is independent. Scenario names link directly to measurement details. Times are seconds; GPU is sampled absolute driver usage, RAM is process RSS, and memory units are GiB. Average is denoise wall divided by steps, including warmup, not completed warm GPU timing. Tracked total excludes command startup and downloads. Before reading the tables, see the labels and memory glossary.

In comparable overview tables, official Diffusers leaf is the first row and the reference for that table: 🟢 ↓ is lower, 🔴 ↑ is higher. Equal displayed values have no arrow. Arrows describe measurements, not an overall preset ranking; higher memory can accompany faster execution. Phase tables and separate workloads without a leaf control have no arrows. Rows with different driver/cache sessions or a reused non-side-by-side observation also have no arrows.

Windows — BF16

Phase-table rows identify the complete pipeline by its transformer route. Encoder and VAE strategies remain those stated for each platform; a row labeled vmm_fast does not imply native VMM execution in every phase.

The native row is a reused official-package observation, not a repeat alongside the other routes.

Scenario (details) Transformer runtime VAE route Denoise/readback (s) Average (s/step) Tracked total (s) Peak GPU (absolute, GiB) Peak RAM (RSS, GiB)
Official leaf (reference) official leaf hooks resident 41.28 2.06 57.50 3.68 18.97
one_shot_fast linear_runtime resident 17.94 🟢 ↓ 0.90 🟢 ↓ 41.36 🟢 ↓ 6.69 🔴 ↑ 21.58 🔴 ↑
low_ram_safe linear_runtime resident 36.86 🟢 ↓ 1.84 🟢 ↓ 55.24 🟢 ↓ 4.36 🔴 ↑ 18.97
vmm_fast (reused observation) vmm_fast_runtime resident 17.67 0.88 36.64 6.12 18.97
nvme_baseline vmm_runtime resident 38.08 🟢 ↓ 1.90 🟢 ↓ 56.32 🟢 ↓ 5.23 🔴 ↑ 18.97

Phase measurements

These are selected separately monitored phases, not an additive decomposition of the tracked total. Cleanup, saving and other unlisted setup remain in the total.

Text encoder load

Method / scenario (details) Latency (s) Peak GPU (absolute, GiB) Peak RAM (RSS, GiB)
Official leaf 0.96 1.03 0.84
one_shot_fast 0.97 1.03 0.88
low_ram_safe 0.93 1.03 0.88
vmm_fast (reused observation) 0.89 1.03 0.87
nvme_baseline 0.95 1.03 0.88

Text encoder attachment

Method / scenario (details) Latency (s) Peak GPU (absolute, GiB) Peak RAM (RSS, GiB)
Official leaf 0.04 1.03 0.88
one_shot_fast 0.04 1.03 0.88
low_ram_safe 0.04 1.03 0.88
vmm_fast (reused observation) 0.03 1.03 0.87
nvme_baseline 0.04 1.03 0.88

Text encode

Method / scenario (details) Latency (s) Peak GPU (absolute, GiB) Peak RAM (RSS, GiB)
Official leaf 9.59 2.28 18.93
one_shot_fast 9.91 2.28 18.93
low_ram_safe 9.58 2.28 18.91
vmm_fast (reused observation) 9.58 3.40 18.93
nvme_baseline 9.69 2.28 18.93

Text encoder cleanup

Method / scenario (details) Latency (s) Peak GPU (absolute, GiB) Peak RAM (RSS, GiB)
Official leaf 0.63 2.28 18.97
one_shot_fast 0.61 2.28 18.97
low_ram_safe 0.59 2.28 18.97
vmm_fast (reused observation) 0.60 2.24 18.97
nvme_baseline 0.85 2.28 18.97

Transformer load

Method / scenario (details) Latency (s) Peak GPU (absolute, GiB) Peak RAM (RSS, GiB)
Official leaf 0.13 1.10 3.67
one_shot_fast 0.10 1.10 3.66
low_ram_safe 0.11 1.10 3.66
vmm_fast (reused observation) 0.17 2.24 3.66
nvme_baseline 0.17 1.10 3.67

Transformer attachment

Method / scenario (details) Latency (s) Peak GPU (absolute, GiB) Peak RAM (RSS, GiB)
Official leaf 0.03 1.10 3.67
one_shot_fast 6.66 6.00 21.58
low_ram_safe 2.38 3.94 6.43
vmm_fast (reused observation) 1.42 2.24 4.30
nvme_baseline 1.30 1.50 5.89

Denoise/readback

Method / scenario (details) Latency (s) Peak GPU (absolute, GiB) Peak RAM (RSS, GiB)
Official leaf 41.28 1.58 16.99
one_shot_fast 17.94 6.69 13.80
low_ram_safe 36.86 4.36 16.99
vmm_fast (reused observation) 17.67 6.12 17.69
nvme_baseline 38.08 5.23 6.00

VAE load

Method / scenario (details) Latency (s) Peak GPU (absolute, GiB) Peak RAM (RSS, GiB)
Official leaf 0.98 1.10 5.55
one_shot_fast 0.96 1.17 15.62
low_ram_safe 0.95 1.34 5.61
vmm_fast (reused observation) 1.17 2.24 5.56
nvme_baseline 0.97 1.15 7.54

VAE decode

Method / scenario (details) Latency (s) Peak GPU (absolute, GiB) Peak RAM (RSS, GiB)
Official leaf 0.47 3.68 4.47
one_shot_fast 0.49 3.68 14.54
low_ram_safe 0.44 3.68 4.47
vmm_fast (reused observation) 0.47 3.90 4.48
nvme_baseline 0.47 3.68 6.48

Pipeline total

Measured tracked totals and global peaks for the same complete runs above. These are not sums of the phase tables. The encoder and VAE routes remain as stated for this workload; the runtime column identifies the transformer.

Method / scenario (details) Transformer runtime VAE route Tracked total (s) Peak GPU (absolute, GiB) Peak RAM (RSS, GiB)
Official leaf (reference) official leaf hooks resident 57.50 3.68 18.97
one_shot_fast linear_runtime resident 41.36 6.69 21.58
low_ram_safe linear_runtime resident 55.24 4.36 18.97
vmm_fast (reused observation) vmm_fast_runtime resident 36.64 6.12 18.97
nvme_baseline vmm_runtime resident 56.32 5.23 18.97

Linux — BF16

The NVMe observation uses a different driver/cache session from the route trio; it is not a controlled allocator-only A/B.

Scenario (details) Transformer runtime VAE route Denoise/readback (s) Average (s/step) Tracked total (s) Peak GPU (absolute, GiB) Peak RAM (RSS, GiB)
Official leaf (reference) official leaf hooks resident 35.61 1.78 43.91 3.68 18.88
one_shot_fast linear_runtime resident 18.11 🟢 ↓ 0.91 🟢 ↓ 31.24 🟢 ↓ 6.09 🔴 ↑ 21.38 🔴 ↑
vmm_fast vmm_fast_runtime resident 13.03 🟢 ↓ 0.65 🟢 ↓ 20.77 🟢 ↓ 6.12 🔴 ↑ 18.88
nvme_baseline vmm_runtime resident 179.00 8.95 188.66 5.33 18.96

Phase measurements

These are selected separately monitored phases, not an additive decomposition of the tracked total. Cleanup, saving and other unlisted setup remain in the total.

Text encoder load

Method / scenario (details) Latency (s) Peak GPU (absolute, GiB) Peak RAM (RSS, GiB)
Official leaf 0.90 1.09 0.95
one_shot_fast 0.74 1.01 0.95
vmm_fast 0.65 0.99 0.95
nvme_baseline 0.91 0.73 1.04

Text encoder attachment

Method / scenario (details) Latency (s) Peak GPU (absolute, GiB) Peak RAM (RSS, GiB)
Official leaf 0.02 1.09 0.98
one_shot_fast 0.02 1.01 0.98
vmm_fast 0.02 0.99 0.98
nvme_baseline 0.02 0.73 1.07

Text encode

Method / scenario (details) Latency (s) Peak GPU (absolute, GiB) Peak RAM (RSS, GiB)
Official leaf 5.06 2.34 18.84
one_shot_fast 3.42 2.27 18.87
vmm_fast 3.44 3.37 18.84
nvme_baseline 5.01 1.98 18.93

Text encoder cleanup

Method / scenario (details) Latency (s) Peak GPU (absolute, GiB) Peak RAM (RSS, GiB)
Official leaf 0.60 2.33 18.88
one_shot_fast 0.59 2.27 18.88
vmm_fast 0.56 2.21 18.88
nvme_baseline 0.56 1.99 18.96

Transformer load

Method / scenario (details) Latency (s) Peak GPU (absolute, GiB) Peak RAM (RSS, GiB)
Official leaf 0.10 1.15 3.57
one_shot_fast 0.04 1.08 3.55
vmm_fast 0.05 2.21 3.54
nvme_baseline 0.14 0.80 3.65

Transformer attachment

Method / scenario (details) Latency (s) Peak GPU (absolute, GiB) Peak RAM (RSS, GiB)
Official leaf 0.01 1.15 3.57
one_shot_fast 7.15 5.68 21.38
vmm_fast 0.60 2.21 4.20
nvme_baseline 1.25 1.22 4.86

Denoise/readback

Method / scenario (details) Latency (s) Peak GPU (absolute, GiB) Peak RAM (RSS, GiB)
Official leaf 35.61 1.57 16.92
one_shot_fast 18.11 6.09 14.24
vmm_fast 13.03 6.12 17.63
nvme_baseline 179.00 5.33 18.03

VAE load

Method / scenario (details) Latency (s) Peak GPU (absolute, GiB) Peak RAM (RSS, GiB)
Official leaf 0.43 1.47 5.40
one_shot_fast 0.28 1.15 15.53
vmm_fast 0.27 2.21 4.95
nvme_baseline 0.43 1.49 6.45

VAE decode

Method / scenario (details) Latency (s) Peak GPU (absolute, GiB) Peak RAM (RSS, GiB)
Official leaf 0.35 3.68 4.34
one_shot_fast 0.36 3.74 14.91
vmm_fast 0.38 4.24 4.22
nvme_baseline 0.45 3.73 5.44

Pipeline total

Measured tracked totals and global peaks for the same complete runs above. These are not sums of the phase tables. The encoder and VAE routes remain as stated for this workload; the runtime column identifies the transformer.

Method / scenario (details) Transformer runtime VAE route Tracked total (s) Peak GPU (absolute, GiB) Peak RAM (RSS, GiB)
Official leaf (reference) official leaf hooks resident 43.91 3.68 18.88
one_shot_fast linear_runtime resident 31.24 6.09 21.38
vmm_fast vmm_fast_runtime resident 20.77 6.12 18.88
nvme_baseline vmm_runtime resident 188.66 5.33 18.96

WSL — BF16

Leaf controls are non-streamed; linear uses an explicit 3 GiB override and native uses bounded registration. These are not Windows/Linux parity claims.

Scenario (details) Transformer runtime VAE route Denoise/readback (s) Average (s/step) Tracked total (s) Peak GPU (absolute, GiB) Peak RAM (RSS, GiB)
Official leaf (no stream) (reference) official leaf hooks leaf 265.68 13.28 364.02 3.42 22.34
wsl_compat (3 GiB override) linear_runtime leaf 83.66 🟢 ↓ 4.18 🟢 ↓ 193.51 🟢 ↓ 4.28 🔴 ↑ 22.33 🟢 ↓
vmm_fast (bounded) vmm_fast_runtime leaf 88.42 🟢 ↓ 4.42 🟢 ↓ 187.38 🟢 ↓ 6.72 🔴 ↑ 22.33 🟢 ↓
nvme_baseline vmm_runtime leaf 244.37 🟢 ↓ 12.22 🟢 ↓ 349.09 🟢 ↓ 5.93 🔴 ↑ 22.34

Phase measurements

These are selected separately monitored phases, not an additive decomposition of the tracked total. Cleanup, saving and other unlisted setup remain in the total.

Text encoder load

Method / scenario (details) Latency (s) Peak GPU (absolute, GiB) Peak RAM (RSS, GiB)
Official leaf (no stream) 1.44 1.04 0.94
wsl_compat (3 GiB override) 1.45 1.04 0.94
vmm_fast (bounded) 1.67 1.04 0.94
nvme_baseline 1.52 1.04 0.94

Text encoder attachment

Method / scenario (details) Latency (s) Peak GPU (absolute, GiB) Peak RAM (RSS, GiB)
Official leaf (no stream) 0.02 1.04 0.94
wsl_compat (3 GiB override) 0.01 1.04 0.94
vmm_fast (bounded) 0.02 1.04 0.94
nvme_baseline 0.01 1.04 0.94

Text encode

Method / scenario (details) Latency (s) Peak GPU (absolute, GiB) Peak RAM (RSS, GiB)
Official leaf (no stream) 89.40 3.42 22.34
wsl_compat (3 GiB override) 86.47 3.42 22.33
vmm_fast (bounded) 87.06 3.40 22.33
nvme_baseline 92.05 3.42 22.34

Text encoder cleanup

Method / scenario (details) Latency (s) Peak GPU (absolute, GiB) Peak RAM (RSS, GiB)
Official leaf (no stream) 1.44 3.42 20.35
wsl_compat (3 GiB override) 1.43 3.42 20.35
vmm_fast (bounded) 1.38 2.24 20.35
nvme_baseline 1.44 3.42 20.35

Transformer load

Method / scenario (details) Latency (s) Peak GPU (absolute, GiB) Peak RAM (RSS, GiB)
Official leaf (no stream) 0.24 2.24 2.04
wsl_compat (3 GiB override) 0.25 2.24 2.04
vmm_fast (bounded) 0.33 2.24 2.04
nvme_baseline 0.37 2.24 2.05

Transformer attachment

Method / scenario (details) Latency (s) Peak GPU (absolute, GiB) Peak RAM (RSS, GiB)
Official leaf (no stream) 0.01 2.24 2.05
wsl_compat (3 GiB override) 14.25 3.99 4.90
vmm_fast (bounded) 2.31 2.25 2.42
nvme_baseline 3.34 2.66 3.29

Denoise/readback

Method / scenario (details) Latency (s) Peak GPU (absolute, GiB) Peak RAM (RSS, GiB)
Official leaf (no stream) 265.68 2.26 20.58
wsl_compat (3 GiB override) 83.66 4.28 15.30
vmm_fast (bounded) 88.42 6.72 15.74
nvme_baseline 244.37 5.93 16.31

VAE load

Method / scenario (details) Latency (s) Peak GPU (absolute, GiB) Peak RAM (RSS, GiB)
Official leaf (no stream) 3.47 2.24 3.78
wsl_compat (3 GiB override) 3.05 2.24 3.78
vmm_fast (bounded) 3.38 2.25 3.84
nvme_baseline 2.99 2.25 4.81

VAE decode

Method / scenario (details) Latency (s) Peak GPU (absolute, GiB) Peak RAM (RSS, GiB)
Official leaf (no stream) 1.15 2.95 3.09
wsl_compat (3 GiB override) 1.13 2.95 3.03
vmm_fast (bounded) 1.14 3.17 3.09
nvme_baseline 1.15 2.96 4.08

Pipeline total

Measured tracked totals and global peaks for the same complete runs above. These are not sums of the phase tables. The encoder and VAE routes remain as stated for this workload; the runtime column identifies the transformer.

Method / scenario (details) Transformer runtime VAE route Tracked total (s) Peak GPU (absolute, GiB) Peak RAM (RSS, GiB)
Official leaf (no stream) (reference) official leaf hooks leaf 364.02 3.42 22.34
wsl_compat (3 GiB override) linear_runtime leaf 193.51 4.28 22.33
vmm_fast (bounded) vmm_fast_runtime leaf 187.38 6.72 22.33
nvme_baseline vmm_runtime leaf 349.09 5.93 22.34

Windows 1024×1024 — separate VAE settings

Base BF16, 20 steps, seed 42; untiled leaf VAE. Native uses explicit cache trimming; this is not an allocator-only A/B.

Platform / Scenario (details) Transformer runtime VAE route Denoise/readback (s) Average (s/step) Tracked total (s) Peak GPU (absolute, GiB) Peak RAM (RSS, GiB)
Windows / one_shot_fast / leaf VAE linear_runtime leaf 54.30 2.71 78.52 7.07 21.19
Windows / vmm_fast / leaf VAE + trim vmm_fast_runtime leaf + trim 52.82 2.64 72.54 6.63 18.97

Phase measurements

Scenario (details) Phase Wall (s) Peak GPU (absolute, GiB) Peak RAM (RSS, GiB)
one_shot_fast / leaf VAE Text encoder load 0.97 1.03 0.85
one_shot_fast / leaf VAE Text encoder attachment 0.04 1.03 0.87
one_shot_fast / leaf VAE Text encode 9.80 2.28 18.96
one_shot_fast / leaf VAE Text encoder cleanup 0.65 2.28 18.97
one_shot_fast / leaf VAE Transformer load 0.11 1.10 3.66
one_shot_fast / leaf VAE Transformer attachment 6.51 6.00 21.19
one_shot_fast / leaf VAE Denoise/readback 54.30 7.07 13.80
one_shot_fast / leaf VAE VAE load 0.87 1.10 15.66
one_shot_fast / leaf VAE VAE decode 1.58 6.20 14.58
vmm_fast / leaf VAE + trim Text encoder load 0.90 1.03 0.85
vmm_fast / leaf VAE + trim Text encoder attachment 0.04 1.03 0.87
vmm_fast / leaf VAE + trim Text encode 9.79 2.24 18.93
vmm_fast / leaf VAE + trim Text encoder cleanup 0.83 2.24 18.97
vmm_fast / leaf VAE + trim Transformer load 0.14 2.24 3.67
vmm_fast / leaf VAE + trim Transformer attachment 1.13 2.24 4.30
vmm_fast / leaf VAE + trim Denoise/readback 52.82 6.63 17.69
vmm_fast / leaf VAE + trim VAE load 0.85 2.24 5.61
vmm_fast / leaf VAE + trim VAE decode 1.89 3.93 4.55

Windows SDNQ INT4

Base 512×512, 20 steps, seed 42; BF16 auxiliaries, resident stock VAE. Output parity is within the INT4 pair, not a BF16 quality-equivalence claim.

Platform / Scenario (details) Transformer runtime VAE route Denoise/readback (s) Average (s/step) Tracked total (s) Peak GPU (absolute, GiB) Peak RAM (RSS, GiB)
Windows / SDNQ / official leaf (reference) official leaf hooks resident 24.26 1.21 39.61 3.68 19.02
Windows / SDNQ / one_shot_fast sdnq_runtime resident 18.81 🟢 ↓ 0.94 🟢 ↓ 36.62 🟢 ↓ 3.68 19.02

Phase measurements

Scenario (details) Phase Wall (s) Peak GPU (absolute, GiB) Peak RAM (RSS, GiB)
SDNQ / official leaf Text encoder load 0.92 1.03 0.92
SDNQ / official leaf Text encoder attachment 0.04 1.03 0.92
SDNQ / official leaf Text encode 9.44 2.28 18.98
SDNQ / official leaf Text encoder cleanup 0.68 2.28 19.02
SDNQ / official leaf Transformer load 0.56 1.10 3.71
SDNQ / official leaf Transformer attachment 0.02 1.10 3.71
SDNQ / official leaf Denoise/readback 24.26 2.00 7.60
SDNQ / official leaf VAE load 0.93 1.10 5.43
SDNQ / official leaf VAE decode 0.44 3.54 4.46
SDNQ / one_shot_fast Text encoder load 0.92 1.03 0.92
SDNQ / one_shot_fast Text encoder attachment 0.03 1.03 0.92
SDNQ / one_shot_fast Text encode 9.55 2.28 18.98
SDNQ / one_shot_fast Text encoder cleanup 0.67 2.28 19.02
SDNQ / one_shot_fast Transformer load 0.54 1.10 3.71
SDNQ / one_shot_fast Transformer attachment 2.64 2.15 10.85
SDNQ / one_shot_fast Denoise/readback 18.81 2.87 7.19
SDNQ / one_shot_fast VAE load 0.97 1.18 9.00
SDNQ / one_shot_fast VAE decode 0.44 3.68 7.93

Recommendations

Hardware / priority Recommendation from these measurements
8 GiB GPU, ample RAM, speed vmm_fast or one_shot_fast: both shorten 512-square denoise versus official leaf, at higher GPU residency. Native has the shortest tracked total in each platform set.
Lower GPU usage, slower generation acceptable Official leaf; Windows low_ram_safe is an intermediate speed/GPU tradeoff, not the lowest measured global RSS.
Decode approaches GPU capacity Use leaf VAE; explicit trim is a separate choice. The 1024-square cases do not isolate allocator effects.
Neither RAM nor GPU headroom is sufficient for decode Enable supported VAE tiling and check quality; changing the transformer preset does not remove VAE activations.
Saved INT4 acceptable The measured SDNQ DDO pair is faster than its INT4 leaf control; it is not evidence of BF16-equivalent quality or native VMM quantized support.
WSL Explicit-cap linear uses less GPU and has slightly shorter denoise than native; native has the shorter tracked total.

The common text encoder dominates global RSS in several cases. Around 19–22 GiB process RSS does not establish fit on a 16 GiB RAM computer.

Single observations, not statistical or arbitrary-model guarantees. Missing measurements are unavailable, not zero; phase peaks must not be summed. See presets, reproduction and measurement details before comparing different recipes.