Land the ltx2_two_stage inference preset (PR 6 commit 1/5) that exposes
the public LTX-2 two-stage distilled flow: half-resolution denoise
followed by 2x spatial upsample + stage-2 refine denoise (3 steps with
the official distilled sigma schedule, or 2 steps with the reduced
variant).
Schema:
- new _REFINE_STAGE PresetStageSpec with kind="refinement" and
allowed per-request overrides {num_inference_steps, guidance_scale,
image_crf, video_position_offset_sec}
- new LTX2_TWO_STAGE preset with stage_schemas=(denoise, refine) and
stage_defaults.refine={num_inference_steps: 2, guidance_scale: 1.0}
matching the load_kwargs the internal ltx2-streaming gpu_pool uses
- LTX2_TWO_STAGE registered via ALL_PRESETS -> _register_presets()
Init-time refine wiring (enabled, add_noise, upsampler/LoRA/transformer
paths) flows through generator.pipeline.preset_overrides.refine.* and
generator.pipeline.components.{upsampler_weights, lora_path} in a
follow-up commit — the refine stage's internal implementation
(fastvideo/pipelines/stages/ltx2_refine.py in FastVideo-internal) already
treats those as FastVideoArgs fields; this commit only ships the public
preset surface.
5 new tests under fastvideo/tests/api/test_presets.py::TestLtx2Presets:
registration count (3 presets now), two-stage topology, stage defaults,
valid per-request refine override keys, and unknown-override rejection.