LTX 2.3 image 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.

Distilled BF16, 1280×704, 8 steps, seed 43, real prompt, CFG 1/rescale 0.7, no PAG. Shared official leaf text encoder and resident untiled VAE in the primary comparison.

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. The shared leaf encoder and resident VAE keep their own implementations; a row labeled vmm_fast does not imply native VMM execution in every phase.

Scenario (details) Transformer runtime VAE route Denoise (s) Average (s/step) Tracked total (s) Peak GPU (absolute, GiB) Peak RAM (RSS, GiB)
Official leaf (reference) official leaf hooks resident 39.03 4.88 69.97 7.15 28.77
one_shot_fast linear_runtime resident 11.99 🟢 ↓ 1.50 🟢 ↓ 54.33 🟢 ↓ 7.43 🔴 ↑ 27.12 🟢 ↓
low_ram_safe linear_runtime resident 37.46 🟢 ↓ 4.68 🟢 ↓ 69.98 🔴 ↑ 7.18 🔴 ↑ 28.20 🟢 ↓
vmm_fast vmm_fast_runtime resident 15.15 🟢 ↓ 1.89 🟢 ↓ 48.73 🟢 ↓ 7.27 🔴 ↑ 29.53 🔴 ↑
nvme_baseline vmm_runtime resident 30.28 🟢 ↓ 3.79 🟢 ↓ 60.50 🟢 ↓ 7.24 🔴 ↑ 26.02 🟢 ↓

Phase measurements

The encoder phase includes load/encode/cleanup; connectors are inside the generate aggregate, which also includes transformer setup and denoise. Do not add this aggregate to the denoise column above.

Text encoder phase (load/encode/cleanup)

Method / scenario (details) Latency (s) Peak GPU (absolute, GiB) Peak RAM (RSS, GiB)
Official leaf 21.15 4.79 25.90
one_shot_fast 21.00 4.79 25.90
low_ram_safe 21.33 4.79 25.90
vmm_fast 21.70 4.85 25.91
nvme_baseline 21.44 4.79 26.02

Generate aggregate (connectors/setup/denoise)

Method / scenario (details) Latency (s) Peak GPU (absolute, GiB) Peak RAM (RSS, GiB)
Official leaf 45.06 7.15 28.77
one_shot_fast 30.53 7.43 27.12
low_ram_safe 45.04 7.18 28.20
vmm_fast 23.54 7.27 29.53
nvme_baseline 37.33 7.24 8.28

VAE load

Method / scenario (details) Latency (s) Peak GPU (absolute, GiB) Peak RAM (RSS, GiB)
Official leaf 0.98 2.39 5.59
one_shot_fast 1.16 2.48 23.47
low_ram_safe 0.98 2.49 5.02
vmm_fast 1.14 3.44 5.12
nvme_baseline 1.03 2.48 7.11

VAE decode

Method / scenario (details) Latency (s) Peak GPU (absolute, GiB) Peak RAM (RSS, GiB)
Official leaf 0.32 2.80 4.39
one_shot_fast 0.30 2.80 22.17
low_ram_safe 0.31 2.80 3.80
vmm_fast 0.39 3.44 3.81
nvme_baseline 0.31 2.80 5.81

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 69.97 7.15 28.77
one_shot_fast linear_runtime resident 54.33 7.43 27.12
low_ram_safe linear_runtime resident 69.98 7.18 28.20
vmm_fast vmm_fast_runtime resident 48.73 7.27 29.53
nvme_baseline vmm_runtime resident 60.50 7.24 26.02

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 (s) Average (s/step) Tracked total (s) Peak GPU (absolute, GiB) Peak RAM (RSS, GiB)
Official leaf (reference) official leaf hooks resident 28.60 3.57 45.55 6.93 29.79
one_shot_fast linear_runtime resident 12.79 🟢 ↓ 1.60 🟢 ↓ 43.29 🟢 ↓ 7.06 🔴 ↑ 26.97 🟢 ↓
vmm_fast vmm_fast_runtime resident 11.31 🟢 ↓ 1.41 🟢 ↓ 28.00 🟢 ↓ 6.90 🟢 ↓ 29.48 🟢 ↓
nvme_baseline vmm_runtime resident 134.89 16.86 154.75 6.89 30.31

Phase measurements

The encoder phase includes load/encode/cleanup; connectors are inside the generate aggregate, which also includes transformer setup and denoise. Do not add this aggregate to the denoise column above.

Text encoder phase (load/encode/cleanup)

Method / scenario (details) Latency (s) Peak GPU (absolute, GiB) Peak RAM (RSS, GiB)
Official leaf 11.37 4.55 25.96
one_shot_fast 11.40 4.38 26.03
vmm_fast 10.95 4.63 25.94
nvme_baseline 11.64 4.51 26.04

Generate aggregate (connectors/setup/denoise)

Method / scenario (details) Latency (s) Peak GPU (absolute, GiB) Peak RAM (RSS, GiB)
Official leaf 32.58 6.93 28.61
one_shot_fast 30.54 7.06 26.97
vmm_fast 16.20 6.90 29.48
nvme_baseline 141.70 6.89 30.31

VAE load

Method / scenario (details) Latency (s) Peak GPU (absolute, GiB) Peak RAM (RSS, GiB)
Official leaf 0.83 2.38 29.79
one_shot_fast 0.67 2.19 23.34
vmm_fast 0.26 3.21 4.94
nvme_baseline 0.70 2.24 7.06

VAE decode

Method / scenario (details) Latency (s) Peak GPU (absolute, GiB) Peak RAM (RSS, GiB)
Official leaf 0.34 2.64 28.68
one_shot_fast 0.33 2.51 22.13
vmm_fast 0.26 3.21 3.80
nvme_baseline 0.33 2.61 5.90

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 45.55 6.93 29.79
one_shot_fast linear_runtime resident 43.29 7.06 26.97
vmm_fast vmm_fast_runtime resident 28.00 6.90 29.48
nvme_baseline vmm_runtime resident 154.75 6.89 30.31

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 (s) Average (s/step) Tracked total (s) Peak GPU (absolute, GiB) Peak RAM (RSS, GiB)
Official leaf (no stream) (reference) official leaf hooks resident 260.56 32.57 435.10 7.29 38.53
wsl_compat (3 GiB override) linear_runtime resident 149.73 🟢 ↓ 18.72 🟢 ↓ 335.39 🟢 ↓ 7.23 🟢 ↓ 38.53
vmm_fast (bounded) vmm_fast_runtime resident 95.36 🟢 ↓ 11.92 🟢 ↓ 268.93 🟢 ↓ 7.17 🟢 ↓ 38.53

Phase measurements

The encoder phase includes load/encode/cleanup; connectors are inside the generate aggregate, which also includes transformer setup and denoise. Do not add this aggregate to the denoise column above.

Text encoder phase (load/encode/cleanup)

Method / scenario (details) Latency (s) Peak GPU (absolute, GiB) Peak RAM (RSS, GiB)
Official leaf (no stream) 139.13 4.85 38.53
wsl_compat (3 GiB override) 134.60 4.85 38.53
vmm_fast (bounded) 135.09 4.70 38.53

Generate aggregate (connectors/setup/denoise)

Method / scenario (details) Latency (s) Peak GPU (absolute, GiB) Peak RAM (RSS, GiB)
Official leaf (no stream) 287.29 7.29 32.11
wsl_compat (3 GiB override) 192.92 7.23 30.10
vmm_fast (bounded) 125.32 7.17 30.29

VAE load

Method / scenario (details) Latency (s) Peak GPU (absolute, GiB) Peak RAM (RSS, GiB)
Official leaf (no stream) 7.36 2.44 7.00
wsl_compat (3 GiB override) 6.85 2.44 6.99
vmm_fast (bounded) 7.48 2.46 7.00

VAE decode

Method / scenario (details) Latency (s) Peak GPU (absolute, GiB) Peak RAM (RSS, GiB)
Official leaf (no stream) 0.93 2.70 5.69
wsl_compat (3 GiB override) 0.63 2.70 5.69
vmm_fast (bounded) 0.62 2.78 5.70

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 resident 435.10 7.29 38.53
wsl_compat (3 GiB override) linear_runtime resident 335.39 7.23 38.53
vmm_fast (bounded) vmm_fast_runtime resident 268.93 7.17 38.53

VAE strategies — separate native-encoder workload

1280×704, 8 steps, seed 43. These pairs use a native text encoder, unlike the shared-leaf-encoder comparisons above.

Platform / Scenario (details) Transformer runtime VAE route Denoise (s) Average (s/step) Tracked total (s) Peak GPU (absolute, GiB) Peak RAM (RSS, GiB)
Windows / vmm_fast / resident VAE vmm_fast_runtime resident 13.99 1.75 39.18 7.15 27.37
Windows / vmm_fast / leaf VAE vmm_fast_runtime leaf 14.37 1.80 40.34 7.17 27.37
Linux / vmm_fast / resident VAE vmm_fast_runtime resident 17.12 2.14 40.30 6.56 27.33
Linux / vmm_fast / leaf VAE vmm_fast_runtime leaf 17.03 2.13 37.65 6.53 27.36

Phase measurements

Scenario (details) Phase Wall (s) Peak GPU (absolute, GiB) Peak RAM (RSS, GiB)
vmm_fast / resident VAE Text encoder phase (load/encode/cleanup) 14.29 6.79 25.12
vmm_fast / resident VAE Generate aggregate (connectors/setup/denoise) 21.72 7.15 27.37
vmm_fast / resident VAE VAE load 1.03 2.88 2.86
vmm_fast / resident VAE VAE decode 0.33 3.19 1.65
vmm_fast / leaf VAE Text encoder phase (load/encode/cleanup) 14.65 6.81 25.12
vmm_fast / leaf VAE Generate aggregate (connectors/setup/denoise) 22.28 7.17 27.37
vmm_fast / leaf VAE VAE load 0.06 1.68 1.61
vmm_fast / leaf VAE VAE decode 1.12 2.23 3.17
vmm_fast / resident VAE Text encoder phase (load/encode/cleanup) 15.63 6.26 25.14
vmm_fast / resident VAE Generate aggregate (connectors/setup/denoise) 23.29 6.56 27.33
vmm_fast / resident VAE VAE load 0.66 2.44 2.90
vmm_fast / resident VAE VAE decode 0.34 2.76 1.65
vmm_fast / leaf VAE Text encoder phase (load/encode/cleanup) 14.97 6.23 25.13
vmm_fast / leaf VAE Generate aggregate (connectors/setup/denoise) 21.51 6.53 27.36
vmm_fast / leaf VAE VAE load 0.02 1.27 1.60
vmm_fast / leaf VAE VAE decode 0.75 1.82 3.19

Completed CUDA timing — native-encoder VAE pairs only

These completed event durations are not interchangeable with host wall averages.

Scenario (details) CUDA phase (s) CUDA warm, steps 2–8 (s/step)
Windows / resident VAE 14.64 1.37
Windows / leaf VAE 15.01 1.37
Linux / resident VAE 17.40 1.06
Linux / leaf VAE 17.30 1.06

Windows SDNQ INT4

Saved INT4 transformer, 1280×704, 8 steps, seed 43; resident VAE. Compare within this pair, not as an isolated BF16-versus-INT4 speedup.

Platform / Scenario (details) Transformer runtime VAE route Denoise (s) Average (s/step) Tracked total (s) Peak GPU (absolute, GiB) Peak RAM (RSS, GiB)
Windows / SDNQ / official leaf (reference) official leaf hooks resident 21.54 2.69 50.05 7.10 25.94
Windows / SDNQ / one_shot_fast sdnq_runtime resident 11.74 🟢 ↓ 1.47 🟢 ↓ 46.56 🟢 ↓ 7.10 25.99 🔴 ↑

Phase measurements

Scenario (details) Phase Wall (s) Peak GPU (absolute, GiB) Peak RAM (RSS, GiB)
SDNQ / official leaf Text encoder phase (load/encode/cleanup) 18.20 4.79 25.94
SDNQ / official leaf Generate aggregate (connectors/setup/denoise) 30.38 7.10 11.85
SDNQ / official leaf VAE aggregate (load/decode/cleanup) 1.40 2.80 13.20
SDNQ / one_shot_fast Text encoder phase (load/encode/cleanup) 18.50 4.79 25.99
SDNQ / one_shot_fast Generate aggregate (connectors/setup/denoise) 26.59 7.10 17.52
SDNQ / one_shot_fast VAE aggregate (load/decode/cleanup) 1.40 4.97 11.44

Windows warm_process — two generations in one process

1280×704 BF16, 8 steps per generation, initial seed 43; shared leaf encoder, resident VAE. This is a repeated workload, not a single-image comparison.

Measurement First (s) Second (s)
Transformer plan/attachment event 11.30 4.69
Denoise-call wall 12.18 11.94
Prepare through completed CPU latent readback 13.66 13.39
Scenario (details) Tracked total for both generations (s) Peak GPU (absolute, GiB) Peak RAM (RSS, GiB)
warm_process linear_runtime 75.11 7.52
Scenario (details) Phase Wall (s) Peak GPU (absolute, GiB) Peak RAM (RSS, GiB)
warm_process Text encoder phase 21.76 4.79 25.94
warm_process Generate aggregate (both preparations/generations) 50.78 7.52 28.01
warm_process VAE decode (final generation) 0.30 2.80 22.17

Recommendations

The local rc3 installed-wheel image checks on Linux and WSL are recorded separately. They confirm exact output for their fixed platform recipes; they do not replace the benchmark rankings or establish a performance improvement.

Hardware / priority Recommendation from these measurements
8 GiB GPU, ample system RAM, one image Compare one_shot_fast and vmm_fast. On Windows, one_shot_fast has shorter denoise time, while vmm_fast has the shortest tracked total in the shared-encoder comparison. On Linux, vmm_fast has both the shortest denoise time and tracked total.
Lower transformer-phase RAM priority Inspect nvme_baseline phase peaks; its file-backed route can trade memory retention for transfers. Text encoding still reaches about 26 GiB RSS on Windows.
Lower decode GPU pressure Leaf VAE lowers decode GPU peaks in the separate native-encoder pair, at extra decode time/RAM.
Neither RAM nor GPU headroom is sufficient for decode Use supported VAE tiling and verify output quality; weight offloading alone does not eliminate activations.
WSL Use the bounded native recipe or explicit-cap wsl_compat recipe. Do not copy Windows source-registration ceilings.
Repeated preparations in one process Consider the separately measured warm_process case; its two-generation total is not a single-image total.

low_ram_safe did not have the lowest global RSS in the Windows comparison. No selected row certifies a low-system-RAM machine.

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.