LTX 2.3 image

Model and requirements

The runners use LTX image custom blocks. Complete installation before running.

Available runners

Script in scripts/ltx2_image/ Purpose
run_dynamic_minimal.py Small staged BF16 example with native VMM transformer
run_dynamic_modular_distilled.py Linear DDO and Diffusers compatibility presets
run_dynamic_modular_vmm_distilled.py Native VMM or protected NVMe transformer
run_dynamic_modular_vmm_diagnostics_distilled.py Native diagnostics and execution experiments
run_dynamic_modular_sdnq_distilled.py Saved SDNQ transformer

Inspect options without generating an image:

python -B scripts/ltx2_image/run_dynamic_modular_distilled.py --help

Run the model

Linear DDO: one_shot_fast

This linear recipe fixes the published image dimensions, steps and seed:

python -B scripts/ltx2_image/run_dynamic_modular_distilled.py --ddo-preset one_shot_fast --width 1280 --height 704 --steps 8 --seed 43 --purge-before-transformer --memory-monitor rss --show-metrics --save-metrics

Run from an elevated Windows terminal for standby purge. The real default cat prompt is used; downloads and a different environment can change elapsed time. For controlled performance comparisons, use the conditions in image benchmarks, including encoder and VAE strategy.

Native VMM: vmm/auto on Windows

Install the matching native allocator wheel from the setup guide. Run this command from the examples checkout in your activated environment:

python -B scripts/ltx2_image/run_dynamic_modular_vmm_distilled.py `
  --ddo-backend vmm --ddo-preset auto `
  --width 1280 --height 704 --steps 8 --seed 43 `
  --ddo-vmm-resident-weight-budget-gb 4 `
  --ddo-vmm-total-staging-gb 1.5 `
  --ddo-vmm-source-cache-gb 24.625 `
  --ddo-vmm-source-registered-gb 24.625 `
  --ddo-vmm-execution-backing-reclaim `
  --purge-before-transformer `
  --memory-monitor rss --metrics-level 2 `
  --show-profile --show-metrics --save-metrics

This usage recipe explicitly enables execution backing reclaim. That opt-in does not change the recorded conditions or results of historical benchmark rows.

The runner defaults to --ddo-backend vmm --ddo-preset auto, selecting vmm_fast_runtime through the public DDO API. Guidance 1, rescale 0.7, disabled PAG and 32 MiB pages are already defaults; no API-selection flag is needed. The real default cat prompt is used, the text encoder uses official leaf/group offload, and the VAE remains resident. No native build is performed at inference.

All four public LTX image entries accept --custom-blocks SOURCE and --custom-blocks-revision REVISION. Omitted source preserves the existing local modular_diffusers/custom_blocks/ltx2_image clone. To select Hub code, use --custom-blocks elismasilva/ltx2.3_image_custom_blocks and optionally a reviewed commit revision. These select executable code, not weights; use trusted sources. A revision applies only to Hub code, not a local clone. See the parameter inventory for loading and report semantics.

The weight arena is capped at 4 GiB; total staging is 1.5 GiB. Retained CPU source storage and CUDA registration each have a separate 24.625 GiB ceiling. These are the measured Windows recipe's capacities, not a total GPU-memory cap or universal model defaults. Activations and other components also need memory. For purge, use an elevated Windows terminal. For Linux/WSL capacities and staging semantics, see runtime and preset selection.

Optional LoRA

The image runners accept the same --lora, --lora-weight-name, --lora-revision and --lora-scale controls as the video runners. Use a compatible transformer-only adapter; native VMM execution with LoRA requires separate CUDA validation. No adapter is loaded by default.

Runtime and preset selection

See presets. Native VMM requires a compatible installed allocator. Do not treat a short command with implicit capacities as the published native benchmark: active weight, staging and retained/registered source limits matter. --text-encoder-native-vmm independently selects the native encoder path.

The public image VMM runners share one DDO parameter vocabulary and defaults table. Use the separate diagnostic entry for native execution investigations.

Purge and report controls remain optional. Use your selected environment's explicit Python if it is not activated. Selecting --ddo-preset nvme_baseline still selects the protected NVMe route; it does not enable the public native-fast path. Diagnostic adapter selection belongs to the separate diagnostic entry.

Use only --ddo-vmm-total-staging-gb to state total host staging capacity. You do not need to know the internal slot count.

Selected installed rc3 image validation used 0.375 GiB total staging on WSL, with weights 4 GiB, retained source cache 24.625 GiB and registration 0.5 GiB. Native Linux used 1.5 GiB total staging and 24.625 GiB registration with the same weight/cache ceilings. These are separate fixed workloads, not portable defaults. See installed-wheel validation conditions before reproducing or comparing them.

Optional weight formats

For saved SDNQ weights, install the optional SDNQ backend following setup and use run_dynamic_modular_sdnq_distilled.py. It does not require the FP8 extra or a native DLL. The image benchmark compares the selected INT4 DDO and leaf cases.

Metrics and profile

Add --show-profile --show-metrics --save-metrics where supported. --output-dir selects the output location; the runner prints the JSON path. Use RSS monitoring for comparison with the published RSS tables.

Runner-specific parameters

Linear capacity profile

Create a profile for the BF16 linear runner (real GPU calibration; run elevated on Windows for purge). The existing short calibration executes up to two denoise steps and stops before decode; it does not save an image.

python -B scripts/ltx2_image/run_dynamic_modular_distilled.py `
  --ddo-backend linear --ddo-preset one_shot_fast `
  --width 1280 --height 704 --steps 8 --seed 43 `
  --guidance-scale 1 --guidance-rescale 0.7 --no-pag `
  --ddo-profile ltx-image-bf16-1280x704 --build-ddo-profile `
  --purge-before-transformer --memory-monitor rss --save-metrics `
  --output-dir outputs/ltx_image_linear_profile

For normal generation with that profile, repeat the command without --build-ddo-profile, using a separate output directory. Preserve the checkpoint, custom blocks and calculation options. See profile storage and scope.

See image parameters and shared controls.