Qwen Image 2.1 parameters

This page lists the public controls of run_dynamic_modular_vmm.py. See shared controls for the DDO route/capacity and reclaim options, reporting defaults and Windows purge switches. --help / -h prints the installed checkout's interface without generating an image. Options in other Qwen entries are identified separately below.

Execution

The BF16 linear run_dynamic_modular.py also supports --ddo-profile NAME and --build-ddo-profile, independently of display-only --show-profile. See the linear calibration recipe. These capacity controls are not exposed by the public minimal, VMM, SDNQ or Diffusers leaf entries.

Control Purpose
--variant base / turbo Default base; selects the checkpoint family and preparation schedule.
--model-path PATH_OR_ID Pipeline checkpoint containing the model components; omitted selects Qwen/Qwen-Image-2.1 or its Turbo counterpart from --variant.
--custom-blocks SOURCE Executable modular Python code, not weights. Default elismasilva/qwen_image_2.1_custom_blocks; accepts a trusted Hub repository or local checkout containing modular_config.json.
--custom-blocks-revision REVISION Optional Hub code revision; prefer a commit SHA. Rejected for a local checkout; it does not switch local Git branches.
--local-files-only Default off. Require cached model and custom-code files instead of downloading them.
--prompt TEXT Text conditioning; default is the capybara/wizard/candlelight prompt in the runner.
--width, --height Output dimensions; both default to 1024.
--seed Random seed; default 42.
--steps Default 25 for base. Turbo uses checkpoint sigmas; this is not a Turbo schedule replacement. The published base recipes use 20 explicitly.
--output-dir DIRECTORY Default outputs/qwen_image_21_vmm under the examples root; saves image.png and enabled reports.

Only use custom code you trust: loading it executes Python. Both native image entries use BF16; this Qwen entry computes on cuda:0, with CFG 1 and KV cache enabled. These are fixed execution choices, not additional CLI options.

VAE strategy and memory

All switches below are off by default. With no VAE route override, vmm/auto selects no-stream leaf offload through DDO. The protected NVMe route preserves its preset component policy.

Control Purpose and constraints
--vae-leaf-offload Explicit Diffusers leaf route without streaming; overrides the preset VAE route.
--vae-resident Explicit resident VAE decode. Cannot be combined with leaf or native VAE selection.
--vae-vmm-offload Experimental native VAE component ownership. Requires --ddo-backend vmm --ddo-preset auto, a separate VAE path and a finite positive weight budget. Cannot be combined with leaf/resident selection.
--vae-model-path DIRECTORY Existing standalone BF16 VAE directory, loaded locally; required only with native VAE selection.
--vae-vmm-resident-weight-budget-gb GIB Independent VAE weight ceiling; required only with native VAE selection. Does not change the transformer budget.
--vae-tiling Spatial tiling to reduce VAE activation demand; may change decode latency.
--vae-no-temporal-cache Opt in to the custom VAE's single-frame, untiled decode path. Tiled decode takes precedence.
--vae-alias-residuals Reuse residual inputs in that custom single-frame path. Requires --vae-no-temporal-cache; not active under tiling.
--vae-direct-padding Use custom convolution padding in that single-frame path. Requires --vae-no-temporal-cache; not active under tiling.
--release-native-cache-before-vae After transformer cleanup, explicitly request native idle-pool trim before loading the VAE. Requires a supporting allocator. Releases only eligible idle backing, not live tensors; independent of Windows standby purge.
--clear-cublas-workspaces-before-vae Experimental single-GPU cuBLAS workspace cleanup at the same boundary. Requires --release-native-cache-before-vae. Does not imply all driver/context memory was freed.

These optional controls change component execution or memory lifecycle; they are not passive diagnostics. A supported switch is not general model/platform or performance acceptance. Preserve the exact VAE choices when comparing results.

Other Qwen runners

All public Qwen entries use the shared parameter vocabulary. Linear and SDNQ capacity settings follow the selected preset. Advanced native experiments use run_dynamic_modular_vmm_diagnostics.py.

Entry Interface and defaults
run_dynamic_minimal.py Native VMM transformer (--ddo-backend vmm / --ddo-preset auto), native capacities and opt-in execution backing reclaim; base/Turbo, custom blocks, offline loading and opt-in VAE tiling. Defaults: 1024², base 25 steps, seed 42, full memory monitoring. No separate profile/metrics display switches.
run_dynamic_modular.py Linear/compatibility route; same source/sampling vocabulary as VMM. Defaults: 1024², base 25 steps, seed 42, RSS/metrics level 2, display/save enabled, profile disabled. Supports the component controls described below.
run_dynamic_modular_sdnq.py Packed base INT4 or its leaf control; backend linear, preset auto, 512², 20 steps, seed 42. Same reporting defaults as linear. --model-path overrides the packed transformer; --model-revision optionally pins it. --auxiliary-model defaults to Qwen/Qwen-Image-2.1. See the SDNQ guide.
run_diffusers_leaf.py Conventional full-pipeline control, with no DDO runtime or custom blocks. No backend/preset selectors. Pipeline --model-path, prompt, dimensions, steps, seed, offline loading, VAE tiling and reporting only; defaults 512²/20 steps/seed 42 and RSS/level 2. Exposes purge before run/transformer and after run, with no separate encoder boundary.

--text-encoder-preset and --vae-linear-offload belong to entries that expose them, such as the linear runner; they are not options of this public VMM entry. The linear encoder override accepts diffusers_leaf_offload_compat only; omitting it preserves preset resolution. Linear and SDNQ share the explicit VAE resident/leaf/linear overrides (mutually exclusive), tiling and single-frame cache/residual/padding controls. Eager --vae-linear-offload requires a linear preset; the residual and padding options require --vae-no-temporal-cache. Native VAE ownership and native idle-cache/cuBLAS cleanup remain VMM-only.

The SDNQ guide covers only the selected base INT4 recipe, not Turbo. The native image entry uses the same DDO route/capacity and reclaim parameters as LTX image. Native timing/transport experiments belong to run_dynamic_modular_vmm_diagnostics.py.

Reporting and diagnostic entries

Use the shared metrics/profile controls. The public entry accepts metrics levels 1 and 2; it does not accept level 0. GPU-event timing and transport experiments belong to the separate diagnostic entry. See developer diagnostics for cleanup and measurement scope.