diff --git a/apps/dreamverse/dreamverse/minimax_h3_generation.py b/apps/dreamverse/dreamverse/minimax_h3_generation.py index 72c6c3926..19efc356f 100644 --- a/apps/dreamverse/dreamverse/minimax_h3_generation.py +++ b/apps/dreamverse/dreamverse/minimax_h3_generation.py @@ -96,7 +96,7 @@ class MiniMaxH3GenerationBackend: model_path=model_path, pipeline=PipelineSelection( components=ComponentConfig(lora_path=adapter_path, lora_strength=1.0), - minimax_h3=MiniMaxH3Options(vae_parallel_decode=True, vae_parallel_decode_strategy="gather"), + model=MiniMaxH3Options(vae_parallel_decode=True, vae_parallel_decode_strategy="gather"), ), engine=EngineConfig( num_gpus=DREAMVERSE_SP_SIZE, diff --git a/apps/dreamverse/dreamverse/tests/test_minimax_h3_generation.py b/apps/dreamverse/dreamverse/tests/test_minimax_h3_generation.py index c01385a3f..9cf0556be 100644 --- a/apps/dreamverse/dreamverse/tests/test_minimax_h3_generation.py +++ b/apps/dreamverse/dreamverse/tests/test_minimax_h3_generation.py @@ -93,8 +93,8 @@ def test_initialize_builds_vsa_datafree_fasth3_generator(monkeypatch): assert config.engine.attention.vsa_sparsity == 0.9 assert config.engine.attention.vsa_tile_size == 64 assert config.engine.compile.regional is False - assert config.pipeline.minimax_h3.vae_parallel_decode is True - assert config.pipeline.minimax_h3.vae_parallel_decode_strategy == "gather" + assert config.pipeline.model.vae_parallel_decode is True + assert config.pipeline.model.vae_parallel_decode_strategy == "gather" assert config.engine.num_gpus == 4 assert config.engine.parallelism.tp_size == 1 assert config.engine.parallelism.sp_size == 4 diff --git a/docs/contributing/env_vars.md b/docs/contributing/env_vars.md index 7e9091b51..50dac146f 100644 --- a/docs/contributing/env_vars.md +++ b/docs/contributing/env_vars.md @@ -198,8 +198,8 @@ longer exists also fails the test, so the fixing pull request deletes its entry. | `FASTVIDEO_MLX_WINDOW` | int | `0` | attention | MLX FastWan windowed attention size in tokens. 0 uses full attention. | | `FASTVIDEO_MLX_WINDOW_SINK` | int | `0` | attention | Number of sink tokens that MLX windowed attention always attends to. | | `FASTVIDEO_INFERENCE_TORCH_COMPILE` | bool | `0` | performance | Compile each DiT transformer block with fullgraph torch.compile at inference. Same as engine.compile.regional=True. | -| `FASTVIDEO_VAE_PARALLEL_DECODE` | bool | `0` | performance | MiniMax-H3 VAE decode splits its temporal chunks across the sequence-parallel ranks instead of running serially on the output rank. Same as pipeline.minimax_h3.vae_parallel_decode=True. | -| `FASTVIDEO_VAE_PARALLEL_ENCODE` | bool | `0` | performance | MiniMax-H3 reference-video VAE encode splits its temporal chunks across the sequence-parallel ranks. Same as pipeline.minimax_h3.vae_parallel_encode=True. | +| `FASTVIDEO_VAE_PARALLEL_DECODE` | bool | `0` | performance | MiniMax-H3 VAE decode splits its temporal chunks across the sequence-parallel ranks instead of running serially on the output rank. Same as pipeline.model.minimax_h3.vae_parallel_decode=True. | +| `FASTVIDEO_VAE_PARALLEL_ENCODE` | bool | `0` | performance | MiniMax-H3 reference-video VAE encode splits its temporal chunks across the sequence-parallel ranks. Same as pipeline.model.minimax_h3.vae_parallel_encode=True. | | `FASTVIDEO_VAE_PARALLEL_DECODE_STRATEGY` | str | unset | performance | Collective that moves chunks in parallel VAE decode: gather (used when unset) or all_gather. | | `FASTVIDEO_MINIMAX_H3_FUSIONS` | str | `""` | performance | MiniMax-H3 inference-only Triton fusions: all, 1, or a comma-separated subset of modulate,qknorm_rope,swiglu. Empty, 0, or none keeps the eager implementation. | | `FASTVIDEO_FSDP2_AUTOWRAP` | bool | `0` | performance | FSDP2 shards modules by parameter count instead of the model's shard conditions. Not supported by self-forcing distillation. | @@ -235,7 +235,7 @@ longer exists also fails the test, so the fixing pull request deletes its entry. | `FASTVIDEO_LTX2_GEMMA_LOG` | str | `""` | debug | Log file for LTX-2 Gemma text-encoder hidden states, used by parity tests. Deprecated names: `LTX2_FASTVIDEO_GEMMA_LOG`. | | `FASTVIDEO_COSMOS25_LOG_KNOBS` | bool | `0` | debug | Log the Cosmos 2.5 latent-preparation conditioning inputs. | | `FASTVIDEO_CFG_GATE_STEP` | float | `1.0` | sampling | CFG gating fraction in [0, 1]. Steps before len(timesteps) \* X run the conditional and unconditional forwards; later steps reuse the cached difference. 1.0 disables gating. | -| `FASTVIDEO_LTX2_USE_DISTILLED_SIGMAS` | bool | `1` | sampling | LTX-2 uses the distilled sigma schedule when pipeline.ltx2.use_distilled_sigmas is also true. Deprecated names: `LTX2_USE_DISTILLED_SIGMAS`. | +| `FASTVIDEO_LTX2_USE_DISTILLED_SIGMAS` | bool | `1` | sampling | LTX-2 uses the distilled sigma schedule when pipeline.model.ltx2.use_distilled_sigmas is also true. Deprecated names: `LTX2_USE_DISTILLED_SIGMAS`. | | `FASTVIDEO_EVAL_CACHE` | path | computed | eval | Cache directory for evaluation models and datasets. Defaults to $FASTVIDEO_CACHE_ROOT/eval. | | `FASTVIDEO_PHYSICS_IQ_BUCKET_URL` | str | `https://storage.googleapis.com/physics-iq-benchmark` | eval | Base URL of the Physics-IQ benchmark bucket. | | `FASTVIDEO_VBENCH_FULL_INFO_JSON` | str | unset | eval | Path to VBench_full_info.json, used instead of the vendored copy. Deprecated names: `VBENCH_FULL_INFO_JSON`. | diff --git a/docs/design/inference_schema_parity_inventory.yaml b/docs/design/inference_schema_parity_inventory.yaml index 7c3391552..cb616a4f1 100644 --- a/docs/design/inference_schema_parity_inventory.yaml +++ b/docs/design/inference_schema_parity_inventory.yaml @@ -78,47 +78,53 @@ surfaces: - pipeline.embedded_cfg_scale - pipeline.dmd_denoising_steps - pipeline.boundary_ratio - - pipeline.dit - - pipeline.vae + - pipeline.model.generic.dit + - pipeline.model.generic.vae + - pipeline.model.ltx2.dit + - pipeline.model.ltx2.vae + - pipeline.model.minimax_h3.dit + - pipeline.model.minimax_h3.vae + - pipeline.model.longcat.dit + - pipeline.model.longcat.vae unsupported: - pipeline.preset - pipeline.preset_version - pipeline.components.vae_weights moved: pipeline.preset_overrides: - target: generator.pipeline.ltx2.refine - note: "Only the refine mapping applies: resolution copies pipeline.preset_overrides.refine into the pipeline.ltx2.refine fields of the same names. Other keys have no effect." + target: generator.pipeline.model.ltx2.refine + note: "Only the refine mapping applies: resolution copies pipeline.preset_overrides.refine into the pipeline.model.ltx2.refine fields of the same names when the model is LTX-2. Other keys have no effect." preset_owned: - - pipeline.ltx2.vae_spatial_tile_size_in_pixels - - pipeline.ltx2.vae_spatial_tile_overlap_in_pixels - - pipeline.ltx2.vae_temporal_tile_size_in_frames - - pipeline.ltx2.vae_temporal_tile_overlap_in_frames - - pipeline.ltx2.initial_latent_path - - pipeline.ltx2.audio_latent_path - - pipeline.ltx2.legacy_native_noise_order - - pipeline.ltx2.use_distilled_sigmas - - pipeline.ltx2.refine.enabled - - pipeline.ltx2.refine.num_inference_steps - - pipeline.ltx2.refine.guidance_scale - - pipeline.ltx2.refine.add_noise - - pipeline.ltx2.refine.image_crf - - pipeline.ltx2.refine.video_position_offset_sec - - pipeline.ltx2.refine.transformer_path - - pipeline.ltx2.refine.lora_path - - pipeline.ltx2.refine.noise_path - - pipeline.ltx2.refine.audio_noise_path - - pipeline.minimax_h3.sequential_load - - pipeline.minimax_h3.video_decode_backend - - pipeline.minimax_h3.taeh3_checkpoint - - pipeline.minimax_h3.taeh3_chunk_size - - pipeline.minimax_h3.vae_parallel_decode - - pipeline.minimax_h3.vae_parallel_encode - - pipeline.minimax_h3.vae_parallel_decode_strategy - - pipeline.longcat.enable_bsa - - pipeline.longcat.bsa_sparsity - - pipeline.longcat.bsa_cdf_threshold - - pipeline.longcat.bsa_chunk_q - - pipeline.longcat.bsa_chunk_k + - pipeline.model.ltx2.vae_spatial_tile_size_in_pixels + - pipeline.model.ltx2.vae_spatial_tile_overlap_in_pixels + - pipeline.model.ltx2.vae_temporal_tile_size_in_frames + - pipeline.model.ltx2.vae_temporal_tile_overlap_in_frames + - pipeline.model.ltx2.initial_latent_path + - pipeline.model.ltx2.audio_latent_path + - pipeline.model.ltx2.legacy_native_noise_order + - pipeline.model.ltx2.use_distilled_sigmas + - pipeline.model.ltx2.refine.enabled + - pipeline.model.ltx2.refine.num_inference_steps + - pipeline.model.ltx2.refine.guidance_scale + - pipeline.model.ltx2.refine.add_noise + - pipeline.model.ltx2.refine.image_crf + - pipeline.model.ltx2.refine.video_position_offset_sec + - pipeline.model.ltx2.refine.transformer_path + - pipeline.model.ltx2.refine.lora_path + - pipeline.model.ltx2.refine.noise_path + - pipeline.model.ltx2.refine.audio_noise_path + - pipeline.model.minimax_h3.sequential_load + - pipeline.model.minimax_h3.video_decode_backend + - pipeline.model.minimax_h3.taeh3_checkpoint + - pipeline.model.minimax_h3.taeh3_chunk_size + - pipeline.model.minimax_h3.vae_parallel_decode + - pipeline.model.minimax_h3.vae_parallel_encode + - pipeline.model.minimax_h3.vae_parallel_decode_strategy + - pipeline.model.longcat.enable_bsa + - pipeline.model.longcat.bsa_sparsity + - pipeline.model.longcat.bsa_cdf_threshold + - pipeline.model.longcat.bsa_chunk_q + - pipeline.model.longcat.bsa_chunk_k compatibility_only: pipeline.experimental: "Open mapping for settings without a typed path: the pipeline_config source (a JSON path, a mapping, or a PipelineConfig), keys that runtime code reads by name (for example ray_runtime_env), and PipelineConfig attribute overrides for model-only fields (for example flow_shift_sr). Resolution rejects a key whose PipelineConfig attribute has a typed path." internal_only: @@ -163,19 +169,19 @@ surfaces: moved: enable_bsa: sources: [fastvideo.configs.pipelines.longcat.LongCatT2V480PConfig, fastvideo.configs.pipelines.longcat.LongCatT2V704PConfig] - target: generator.pipeline.longcat.enable_bsa + target: generator.pipeline.model.longcat.enable_bsa bsa_sparsity: sources: [fastvideo.configs.pipelines.longcat.LongCatT2V480PConfig, fastvideo.configs.pipelines.longcat.LongCatT2V704PConfig] - target: generator.pipeline.longcat.bsa_sparsity + target: generator.pipeline.model.longcat.bsa_sparsity bsa_cdf_threshold: sources: [fastvideo.configs.pipelines.longcat.LongCatT2V480PConfig, fastvideo.configs.pipelines.longcat.LongCatT2V704PConfig] - target: generator.pipeline.longcat.bsa_cdf_threshold + target: generator.pipeline.model.longcat.bsa_cdf_threshold bsa_chunk_q: sources: [fastvideo.configs.pipelines.longcat.LongCatT2V480PConfig, fastvideo.configs.pipelines.longcat.LongCatT2V704PConfig] - target: generator.pipeline.longcat.bsa_chunk_q + target: generator.pipeline.model.longcat.bsa_chunk_q bsa_chunk_k: sources: [fastvideo.configs.pipelines.longcat.LongCatT2V480PConfig, fastvideo.configs.pipelines.longcat.LongCatT2V704PConfig] - target: generator.pipeline.longcat.bsa_chunk_k + target: generator.pipeline.model.longcat.bsa_chunk_k preset_owned: flux2_text_encoder_type: sources: diff --git a/docs/design/server_contracts/dynamo.md b/docs/design/server_contracts/dynamo.md index 5600b0fd4..cc0028e78 100644 --- a/docs/design/server_contracts/dynamo.md +++ b/docs/design/server_contracts/dynamo.md @@ -277,7 +277,7 @@ def build_generator_config(args) -> "GeneratorConfig": workload_type=args.workload or "t2v", preset=args.preset, # e.g. "ltx2_two_stage" components=ComponentConfig(upsampler_weights=args.refine_upsampler), - ltx2=LTX2Options(refine=LTX2RefineOptions(lora_path=args.refine_lora)), + model=LTX2Options(refine=LTX2RefineOptions(lora_path=args.refine_lora)), ), ) ``` diff --git a/docs/inference/offloading.md b/docs/inference/offloading.md index f57785fab..b5ffd9917 100644 --- a/docs/inference/offloading.md +++ b/docs/inference/offloading.md @@ -50,7 +50,7 @@ jobs still need this split: sequence parallel replicates the DiT on each GB10 `VideoGenerator.from_pretrained` accepts the option names below as keywords, except `lazy_module_load` and `h3_sequential_load`. In a YAML config or a dotted override, each option is a typed field: `engine.use_fsdp_inference`, `engine.offload.` as listed in the defaults above, and - `pipeline.minimax_h3.sequential_load` for `h3_sequential_load`. + `pipeline.model.minimax_h3.sequential_load` for `h3_sequential_load`. ### `use_fsdp_inference` @@ -109,8 +109,8 @@ because the encoder has been released. Leave the default on Spark / DGX Spark when `lazy_module_load` is off. When both would arm (the GB10 auto case), lazy owns deferral and sequential stands down so VAE `torch.compile` can attach to the lazy proxy. Force -`pipeline.minimax_h3.sequential_load: true` only when you need the split on a discrete GPU without -lazy load. Set `pipeline.minimax_h3.sequential_load: false` when you need more than one prompt per +`pipeline.model.minimax_h3.sequential_load: true` only when you need the split on a discrete GPU without +lazy load. Set `pipeline.model.minimax_h3.sequential_load: false` when you need more than one prompt per worker and have enough memory to keep the encoder. ### `text_encoder_cpu_offload` diff --git a/docs/inference/optimizations.md b/docs/inference/optimizations.md index 91a1da8e4..d01ce83e2 100644 --- a/docs/inference/optimizations.md +++ b/docs/inference/optimizations.md @@ -317,7 +317,7 @@ gen.generate(request={"prompt": "A raccoon in sunflowers", "output": {"save_vide `engine.quantization.transformer_quant` takes a quantization registry name and builds that config with its default arguments. To pass constructor arguments, such as per-channel granularity, set the config instance on the DiT config -through `pipeline.dit` instead: +through `pipeline.model.generic.dit` instead: ```python from fastvideo import VideoGenerator @@ -326,7 +326,11 @@ from fastvideo.layers.quantization import get_quantization_config gen = VideoGenerator.from_config({ "model_path": "Wan-AI/Wan2.1-T2V-1.3B-Diffusers", "pipeline": { - "dit": {"quant_config": get_quantization_config("FP8")(granularity="channel")}, # slower, higher accuracy + "model": { + "generic": { + "dit": {"quant_config": get_quantization_config("FP8")(granularity="channel")}, # slower, higher accuracy + }, + }, }, }) ``` diff --git a/examples/inference/basic/basic_fasth3.py b/examples/inference/basic/basic_fasth3.py index c9b7642dd..f0784010f 100644 --- a/examples/inference/basic/basic_fasth3.py +++ b/examples/inference/basic/basic_fasth3.py @@ -263,7 +263,7 @@ def build_generator_config(args: argparse.Namespace) -> GeneratorConfig: lora_path=getattr(args, "lora_path", None), lora_strength=float(getattr(args, "lora_strength", 1.0)), ), - minimax_h3=MiniMaxH3Options( + model=MiniMaxH3Options( sequential_load=args.h3_sequential_load, video_decode_backend=None if args.video_decode_backend == "h3-vae" else args.video_decode_backend, taeh3_checkpoint=args.taeh3_checkpoint, diff --git a/examples/inference/basic/basic_fasth3_simplified.py b/examples/inference/basic/basic_fasth3_simplified.py index ea6a3acbd..12bcae6ec 100644 --- a/examples/inference/basic/basic_fasth3_simplified.py +++ b/examples/inference/basic/basic_fasth3_simplified.py @@ -73,7 +73,7 @@ def main() -> None: model_path="MiniMaxAI/MiniMax-H3", pipeline=PipelineSelection( components=ComponentConfig(lora_path=adapter_path, lora_strength=1.0), - minimax_h3=MiniMaxH3Options(vae_parallel_decode=True, vae_parallel_decode_strategy="gather"), + model=MiniMaxH3Options(vae_parallel_decode=True, vae_parallel_decode_strategy="gather"), ), engine=EngineConfig( num_gpus=4, diff --git a/examples/inference/basic/basic_fasth3_simplified_profile.py b/examples/inference/basic/basic_fasth3_simplified_profile.py index c288498d3..fd6d873fd 100644 --- a/examples/inference/basic/basic_fasth3_simplified_profile.py +++ b/examples/inference/basic/basic_fasth3_simplified_profile.py @@ -63,7 +63,7 @@ def main() -> None: model_path="MiniMaxAI/MiniMax-H3", pipeline=PipelineSelection( components=ComponentConfig(lora_path=adapter_path, lora_strength=1.0), - minimax_h3=MiniMaxH3Options(vae_parallel_decode=True, vae_parallel_decode_strategy="gather"), + model=MiniMaxH3Options(vae_parallel_decode=True, vae_parallel_decode_strategy="gather"), ), engine=EngineConfig( num_gpus=4, diff --git a/examples/inference/basic/basic_fasth3_spark.yaml b/examples/inference/basic/basic_fasth3_spark.yaml index 909c14240..977d17259 100644 --- a/examples/inference/basic/basic_fasth3_spark.yaml +++ b/examples/inference/basic/basic_fasth3_spark.yaml @@ -36,9 +36,10 @@ generator: vsa_sparsity: 0.9 vsa_tile_size: 64 pipeline: - minimax_h3: - vae_parallel_decode: true - vae_parallel_decode_strategy: gather + model: + minimax_h3: + vae_parallel_decode: true + vae_parallel_decode_strategy: gather request: prompt: >- A wide cinematic shot of an alpine meadow at sunrise, pale pink mountain diff --git a/examples/inference/basic/basic_fasth3_spark_pair.yaml b/examples/inference/basic/basic_fasth3_spark_pair.yaml index 336c13035..73a11c7d1 100644 --- a/examples/inference/basic/basic_fasth3_spark_pair.yaml +++ b/examples/inference/basic/basic_fasth3_spark_pair.yaml @@ -36,9 +36,10 @@ generator: vsa_sparsity: 0.9 vsa_tile_size: 64 pipeline: - minimax_h3: - vae_parallel_decode: true - vae_parallel_decode_strategy: gather + model: + minimax_h3: + vae_parallel_decode: true + vae_parallel_decode_strategy: gather request: prompt: >- A wide cinematic shot of an alpine meadow at sunrise, pale pink mountain diff --git a/examples/inference/basic/basic_longcat_i2v.py b/examples/inference/basic/basic_longcat_i2v.py index 11715df8a..0b2f004ca 100644 --- a/examples/inference/basic/basic_longcat_i2v.py +++ b/examples/inference/basic/basic_longcat_i2v.py @@ -60,7 +60,7 @@ def basic_generation(): "pin_cpu_memory": False, }, }, - "pipeline": {"longcat": {"enable_bsa": False}}, + "pipeline": {"model": {"longcat": {"enable_bsa": False}}}, }) output_path = "outputs_video/longcat_i2v_basic" @@ -113,7 +113,7 @@ def distill_refine_generation(): }, }, "pipeline": { - "longcat": {"enable_bsa": False}, + "model": {"longcat": {"enable_bsa": False}}, "components": { "lora_path": "FastVideo/LongCat-Video-T2V-Distilled-LoRA", "lora_nickname": "distilled", @@ -171,11 +171,13 @@ def distill_refine_generation(): }, }, "pipeline": { - "longcat": { - "enable_bsa": True, - "bsa_sparsity": 0.875, - "bsa_chunk_q": [4, 4, 4], - "bsa_chunk_k": [4, 4, 4], + "model": { + "longcat": { + "enable_bsa": True, + "bsa_sparsity": 0.875, + "bsa_chunk_q": [4, 4, 4], + "bsa_chunk_k": [4, 4, 4], + }, }, "components": { "lora_path": "FastVideo/LongCat-Video-T2V-Refinement-LoRA", diff --git a/examples/inference/basic/basic_longcat_t2v.py b/examples/inference/basic/basic_longcat_t2v.py index 669a13a3e..d44ece7f2 100644 --- a/examples/inference/basic/basic_longcat_t2v.py +++ b/examples/inference/basic/basic_longcat_t2v.py @@ -53,7 +53,7 @@ def basic_generation(): "pin_cpu_memory": False, }, }, - "pipeline": {"longcat": {"enable_bsa": False}}, + "pipeline": {"model": {"longcat": {"enable_bsa": False}}}, }) output_path = "outputs_video/longcat_t2v_basic" @@ -105,7 +105,7 @@ def distill_refine_generation(): }, }, "pipeline": { - "longcat": {"enable_bsa": False}, + "model": {"longcat": {"enable_bsa": False}}, "components": { "lora_path": "FastVideo/LongCat-Video-T2V-Distilled-LoRA", "lora_nickname": "distilled", @@ -159,11 +159,13 @@ def distill_refine_generation(): }, }, "pipeline": { - "longcat": { - "enable_bsa": True, - "bsa_sparsity": 0.875, - "bsa_chunk_q": [4, 4, 8], - "bsa_chunk_k": [4, 4, 8], + "model": { + "longcat": { + "enable_bsa": True, + "bsa_sparsity": 0.875, + "bsa_chunk_q": [4, 4, 8], + "bsa_chunk_k": [4, 4, 8], + }, }, "components": { "lora_path": "FastVideo/LongCat-Video-T2V-Refinement-LoRA", diff --git a/examples/inference/basic/basic_longcat_vc.py b/examples/inference/basic/basic_longcat_vc.py index 0d92d9e71..482955263 100644 --- a/examples/inference/basic/basic_longcat_vc.py +++ b/examples/inference/basic/basic_longcat_vc.py @@ -69,7 +69,7 @@ def basic_generation(): "pin_cpu_memory": False, }, }, - "pipeline": {"longcat": {"enable_bsa": False}}, + "pipeline": {"model": {"longcat": {"enable_bsa": False}}}, }) output_path = "outputs_video/longcat_vc_basic" @@ -128,7 +128,7 @@ def distill_refine_generation(): }, }, "pipeline": { - "longcat": {"enable_bsa": False}, + "model": {"longcat": {"enable_bsa": False}}, "components": { "lora_path": "FastVideo/LongCat-Video-T2V-Distilled-LoRA", "lora_nickname": "distilled", @@ -185,11 +185,13 @@ def distill_refine_generation(): }, }, "pipeline": { - "longcat": { - "enable_bsa": True, - "bsa_sparsity": 0.875, - "bsa_chunk_q": [4, 4, 8], - "bsa_chunk_k": [4, 4, 8], + "model": { + "longcat": { + "enable_bsa": True, + "bsa_sparsity": 0.875, + "bsa_chunk_q": [4, 4, 8], + "bsa_chunk_k": [4, 4, 8], + }, }, "components": { "lora_path": "FastVideo/LongCat-Video-T2V-Refinement-LoRA", diff --git a/examples/inference/basic/basic_ltx2_3_distilled_i2v.py b/examples/inference/basic/basic_ltx2_3_distilled_i2v.py index 8d3058dd0..07e0039ae 100644 --- a/examples/inference/basic/basic_ltx2_3_distilled_i2v.py +++ b/examples/inference/basic/basic_ltx2_3_distilled_i2v.py @@ -195,7 +195,7 @@ def main() -> None: }, }, "components": {"upsampler_weights": str(refine_upsampler_path)}, - "ltx2": {"refine": {"lora_path": ""}}, + "model": {"ltx2": {"refine": {"lora_path": ""}}}, "experimental": {"pipeline_config": pipeline_config}, "vae_tiling": False, }, diff --git a/examples/inference/basic/basic_ltx2_3_distilled_i2v_typed.py b/examples/inference/basic/basic_ltx2_3_distilled_i2v_typed.py index 63c81fca3..146e867fb 100644 --- a/examples/inference/basic/basic_ltx2_3_distilled_i2v_typed.py +++ b/examples/inference/basic/basic_ltx2_3_distilled_i2v_typed.py @@ -54,7 +54,7 @@ Recipe setting ↔ typed field - VAE tiling ↔ ``pipeline.vae_tiling`` - Refine stage on ↔ ``pipeline.preset_overrides["refine"]["enabled"]`` - Refine upsampler ↔ ``pipeline.components.upsampler_weights`` -- Refine LoRA ↔ ``pipeline.ltx2.refine.lora_path`` +- Refine LoRA ↔ ``pipeline.model.ltx2.refine.lora_path`` - Refine denoising steps ↔ ``pipeline.preset_overrides["refine"]["num_inference_steps"]`` - Refine guidance scale ↔ ``pipeline.preset_overrides["refine"]["guidance_scale"]`` - Refine noise injection ↔ ``pipeline.preset_overrides["refine"]["add_noise"]`` diff --git a/examples/inference/basic/basic_ltx2_distilled_fast_profile.py b/examples/inference/basic/basic_ltx2_distilled_fast_profile.py index a2f135bbf..307d5b96f 100644 --- a/examples/inference/basic/basic_ltx2_distilled_fast_profile.py +++ b/examples/inference/basic/basic_ltx2_distilled_fast_profile.py @@ -234,7 +234,7 @@ def main() -> None: }, }, "components": {"upsampler_weights": str(refine_upsampler_path)}, - "ltx2": {"refine": {"lora_path": ""}}, # keep refine LoRA disabled for distilled model + "model": {"ltx2": {"refine": {"lora_path": ""}}}, # keep refine LoRA disabled for distilled model "experimental": { "pipeline_config": pipeline_config, }, diff --git a/examples/inference/gradio/local/gradio_local_demo_ltx2_3/README.md b/examples/inference/gradio/local/gradio_local_demo_ltx2_3/README.md index 59222059c..a3b7c0532 100644 --- a/examples/inference/gradio/local/gradio_local_demo_ltx2_3/README.md +++ b/examples/inference/gradio/local/gradio_local_demo_ltx2_3/README.md @@ -42,7 +42,7 @@ Everything the demo needs ships in the upstream `fastvideo` package: `pipeline_config.dit_config.quant_config = NVFP4Config()` in `app.py` (same pattern as `examples/inference/basic/basic_ltx2_distilled_fast_profile.py`). - **LTX-2.3 refine settings in the typed config** — `app.py` passes - `pipeline.components.upsampler_weights`, `pipeline.ltx2.refine.lora_path`, + `pipeline.components.upsampler_weights`, `pipeline.model.ltx2.refine.lora_path`, `pipeline.preset_overrides.refine` (`enabled`, `num_inference_steps`, `guidance_scale`, `add_noise`), and `pipeline.vae_tiling` to `VideoGenerator.from_config`. The typed fields are defined in diff --git a/examples/inference/gradio/local/gradio_local_demo_ltx2_3/app.py b/examples/inference/gradio/local/gradio_local_demo_ltx2_3/app.py index f0a7566d8..bfcc4f164 100644 --- a/examples/inference/gradio/local/gradio_local_demo_ltx2_3/app.py +++ b/examples/inference/gradio/local/gradio_local_demo_ltx2_3/app.py @@ -70,9 +70,11 @@ def main(): "components": { "upsampler_weights": str(refine_upsampler_path), }, - "ltx2": { - "refine": { - "lora_path": "", # disable refine LoRA for distilled model + "model": { + "ltx2": { + "refine": { + "lora_path": "", # disable refine LoRA for distilled model + }, }, }, "preset_overrides": { diff --git a/examples/inference/lora/minimax_h3_lora_inference.py b/examples/inference/lora/minimax_h3_lora_inference.py index 1762e50fe..ac1996583 100644 --- a/examples/inference/lora/minimax_h3_lora_inference.py +++ b/examples/inference/lora/minimax_h3_lora_inference.py @@ -182,7 +182,7 @@ def main(argv: Sequence[str] | None = None) -> None: model_path=args.model_path, pipeline=PipelineSelection( components=ComponentConfig(lora_path=args.lora_path, lora_strength=args.lora_strength), - minimax_h3=MiniMaxH3Options(vae_parallel_decode=True, vae_parallel_decode_strategy="gather"), + model=MiniMaxH3Options(vae_parallel_decode=True, vae_parallel_decode_strategy="gather"), ), engine=EngineConfig( num_gpus=args.num_gpus, diff --git a/examples/inference/optimizations/fp8_wan2_1_1_3b.py b/examples/inference/optimizations/fp8_wan2_1_1_3b.py index 74d0c5c67..224bf2433 100644 --- a/examples/inference/optimizations/fp8_wan2_1_1_3b.py +++ b/examples/inference/optimizations/fp8_wan2_1_1_3b.py @@ -81,7 +81,7 @@ def main(): taehv_model = load_taehv(args.taehv_checkpoint) if use_taehv else None # A registry name cannot carry the FP8 granularity, so the FP8Config - # instance goes to the DiT config's quant_config through pipeline.dit. + # instance goes to the DiT config's quant_config through pipeline.model.generic.dit. dit_overrides = {} if args.bf16 else {"quant_config": get_quantization_config("FP8")(granularity=args.granularity)} generator = VideoGenerator.from_config({ "model_path": args.model, @@ -102,7 +102,7 @@ def main(): }, "pipeline": { "output_type": "latent" if use_taehv else "pil", - "dit": dit_overrides, + "model": {"generic": {"dit": dit_overrides}}, }, }) diff --git a/examples/serving/openai_fasth3.yaml b/examples/serving/openai_fasth3.yaml index 1884c081e..f20771645 100644 --- a/examples/serving/openai_fasth3.yaml +++ b/examples/serving/openai_fasth3.yaml @@ -24,9 +24,10 @@ generator: vsa_tile_size: 64 pipeline: workload_type: t2v - minimax_h3: - vae_parallel_decode: true - vae_parallel_decode_strategy: gather + model: + minimax_h3: + vae_parallel_decode: true + vae_parallel_decode_strategy: gather server: host: 0.0.0.0 diff --git a/examples/serving/openai_fasth3_8step.yaml b/examples/serving/openai_fasth3_8step.yaml index 04fbe5cee..5b44d8925 100644 --- a/examples/serving/openai_fasth3_8step.yaml +++ b/examples/serving/openai_fasth3_8step.yaml @@ -24,9 +24,10 @@ generator: vsa_tile_size: 64 pipeline: workload_type: t2v - minimax_h3: - vae_parallel_decode: true - vae_parallel_decode_strategy: gather + model: + minimax_h3: + vae_parallel_decode: true + vae_parallel_decode_strategy: gather server: host: 0.0.0.0 diff --git a/examples/serving/openai_fasth3_lora.yaml b/examples/serving/openai_fasth3_lora.yaml index 1e3e806f3..a46bec369 100644 --- a/examples/serving/openai_fasth3_lora.yaml +++ b/examples/serving/openai_fasth3_lora.yaml @@ -27,9 +27,10 @@ generator: lora_path: /path/to/adapter_model.safetensors lora_nickname: fasth3-dense-datafree lora_strength: 1.0 - minimax_h3: - vae_parallel_decode: true - vae_parallel_decode_strategy: gather + model: + minimax_h3: + vae_parallel_decode: true + vae_parallel_decode_strategy: gather server: host: 0.0.0.0 diff --git a/examples/serving/openai_fasth3_spark.yaml b/examples/serving/openai_fasth3_spark.yaml index 1ffe93f48..3c378d2cb 100644 --- a/examples/serving/openai_fasth3_spark.yaml +++ b/examples/serving/openai_fasth3_spark.yaml @@ -33,9 +33,10 @@ generator: vsa_tile_size: 64 pipeline: workload_type: t2v - minimax_h3: - vae_parallel_decode: true - vae_parallel_decode_strategy: gather + model: + minimax_h3: + vae_parallel_decode: true + vae_parallel_decode_strategy: gather server: host: 0.0.0.0 diff --git a/fastvideo/api/__init__.py b/fastvideo/api/__init__.py index 8a4620ac1..8aae6e31b 100644 --- a/fastvideo/api/__init__.py +++ b/fastvideo/api/__init__.py @@ -8,12 +8,14 @@ from fastvideo.api.schema import ( GenerationPlan, GenerationRequest, GeneratorConfig, + GenericModelOptions, GpuPoolConfig, InputConfig, LTX2Options, LTX2RefineOptions, LongCatOptions, MiniMaxH3Options, + ModelOptions, OffloadConfig, OutputConfig, ParallelismConfig, @@ -73,12 +75,14 @@ __all__ = [ "GenerationPlan", "GenerationRequest", "GeneratorConfig", + "GenericModelOptions", "GpuPoolConfig", "InputConfig", "LTX2Options", "LTX2RefineOptions", "LongCatOptions", "MiniMaxH3Options", + "ModelOptions", "OffloadConfig", "OutputConfig", "ParallelismConfig", diff --git a/fastvideo/api/checkpoint_defaults.py b/fastvideo/api/checkpoint_defaults.py index ada415fba..cddf9092a 100644 --- a/fastvideo/api/checkpoint_defaults.py +++ b/fastvideo/api/checkpoint_defaults.py @@ -25,16 +25,16 @@ logger = init_logger(__name__) # Refine component paths, by the model_index.json key that supplies the checkpoint's default. LTX2_REFINE_PATH_KEYS = { - "pipeline.ltx2.refine.transformer_path": "fastvideo_refine_transformer_path", - "pipeline.ltx2.refine.lora_path": "fastvideo_refine_lora_path", - "pipeline.ltx2.refine.noise_path": "fastvideo_refine_noise_path", - "pipeline.ltx2.refine.audio_noise_path": "fastvideo_refine_audio_noise_path", + "pipeline.model.refine.transformer_path": "fastvideo_refine_transformer_path", + "pipeline.model.refine.lora_path": "fastvideo_refine_lora_path", + "pipeline.model.refine.noise_path": "fastvideo_refine_noise_path", + "pipeline.model.refine.audio_noise_path": "fastvideo_refine_audio_noise_path", } # Refine switches, by the model_index.json key that supplies the checkpoint's default and the value's type. LTX2_REFINE_SWITCH_KEYS = ( - ("pipeline.ltx2.refine.num_inference_steps", "fastvideo_refine_num_inference_steps", int), - ("pipeline.ltx2.refine.guidance_scale", "fastvideo_refine_guidance_scale", float), - ("pipeline.ltx2.refine.add_noise", "fastvideo_refine_add_noise", bool), + ("pipeline.model.refine.num_inference_steps", "fastvideo_refine_num_inference_steps", int), + ("pipeline.model.refine.guidance_scale", "fastvideo_refine_guidance_scale", float), + ("pipeline.model.refine.add_noise", "fastvideo_refine_add_noise", bool), ) # Directory names under which published LTX-2 checkpoints bundle the refine upsampler without declaring it. _UPSAMPLER_DIRECTORY_NAMES = ("spatial_upscaler", "spatial_upsampler") @@ -136,8 +136,8 @@ def ltx2_refine_checkpoint_step(defaults: Any) -> ResolutionStep: return {} root = _ltx2_checkpoint_root(model_path, revision, model_index) values: dict[str, Any] = {} - if model_index.get("fastvideo_refine_enabled") is True and view.get("pipeline.ltx2.refine.enabled") is None: - values["pipeline.ltx2.refine.enabled"] = True + if model_index.get("fastvideo_refine_enabled") is True and view.get("pipeline.model.refine.enabled") is None: + values["pipeline.model.refine.enabled"] = True if view.get("pipeline.components.upsampler_weights") is None: upsampler_path = _resolve_refine_upsampler_path(root, model_index) if upsampler_path is not None: diff --git a/fastvideo/api/inference_resolution.py b/fastvideo/api/inference_resolution.py index e7c83d00d..2ff8161e4 100644 --- a/fastvideo/api/inference_resolution.py +++ b/fastvideo/api/inference_resolution.py @@ -8,17 +8,21 @@ step's name, and then materializes the model's ``PipelineConfig`` once and attac The steps run in this order. A fill step sets a field only while it is ``None``, so an earlier step takes precedence over a later one: user input, then environment variables, then model defaults. -1. Environment variables fill typed fields. -2. Model defaults from the model's ``PipelineConfig`` fill the typed fields of ``PIPELINE_CONFIG_MIRRORS`` that are - still unset. -3. ``pipeline.preset_overrides.refine`` sets the LTX-2 refine fields, and the checkpoint's bundled files fill the +1. The model family steps check that a written ``pipeline.model`` block is the family of the model's + ``PipelineConfig`` and fill the family's empty block when none is written, so every later step and every runtime + reader finds ``pipeline.model`` set (``MODEL_FAMILY_CONFIG_CLASSES``). +2. Environment variables fill typed fields. +3. Model defaults from the model's ``PipelineConfig`` fill the typed fields of ``PIPELINE_CONFIG_MIRRORS`` and of the + family's ``MODEL_FAMILY_MIRRORS`` that are still unset. +4. ``pipeline.preset_overrides.refine`` sets the LTX-2 refine fields, and the checkpoint's bundled files fill the LTX-2 refine fields and the MiniMax-H3 DMD schedule that are still unset (``fastvideo.api.checkpoint_defaults``). -4. Derived values replace placeholders and load the files that a path names. -5. The device policy settles the offload settings for the memory class of the local device +5. Derived values replace placeholders and load the files that a path names. +6. The device policy settles the offload settings for the memory class of the local device (``fastvideo.api.device_policy``). -6. Validation steps raise on inconsistent values and decide nothing. -7. ``fill_runtime_defaults`` gives every field that is still unset its runtime default. +7. Validation steps raise on inconsistent values and decide nothing. +8. ``fill_runtime_defaults`` gives every field that is still unset its runtime default. +A step that decides a field of one family's block runs only when ``pipeline.model`` is that family's block. ``fastvideo.api.training_schema`` resolves the training and preprocessing roots with the same steps plus their own. """ from __future__ import annotations @@ -33,14 +37,74 @@ from typing import Any import fastvideo.envs as envs from fastvideo.api.checkpoint_defaults import dmd_schedule_checkpoint_step, ltx2_refine_checkpoint_step from fastvideo.api.device_policy import DEVICE_POLICY_STEPS -from fastvideo.api.parser import parse_config +from fastvideo.api.parser import parse_config, union_tag from fastvideo.api.resolution import (ResolutionStep, ResolutionView, ResolvedGeneratorConfig, resolve_generator_config, thaw) -from fastvideo.api.schema import ExecutionMode, GeneratorConfig, WorkloadType +from fastvideo.api.schema import ExecutionMode, GeneratorConfig, ModelOptions, WorkloadType from fastvideo.logger import init_logger logger = init_logger(__name__) +# Family tag of ``pipeline.model`` -> the dotted name of the ``PipelineConfig`` class whose models take that block, +# including its subclasses. A model whose ``PipelineConfig`` is none of these is ``generic``. +MODEL_FAMILY_CONFIG_CLASSES: dict[str, str] = { + "ltx2": "fastvideo.pipelines.basic.ltx2.pipeline_configs.LTX2T2VConfig", + "minimax_h3": "fastvideo.configs.pipelines.minimax_h3.MiniMaxH3PipelineConfig", + "longcat": "fastvideo.configs.pipelines.longcat.LongCatT2V480PConfig", +} +GENERIC_FAMILY = "generic" + + +def model_family(pipeline_config: Any) -> str: + """The ``pipeline.model`` family tag of a model, from the class of its ``PipelineConfig``.""" + from fastvideo.utils import resolve_obj_by_qualname + + for family, class_name in MODEL_FAMILY_CONFIG_CLASSES.items(): + if isinstance(pipeline_config, resolve_obj_by_qualname(class_name)): + return family + return GENERIC_FAMILY + + +def _family(view: ResolutionView) -> str: + """The family tag of the ``pipeline.model`` block; the model family steps have set the block.""" + return view.get("pipeline.model").family + + +def _input_path(path: str, family: str) -> str: + """The input spelling of a typed path through ``pipeline.model``: the family tag follows ``pipeline.model``.""" + prefix = "pipeline.model." + return f"{prefix}{family}.{path[len(prefix):]}" if path.startswith(prefix) else path + + +def model_family_steps(defaults: Any) -> tuple[ResolutionStep, ResolutionStep]: + """Build the two steps that settle ``pipeline.model`` for the model whose ``PipelineConfig`` is ``defaults``. + + ``validate_model_family`` raises ``ValueError`` when the written block is of another family than the model; + the ``generic`` block is accepted for every model. ``fill_model_family`` sets the family's empty block when + ``pipeline.model`` is unset, and replaces a ``generic`` block on a family model with the family's block that + carries the same ``dit`` and ``vae`` overrides, so the model's readers always find their fields. + """ + family = model_family(defaults) + + def validate_model_family(view: ResolutionView) -> dict[str, Any]: + model = view.get("pipeline.model") + if model is not None and model.family not in (family, GENERIC_FAMILY): + raise ValueError(f"pipeline.model.{model.family} does not apply to {view.get('model_path')}: the registry " + f"resolved it to {type(defaults).__name__}, whose block is pipeline.model.{family}") + return {} + + def fill_model_family(view: ResolutionView) -> dict[str, Any]: + model = view.get("pipeline.model") + if model is None: + return {"pipeline.model": ModelOptions.TAGS[family]()} + if model.family == GENERIC_FAMILY and family != GENERIC_FAMILY: + return {"pipeline.model": ModelOptions.TAGS[family](dit=thaw(model.dit), vae=thaw(model.vae))} + return {} + + validate_model_family.__qualname__ = "validate_model_family" + fill_model_family.__qualname__ = f"fill_model_family[{family}]" + return validate_model_family, fill_model_family + def fill_attention_backend_from_env(view: ResolutionView) -> dict[str, Any]: """``FASTVIDEO_ATTENTION_BACKEND`` sets ``engine.attention.backend`` while the field is unset. @@ -66,16 +130,18 @@ def fill_vae_parallel_from_env(view: ResolutionView) -> dict[str, Any]: """The ``FASTVIDEO_VAE_PARALLEL_*`` variables set the MiniMax-H3 sequence-parallel VAE options. Each switch turns on while it is unset. The decode strategy fills while it is unset, and is ``gather`` when - the variable is unset too. + the variable is unset too. The step decides nothing for a model of another family. """ + if _family(view) != "minimax_h3": + return {} values: dict[str, Any] = {} - if view.get("pipeline.minimax_h3.vae_parallel_decode") is None and envs.FASTVIDEO_VAE_PARALLEL_DECODE.get(): - values["pipeline.minimax_h3.vae_parallel_decode"] = True - if view.get("pipeline.minimax_h3.vae_parallel_encode") is None and envs.FASTVIDEO_VAE_PARALLEL_ENCODE.get(): - values["pipeline.minimax_h3.vae_parallel_encode"] = True - if view.get("pipeline.minimax_h3.vae_parallel_decode_strategy") is None: + if view.get("pipeline.model.vae_parallel_decode") is None and envs.FASTVIDEO_VAE_PARALLEL_DECODE.get(): + values["pipeline.model.vae_parallel_decode"] = True + if view.get("pipeline.model.vae_parallel_encode") is None and envs.FASTVIDEO_VAE_PARALLEL_ENCODE.get(): + values["pipeline.model.vae_parallel_encode"] = True + if view.get("pipeline.model.vae_parallel_decode_strategy") is None: strategy = envs.FASTVIDEO_VAE_PARALLEL_DECODE_STRATEGY.get() or "gather" - values["pipeline.minimax_h3.vae_parallel_decode_strategy"] = strategy + values["pipeline.model.vae_parallel_decode_strategy"] = strategy return values @@ -97,17 +163,27 @@ PIPELINE_CONFIG_MIRRORS: dict[str, str] = { "pipeline.boundary_ratio": "boundary_ratio", "pipeline.vae_tiling": "vae_tiling", "pipeline.vae_sp": "vae_sp", - "pipeline.longcat.enable_bsa": "enable_bsa", - "pipeline.longcat.bsa_sparsity": "bsa_sparsity", - "pipeline.longcat.bsa_cdf_threshold": "bsa_cdf_threshold", - "pipeline.longcat.bsa_chunk_q": "bsa_chunk_q", - "pipeline.longcat.bsa_chunk_k": "bsa_chunk_k", +} +# Family tag -> the mirrors of that family's ``pipeline.model`` block, which apply only to a model of the family. +MODEL_FAMILY_MIRRORS: dict[str, dict[str, str]] = { + "longcat": { + "pipeline.model.enable_bsa": "enable_bsa", + "pipeline.model.bsa_sparsity": "bsa_sparsity", + "pipeline.model.bsa_cdf_threshold": "bsa_cdf_threshold", + "pipeline.model.bsa_chunk_q": "bsa_chunk_q", + "pipeline.model.bsa_chunk_k": "bsa_chunk_k", + }, } # Mirrored paths that the defaults step leaves unset: an LTX-2 tile size can turn ``pipeline.vae_tiling`` on before # :func:`vae_tiling_default_step` fills it from the model default. _FILLED_AFTER_DERIVATION = frozenset({"pipeline.vae_tiling"}) +def pipeline_config_mirrors(family: str) -> dict[str, str]: + """``PIPELINE_CONFIG_MIRRORS`` plus the mirrors of the ``pipeline.model`` block of ``family``.""" + return {**PIPELINE_CONFIG_MIRRORS, **MODEL_FAMILY_MIRRORS.get(family, {})} + + def _pipeline_config_source(config: GeneratorConfig) -> Any: """The source that the model's ``PipelineConfig`` is built from: a JSON path, a mapping, or a ``PipelineConfig``. @@ -132,15 +208,16 @@ def pipeline_config_defaults_step(config: GeneratorConfig, defaults: Any = None) """Build the step that fills unset typed fields with the values of the model's ``PipelineConfig``. ``defaults`` is the instance from :func:`build_model_pipeline_config`; it is built from ``config`` when it is - not given. A typed field of ``PIPELINE_CONFIG_MIRRORS`` is filled when its value is ``None`` and its attribute on - that ``PipelineConfig`` is not ``None``. The step's source name carries the ``PipelineConfig`` class name. + not given. A typed field of :func:`pipeline_config_mirrors` is filled when its value is ``None`` and its + attribute on that ``PipelineConfig`` is not ``None``. The step's source name carries the ``PipelineConfig`` class + name. """ if defaults is None: defaults = build_model_pipeline_config(config) def fill_pipeline_config_defaults(view: ResolutionView) -> dict[str, Any]: values: dict[str, Any] = {} - for dotted_path, attribute in PIPELINE_CONFIG_MIRRORS.items(): + for dotted_path, attribute in pipeline_config_mirrors(_family(view)).items(): default = getattr(defaults, attribute, None) if dotted_path not in _FILLED_AFTER_DERIVATION and default is not None and view.get(dotted_path) is None: values[dotted_path] = deepcopy(default) @@ -162,16 +239,18 @@ def derive_parallel_sizes(view: ResolutionView) -> dict[str, Any]: _LTX2_VAE_TILE_FIELDS = ( - "pipeline.ltx2.vae_spatial_tile_size_in_pixels", - "pipeline.ltx2.vae_spatial_tile_overlap_in_pixels", - "pipeline.ltx2.vae_temporal_tile_size_in_frames", - "pipeline.ltx2.vae_temporal_tile_overlap_in_frames", + "pipeline.model.vae_spatial_tile_size_in_pixels", + "pipeline.model.vae_spatial_tile_overlap_in_pixels", + "pipeline.model.vae_temporal_tile_size_in_frames", + "pipeline.model.vae_temporal_tile_overlap_in_frames", ) def derive_vae_tiling_from_ltx2_tile_sizes(view: ResolutionView) -> dict[str, Any]: """An LTX-2 VAE tile size turns ``pipeline.vae_tiling`` on while the field is unset.""" - if view.get("pipeline.vae_tiling") is not None or all(view.get(path) is None for path in _LTX2_VAE_TILE_FIELDS): + if _family(view) != "ltx2" or view.get("pipeline.vae_tiling") is not None: + return {} + if all(view.get(path) is None for path in _LTX2_VAE_TILE_FIELDS): return {} return {"pipeline.vae_tiling": True} @@ -197,15 +276,16 @@ def copy_refine_preset_overrides(view: ResolutionView) -> dict[str, Any]: The keys are the refine preset and stage override fields (``enabled``, ``add_noise``, ``num_inference_steps``, ``guidance_scale``, ``image_crf``, ``video_position_offset_sec``); a ``None`` value leaves its field unchanged. + The step decides nothing for a model of another family; those pipelines read ``pipeline.preset_overrides``. """ from fastvideo.pipelines.basic.ltx2.stage_overrides import (refine_preset_override_fields, refine_stage_override_fields) refine = view.get_plain("pipeline.preset_overrides").get("refine") - if not isinstance(refine, Mapping): + if _family(view) != "ltx2" or not isinstance(refine, Mapping): return {} keys = refine_preset_override_fields() | refine_stage_override_fields() - return {f"pipeline.ltx2.refine.{key}": refine[key] for key in sorted(keys) if refine.get(key) is not None} + return {f"pipeline.model.refine.{key}": refine[key] for key in sorted(keys) if refine.get(key) is not None} def load_moba_config(view: ResolutionView) -> dict[str, Any]: @@ -256,10 +336,12 @@ def validate_unsupported_fields(view: ResolutionView) -> dict[str, Any]: def validate_experimental_keys(view: ResolutionView) -> dict[str, Any]: """A ``pipeline.experimental`` key must not name a ``PipelineConfig`` attribute that has a typed path. - Materialization writes those attributes from their typed paths (``PIPELINE_CONFIG_MIRRORS``), so the key is set at - the typed path instead. + Materialization writes those attributes from their typed paths (:func:`pipeline_config_mirrors`), so the key is + set at the typed path instead; the message spells a family field as the input writes it, + ``pipeline.model..``. """ - typed_paths = {attribute: path for path, attribute in PIPELINE_CONFIG_MIRRORS.items()} + family = _family(view) + typed_paths = {attribute: _input_path(path, family) for path, attribute in pipeline_config_mirrors(family).items()} misplaced = sorted(set(view.get("pipeline.experimental")) & set(typed_paths)) if misplaced: moves = ", ".join(f"pipeline.experimental.{key} -> {typed_paths[key]}" for key in misplaced) @@ -283,8 +365,11 @@ VAE_PARALLEL_DECODE_STRATEGIES = ("gather", "all_gather") def validate_vae_parallel_decode_strategy(view: ResolutionView) -> dict[str, Any]: - """``pipeline.minimax_h3.vae_parallel_decode_strategy`` must be ``gather`` or ``all_gather``, from any source.""" - strategy = view.get("pipeline.minimax_h3.vae_parallel_decode_strategy") + """A MiniMax-H3 ``pipeline.model.vae_parallel_decode_strategy`` must be ``gather`` or ``all_gather``, from any + source.""" + if _family(view) != "minimax_h3": + return {} + strategy = view.get("pipeline.model.vae_parallel_decode_strategy") if strategy not in VAE_PARALLEL_DECODE_STRATEGIES: raise ValueError(f"vae_parallel_decode_strategy must be one of {VAE_PARALLEL_DECODE_STRATEGIES}, " f"got {strategy!r}.") @@ -335,8 +420,7 @@ def torch_compile_kwargs(resolved_config: ResolvedGeneratorConfig) -> dict[str, return kwargs -# Values that runtime code uses for typed fields that no earlier step decided. The LTX-2 refine switches are the -# stage-2 defaults of the LTX-2 pipeline; the checkpoint's model_index.json fills them first when it declares them. +# Values that runtime code uses for typed fields that no earlier step decided. RUNTIME_DEFAULTS: dict[str, Any] = { "engine.attention.vsa_sparsity": 0.0, "engine.attention.vsa_tile_size": 256, @@ -346,22 +430,32 @@ RUNTIME_DEFAULTS: dict[str, Any] = { "engine.compile.audio_vae_enabled": False, "engine.compile.regional": False, "pipeline.workload_type": WorkloadType.T2V, - "pipeline.minimax_h3.taeh3_chunk_size": 5, - "pipeline.minimax_h3.vae_parallel_decode": False, - "pipeline.minimax_h3.vae_parallel_encode": False, - "pipeline.minimax_h3.video_decode_backend": "h3-vae", - "pipeline.ltx2.legacy_native_noise_order": False, - "pipeline.ltx2.use_distilled_sigmas": True, - "pipeline.ltx2.refine.enabled": False, - "pipeline.ltx2.refine.add_noise": True, - "pipeline.ltx2.refine.guidance_scale": 1.0, - "pipeline.ltx2.refine.num_inference_steps": 3, +} +# Family tag -> the runtime defaults of that family's ``pipeline.model`` block. The LTX-2 refine switches are the +# stage-2 defaults of the LTX-2 pipeline; the checkpoint's model_index.json fills them first when it declares them. +MODEL_FAMILY_RUNTIME_DEFAULTS: dict[str, dict[str, Any]] = { + "minimax_h3": { + "pipeline.model.taeh3_chunk_size": 5, + "pipeline.model.vae_parallel_decode": False, + "pipeline.model.vae_parallel_encode": False, + "pipeline.model.video_decode_backend": "h3-vae", + }, + "ltx2": { + "pipeline.model.legacy_native_noise_order": False, + "pipeline.model.use_distilled_sigmas": True, + "pipeline.model.refine.enabled": False, + "pipeline.model.refine.add_noise": True, + "pipeline.model.refine.guidance_scale": 1.0, + "pipeline.model.refine.num_inference_steps": 3, + }, } def fill_runtime_defaults(view: ResolutionView) -> dict[str, Any]: - """Give each field in ``RUNTIME_DEFAULTS`` its runtime default while it is still unset; runs after every other step.""" - return {path: deepcopy(default) for path, default in RUNTIME_DEFAULTS.items() if view.get(path) is None} + """Give each field in ``RUNTIME_DEFAULTS``, and in the ``MODEL_FAMILY_RUNTIME_DEFAULTS`` of the model's family, + its runtime default while it is still unset; runs after every other step.""" + defaults = {**RUNTIME_DEFAULTS, **MODEL_FAMILY_RUNTIME_DEFAULTS.get(_family(view), {})} + return {path: deepcopy(default) for path, default in defaults.items() if view.get(path) is None} ENVIRONMENT_STEPS: tuple[ResolutionStep, ...] = ( @@ -390,14 +484,16 @@ def generator_resolution_steps( ) -> tuple[ResolutionStep, ...]: """The resolution steps of any generator root, in the order that they run. - ``before_placeholders`` runs after the checkpoint fills and before ``derive_parallel_sizes``, for checks that need - the -1 placeholders; ``after`` runs last. The device-policy steps run after every fill and derivation and before - the validations. ``validate_parallel_sizes`` checks the sizes before ``derive_num_gpus_from_parallel_sizes`` raises - ``num_gpus``. + The model family steps run first, because the environment and model-default fills write into the + ``pipeline.model`` block. ``before_placeholders`` runs after the checkpoint fills and before + ``derive_parallel_sizes``, for checks that need the -1 placeholders; ``after`` runs last. The device-policy steps + run after every fill and derivation and before the validations. ``validate_parallel_sizes`` checks the sizes + before ``derive_num_gpus_from_parallel_sizes`` raises ``num_gpus``. """ if defaults is None: defaults = build_model_pipeline_config(config) return ( + *model_family_steps(defaults), *ENVIRONMENT_STEPS, pipeline_config_defaults_step(config, defaults), copy_refine_preset_overrides, @@ -424,10 +520,10 @@ def inference_resolution_steps(config: GeneratorConfig, defaults: Any = None) -> # LTX-2 VAE tile size path -> the ``vae_config`` attribute that the LTX-2 VAE reads. _LTX2_VAE_TILE_ATTRIBUTES = { - "pipeline.ltx2.vae_spatial_tile_size_in_pixels": "ltx2_spatial_tile_size_in_pixels", - "pipeline.ltx2.vae_spatial_tile_overlap_in_pixels": "ltx2_spatial_tile_overlap_in_pixels", - "pipeline.ltx2.vae_temporal_tile_size_in_frames": "ltx2_temporal_tile_size_in_frames", - "pipeline.ltx2.vae_temporal_tile_overlap_in_frames": "ltx2_temporal_tile_overlap_in_frames", + "pipeline.model.vae_spatial_tile_size_in_pixels": "ltx2_spatial_tile_size_in_pixels", + "pipeline.model.vae_spatial_tile_overlap_in_pixels": "ltx2_spatial_tile_overlap_in_pixels", + "pipeline.model.vae_temporal_tile_size_in_frames": "ltx2_temporal_tile_size_in_frames", + "pipeline.model.vae_temporal_tile_overlap_in_frames": "ltx2_temporal_tile_overlap_in_frames", } @@ -467,26 +563,29 @@ def materialize_pipeline_config(resolved: ResolvedGeneratorConfig, pipeline_conf ``pipeline_config`` is the instance from :func:`build_model_pipeline_config`. In order, materialization sets the ``pipeline.experimental`` keys that are ``PipelineConfig`` attributes (model-only fields), the attributes of - ``PIPELINE_CONFIG_MIRRORS`` from their typed values, and the ``pipeline.vae`` and ``pipeline.dit`` entries on - ``vae_config`` and ``dit_config``; a ``None`` value leaves its attribute unchanged. It then writes the LTX-2 VAE - tile sizes onto ``vae_config``, pins the ``engine.quantization.transformer_quant`` config on ``dit_config``, runs - ``check_pipeline_config``, and loads the VAE encoder for a preprocessing run. + :func:`pipeline_config_mirrors` from their typed values, and the ``vae`` and ``dit`` entries of the + ``pipeline.model`` block on ``vae_config`` and ``dit_config``; a ``None`` value leaves its attribute unchanged. For + an LTX-2 model it then writes the VAE tile sizes onto ``vae_config``. It pins the + ``engine.quantization.transformer_quant`` config on ``dit_config``, runs ``check_pipeline_config``, and loads the + VAE encoder for a preprocessing run. """ config = resolved.to_config() + family = config.pipeline.model.family _set_present_attributes(pipeline_config, { key: value for key, value in config.pipeline.experimental.items() if key != "pipeline_config" }) - mirrored = {attribute: _config_value(config, path) for path, attribute in PIPELINE_CONFIG_MIRRORS.items()} + mirrored = {attribute: _config_value(config, path) for path, attribute in pipeline_config_mirrors(family).items()} if mirrored["text_encoder_precisions"] is not None: mirrored["text_encoder_precisions"] = tuple(mirrored["text_encoder_precisions"]) _set_present_attributes(pipeline_config, mirrored) - _set_present_attributes(pipeline_config.vae_config, config.pipeline.vae) - _set_present_attributes(pipeline_config.dit_config, config.pipeline.dit) - _set_present_attributes(pipeline_config.vae_config, { - attribute: _config_value(config, path) - for path, attribute in _LTX2_VAE_TILE_ATTRIBUTES.items() - }) + _set_present_attributes(pipeline_config.vae_config, config.pipeline.model.vae) + _set_present_attributes(pipeline_config.dit_config, config.pipeline.model.dit) + if family == "ltx2": + _set_present_attributes(pipeline_config.vae_config, { + attribute: _config_value(config, path) + for path, attribute in _LTX2_VAE_TILE_ATTRIBUTES.items() + }) _apply_transformer_quant(pipeline_config, _config_value(config, "engine.quantization.transformer_quant")) pipeline_config.check_pipeline_config() if resolved.mode == ExecutionMode.PREPROCESS and not pipeline_config.vae_config.load_encoder: @@ -540,19 +639,21 @@ def _non_default_fields(value: Any, default: Any) -> dict[str, Any]: """Fields of the dataclass ``value`` that differ from the same fields of ``default``, recursively. A nested config that is set while its default is ``None`` is kept, with its own non-default fields, so that - parsing recreates it. + parsing recreates it. A tagged-union block is written under its tag, ``{"ltx2": {...}}``, as the input spells it. """ written: dict[str, Any] = {} for config_field in fields(value): current = getattr(value, config_field.name) base = getattr(default, config_field.name) - if is_dataclass(current) and is_dataclass(base): + if is_dataclass(current) and is_dataclass(base) and type(current) is type(base): nested = _non_default_fields(current, base) if nested: written[config_field.name] = nested elif is_dataclass(current): nested_type: Any = type(current) - written[config_field.name] = _non_default_fields(current, nested_type()) + nested = _non_default_fields(current, nested_type()) + tag = union_tag(current) + written[config_field.name] = nested if tag is None else {tag: nested} elif current != base: written[config_field.name] = current return written @@ -561,6 +662,10 @@ def _non_default_fields(value: Any, default: Any) -> dict[str, Any]: __all__ = [ "torch_compile_kwargs", "ENVIRONMENT_STEPS", + "GENERIC_FAMILY", + "MODEL_FAMILY_CONFIG_CLASSES", + "MODEL_FAMILY_MIRRORS", + "MODEL_FAMILY_RUNTIME_DEFAULTS", "PIPELINE_CONFIG_MIRRORS", "VALIDATION_STEPS", "apply_nvfp4_fa4_env", @@ -576,7 +681,10 @@ __all__ = [ "inference_resolution_steps", "load_moba_config", "materialize_pipeline_config", + "model_family", + "model_family_steps", "pipeline_config_defaults_step", + "pipeline_config_mirrors", "resolve_config", "resolve_inference_config", "validate_attention_backend", diff --git a/fastvideo/api/parser.py b/fastvideo/api/parser.py index fd6df2e04..3f80a1e35 100644 --- a/fastvideo/api/parser.py +++ b/fastvideo/api/parser.py @@ -48,9 +48,18 @@ def parse_config(config_type: type[T], raw: Mapping[str, Any] | T) -> T: def config_to_dict(config: Any) -> Any: - """Serialize a typed config object into plain Python containers.""" + """Serialize a typed config object into plain Python containers. + + A tagged-union member is written in its input form, ``{tag: fields}``, without the ``family`` tag field, so the + result parses back with :func:`parse_config`. + """ if dataclasses.is_dataclass(config) and not isinstance(config, type): - return {field.name: config_to_dict(getattr(config, field.name)) for field in dataclasses.fields(config)} + tag = union_tag(config) + fields = { + field.name: config_to_dict(getattr(config, field.name)) + for field in dataclasses.fields(config) if tag is None or field.name != TAG_FIELD + } + return fields if tag is None else {tag: fields} if isinstance(config, list): return [config_to_dict(item) for item in config] if isinstance(config, dict): @@ -109,6 +118,79 @@ def _load_raw_mapping(handle: Any, config_path: Path) -> Any: raise ValueError(f"Unsupported config file format: {config_path}") +# A tagged union is a dataclass that defines ``TAGS`` in its own namespace: a mapping from tag to the dataclass that +# the tag selects. Its input is a mapping with exactly one key, the tag, whose value is parsed as the selected class. +# Every selected class carries the tag in the ``TAG_FIELD`` field, whose default is the tag; the input never writes it. +TAG_FIELD = "family" + + +def tagged_union_tags(config_type: Any) -> Mapping[str, type[Any]] | None: + """The ``TAGS`` table of a tagged-union dataclass, or ``None`` for any other annotation. + + Only the class that defines ``TAGS`` is the union; the classes that it selects inherit the attribute and parse as + plain dataclasses. + """ + if not isinstance(config_type, type) or not dataclasses.is_dataclass(config_type): + return None + return vars(config_type).get("TAGS") + + +def union_tag(config: Any) -> str | None: + """The tag under which a tagged-union member instance is written, or ``None`` for any other value.""" + for base in type(config).__mro__: + tags = tagged_union_tags(base) + if tags is not None: + for tag, member_type in tags.items(): + if member_type is type(config): + return tag + raise ConfigValidationError("", f"{type(config).__name__} is not in the TAGS of {base.__name__}") + return None + + +def strip_union_tags(config_type: type[Any], paths: set[str]) -> set[str]: + """Rewrite dotted input paths through a tagged-union field into the field paths of the parsed config. + + An input path ``pipeline.model.ltx2.refine.enabled`` names the member block by its tag; the parsed config holds + the block at ``pipeline.model``, so the path becomes ``pipeline.model.refine.enabled``. Paths that do not go + through a tagged-union field of ``config_type`` are unchanged. + """ + union_paths = _tagged_union_field_paths(config_type, "") + if not union_paths: + return paths + stripped: set[str] = set() + for path in paths: + for union_path, tags in union_paths.items(): + if path.startswith(union_path + "."): + tag, _, rest = path[len(union_path) + 1:].partition(".") + if tag in tags: + path = _join_path(union_path, rest) if rest else union_path + break + stripped.add(path) + return stripped + + +def _tagged_union_field_paths(config_type: type[Any], prefix: str) -> dict[str, Mapping[str, type[Any]]]: + """Dotted path -> ``TAGS`` for every tagged-union field reachable through the nested dataclass fields.""" + found: dict[str, Mapping[str, type[Any]]] = {} + spec = _get_dataclass_spec(config_type) + for name in spec.fields_by_name: + field_path = _join_path(prefix, name) + for candidate in _annotation_classes(spec.type_hints[name]): + tags = tagged_union_tags(candidate) + if tags is not None: + found[field_path] = tags + elif dataclasses.is_dataclass(candidate): + found.update(_tagged_union_field_paths(candidate, field_path)) + return found + + +def _annotation_classes(annotation: Any) -> list[type[Any]]: + """The classes that an annotation names directly or as members of an optional or union annotation.""" + if get_origin(annotation) in _UNION_ORIGINS: + return [candidate for candidate in get_args(annotation) if isinstance(candidate, type)] + return [annotation] if isinstance(annotation, type) else [] + + class _SchemaParser: def parse_dataclass( @@ -150,6 +232,9 @@ class _SchemaParser: if origin is tuple: return self._parse_tuple(annotation, value, path) if isinstance(annotation, type) and dataclasses.is_dataclass(annotation): + tags = tagged_union_tags(annotation) + if tags is not None: + return self._parse_tagged_union(annotation, tags, value, path) return self.parse_dataclass(annotation, value, path) if isinstance(annotation, type) and issubclass(annotation, enum.Enum): return self._parse_enum(annotation, value, path) @@ -172,6 +257,21 @@ class _SchemaParser: if key not in spec.fields_by_name: raise ConfigValidationError(_join_path(path, key), "unknown field") + def _parse_tagged_union(self, union_type: type[Any], tags: Mapping[str, type[Any]], value: Any, path: str) -> Any: + """Parse ``{tag: fields}`` into the member class that ``tags[tag]`` names, with ``TAG_FIELD`` set to the tag.""" + if not isinstance(value, Mapping): + raise ConfigValidationError(path, f"expected mapping with one key for {union_type.__name__}") + choices = ", ".join(sorted(tags)) + if len(value) != 1: + raise ConfigValidationError(path, f"expected exactly one key, one of ({choices}); got {sorted(value)!r}") + tag, fields = next(iter(value.items())) + if tag not in tags: + raise ConfigValidationError(_join_path(path, str(tag)), f"unknown key; expected one of ({choices})") + member_path = _join_path(path, tag) + if isinstance(fields, Mapping) and TAG_FIELD in fields: + raise ConfigValidationError(_join_path(member_path, TAG_FIELD), f"set by the key {tag!r}; remove it") + return self.parse_dataclass(tags[tag], fields, member_path) + def _parse_union(self, annotation: Any, value: Any, path: str) -> Any: candidates = [candidate for candidate in get_args(annotation) if candidate is not type(None)] if value is None and len(candidates) != len(get_args(annotation)): @@ -328,10 +428,14 @@ def _type_name(annotation: Any) -> str: __all__ = [ + "TAG_FIELD", "config_to_dict", "load_config", "load_raw_config", "load_run_config", "load_serve_config", "parse_config", + "strip_union_tags", + "tagged_union_tags", + "union_tag", ] diff --git a/fastvideo/api/resolution.py b/fastvideo/api/resolution.py index 081233b32..058e75e78 100644 --- a/fastvideo/api/resolution.py +++ b/fastvideo/api/resolution.py @@ -34,7 +34,7 @@ import dataclasses from types import MappingProxyType from typing import Any -from fastvideo.api.parser import parse_config +from fastvideo.api.parser import parse_config, strip_union_tags from fastvideo.api.request_metadata import _record_value_paths, get_explicit_paths from fastvideo.api.schema import GenerationRequest, GeneratorConfig @@ -505,15 +505,18 @@ def resolve_generator_config( ``raw`` is the merged YAML, CLI-override, and keyword input in the nested shape of ``config_class``, which is ``GeneratorConfig`` or one of its - subclasses. Every leaf written in ``raw`` is an explicit path. Each step - sees the decisions of the steps before it. ``materialize`` receives the - resolved values and returns the ``PipelineConfig`` that the result holds - as ``pipeline_config``. + subclasses. Every leaf written in ``raw`` is an explicit path, spelled as + the parsed config holds it (a tagged-union block loses its tag segment: + ``pipeline.model.ltx2.refine.enabled`` is explicit as + ``pipeline.model.refine.enabled``). Each step sees the decisions of the + steps before it. ``materialize`` receives the resolved values and returns + the ``PipelineConfig`` that the result holds as ``pipeline_config``. """ if not isinstance(raw, Mapping): raise TypeError(f"expected a raw config mapping, got {type(raw).__name__}") - explicit_paths: set[str] = set() - _record_value_paths(raw, "", explicit_paths) + written_paths: set[str] = set() + _record_value_paths(raw, "", written_paths) + explicit_paths = strip_union_tags(config_class, written_paths) tree, raw_tree, decisions = _run_steps(parse_config(config_class, raw), frozenset(explicit_paths), steps) resolved = ResolvedGeneratorConfig(tree, raw_tree, frozenset(explicit_paths), decisions, ()) if materialize is None: diff --git a/fastvideo/api/schema.py b/fastvideo/api/schema.py index 3d40df2c2..6d48c9bbb 100644 --- a/fastvideo/api/schema.py +++ b/fastvideo/api/schema.py @@ -3,7 +3,7 @@ from __future__ import annotations from dataclasses import dataclass, field from enum import Enum -from typing import Any, Literal +from typing import Any, ClassVar, Literal class ExecutionMode(str, Enum): @@ -226,9 +226,32 @@ class LTX2RefineOptions: @dataclass -class LTX2Options: - """LTX-2 settings. ``None`` keeps the model's default.""" +class ModelOptions: + """Settings of one model family, written as ``pipeline.model`` with exactly one key that names the family. + ``ModelOptions`` is a tagged union: the parser reads the single key of the mapping, looks the family up in + ``TAGS``, and parses the key's value as that family's options class, so a ``pipeline.model`` value is always an + instance of one of the ``TAGS`` classes with ``family`` set to its tag. The ``family`` key itself is not written + in the input. ``dit`` and ``vae`` hold overrides for fields of the model's DiT and VAE arch configs, such as + ``prefix`` or ``load_encoder``; the families add their own settings. + """ + + TAGS: ClassVar[dict[str, type[ModelOptions]]] + family: str = "generic" + dit: dict[str, Any] = field(default_factory=dict) + vae: dict[str, Any] = field(default_factory=dict) + + +@dataclass +class GenericModelOptions(ModelOptions): + """The ``generic`` block: arch overrides for a model that has no family settings, such as Wan.""" + + +@dataclass +class LTX2Options(ModelOptions): + """The ``ltx2`` block: LTX-2 settings. ``None`` keeps the model's default.""" + + family: str = "ltx2" vae_spatial_tile_size_in_pixels: int | None = None vae_spatial_tile_overlap_in_pixels: int | None = None vae_temporal_tile_size_in_frames: int | None = None @@ -245,9 +268,10 @@ class LTX2Options: @dataclass -class MiniMaxH3Options: - """MiniMax-H3 settings. ``None`` keeps the model's default.""" +class MiniMaxH3Options(ModelOptions): + """The ``minimax_h3`` block: MiniMax-H3 settings. ``None`` keeps the model's default.""" + family: str = "minimax_h3" sequential_load: bool | None = None """Encode with Qwen3-VL, release that encoder, then load the DiT and VAEs. ``None`` enables it on unified-memory devices only.""" @@ -269,9 +293,10 @@ class MiniMaxH3Options: @dataclass -class LongCatOptions: - """LongCat block sparse attention (BSA) settings. ``None`` keeps the model's default.""" +class LongCatOptions(ModelOptions): + """The ``longcat`` block: LongCat block sparse attention (BSA) settings. ``None`` keeps the model's default.""" + family: str = "longcat" enable_bsa: bool | None = None bsa_sparsity: float | None = None bsa_cdf_threshold: float | None = None @@ -281,6 +306,14 @@ class LongCatOptions: """Key chunk shape as ``[T, H, W]``.""" +ModelOptions.TAGS = { + "generic": GenericModelOptions, + "ltx2": LTX2Options, + "minimax_h3": MiniMaxH3Options, + "longcat": LongCatOptions, +} + + @dataclass class PipelineSelection: workload_type: WorkloadType | None = None @@ -301,13 +334,10 @@ class PipelineSelection: """Mixture-of-experts switch point of a two-transformer model. ``None`` keeps the model's default.""" output_type: str = "pil" """Output of the decoding stage: ``pil`` for decoded frames, ``latent`` to skip the VAE decode.""" - dit: dict[str, Any] = field(default_factory=dict) - """Overrides for fields of the model's DiT config, such as ``prefix``.""" - vae: dict[str, Any] = field(default_factory=dict) - """Overrides for fields of the model's VAE config, such as ``load_encoder`` or ``use_tiling``.""" - ltx2: LTX2Options = field(default_factory=LTX2Options) - minimax_h3: MiniMaxH3Options = field(default_factory=MiniMaxH3Options) - longcat: LongCatOptions = field(default_factory=LongCatOptions) + model: ModelOptions | None = None + """Model-family settings and arch overrides, keyed by the family: ``ltx2``, ``minimax_h3``, ``longcat``, or + ``generic``. The family must be the one that the registry picks for ``model_path``, or ``generic``. Resolution + fills the family's empty block when the field is unset, so a resolved config always has ``pipeline.model``.""" preset_overrides: dict[str, Any] = field(default_factory=dict) experimental: dict[str, Any] = field(default_factory=dict) @@ -506,12 +536,14 @@ __all__ = [ "GenerationPlan", "GenerationRequest", "GeneratorConfig", + "GenericModelOptions", "GpuPoolConfig", "InputConfig", "LTX2Options", "LTX2RefineOptions", "LongCatOptions", "MiniMaxH3Options", + "ModelOptions", "OffloadConfig", "OutputConfig", "ParallelismConfig", diff --git a/fastvideo/envs.py b/fastvideo/envs.py index 5fcb25876..1ece96888 100644 --- a/fastvideo/envs.py +++ b/fastvideo/envs.py @@ -363,12 +363,12 @@ FASTVIDEO_VAE_PARALLEL_DECODE = EnvBool( False, category="performance", doc="MiniMax-H3 VAE decode splits its temporal chunks across the sequence-parallel ranks instead of running " - "serially on the output rank. Same as pipeline.minimax_h3.vae_parallel_decode=True.") + "serially on the output rank. Same as pipeline.model.minimax_h3.vae_parallel_decode=True.") FASTVIDEO_VAE_PARALLEL_ENCODE = EnvBool( False, category="performance", doc="MiniMax-H3 reference-video VAE encode splits its temporal chunks across the sequence-parallel ranks. " - "Same as pipeline.minimax_h3.vae_parallel_encode=True.") + "Same as pipeline.model.minimax_h3.vae_parallel_encode=True.") FASTVIDEO_VAE_PARALLEL_DECODE_STRATEGY = EnvStr( None, category="performance", @@ -496,7 +496,7 @@ FASTVIDEO_CFG_GATE_STEP = EnvFloat( FASTVIDEO_LTX2_USE_DISTILLED_SIGMAS = EnvBool( True, category="sampling", - doc="LTX-2 uses the distilled sigma schedule when pipeline.ltx2.use_distilled_sigmas is also true.", + doc="LTX-2 uses the distilled sigma schedule when pipeline.model.ltx2.use_distilled_sigmas is also true.", deprecated_names=("LTX2_USE_DISTILLED_SIGMAS", )) # ================== Evaluation ================== diff --git a/fastvideo/pipelines/basic/lingbot_video/lingbot_video_pipeline.py b/fastvideo/pipelines/basic/lingbot_video/lingbot_video_pipeline.py index f54559425..05d708c26 100644 --- a/fastvideo/pipelines/basic/lingbot_video/lingbot_video_pipeline.py +++ b/fastvideo/pipelines/basic/lingbot_video/lingbot_video_pipeline.py @@ -33,9 +33,10 @@ class LingBotVideoPipeline(LoRAPipeline, ComposedPipelineBase): """Load the optional refiner DiT and the VAE encoder only when declared.""" model_index = self._load_config(self.model_path) required = list(type(self)._required_config_modules) - # The shared stage-2 refine switch: ``pipeline.preset_overrides.refine.enabled`` resolves into - # ``pipeline.ltx2.refine.enabled``; ``None`` loads the refiner when the checkpoint has one. - load_refiner = "transformer_2" in model_index and resolved_config.pipeline.ltx2.refine.enabled is not False + # The shared stage-2 refine switch ``pipeline.preset_overrides.refine.enabled``; ``None`` loads the refiner + # when the checkpoint has one. + refine = resolved_config.pipeline.preset_overrides.get("refine") or {} + load_refiner = "transformer_2" in model_index and refine.get("enabled") is not False if load_refiner: required.append("transformer_2") resolved_config.pipeline_config.vae_config.load_encoder = True diff --git a/fastvideo/pipelines/basic/longcat/longcat_i2v_pipeline.py b/fastvideo/pipelines/basic/longcat/longcat_i2v_pipeline.py index ff3e7b0f5..e0ce53fff 100644 --- a/fastvideo/pipelines/basic/longcat/longcat_i2v_pipeline.py +++ b/fastvideo/pipelines/basic/longcat/longcat_i2v_pipeline.py @@ -46,7 +46,7 @@ class LongCatImageToVideoPipeline(LoRAPipeline, ComposedPipelineBase): """Initialize LongCat-specific components.""" # Same BSA initialization as base LongCat pipeline pipeline_config = resolved_config.pipeline_config - bsa_options = resolved_config.pipeline.longcat + bsa_options = resolved_config.pipeline.model transformer = self.get_module("transformer", None) if transformer is None: return diff --git a/fastvideo/pipelines/basic/longcat/longcat_pipeline.py b/fastvideo/pipelines/basic/longcat/longcat_pipeline.py index 964d268d0..fb43284ed 100644 --- a/fastvideo/pipelines/basic/longcat/longcat_pipeline.py +++ b/fastvideo/pipelines/basic/longcat/longcat_pipeline.py @@ -35,7 +35,7 @@ class LongCatPipeline(LoRAPipeline, ComposedPipelineBase): # Enable BSA (Block Sparse Attention) if configured pipeline_config = resolved_config.pipeline_config - bsa_options = resolved_config.pipeline.longcat + bsa_options = resolved_config.pipeline.model transformer = self.get_module("transformer", None) if transformer is None: raise RuntimeError("Transformer module not found during initializing LongCat pipeline.") diff --git a/fastvideo/pipelines/basic/longcat/longcat_vc_pipeline.py b/fastvideo/pipelines/basic/longcat/longcat_vc_pipeline.py index 758c307dc..b65602020 100644 --- a/fastvideo/pipelines/basic/longcat/longcat_vc_pipeline.py +++ b/fastvideo/pipelines/basic/longcat/longcat_vc_pipeline.py @@ -48,7 +48,7 @@ class LongCatVideoContinuationPipeline(LoRAPipeline, ComposedPipelineBase): def initialize_pipeline(self, resolved_config: ResolvedGeneratorConfig): """Initialize LongCat-specific components.""" pipeline_config = resolved_config.pipeline_config - bsa_options = resolved_config.pipeline.longcat + bsa_options = resolved_config.pipeline.model transformer = self.get_module("transformer", None) if transformer is None: return diff --git a/fastvideo/pipelines/basic/ltx2/ltx2_pipeline.py b/fastvideo/pipelines/basic/ltx2/ltx2_pipeline.py index 82d75888e..025712f01 100644 --- a/fastvideo/pipelines/basic/ltx2/ltx2_pipeline.py +++ b/fastvideo/pipelines/basic/ltx2/ltx2_pipeline.py @@ -31,7 +31,7 @@ class LTX2Pipeline(LoRAPipeline): ] def create_pipeline_stages(self, resolved_config: ResolvedGeneratorConfig): - refine_enabled = resolved_config.pipeline.ltx2.refine.enabled + refine_enabled = resolved_config.pipeline.model.refine.enabled self.add_stage( stage_name="input_validation_stage", @@ -66,7 +66,7 @@ class LTX2Pipeline(LoRAPipeline): ) if refine_enabled: - stage2_steps = resolved_config.pipeline.ltx2.refine.num_inference_steps + stage2_steps = resolved_config.pipeline.model.refine.num_inference_steps # LTX-2 refine currently supports two explicitly tested step # counts: # - 3 steps: official distilled schedule @@ -87,7 +87,7 @@ class LTX2Pipeline(LoRAPipeline): else: logger.warning( "For LTX-2 refinement, " - "pipeline.ltx2.refine.num_inference_steps=%s is not a tested " + "pipeline.model.ltx2.refine.num_inference_steps=%s is not a tested " "setting. Using denoising steps other than 2 or 3 " "may cause quality degradation.", stage2_steps, @@ -104,16 +104,16 @@ class LTX2Pipeline(LoRAPipeline): vae=self.get_module("vae"), transformer=transformer_refine, sigmas=stage2_sigmas, - add_noise=resolved_config.pipeline.ltx2.refine.add_noise, + add_noise=resolved_config.pipeline.model.refine.add_noise, ), ) - if resolved_config.pipeline.ltx2.refine.lora_path: + if resolved_config.pipeline.model.refine.lora_path: self.add_stage( stage_name="ltx2_refine_lora_stage", stage=LTX2RefineLoRAStage( pipeline=self, - lora_path=resolved_config.pipeline.ltx2.refine.lora_path, + lora_path=resolved_config.pipeline.model.refine.lora_path, ), ) @@ -123,7 +123,7 @@ class LTX2Pipeline(LoRAPipeline): transformer=transformer_refine, sigmas_override=stage2_sigmas, num_inference_steps_override=len(stage2_sigmas) - 1, - force_guidance_scale=(resolved_config.pipeline.ltx2.refine.guidance_scale), + force_guidance_scale=(resolved_config.pipeline.model.refine.guidance_scale), initial_audio_latents_key="ltx2_audio_latents", ), ) @@ -207,10 +207,10 @@ class LTX2Pipeline(LoRAPipeline): if module_name not in modules or modules[module_name] is None: raise ValueError(f"Required module {module_name} was not loaded properly") - if resolved_config.pipeline.ltx2.refine.enabled: + if resolved_config.pipeline.model.refine.enabled: upsampler_path = resolved_config.pipeline.components.upsampler_weights if upsampler_path is None: - raise ValueError("pipeline.ltx2.refine.enabled is True but " + raise ValueError("pipeline.model.ltx2.refine.enabled is True but " "pipeline.components.upsampler_weights was not provided.") if not os.path.isdir(upsampler_path): raise ValueError("pipeline.components.upsampler_weights must be a directory " @@ -233,16 +233,16 @@ class LTX2Pipeline(LoRAPipeline): if (loaded_modules is not None and "transformer_refine" in loaded_modules): modules["transformer_refine"] = loaded_modules["transformer_refine"] - elif resolved_config.pipeline.ltx2.refine.transformer_path: + elif resolved_config.pipeline.model.refine.transformer_path: modules["transformer_refine"] = (PipelineComponentLoader.load_module( module_name="transformer_refine", - component_model_path=(resolved_config.pipeline.ltx2.refine.transformer_path), + component_model_path=(resolved_config.pipeline.model.refine.transformer_path), transformers_or_diffusers="diffusers", resolved_config=resolved_config, )) logger.info( "Loaded module transformer_refine from %s", - resolved_config.pipeline.ltx2.refine.transformer_path, + resolved_config.pipeline.model.refine.transformer_path, ) return modules diff --git a/fastvideo/pipelines/basic/ltx2/stage_overrides.py b/fastvideo/pipelines/basic/ltx2/stage_overrides.py index afe25fd12..a85355881 100644 --- a/fastvideo/pipelines/basic/ltx2/stage_overrides.py +++ b/fastvideo/pipelines/basic/ltx2/stage_overrides.py @@ -9,7 +9,7 @@ The refine upsampler path lives on :class:`~fastvideo.api.schema.ComponentConfig` (``upsampler_weights``), and the refine LoRA path on :class:`~fastvideo.api.schema.LTX2RefineOptions` -(``pipeline.ltx2.refine.lora_path``). +(``pipeline.model.ltx2.refine.lora_path``). """ from __future__ import annotations diff --git a/fastvideo/pipelines/basic/ltx2/stages/ltx2_denoising.py b/fastvideo/pipelines/basic/ltx2/stages/ltx2_denoising.py index 20f92ce8d..21d16916e 100644 --- a/fastvideo/pipelines/basic/ltx2/stages/ltx2_denoising.py +++ b/fastvideo/pipelines/basic/ltx2/stages/ltx2_denoising.py @@ -244,7 +244,7 @@ class LTX2DenoisingStage(PipelineStage): logger.info("[LTX2] Using override sigma schedule, %s", self.sigmas_override) else: # Use distilled hardcoded schedule (or subsets) when enabled. - use_distilled_sigmas = (resolved_config.pipeline.ltx2.use_distilled_sigmas + use_distilled_sigmas = (resolved_config.pipeline.model.use_distilled_sigmas and envs.FASTVIDEO_LTX2_USE_DISTILLED_SIGMAS.get()) max_distilled_steps = len(DISTILLED_SIGMA_VALUES) - 1 if use_distilled_sigmas and num_inference_steps <= max_distilled_steps: @@ -341,7 +341,7 @@ class LTX2DenoisingStage(PipelineStage): audio_shape.frames, audio_shape.mel_bins, ) - audio_latent_path = resolved_config.pipeline.ltx2.audio_latent_path + audio_latent_path = resolved_config.pipeline.model.audio_latent_path audio_latents = self._load_audio_latents( audio_latent_path, device=latents.device, @@ -350,7 +350,7 @@ class LTX2DenoisingStage(PipelineStage): ) if audio_latent_path else None if audio_latents is None: audio_generator = None - if resolved_config.pipeline.ltx2.initial_latent_path and batch.seed is not None: + if resolved_config.pipeline.model.initial_latent_path and batch.seed is not None: audio_generator = torch.Generator(device=latents.device).manual_seed(batch.seed) elif batch.generator is not None: audio_generator = (batch.generator[0] if isinstance(batch.generator, list) else batch.generator) diff --git a/fastvideo/pipelines/basic/ltx2/stages/ltx2_latent_preparation.py b/fastvideo/pipelines/basic/ltx2/stages/ltx2_latent_preparation.py index 42b07a6cb..34df8cf0e 100644 --- a/fastvideo/pipelines/basic/ltx2/stages/ltx2_latent_preparation.py +++ b/fastvideo/pipelines/basic/ltx2/stages/ltx2_latent_preparation.py @@ -114,7 +114,7 @@ class LTX2LatentPreparationStage(PipelineStage): dtype = batch.prompt_embeds[0].dtype device = get_local_torch_device() generator = batch.generator - if generator is not None and not resolved_config.pipeline.ltx2.legacy_native_noise_order: + if generator is not None and not resolved_config.pipeline.model.legacy_native_noise_order: if isinstance(generator, list): if generator and generator[0].device.type != device.type: seeds = batch.seeds @@ -134,7 +134,7 @@ class LTX2LatentPreparationStage(PipelineStage): num_frames = latent_num_frames if latent_num_frames is not None else batch.num_frames height = batch.height width = batch.width - latent_path = resolved_config.pipeline.ltx2.initial_latent_path + latent_path = resolved_config.pipeline.model.initial_latent_path if height is None or width is None: raise ValueError("Height and width must be provided") @@ -160,7 +160,7 @@ class LTX2LatentPreparationStage(PipelineStage): loaded_latents = self._load_initial_latent(latent_path, device, dtype) if loaded_latents is not None: latents = loaded_latents - elif resolved_config.pipeline.ltx2.legacy_native_noise_order: + elif resolved_config.pipeline.model.legacy_native_noise_order: latents = randn_tensor( shape, generator=generator, @@ -178,7 +178,7 @@ class LTX2LatentPreparationStage(PipelineStage): ) self._save_initial_latent(latent_path, latents) else: - if resolved_config.pipeline.ltx2.legacy_native_noise_order: + if resolved_config.pipeline.model.legacy_native_noise_order: latents = randn_tensor( shape, generator=generator, diff --git a/fastvideo/pipelines/basic/ltx2/stages/ltx2_refine.py b/fastvideo/pipelines/basic/ltx2/stages/ltx2_refine.py index dc5b855fa..2f8d26e21 100644 --- a/fastvideo/pipelines/basic/ltx2/stages/ltx2_refine.py +++ b/fastvideo/pipelines/basic/ltx2/stages/ltx2_refine.py @@ -67,7 +67,7 @@ class LTX2RefineInitStage(PipelineStage): batch: ForwardBatch, resolved_config: ResolvedGeneratorConfig, ) -> ForwardBatch: - if not resolved_config.pipeline.ltx2.refine.enabled: + if not resolved_config.pipeline.model.refine.enabled: return batch height = batch.height @@ -137,7 +137,7 @@ class LTX2UpsampleStage(PipelineStage): batch: ForwardBatch, resolved_config: ResolvedGeneratorConfig, ) -> ForwardBatch: - if not resolved_config.pipeline.ltx2.refine.enabled: + if not resolved_config.pipeline.model.refine.enabled: return batch if batch.latents is None: @@ -212,7 +212,7 @@ class LTX2UpsampleStage(PipelineStage): if patchifier is not None: video_shape = VideoLatentShape.from_torch_shape(latents.shape) patch_noise_shape = patchifier.patchify(latents).shape - noise_path = resolved_config.pipeline.ltx2.refine.noise_path + noise_path = resolved_config.pipeline.model.refine.noise_path noise = self._load_noise( noise_path, device=latents.device, @@ -251,7 +251,7 @@ class LTX2UpsampleStage(PipelineStage): audio_shape = AudioLatentShape.from_torch_shape(audio_latents.shape) audio_patch = audio_patchifier.patchify(audio_latents) audio_noise_shape = audio_patch.shape - audio_noise_path = (resolved_config.pipeline.ltx2.refine.audio_noise_path) + audio_noise_path = (resolved_config.pipeline.model.refine.audio_noise_path) audio_noise = self._load_noise( audio_noise_path, device=audio_latents.device, @@ -273,7 +273,7 @@ class LTX2UpsampleStage(PipelineStage): audio_noised_patch = audio_noise * sigma0 + audio_patch * (1.0 - sigma0) audio_latents = audio_patchifier.unpatchify(audio_noised_patch, audio_shape) else: - audio_noise_path = (resolved_config.pipeline.ltx2.refine.audio_noise_path) + audio_noise_path = (resolved_config.pipeline.model.refine.audio_noise_path) audio_noise = self._load_noise( audio_noise_path, device=audio_latents.device, @@ -306,7 +306,7 @@ class LTX2UpsampleStage(PipelineStage): resolved_config: ResolvedGeneratorConfig, ) -> VerificationResult: result = VerificationResult() - if resolved_config.pipeline.ltx2.refine.enabled: + if resolved_config.pipeline.model.refine.enabled: result.add_check("latents", batch.latents, [V.is_tensor, V.with_dims(5)]) return result @@ -370,9 +370,9 @@ class LTX2RefineLoRAStage(PipelineStage): batch: ForwardBatch, resolved_config: ResolvedGeneratorConfig, ) -> ForwardBatch: - if not resolved_config.pipeline.ltx2.refine.enabled: + if not resolved_config.pipeline.model.refine.enabled: return batch - lora_path = resolved_config.pipeline.ltx2.refine.lora_path or self._lora_path + lora_path = resolved_config.pipeline.model.refine.lora_path or self._lora_path if not lora_path or self._applied: return batch diff --git a/fastvideo/pipelines/basic/minimax_h3/minimax_h3_pipeline.py b/fastvideo/pipelines/basic/minimax_h3/minimax_h3_pipeline.py index 071ccdf2d..297877ce4 100644 --- a/fastvideo/pipelines/basic/minimax_h3/minimax_h3_pipeline.py +++ b/fastvideo/pipelines/basic/minimax_h3/minimax_h3_pipeline.py @@ -89,7 +89,7 @@ def _apply_h3_checkpoint_arch_configs(model_path: str, resolved_config: Resolved def _use_taeh3_t2va(resolved_config: ResolvedGeneratorConfig | None, *, ref2va: bool) -> bool: return (not ref2va and resolved_config is not None - and resolved_config.pipeline.minimax_h3.video_decode_backend == "taeh3") + and resolved_config.pipeline.model.video_decode_backend == "taeh3") class MiniMaxH3BasePipeline(LoRAPipeline, ComposedPipelineBase): @@ -219,7 +219,7 @@ class MiniMaxH3BasePipeline(LoRAPipeline, ComposedPipelineBase): if resolved_config.engine.offload.lazy_module_load: logger.info("MiniMax-H3 sequential module load off: lazy_module_load owns deferral") return False - requested = resolved_config.pipeline.minimax_h3.sequential_load + requested = resolved_config.pipeline.model.sequential_load if requested is True: return True if requested is False: diff --git a/fastvideo/pipelines/basic/minimax_h3/stages/minimax_h3_decoding.py b/fastvideo/pipelines/basic/minimax_h3/stages/minimax_h3_decoding.py index f404d9ec7..5b3990582 100644 --- a/fastvideo/pipelines/basic/minimax_h3/stages/minimax_h3_decoding.py +++ b/fastvideo/pipelines/basic/minimax_h3/stages/minimax_h3_decoding.py @@ -80,8 +80,8 @@ class MiniMaxH3VideoDecodingStage(PipelineStage): def forward(self, batch: ForwardBatch, resolved_config: ResolvedGeneratorConfig) -> ForwardBatch: """Decode H3 video latents into normalized CPU pixels.""" placeholder = torch.empty((0, 3, 0, 0, 0), device="cpu", dtype=torch.float32) - sp_group, is_output_rank, parallel = _decode_participation( - resolved_config, resolved_config.pipeline.minimax_h3.vae_parallel_decode) + sp_group, is_output_rank, parallel = _decode_participation(resolved_config, + resolved_config.pipeline.model.vae_parallel_decode) if not is_output_rank and not parallel: # Consumers read the output rank's ForwardBatch. Keep a # verifier-compatible placeholder on other ranks and avoid @@ -102,7 +102,7 @@ class MiniMaxH3VideoDecodingStage(PipelineStage): h3_dit_patch_size(resolved_config), ) device = get_local_torch_device() - backend = resolved_config.pipeline.minimax_h3.video_decode_backend + backend = resolved_config.pipeline.model.video_decode_backend if backend == "taeh3": from fastvideo.models.vaes.minimax_h3_taeh3 import decode_ncthw_latents_taeh3, taeh3_decoded_pixel_shape @@ -115,8 +115,8 @@ class MiniMaxH3VideoDecodingStage(PipelineStage): pixels = decode_ncthw_latents_taeh3( latents, device=device, - checkpoint_path=resolved_config.pipeline.minimax_h3.taeh3_checkpoint, - chunk_size=int(resolved_config.pipeline.minimax_h3.taeh3_chunk_size or 5), + checkpoint_path=resolved_config.pipeline.model.taeh3_checkpoint, + chunk_size=int(resolved_config.pipeline.model.taeh3_chunk_size or 5), ) batch.output = pixels.float().cpu() if is_output_rank else placeholder if is_output_rank and tuple(batch.output.shape) != expected: @@ -148,7 +148,7 @@ class MiniMaxH3VideoDecodingStage(PipelineStage): torch.autocast(device_type=device.type, dtype=torch.float16, enabled=device.type == "cuda"), ): if parallel: - strategy = (resolved_config.pipeline.minimax_h3.vae_parallel_decode_strategy + strategy = (resolved_config.pipeline.model.vae_parallel_decode_strategy or DEFAULT_DECODE_GATHER_STRATEGY) logger.info("MiniMax-H3 VAE decode: sequence-parallel chunks across %d ranks (%s)", sp_group.world_size, strategy) diff --git a/fastvideo/pipelines/basic/minimax_h3/stages/minimax_h3_latent_preparation.py b/fastvideo/pipelines/basic/minimax_h3/stages/minimax_h3_latent_preparation.py index c4ab7857f..1ba6b7ebf 100644 --- a/fastvideo/pipelines/basic/minimax_h3/stages/minimax_h3_latent_preparation.py +++ b/fastvideo/pipelines/basic/minimax_h3/stages/minimax_h3_latent_preparation.py @@ -129,7 +129,7 @@ class MiniMaxH3LatentPreparationStage(PipelineStage): # uniform by construction: each rank encodes a clip subset and the # all-gather leaves the identical full posterior everywhere. parallel_group = None - if resolved_config.pipeline.minimax_h3.vae_parallel_encode and model_parallel_is_initialized(): + if resolved_config.pipeline.model.vae_parallel_encode and model_parallel_is_initialized(): sp_group = get_sp_group() if sp_group.world_size > 1: parallel_group = sp_group diff --git a/fastvideo/tests/api/config_snapshot.py b/fastvideo/tests/api/config_snapshot.py index 92e25e848..087472ba1 100644 --- a/fastvideo/tests/api/config_snapshot.py +++ b/fastvideo/tests/api/config_snapshot.py @@ -376,7 +376,7 @@ def collect_cases() -> list[SnapshotCase]: } }, "pipeline": { - "ltx2": { + "preset_overrides": { "refine": { "enabled": True } @@ -398,9 +398,11 @@ def collect_cases() -> list[SnapshotCase]: "ltx2_refine_lora_path": { "model_path": LTX2, "pipeline": { - "ltx2": { - "refine": { - "lora_path": "/checkpoints/refine_lora.safetensors" + "model": { + "ltx2": { + "refine": { + "lora_path": "/checkpoints/refine_lora.safetensors" + } } } }, @@ -408,9 +410,11 @@ def collect_cases() -> list[SnapshotCase]: "ltx2_refine_lora_disabled": { "model_path": LTX2, "pipeline": { - "ltx2": { - "refine": { - "lora_path": "" + "model": { + "ltx2": { + "refine": { + "lora_path": "" + } } } }, @@ -438,9 +442,11 @@ def collect_cases() -> list[SnapshotCase]: "ltx2_vae_tile_sizes": { "model_path": LTX2, "pipeline": { - "ltx2": { - "vae_spatial_tile_size_in_pixels": 512, - "vae_temporal_tile_size_in_frames": 64 + "model": { + "ltx2": { + "vae_spatial_tile_size_in_pixels": 512, + "vae_temporal_tile_size_in_frames": 64 + } } }, }, diff --git a/fastvideo/tests/api/config_snapshot_goldens/config/attention_precision_and_flow_shift.json b/fastvideo/tests/api/config_snapshot_goldens/config/attention_precision_and_flow_shift.json index 869069cbe..c9269cdd8 100644 --- a/fastvideo/tests/api/config_snapshot_goldens/config/attention_precision_and_flow_shift.json +++ b/fastvideo/tests/api/config_snapshot_goldens/config/attention_precision_and_flow_shift.json @@ -276,9 +276,13 @@ "pipeline_config_class": "fastvideo.models.wan.pipeline_config.WanT2V480PConfig", "resolution_decisions": [ [ - "fill_vae_parallel_from_env", + "fill_model_family[generic]", { - "pipeline.minimax_h3.vae_parallel_decode_strategy": "gather" + "pipeline.model": { + "dit": {}, + "family": "generic", + "vae": {} + } } ], [ @@ -317,16 +321,6 @@ "engine.compile.regional": false, "engine.compile.text_encoder_enabled": false, "engine.compile.vae_enabled": false, - "pipeline.ltx2.legacy_native_noise_order": false, - "pipeline.ltx2.refine.add_noise": true, - "pipeline.ltx2.refine.enabled": false, - "pipeline.ltx2.refine.guidance_scale": 1.0, - "pipeline.ltx2.refine.num_inference_steps": 3, - "pipeline.ltx2.use_distilled_sigmas": true, - "pipeline.minimax_h3.taeh3_chunk_size": 5, - "pipeline.minimax_h3.vae_parallel_decode": false, - "pipeline.minimax_h3.vae_parallel_encode": false, - "pipeline.minimax_h3.video_decode_backend": "h3-vae", "pipeline.workload_type": "t2v" } ] @@ -409,54 +403,19 @@ "upsampler_weights": null, "vae_weights": null }, - "dit": {}, "dmd_denoising_steps": null, "embedded_cfg_scale": 6.0, "experimental": {}, "flow_shift": 5.0, - "longcat": { - "bsa_cdf_threshold": null, - "bsa_chunk_k": null, - "bsa_chunk_q": null, - "bsa_sparsity": null, - "enable_bsa": null - }, - "ltx2": { - "audio_latent_path": null, - "initial_latent_path": null, - "legacy_native_noise_order": false, - "refine": { - "add_noise": true, - "audio_noise_path": null, - "enabled": false, - "guidance_scale": 1.0, - "image_crf": null, - "lora_path": null, - "noise_path": null, - "num_inference_steps": 3, - "transformer_path": null, - "video_position_offset_sec": null - }, - "use_distilled_sigmas": true, - "vae_spatial_tile_overlap_in_pixels": null, - "vae_spatial_tile_size_in_pixels": null, - "vae_temporal_tile_overlap_in_frames": null, - "vae_temporal_tile_size_in_frames": null - }, - "minimax_h3": { - "sequential_load": null, - "taeh3_checkpoint": null, - "taeh3_chunk_size": 5, - "vae_parallel_decode": false, - "vae_parallel_decode_strategy": "gather", - "vae_parallel_encode": false, - "video_decode_backend": "h3-vae" + "model": { + "dit": {}, + "family": "generic", + "vae": {} }, "output_type": "pil", "preset": null, "preset_overrides": {}, "preset_version": null, - "vae": {}, "vae_sp": false, "vae_tiling": false, "workload_type": "t2v" diff --git a/fastvideo/tests/api/config_snapshot_goldens/config/boundary_ratio.json b/fastvideo/tests/api/config_snapshot_goldens/config/boundary_ratio.json index a961ee6f0..b236be97d 100644 --- a/fastvideo/tests/api/config_snapshot_goldens/config/boundary_ratio.json +++ b/fastvideo/tests/api/config_snapshot_goldens/config/boundary_ratio.json @@ -281,9 +281,13 @@ "pipeline_config_class": "fastvideo.models.wan.pipeline_config.Wan2_2_T2V_A14B_Config", "resolution_decisions": [ [ - "fill_vae_parallel_from_env", + "fill_model_family[generic]", { - "pipeline.minimax_h3.vae_parallel_decode_strategy": "gather" + "pipeline.model": { + "dit": {}, + "family": "generic", + "vae": {} + } } ], [ @@ -331,16 +335,6 @@ "engine.compile.regional": false, "engine.compile.text_encoder_enabled": false, "engine.compile.vae_enabled": false, - "pipeline.ltx2.legacy_native_noise_order": false, - "pipeline.ltx2.refine.add_noise": true, - "pipeline.ltx2.refine.enabled": false, - "pipeline.ltx2.refine.guidance_scale": 1.0, - "pipeline.ltx2.refine.num_inference_steps": 3, - "pipeline.ltx2.use_distilled_sigmas": true, - "pipeline.minimax_h3.taeh3_chunk_size": 5, - "pipeline.minimax_h3.vae_parallel_decode": false, - "pipeline.minimax_h3.vae_parallel_encode": false, - "pipeline.minimax_h3.video_decode_backend": "h3-vae", "pipeline.workload_type": "t2v" } ] @@ -423,7 +417,6 @@ "upsampler_weights": null, "vae_weights": null }, - "dit": {}, "dmd_denoising_steps": [ 1000, 750, @@ -433,49 +426,15 @@ "embedded_cfg_scale": 6.0, "experimental": {}, "flow_shift": 12.0, - "longcat": { - "bsa_cdf_threshold": null, - "bsa_chunk_k": null, - "bsa_chunk_q": null, - "bsa_sparsity": null, - "enable_bsa": null - }, - "ltx2": { - "audio_latent_path": null, - "initial_latent_path": null, - "legacy_native_noise_order": false, - "refine": { - "add_noise": true, - "audio_noise_path": null, - "enabled": false, - "guidance_scale": 1.0, - "image_crf": null, - "lora_path": null, - "noise_path": null, - "num_inference_steps": 3, - "transformer_path": null, - "video_position_offset_sec": null - }, - "use_distilled_sigmas": true, - "vae_spatial_tile_overlap_in_pixels": null, - "vae_spatial_tile_size_in_pixels": null, - "vae_temporal_tile_overlap_in_frames": null, - "vae_temporal_tile_size_in_frames": null - }, - "minimax_h3": { - "sequential_load": null, - "taeh3_checkpoint": null, - "taeh3_chunk_size": 5, - "vae_parallel_decode": false, - "vae_parallel_decode_strategy": "gather", - "vae_parallel_encode": false, - "video_decode_backend": "h3-vae" + "model": { + "dit": {}, + "family": "generic", + "vae": {} }, "output_type": "pil", "preset": null, "preset_overrides": {}, "preset_version": null, - "vae": {}, "vae_sp": false, "vae_tiling": false, "workload_type": "t2v" diff --git a/fastvideo/tests/api/config_snapshot_goldens/config/disable_autocast.json b/fastvideo/tests/api/config_snapshot_goldens/config/disable_autocast.json index f2b877cd1..eca9d233f 100644 --- a/fastvideo/tests/api/config_snapshot_goldens/config/disable_autocast.json +++ b/fastvideo/tests/api/config_snapshot_goldens/config/disable_autocast.json @@ -276,9 +276,13 @@ "pipeline_config_class": "fastvideo.models.wan.pipeline_config.WanT2V480PConfig", "resolution_decisions": [ [ - "fill_vae_parallel_from_env", + "fill_model_family[generic]", { - "pipeline.minimax_h3.vae_parallel_decode_strategy": "gather" + "pipeline.model": { + "dit": {}, + "family": "generic", + "vae": {} + } } ], [ @@ -320,16 +324,6 @@ "engine.compile.regional": false, "engine.compile.text_encoder_enabled": false, "engine.compile.vae_enabled": false, - "pipeline.ltx2.legacy_native_noise_order": false, - "pipeline.ltx2.refine.add_noise": true, - "pipeline.ltx2.refine.enabled": false, - "pipeline.ltx2.refine.guidance_scale": 1.0, - "pipeline.ltx2.refine.num_inference_steps": 3, - "pipeline.ltx2.use_distilled_sigmas": true, - "pipeline.minimax_h3.taeh3_chunk_size": 5, - "pipeline.minimax_h3.vae_parallel_decode": false, - "pipeline.minimax_h3.vae_parallel_encode": false, - "pipeline.minimax_h3.video_decode_backend": "h3-vae", "pipeline.workload_type": "t2v" } ] @@ -412,54 +406,19 @@ "upsampler_weights": null, "vae_weights": null }, - "dit": {}, "dmd_denoising_steps": null, "embedded_cfg_scale": 6.0, "experimental": {}, "flow_shift": 3.0, - "longcat": { - "bsa_cdf_threshold": null, - "bsa_chunk_k": null, - "bsa_chunk_q": null, - "bsa_sparsity": null, - "enable_bsa": null - }, - "ltx2": { - "audio_latent_path": null, - "initial_latent_path": null, - "legacy_native_noise_order": false, - "refine": { - "add_noise": true, - "audio_noise_path": null, - "enabled": false, - "guidance_scale": 1.0, - "image_crf": null, - "lora_path": null, - "noise_path": null, - "num_inference_steps": 3, - "transformer_path": null, - "video_position_offset_sec": null - }, - "use_distilled_sigmas": true, - "vae_spatial_tile_overlap_in_pixels": null, - "vae_spatial_tile_size_in_pixels": null, - "vae_temporal_tile_overlap_in_frames": null, - "vae_temporal_tile_size_in_frames": null - }, - "minimax_h3": { - "sequential_load": null, - "taeh3_checkpoint": null, - "taeh3_chunk_size": 5, - "vae_parallel_decode": false, - "vae_parallel_decode_strategy": "gather", - "vae_parallel_encode": false, - "video_decode_backend": "h3-vae" + "model": { + "dit": {}, + "family": "generic", + "vae": {} }, "output_type": "pil", "preset": null, "preset_overrides": {}, "preset_version": null, - "vae": {}, "vae_sp": false, "vae_tiling": false, "workload_type": "t2v" diff --git a/fastvideo/tests/api/config_snapshot_goldens/config/experimental_keys.json b/fastvideo/tests/api/config_snapshot_goldens/config/experimental_keys.json index ef49fb4df..090d4dc01 100644 --- a/fastvideo/tests/api/config_snapshot_goldens/config/experimental_keys.json +++ b/fastvideo/tests/api/config_snapshot_goldens/config/experimental_keys.json @@ -276,9 +276,13 @@ "pipeline_config_class": "fastvideo.models.wan.pipeline_config.WanT2V480PConfig", "resolution_decisions": [ [ - "fill_vae_parallel_from_env", + "fill_model_family[generic]", { - "pipeline.minimax_h3.vae_parallel_decode_strategy": "gather" + "pipeline.model": { + "dit": {}, + "family": "generic", + "vae": {} + } } ], [ @@ -320,16 +324,6 @@ "engine.compile.regional": false, "engine.compile.text_encoder_enabled": false, "engine.compile.vae_enabled": false, - "pipeline.ltx2.legacy_native_noise_order": false, - "pipeline.ltx2.refine.add_noise": true, - "pipeline.ltx2.refine.enabled": false, - "pipeline.ltx2.refine.guidance_scale": 1.0, - "pipeline.ltx2.refine.num_inference_steps": 3, - "pipeline.ltx2.use_distilled_sigmas": true, - "pipeline.minimax_h3.taeh3_chunk_size": 5, - "pipeline.minimax_h3.vae_parallel_decode": false, - "pipeline.minimax_h3.vae_parallel_encode": false, - "pipeline.minimax_h3.video_decode_backend": "h3-vae", "pipeline.workload_type": "t2v" } ] @@ -412,7 +406,6 @@ "upsampler_weights": null, "vae_weights": null }, - "dit": {}, "dmd_denoising_steps": null, "embedded_cfg_scale": 6.0, "experimental": { @@ -424,49 +417,15 @@ } }, "flow_shift": 3.0, - "longcat": { - "bsa_cdf_threshold": null, - "bsa_chunk_k": null, - "bsa_chunk_q": null, - "bsa_sparsity": null, - "enable_bsa": null - }, - "ltx2": { - "audio_latent_path": null, - "initial_latent_path": null, - "legacy_native_noise_order": false, - "refine": { - "add_noise": true, - "audio_noise_path": null, - "enabled": false, - "guidance_scale": 1.0, - "image_crf": null, - "lora_path": null, - "noise_path": null, - "num_inference_steps": 3, - "transformer_path": null, - "video_position_offset_sec": null - }, - "use_distilled_sigmas": true, - "vae_spatial_tile_overlap_in_pixels": null, - "vae_spatial_tile_size_in_pixels": null, - "vae_temporal_tile_overlap_in_frames": null, - "vae_temporal_tile_size_in_frames": null - }, - "minimax_h3": { - "sequential_load": null, - "taeh3_checkpoint": null, - "taeh3_chunk_size": 5, - "vae_parallel_decode": false, - "vae_parallel_decode_strategy": "gather", - "vae_parallel_encode": false, - "video_decode_backend": "h3-vae" + "model": { + "dit": {}, + "family": "generic", + "vae": {} }, "output_type": "pil", "preset": null, "preset_overrides": {}, "preset_version": null, - "vae": {}, "vae_sp": false, "vae_tiling": false, "workload_type": "t2v" diff --git a/fastvideo/tests/api/config_snapshot_goldens/config/ltx2_refine_lora_disabled.json b/fastvideo/tests/api/config_snapshot_goldens/config/ltx2_refine_lora_disabled.json index 62f5c05aa..2572573c0 100644 --- a/fastvideo/tests/api/config_snapshot_goldens/config/ltx2_refine_lora_disabled.json +++ b/fastvideo/tests/api/config_snapshot_goldens/config/ltx2_refine_lora_disabled.json @@ -256,12 +256,6 @@ }, "pipeline_config_class": "fastvideo.pipelines.basic.ltx2.pipeline_configs.LTX2T2VConfig", "resolution_decisions": [ - [ - "fill_vae_parallel_from_env", - { - "pipeline.minimax_h3.vae_parallel_decode_strategy": "gather" - } - ], [ "fill_pipeline_config_defaults[LTX2T2VConfig]", { @@ -299,16 +293,12 @@ "engine.compile.regional": false, "engine.compile.text_encoder_enabled": false, "engine.compile.vae_enabled": false, - "pipeline.ltx2.legacy_native_noise_order": false, - "pipeline.ltx2.refine.add_noise": true, - "pipeline.ltx2.refine.enabled": false, - "pipeline.ltx2.refine.guidance_scale": 1.0, - "pipeline.ltx2.refine.num_inference_steps": 3, - "pipeline.ltx2.use_distilled_sigmas": true, - "pipeline.minimax_h3.taeh3_chunk_size": 5, - "pipeline.minimax_h3.vae_parallel_decode": false, - "pipeline.minimax_h3.vae_parallel_encode": false, - "pipeline.minimax_h3.video_decode_backend": "h3-vae", + "pipeline.model.legacy_native_noise_order": false, + "pipeline.model.refine.add_noise": true, + "pipeline.model.refine.enabled": false, + "pipeline.model.refine.guidance_scale": 1.0, + "pipeline.model.refine.num_inference_steps": 3, + "pipeline.model.use_distilled_sigmas": true, "pipeline.workload_type": "t2v" } ] @@ -391,20 +381,14 @@ "upsampler_weights": null, "vae_weights": null }, - "dit": {}, "dmd_denoising_steps": null, "embedded_cfg_scale": 6.0, "experimental": {}, "flow_shift": null, - "longcat": { - "bsa_cdf_threshold": null, - "bsa_chunk_k": null, - "bsa_chunk_q": null, - "bsa_sparsity": null, - "enable_bsa": null - }, - "ltx2": { + "model": { "audio_latent_path": null, + "dit": {}, + "family": "ltx2", "initial_latent_path": null, "legacy_native_noise_order": false, "refine": { @@ -420,25 +404,16 @@ "video_position_offset_sec": null }, "use_distilled_sigmas": true, + "vae": {}, "vae_spatial_tile_overlap_in_pixels": null, "vae_spatial_tile_size_in_pixels": null, "vae_temporal_tile_overlap_in_frames": null, "vae_temporal_tile_size_in_frames": null }, - "minimax_h3": { - "sequential_load": null, - "taeh3_checkpoint": null, - "taeh3_chunk_size": 5, - "vae_parallel_decode": false, - "vae_parallel_decode_strategy": "gather", - "vae_parallel_encode": false, - "video_decode_backend": "h3-vae" - }, "output_type": "pil", "preset": null, "preset_overrides": {}, "preset_version": null, - "vae": {}, "vae_sp": false, "vae_tiling": true, "workload_type": "t2v" diff --git a/fastvideo/tests/api/config_snapshot_goldens/config/ltx2_refine_lora_path.json b/fastvideo/tests/api/config_snapshot_goldens/config/ltx2_refine_lora_path.json index 0f22bc579..422a39c7c 100644 --- a/fastvideo/tests/api/config_snapshot_goldens/config/ltx2_refine_lora_path.json +++ b/fastvideo/tests/api/config_snapshot_goldens/config/ltx2_refine_lora_path.json @@ -256,12 +256,6 @@ }, "pipeline_config_class": "fastvideo.pipelines.basic.ltx2.pipeline_configs.LTX2T2VConfig", "resolution_decisions": [ - [ - "fill_vae_parallel_from_env", - { - "pipeline.minimax_h3.vae_parallel_decode_strategy": "gather" - } - ], [ "fill_pipeline_config_defaults[LTX2T2VConfig]", { @@ -299,16 +293,12 @@ "engine.compile.regional": false, "engine.compile.text_encoder_enabled": false, "engine.compile.vae_enabled": false, - "pipeline.ltx2.legacy_native_noise_order": false, - "pipeline.ltx2.refine.add_noise": true, - "pipeline.ltx2.refine.enabled": false, - "pipeline.ltx2.refine.guidance_scale": 1.0, - "pipeline.ltx2.refine.num_inference_steps": 3, - "pipeline.ltx2.use_distilled_sigmas": true, - "pipeline.minimax_h3.taeh3_chunk_size": 5, - "pipeline.minimax_h3.vae_parallel_decode": false, - "pipeline.minimax_h3.vae_parallel_encode": false, - "pipeline.minimax_h3.video_decode_backend": "h3-vae", + "pipeline.model.legacy_native_noise_order": false, + "pipeline.model.refine.add_noise": true, + "pipeline.model.refine.enabled": false, + "pipeline.model.refine.guidance_scale": 1.0, + "pipeline.model.refine.num_inference_steps": 3, + "pipeline.model.use_distilled_sigmas": true, "pipeline.workload_type": "t2v" } ] @@ -391,20 +381,14 @@ "upsampler_weights": null, "vae_weights": null }, - "dit": {}, "dmd_denoising_steps": null, "embedded_cfg_scale": 6.0, "experimental": {}, "flow_shift": null, - "longcat": { - "bsa_cdf_threshold": null, - "bsa_chunk_k": null, - "bsa_chunk_q": null, - "bsa_sparsity": null, - "enable_bsa": null - }, - "ltx2": { + "model": { "audio_latent_path": null, + "dit": {}, + "family": "ltx2", "initial_latent_path": null, "legacy_native_noise_order": false, "refine": { @@ -420,25 +404,16 @@ "video_position_offset_sec": null }, "use_distilled_sigmas": true, + "vae": {}, "vae_spatial_tile_overlap_in_pixels": null, "vae_spatial_tile_size_in_pixels": null, "vae_temporal_tile_overlap_in_frames": null, "vae_temporal_tile_size_in_frames": null }, - "minimax_h3": { - "sequential_load": null, - "taeh3_checkpoint": null, - "taeh3_chunk_size": 5, - "vae_parallel_decode": false, - "vae_parallel_decode_strategy": "gather", - "vae_parallel_encode": false, - "video_decode_backend": "h3-vae" - }, "output_type": "pil", "preset": null, "preset_overrides": {}, "preset_version": null, - "vae": {}, "vae_sp": false, "vae_tiling": true, "workload_type": "t2v" diff --git a/fastvideo/tests/api/config_snapshot_goldens/config/ltx2_vae_tile_sizes.json b/fastvideo/tests/api/config_snapshot_goldens/config/ltx2_vae_tile_sizes.json index 69cc9c2a3..0f61be941 100644 --- a/fastvideo/tests/api/config_snapshot_goldens/config/ltx2_vae_tile_sizes.json +++ b/fastvideo/tests/api/config_snapshot_goldens/config/ltx2_vae_tile_sizes.json @@ -256,12 +256,6 @@ }, "pipeline_config_class": "fastvideo.pipelines.basic.ltx2.pipeline_configs.LTX2T2VConfig", "resolution_decisions": [ - [ - "fill_vae_parallel_from_env", - { - "pipeline.minimax_h3.vae_parallel_decode_strategy": "gather" - } - ], [ "fill_pipeline_config_defaults[LTX2T2VConfig]", { @@ -299,16 +293,12 @@ "engine.compile.regional": false, "engine.compile.text_encoder_enabled": false, "engine.compile.vae_enabled": false, - "pipeline.ltx2.legacy_native_noise_order": false, - "pipeline.ltx2.refine.add_noise": true, - "pipeline.ltx2.refine.enabled": false, - "pipeline.ltx2.refine.guidance_scale": 1.0, - "pipeline.ltx2.refine.num_inference_steps": 3, - "pipeline.ltx2.use_distilled_sigmas": true, - "pipeline.minimax_h3.taeh3_chunk_size": 5, - "pipeline.minimax_h3.vae_parallel_decode": false, - "pipeline.minimax_h3.vae_parallel_encode": false, - "pipeline.minimax_h3.video_decode_backend": "h3-vae", + "pipeline.model.legacy_native_noise_order": false, + "pipeline.model.refine.add_noise": true, + "pipeline.model.refine.enabled": false, + "pipeline.model.refine.guidance_scale": 1.0, + "pipeline.model.refine.num_inference_steps": 3, + "pipeline.model.use_distilled_sigmas": true, "pipeline.workload_type": "t2v" } ] @@ -391,20 +381,14 @@ "upsampler_weights": null, "vae_weights": null }, - "dit": {}, "dmd_denoising_steps": null, "embedded_cfg_scale": 6.0, "experimental": {}, "flow_shift": null, - "longcat": { - "bsa_cdf_threshold": null, - "bsa_chunk_k": null, - "bsa_chunk_q": null, - "bsa_sparsity": null, - "enable_bsa": null - }, - "ltx2": { + "model": { "audio_latent_path": null, + "dit": {}, + "family": "ltx2", "initial_latent_path": null, "legacy_native_noise_order": false, "refine": { @@ -420,25 +404,16 @@ "video_position_offset_sec": null }, "use_distilled_sigmas": true, + "vae": {}, "vae_spatial_tile_overlap_in_pixels": null, "vae_spatial_tile_size_in_pixels": 512, "vae_temporal_tile_overlap_in_frames": null, "vae_temporal_tile_size_in_frames": 64 }, - "minimax_h3": { - "sequential_load": null, - "taeh3_checkpoint": null, - "taeh3_chunk_size": 5, - "vae_parallel_decode": false, - "vae_parallel_decode_strategy": "gather", - "vae_parallel_encode": false, - "video_decode_backend": "h3-vae" - }, "output_type": "pil", "preset": null, "preset_overrides": {}, "preset_version": null, - "vae": {}, "vae_sp": false, "vae_tiling": true, "workload_type": "t2v" diff --git a/fastvideo/tests/api/config_snapshot_goldens/config/master_port_refine_enabled_boundary_ratio.json b/fastvideo/tests/api/config_snapshot_goldens/config/master_port_refine_enabled_boundary_ratio.json index 019154b48..65800c07f 100644 --- a/fastvideo/tests/api/config_snapshot_goldens/config/master_port_refine_enabled_boundary_ratio.json +++ b/fastvideo/tests/api/config_snapshot_goldens/config/master_port_refine_enabled_boundary_ratio.json @@ -276,9 +276,13 @@ "pipeline_config_class": "fastvideo.models.wan.pipeline_config.WanT2V480PConfig", "resolution_decisions": [ [ - "fill_vae_parallel_from_env", + "fill_model_family[generic]", { - "pipeline.minimax_h3.vae_parallel_decode_strategy": "gather" + "pipeline.model": { + "dit": {}, + "family": "generic", + "vae": {} + } } ], [ @@ -320,15 +324,6 @@ "engine.compile.regional": false, "engine.compile.text_encoder_enabled": false, "engine.compile.vae_enabled": false, - "pipeline.ltx2.legacy_native_noise_order": false, - "pipeline.ltx2.refine.add_noise": true, - "pipeline.ltx2.refine.guidance_scale": 1.0, - "pipeline.ltx2.refine.num_inference_steps": 3, - "pipeline.ltx2.use_distilled_sigmas": true, - "pipeline.minimax_h3.taeh3_chunk_size": 5, - "pipeline.minimax_h3.vae_parallel_decode": false, - "pipeline.minimax_h3.vae_parallel_encode": false, - "pipeline.minimax_h3.video_decode_backend": "h3-vae", "pipeline.workload_type": "t2v" } ] @@ -411,54 +406,23 @@ "upsampler_weights": null, "vae_weights": null }, - "dit": {}, "dmd_denoising_steps": null, "embedded_cfg_scale": 6.0, "experimental": {}, "flow_shift": 3.0, - "longcat": { - "bsa_cdf_threshold": null, - "bsa_chunk_k": null, - "bsa_chunk_q": null, - "bsa_sparsity": null, - "enable_bsa": null - }, - "ltx2": { - "audio_latent_path": null, - "initial_latent_path": null, - "legacy_native_noise_order": false, - "refine": { - "add_noise": true, - "audio_noise_path": null, - "enabled": true, - "guidance_scale": 1.0, - "image_crf": null, - "lora_path": null, - "noise_path": null, - "num_inference_steps": 3, - "transformer_path": null, - "video_position_offset_sec": null - }, - "use_distilled_sigmas": true, - "vae_spatial_tile_overlap_in_pixels": null, - "vae_spatial_tile_size_in_pixels": null, - "vae_temporal_tile_overlap_in_frames": null, - "vae_temporal_tile_size_in_frames": null - }, - "minimax_h3": { - "sequential_load": null, - "taeh3_checkpoint": null, - "taeh3_chunk_size": 5, - "vae_parallel_decode": false, - "vae_parallel_decode_strategy": "gather", - "vae_parallel_encode": false, - "video_decode_backend": "h3-vae" + "model": { + "dit": {}, + "family": "generic", + "vae": {} }, "output_type": "pil", "preset": null, - "preset_overrides": {}, + "preset_overrides": { + "refine": { + "enabled": true + } + }, "preset_version": null, - "vae": {}, "vae_sp": false, "vae_tiling": false, "workload_type": "t2v" diff --git a/fastvideo/tests/api/config_snapshot_goldens/config/pipeline_config_json_path.json b/fastvideo/tests/api/config_snapshot_goldens/config/pipeline_config_json_path.json index 5afd20451..cd0c22c70 100644 --- a/fastvideo/tests/api/config_snapshot_goldens/config/pipeline_config_json_path.json +++ b/fastvideo/tests/api/config_snapshot_goldens/config/pipeline_config_json_path.json @@ -304,9 +304,13 @@ "pipeline_config_class": "fastvideo.configs.pipelines.hunyuan.FastHunyuanConfig", "resolution_decisions": [ [ - "fill_vae_parallel_from_env", + "fill_model_family[generic]", { - "pipeline.minimax_h3.vae_parallel_decode_strategy": "gather" + "pipeline.model": { + "dit": {}, + "family": "generic", + "vae": {} + } } ], [ @@ -348,16 +352,6 @@ "engine.compile.regional": false, "engine.compile.text_encoder_enabled": false, "engine.compile.vae_enabled": false, - "pipeline.ltx2.legacy_native_noise_order": false, - "pipeline.ltx2.refine.add_noise": true, - "pipeline.ltx2.refine.enabled": false, - "pipeline.ltx2.refine.guidance_scale": 1.0, - "pipeline.ltx2.refine.num_inference_steps": 3, - "pipeline.ltx2.use_distilled_sigmas": true, - "pipeline.minimax_h3.taeh3_chunk_size": 5, - "pipeline.minimax_h3.vae_parallel_decode": false, - "pipeline.minimax_h3.vae_parallel_encode": false, - "pipeline.minimax_h3.video_decode_backend": "h3-vae", "pipeline.workload_type": "t2v" } ] @@ -441,54 +435,19 @@ "upsampler_weights": null, "vae_weights": null }, - "dit": {}, "dmd_denoising_steps": null, "embedded_cfg_scale": 6, "experimental": {}, "flow_shift": 17, - "longcat": { - "bsa_cdf_threshold": null, - "bsa_chunk_k": null, - "bsa_chunk_q": null, - "bsa_sparsity": null, - "enable_bsa": null - }, - "ltx2": { - "audio_latent_path": null, - "initial_latent_path": null, - "legacy_native_noise_order": false, - "refine": { - "add_noise": true, - "audio_noise_path": null, - "enabled": false, - "guidance_scale": 1.0, - "image_crf": null, - "lora_path": null, - "noise_path": null, - "num_inference_steps": 3, - "transformer_path": null, - "video_position_offset_sec": null - }, - "use_distilled_sigmas": true, - "vae_spatial_tile_overlap_in_pixels": null, - "vae_spatial_tile_size_in_pixels": null, - "vae_temporal_tile_overlap_in_frames": null, - "vae_temporal_tile_size_in_frames": null - }, - "minimax_h3": { - "sequential_load": null, - "taeh3_checkpoint": null, - "taeh3_chunk_size": 5, - "vae_parallel_decode": false, - "vae_parallel_decode_strategy": "gather", - "vae_parallel_encode": false, - "video_decode_backend": "h3-vae" + "model": { + "dit": {}, + "family": "generic", + "vae": {} }, "output_type": "pil", "preset": null, "preset_overrides": {}, "preset_version": null, - "vae": {}, "vae_sp": true, "vae_tiling": true, "workload_type": "t2v" diff --git a/fastvideo/tests/api/config_snapshot_goldens/config/torch_compile_kwargs_typed_and_extra.json b/fastvideo/tests/api/config_snapshot_goldens/config/torch_compile_kwargs_typed_and_extra.json index 40cea3034..a02ff55bf 100644 --- a/fastvideo/tests/api/config_snapshot_goldens/config/torch_compile_kwargs_typed_and_extra.json +++ b/fastvideo/tests/api/config_snapshot_goldens/config/torch_compile_kwargs_typed_and_extra.json @@ -276,9 +276,13 @@ "pipeline_config_class": "fastvideo.models.wan.pipeline_config.WanT2V480PConfig", "resolution_decisions": [ [ - "fill_vae_parallel_from_env", + "fill_model_family[generic]", { - "pipeline.minimax_h3.vae_parallel_decode_strategy": "gather" + "pipeline.model": { + "dit": {}, + "family": "generic", + "vae": {} + } } ], [ @@ -320,16 +324,6 @@ "engine.compile.regional": false, "engine.compile.text_encoder_enabled": false, "engine.compile.vae_enabled": false, - "pipeline.ltx2.legacy_native_noise_order": false, - "pipeline.ltx2.refine.add_noise": true, - "pipeline.ltx2.refine.enabled": false, - "pipeline.ltx2.refine.guidance_scale": 1.0, - "pipeline.ltx2.refine.num_inference_steps": 3, - "pipeline.ltx2.use_distilled_sigmas": true, - "pipeline.minimax_h3.taeh3_chunk_size": 5, - "pipeline.minimax_h3.vae_parallel_decode": false, - "pipeline.minimax_h3.vae_parallel_encode": false, - "pipeline.minimax_h3.video_decode_backend": "h3-vae", "pipeline.workload_type": "t2v" } ] @@ -416,54 +410,19 @@ "upsampler_weights": null, "vae_weights": null }, - "dit": {}, "dmd_denoising_steps": null, "embedded_cfg_scale": 6.0, "experimental": {}, "flow_shift": 3.0, - "longcat": { - "bsa_cdf_threshold": null, - "bsa_chunk_k": null, - "bsa_chunk_q": null, - "bsa_sparsity": null, - "enable_bsa": null - }, - "ltx2": { - "audio_latent_path": null, - "initial_latent_path": null, - "legacy_native_noise_order": false, - "refine": { - "add_noise": true, - "audio_noise_path": null, - "enabled": false, - "guidance_scale": 1.0, - "image_crf": null, - "lora_path": null, - "noise_path": null, - "num_inference_steps": 3, - "transformer_path": null, - "video_position_offset_sec": null - }, - "use_distilled_sigmas": true, - "vae_spatial_tile_overlap_in_pixels": null, - "vae_spatial_tile_size_in_pixels": null, - "vae_temporal_tile_overlap_in_frames": null, - "vae_temporal_tile_size_in_frames": null - }, - "minimax_h3": { - "sequential_load": null, - "taeh3_checkpoint": null, - "taeh3_chunk_size": 5, - "vae_parallel_decode": false, - "vae_parallel_decode_strategy": "gather", - "vae_parallel_encode": false, - "video_decode_backend": "h3-vae" + "model": { + "dit": {}, + "family": "generic", + "vae": {} }, "output_type": "pil", "preset": null, "preset_overrides": {}, "preset_version": null, - "vae": {}, "vae_sp": false, "vae_tiling": false, "workload_type": "t2v" diff --git a/fastvideo/tests/api/config_snapshot_goldens/config/typed_offload_and_parallelism.json b/fastvideo/tests/api/config_snapshot_goldens/config/typed_offload_and_parallelism.json index 327f9f1ed..a63b8b8f0 100644 --- a/fastvideo/tests/api/config_snapshot_goldens/config/typed_offload_and_parallelism.json +++ b/fastvideo/tests/api/config_snapshot_goldens/config/typed_offload_and_parallelism.json @@ -276,9 +276,13 @@ "pipeline_config_class": "fastvideo.models.wan.pipeline_config.WanT2V480PConfig", "resolution_decisions": [ [ - "fill_vae_parallel_from_env", + "fill_model_family[generic]", { - "pipeline.minimax_h3.vae_parallel_decode_strategy": "gather" + "pipeline.model": { + "dit": {}, + "family": "generic", + "vae": {} + } } ], [ @@ -319,16 +323,6 @@ "engine.compile.regional": false, "engine.compile.text_encoder_enabled": false, "engine.compile.vae_enabled": false, - "pipeline.ltx2.legacy_native_noise_order": false, - "pipeline.ltx2.refine.add_noise": true, - "pipeline.ltx2.refine.enabled": false, - "pipeline.ltx2.refine.guidance_scale": 1.0, - "pipeline.ltx2.refine.num_inference_steps": 3, - "pipeline.ltx2.use_distilled_sigmas": true, - "pipeline.minimax_h3.taeh3_chunk_size": 5, - "pipeline.minimax_h3.vae_parallel_decode": false, - "pipeline.minimax_h3.vae_parallel_encode": false, - "pipeline.minimax_h3.video_decode_backend": "h3-vae", "pipeline.workload_type": "t2v" } ] @@ -411,54 +405,19 @@ "upsampler_weights": null, "vae_weights": null }, - "dit": {}, "dmd_denoising_steps": null, "embedded_cfg_scale": 6.0, "experimental": {}, "flow_shift": 3.0, - "longcat": { - "bsa_cdf_threshold": null, - "bsa_chunk_k": null, - "bsa_chunk_q": null, - "bsa_sparsity": null, - "enable_bsa": null - }, - "ltx2": { - "audio_latent_path": null, - "initial_latent_path": null, - "legacy_native_noise_order": false, - "refine": { - "add_noise": true, - "audio_noise_path": null, - "enabled": false, - "guidance_scale": 1.0, - "image_crf": null, - "lora_path": null, - "noise_path": null, - "num_inference_steps": 3, - "transformer_path": null, - "video_position_offset_sec": null - }, - "use_distilled_sigmas": true, - "vae_spatial_tile_overlap_in_pixels": null, - "vae_spatial_tile_size_in_pixels": null, - "vae_temporal_tile_overlap_in_frames": null, - "vae_temporal_tile_size_in_frames": null - }, - "minimax_h3": { - "sequential_load": null, - "taeh3_checkpoint": null, - "taeh3_chunk_size": 5, - "vae_parallel_decode": false, - "vae_parallel_decode_strategy": "gather", - "vae_parallel_encode": false, - "video_decode_backend": "h3-vae" + "model": { + "dit": {}, + "family": "generic", + "vae": {} }, "output_type": "pil", "preset": null, "preset_overrides": {}, "preset_version": null, - "vae": {}, "vae_sp": false, "vae_tiling": false, "workload_type": "t2v" diff --git a/fastvideo/tests/api/config_snapshot_goldens/config/vae_tiling_typed.json b/fastvideo/tests/api/config_snapshot_goldens/config/vae_tiling_typed.json index 54605cc41..546b200cd 100644 --- a/fastvideo/tests/api/config_snapshot_goldens/config/vae_tiling_typed.json +++ b/fastvideo/tests/api/config_snapshot_goldens/config/vae_tiling_typed.json @@ -257,9 +257,33 @@ "pipeline_config_class": "fastvideo.pipelines.basic.ltx2.pipeline_configs.LTX2T2VConfig", "resolution_decisions": [ [ - "fill_vae_parallel_from_env", + "fill_model_family[ltx2]", { - "pipeline.minimax_h3.vae_parallel_decode_strategy": "gather" + "pipeline.model": { + "audio_latent_path": null, + "dit": {}, + "family": "ltx2", + "initial_latent_path": null, + "legacy_native_noise_order": null, + "refine": { + "add_noise": null, + "audio_noise_path": null, + "enabled": null, + "guidance_scale": null, + "image_crf": null, + "lora_path": null, + "noise_path": null, + "num_inference_steps": null, + "transformer_path": null, + "video_position_offset_sec": null + }, + "use_distilled_sigmas": null, + "vae": {}, + "vae_spatial_tile_overlap_in_pixels": null, + "vae_spatial_tile_size_in_pixels": null, + "vae_temporal_tile_overlap_in_frames": null, + "vae_temporal_tile_size_in_frames": null + } } ], [ @@ -293,16 +317,12 @@ "engine.compile.regional": false, "engine.compile.text_encoder_enabled": false, "engine.compile.vae_enabled": false, - "pipeline.ltx2.legacy_native_noise_order": false, - "pipeline.ltx2.refine.add_noise": true, - "pipeline.ltx2.refine.enabled": false, - "pipeline.ltx2.refine.guidance_scale": 1.0, - "pipeline.ltx2.refine.num_inference_steps": 3, - "pipeline.ltx2.use_distilled_sigmas": true, - "pipeline.minimax_h3.taeh3_chunk_size": 5, - "pipeline.minimax_h3.vae_parallel_decode": false, - "pipeline.minimax_h3.vae_parallel_encode": false, - "pipeline.minimax_h3.video_decode_backend": "h3-vae", + "pipeline.model.legacy_native_noise_order": false, + "pipeline.model.refine.add_noise": true, + "pipeline.model.refine.enabled": false, + "pipeline.model.refine.guidance_scale": 1.0, + "pipeline.model.refine.num_inference_steps": 3, + "pipeline.model.use_distilled_sigmas": true, "pipeline.workload_type": "t2v" } ] @@ -385,20 +405,14 @@ "upsampler_weights": null, "vae_weights": null }, - "dit": {}, "dmd_denoising_steps": null, "embedded_cfg_scale": 6.0, "experimental": {}, "flow_shift": null, - "longcat": { - "bsa_cdf_threshold": null, - "bsa_chunk_k": null, - "bsa_chunk_q": null, - "bsa_sparsity": null, - "enable_bsa": null - }, - "ltx2": { + "model": { "audio_latent_path": null, + "dit": {}, + "family": "ltx2", "initial_latent_path": null, "legacy_native_noise_order": false, "refine": { @@ -414,25 +428,16 @@ "video_position_offset_sec": null }, "use_distilled_sigmas": true, + "vae": {}, "vae_spatial_tile_overlap_in_pixels": null, "vae_spatial_tile_size_in_pixels": null, "vae_temporal_tile_overlap_in_frames": null, "vae_temporal_tile_size_in_frames": null }, - "minimax_h3": { - "sequential_load": null, - "taeh3_checkpoint": null, - "taeh3_chunk_size": 5, - "vae_parallel_decode": false, - "vae_parallel_decode_strategy": "gather", - "vae_parallel_encode": false, - "video_decode_backend": "h3-vae" - }, "output_type": "pil", "preset": null, "preset_overrides": {}, "preset_version": null, - "vae": {}, "vae_sp": false, "vae_tiling": false, "workload_type": "t2v" diff --git a/fastvideo/tests/api/config_snapshot_goldens/environment/attention_backend.json b/fastvideo/tests/api/config_snapshot_goldens/environment/attention_backend.json index 6374444b7..545ebc63f 100644 --- a/fastvideo/tests/api/config_snapshot_goldens/environment/attention_backend.json +++ b/fastvideo/tests/api/config_snapshot_goldens/environment/attention_backend.json @@ -276,15 +276,19 @@ "pipeline_config_class": "fastvideo.models.wan.pipeline_config.WanT2V480PConfig", "resolution_decisions": [ [ - "fill_attention_backend_from_env", + "fill_model_family[generic]", { - "engine.attention.backend": "TORCH_SDPA" + "pipeline.model": { + "dit": {}, + "family": "generic", + "vae": {} + } } ], [ - "fill_vae_parallel_from_env", + "fill_attention_backend_from_env", { - "pipeline.minimax_h3.vae_parallel_decode_strategy": "gather" + "engine.attention.backend": "TORCH_SDPA" } ], [ @@ -326,16 +330,6 @@ "engine.compile.regional": false, "engine.compile.text_encoder_enabled": false, "engine.compile.vae_enabled": false, - "pipeline.ltx2.legacy_native_noise_order": false, - "pipeline.ltx2.refine.add_noise": true, - "pipeline.ltx2.refine.enabled": false, - "pipeline.ltx2.refine.guidance_scale": 1.0, - "pipeline.ltx2.refine.num_inference_steps": 3, - "pipeline.ltx2.use_distilled_sigmas": true, - "pipeline.minimax_h3.taeh3_chunk_size": 5, - "pipeline.minimax_h3.vae_parallel_decode": false, - "pipeline.minimax_h3.vae_parallel_encode": false, - "pipeline.minimax_h3.video_decode_backend": "h3-vae", "pipeline.workload_type": "t2v" } ] @@ -418,54 +412,19 @@ "upsampler_weights": null, "vae_weights": null }, - "dit": {}, "dmd_denoising_steps": null, "embedded_cfg_scale": 6.0, "experimental": {}, "flow_shift": 3.0, - "longcat": { - "bsa_cdf_threshold": null, - "bsa_chunk_k": null, - "bsa_chunk_q": null, - "bsa_sparsity": null, - "enable_bsa": null - }, - "ltx2": { - "audio_latent_path": null, - "initial_latent_path": null, - "legacy_native_noise_order": false, - "refine": { - "add_noise": true, - "audio_noise_path": null, - "enabled": false, - "guidance_scale": 1.0, - "image_crf": null, - "lora_path": null, - "noise_path": null, - "num_inference_steps": 3, - "transformer_path": null, - "video_position_offset_sec": null - }, - "use_distilled_sigmas": true, - "vae_spatial_tile_overlap_in_pixels": null, - "vae_spatial_tile_size_in_pixels": null, - "vae_temporal_tile_overlap_in_frames": null, - "vae_temporal_tile_size_in_frames": null - }, - "minimax_h3": { - "sequential_load": null, - "taeh3_checkpoint": null, - "taeh3_chunk_size": 5, - "vae_parallel_decode": false, - "vae_parallel_decode_strategy": "gather", - "vae_parallel_encode": false, - "video_decode_backend": "h3-vae" + "model": { + "dit": {}, + "family": "generic", + "vae": {} }, "output_type": "pil", "preset": null, "preset_overrides": {}, "preset_version": null, - "vae": {}, "vae_sp": false, "vae_tiling": false, "workload_type": "t2v" diff --git a/fastvideo/tests/api/config_snapshot_goldens/environment/explicit_argument_wins_over_attention_backend.json b/fastvideo/tests/api/config_snapshot_goldens/environment/explicit_argument_wins_over_attention_backend.json index 1e5f23349..2c5fb60ec 100644 --- a/fastvideo/tests/api/config_snapshot_goldens/environment/explicit_argument_wins_over_attention_backend.json +++ b/fastvideo/tests/api/config_snapshot_goldens/environment/explicit_argument_wins_over_attention_backend.json @@ -276,9 +276,13 @@ "pipeline_config_class": "fastvideo.models.wan.pipeline_config.WanT2V480PConfig", "resolution_decisions": [ [ - "fill_vae_parallel_from_env", + "fill_model_family[generic]", { - "pipeline.minimax_h3.vae_parallel_decode_strategy": "gather" + "pipeline.model": { + "dit": {}, + "family": "generic", + "vae": {} + } } ], [ @@ -320,16 +324,6 @@ "engine.compile.regional": false, "engine.compile.text_encoder_enabled": false, "engine.compile.vae_enabled": false, - "pipeline.ltx2.legacy_native_noise_order": false, - "pipeline.ltx2.refine.add_noise": true, - "pipeline.ltx2.refine.enabled": false, - "pipeline.ltx2.refine.guidance_scale": 1.0, - "pipeline.ltx2.refine.num_inference_steps": 3, - "pipeline.ltx2.use_distilled_sigmas": true, - "pipeline.minimax_h3.taeh3_chunk_size": 5, - "pipeline.minimax_h3.vae_parallel_decode": false, - "pipeline.minimax_h3.vae_parallel_encode": false, - "pipeline.minimax_h3.video_decode_backend": "h3-vae", "pipeline.workload_type": "t2v" } ] @@ -412,54 +406,19 @@ "upsampler_weights": null, "vae_weights": null }, - "dit": {}, "dmd_denoising_steps": null, "embedded_cfg_scale": 6.0, "experimental": {}, "flow_shift": 3.0, - "longcat": { - "bsa_cdf_threshold": null, - "bsa_chunk_k": null, - "bsa_chunk_q": null, - "bsa_sparsity": null, - "enable_bsa": null - }, - "ltx2": { - "audio_latent_path": null, - "initial_latent_path": null, - "legacy_native_noise_order": false, - "refine": { - "add_noise": true, - "audio_noise_path": null, - "enabled": false, - "guidance_scale": 1.0, - "image_crf": null, - "lora_path": null, - "noise_path": null, - "num_inference_steps": 3, - "transformer_path": null, - "video_position_offset_sec": null - }, - "use_distilled_sigmas": true, - "vae_spatial_tile_overlap_in_pixels": null, - "vae_spatial_tile_size_in_pixels": null, - "vae_temporal_tile_overlap_in_frames": null, - "vae_temporal_tile_size_in_frames": null - }, - "minimax_h3": { - "sequential_load": null, - "taeh3_checkpoint": null, - "taeh3_chunk_size": 5, - "vae_parallel_decode": false, - "vae_parallel_decode_strategy": "gather", - "vae_parallel_encode": false, - "video_decode_backend": "h3-vae" + "model": { + "dit": {}, + "family": "generic", + "vae": {} }, "output_type": "pil", "preset": null, "preset_overrides": {}, "preset_version": null, - "vae": {}, "vae_sp": false, "vae_tiling": false, "workload_type": "t2v" diff --git a/fastvideo/tests/api/config_snapshot_goldens/environment/inference_torch_compile.json b/fastvideo/tests/api/config_snapshot_goldens/environment/inference_torch_compile.json index 4ce2ead10..6c9c8f4fd 100644 --- a/fastvideo/tests/api/config_snapshot_goldens/environment/inference_torch_compile.json +++ b/fastvideo/tests/api/config_snapshot_goldens/environment/inference_torch_compile.json @@ -276,15 +276,19 @@ "pipeline_config_class": "fastvideo.models.wan.pipeline_config.WanT2V480PConfig", "resolution_decisions": [ [ - "fill_regional_compile_from_env", + "fill_model_family[generic]", { - "engine.compile.regional": true + "pipeline.model": { + "dit": {}, + "family": "generic", + "vae": {} + } } ], [ - "fill_vae_parallel_from_env", + "fill_regional_compile_from_env", { - "pipeline.minimax_h3.vae_parallel_decode_strategy": "gather" + "engine.compile.regional": true } ], [ @@ -325,16 +329,6 @@ "engine.compile.audio_vae_enabled": false, "engine.compile.text_encoder_enabled": false, "engine.compile.vae_enabled": false, - "pipeline.ltx2.legacy_native_noise_order": false, - "pipeline.ltx2.refine.add_noise": true, - "pipeline.ltx2.refine.enabled": false, - "pipeline.ltx2.refine.guidance_scale": 1.0, - "pipeline.ltx2.refine.num_inference_steps": 3, - "pipeline.ltx2.use_distilled_sigmas": true, - "pipeline.minimax_h3.taeh3_chunk_size": 5, - "pipeline.minimax_h3.vae_parallel_decode": false, - "pipeline.minimax_h3.vae_parallel_encode": false, - "pipeline.minimax_h3.video_decode_backend": "h3-vae", "pipeline.workload_type": "t2v" } ] @@ -417,54 +411,19 @@ "upsampler_weights": null, "vae_weights": null }, - "dit": {}, "dmd_denoising_steps": null, "embedded_cfg_scale": 6.0, "experimental": {}, "flow_shift": 3.0, - "longcat": { - "bsa_cdf_threshold": null, - "bsa_chunk_k": null, - "bsa_chunk_q": null, - "bsa_sparsity": null, - "enable_bsa": null - }, - "ltx2": { - "audio_latent_path": null, - "initial_latent_path": null, - "legacy_native_noise_order": false, - "refine": { - "add_noise": true, - "audio_noise_path": null, - "enabled": false, - "guidance_scale": 1.0, - "image_crf": null, - "lora_path": null, - "noise_path": null, - "num_inference_steps": 3, - "transformer_path": null, - "video_position_offset_sec": null - }, - "use_distilled_sigmas": true, - "vae_spatial_tile_overlap_in_pixels": null, - "vae_spatial_tile_size_in_pixels": null, - "vae_temporal_tile_overlap_in_frames": null, - "vae_temporal_tile_size_in_frames": null - }, - "minimax_h3": { - "sequential_load": null, - "taeh3_checkpoint": null, - "taeh3_chunk_size": 5, - "vae_parallel_decode": false, - "vae_parallel_decode_strategy": "gather", - "vae_parallel_encode": false, - "video_decode_backend": "h3-vae" + "model": { + "dit": {}, + "family": "generic", + "vae": {} }, "output_type": "pil", "preset": null, "preset_overrides": {}, "preset_version": null, - "vae": {}, "vae_sp": false, "vae_tiling": false, "workload_type": "t2v" diff --git a/fastvideo/tests/api/config_snapshot_goldens/environment/vae_parallel.json b/fastvideo/tests/api/config_snapshot_goldens/environment/vae_parallel.json index a17087131..f9f98b643 100644 --- a/fastvideo/tests/api/config_snapshot_goldens/environment/vae_parallel.json +++ b/fastvideo/tests/api/config_snapshot_goldens/environment/vae_parallel.json @@ -276,11 +276,13 @@ "pipeline_config_class": "fastvideo.models.wan.pipeline_config.WanT2V480PConfig", "resolution_decisions": [ [ - "fill_vae_parallel_from_env", + "fill_model_family[generic]", { - "pipeline.minimax_h3.vae_parallel_decode": true, - "pipeline.minimax_h3.vae_parallel_decode_strategy": "all_gather", - "pipeline.minimax_h3.vae_parallel_encode": true + "pipeline.model": { + "dit": {}, + "family": "generic", + "vae": {} + } } ], [ @@ -322,14 +324,6 @@ "engine.compile.regional": false, "engine.compile.text_encoder_enabled": false, "engine.compile.vae_enabled": false, - "pipeline.ltx2.legacy_native_noise_order": false, - "pipeline.ltx2.refine.add_noise": true, - "pipeline.ltx2.refine.enabled": false, - "pipeline.ltx2.refine.guidance_scale": 1.0, - "pipeline.ltx2.refine.num_inference_steps": 3, - "pipeline.ltx2.use_distilled_sigmas": true, - "pipeline.minimax_h3.taeh3_chunk_size": 5, - "pipeline.minimax_h3.video_decode_backend": "h3-vae", "pipeline.workload_type": "t2v" } ] @@ -412,54 +406,19 @@ "upsampler_weights": null, "vae_weights": null }, - "dit": {}, "dmd_denoising_steps": null, "embedded_cfg_scale": 6.0, "experimental": {}, "flow_shift": 3.0, - "longcat": { - "bsa_cdf_threshold": null, - "bsa_chunk_k": null, - "bsa_chunk_q": null, - "bsa_sparsity": null, - "enable_bsa": null - }, - "ltx2": { - "audio_latent_path": null, - "initial_latent_path": null, - "legacy_native_noise_order": false, - "refine": { - "add_noise": true, - "audio_noise_path": null, - "enabled": false, - "guidance_scale": 1.0, - "image_crf": null, - "lora_path": null, - "noise_path": null, - "num_inference_steps": 3, - "transformer_path": null, - "video_position_offset_sec": null - }, - "use_distilled_sigmas": true, - "vae_spatial_tile_overlap_in_pixels": null, - "vae_spatial_tile_size_in_pixels": null, - "vae_temporal_tile_overlap_in_frames": null, - "vae_temporal_tile_size_in_frames": null - }, - "minimax_h3": { - "sequential_load": null, - "taeh3_checkpoint": null, - "taeh3_chunk_size": 5, - "vae_parallel_decode": true, - "vae_parallel_decode_strategy": "all_gather", - "vae_parallel_encode": true, - "video_decode_backend": "h3-vae" + "model": { + "dit": {}, + "family": "generic", + "vae": {} }, "output_type": "pil", "preset": null, "preset_overrides": {}, "preset_version": null, - "vae": {}, "vae_sp": false, "vae_tiling": false, "workload_type": "t2v" diff --git a/fastvideo/tests/api/config_snapshot_goldens/registry/FastVideo__DreamX-World-5B-Cam-Diffusers.json b/fastvideo/tests/api/config_snapshot_goldens/registry/FastVideo__DreamX-World-5B-Cam-Diffusers.json index dffb6f5a8..6fb7b624b 100644 --- a/fastvideo/tests/api/config_snapshot_goldens/registry/FastVideo__DreamX-World-5B-Cam-Diffusers.json +++ b/fastvideo/tests/api/config_snapshot_goldens/registry/FastVideo__DreamX-World-5B-Cam-Diffusers.json @@ -343,9 +343,13 @@ "pipeline_config_class": "fastvideo.configs.pipelines.dreamx_world.DreamXWorld5BCamPipelineConfig", "resolution_decisions": [ [ - "fill_vae_parallel_from_env", + "fill_model_family[generic]", { - "pipeline.minimax_h3.vae_parallel_decode_strategy": "gather" + "pipeline.model": { + "dit": {}, + "family": "generic", + "vae": {} + } } ], [ @@ -387,16 +391,6 @@ "engine.compile.regional": false, "engine.compile.text_encoder_enabled": false, "engine.compile.vae_enabled": false, - "pipeline.ltx2.legacy_native_noise_order": false, - "pipeline.ltx2.refine.add_noise": true, - "pipeline.ltx2.refine.enabled": false, - "pipeline.ltx2.refine.guidance_scale": 1.0, - "pipeline.ltx2.refine.num_inference_steps": 3, - "pipeline.ltx2.use_distilled_sigmas": true, - "pipeline.minimax_h3.taeh3_chunk_size": 5, - "pipeline.minimax_h3.vae_parallel_decode": false, - "pipeline.minimax_h3.vae_parallel_encode": false, - "pipeline.minimax_h3.video_decode_backend": "h3-vae", "pipeline.workload_type": "t2v" } ] @@ -479,54 +473,19 @@ "upsampler_weights": null, "vae_weights": null }, - "dit": {}, "dmd_denoising_steps": null, "embedded_cfg_scale": 6.0, "experimental": {}, "flow_shift": 3.0, - "longcat": { - "bsa_cdf_threshold": null, - "bsa_chunk_k": null, - "bsa_chunk_q": null, - "bsa_sparsity": null, - "enable_bsa": null - }, - "ltx2": { - "audio_latent_path": null, - "initial_latent_path": null, - "legacy_native_noise_order": false, - "refine": { - "add_noise": true, - "audio_noise_path": null, - "enabled": false, - "guidance_scale": 1.0, - "image_crf": null, - "lora_path": null, - "noise_path": null, - "num_inference_steps": 3, - "transformer_path": null, - "video_position_offset_sec": null - }, - "use_distilled_sigmas": true, - "vae_spatial_tile_overlap_in_pixels": null, - "vae_spatial_tile_size_in_pixels": null, - "vae_temporal_tile_overlap_in_frames": null, - "vae_temporal_tile_size_in_frames": null - }, - "minimax_h3": { - "sequential_load": null, - "taeh3_checkpoint": null, - "taeh3_chunk_size": 5, - "vae_parallel_decode": false, - "vae_parallel_decode_strategy": "gather", - "vae_parallel_encode": false, - "video_decode_backend": "h3-vae" + "model": { + "dit": {}, + "family": "generic", + "vae": {} }, "output_type": "pil", "preset": null, "preset_overrides": {}, "preset_version": null, - "vae": {}, "vae_sp": false, "vae_tiling": false, "workload_type": "t2v" diff --git a/fastvideo/tests/api/config_snapshot_goldens/registry/FastVideo__DreamX-World-5B-Diffusers.json b/fastvideo/tests/api/config_snapshot_goldens/registry/FastVideo__DreamX-World-5B-Diffusers.json index 6660f0bcc..e6c87b978 100644 --- a/fastvideo/tests/api/config_snapshot_goldens/registry/FastVideo__DreamX-World-5B-Diffusers.json +++ b/fastvideo/tests/api/config_snapshot_goldens/registry/FastVideo__DreamX-World-5B-Diffusers.json @@ -385,9 +385,13 @@ "pipeline_config_class": "fastvideo.configs.pipelines.dreamx_world.DreamXWorld5BARPipelineConfig", "resolution_decisions": [ [ - "fill_vae_parallel_from_env", + "fill_model_family[generic]", { - "pipeline.minimax_h3.vae_parallel_decode_strategy": "gather" + "pipeline.model": { + "dit": {}, + "family": "generic", + "vae": {} + } } ], [ @@ -435,16 +439,6 @@ "engine.compile.regional": false, "engine.compile.text_encoder_enabled": false, "engine.compile.vae_enabled": false, - "pipeline.ltx2.legacy_native_noise_order": false, - "pipeline.ltx2.refine.add_noise": true, - "pipeline.ltx2.refine.enabled": false, - "pipeline.ltx2.refine.guidance_scale": 1.0, - "pipeline.ltx2.refine.num_inference_steps": 3, - "pipeline.ltx2.use_distilled_sigmas": true, - "pipeline.minimax_h3.taeh3_chunk_size": 5, - "pipeline.minimax_h3.vae_parallel_decode": false, - "pipeline.minimax_h3.vae_parallel_encode": false, - "pipeline.minimax_h3.video_decode_backend": "h3-vae", "pipeline.workload_type": "t2v" } ] @@ -527,7 +521,6 @@ "upsampler_weights": null, "vae_weights": null }, - "dit": {}, "dmd_denoising_steps": [ 1000, 750, @@ -537,49 +530,15 @@ "embedded_cfg_scale": 6.0, "experimental": {}, "flow_shift": 5.0, - "longcat": { - "bsa_cdf_threshold": null, - "bsa_chunk_k": null, - "bsa_chunk_q": null, - "bsa_sparsity": null, - "enable_bsa": null - }, - "ltx2": { - "audio_latent_path": null, - "initial_latent_path": null, - "legacy_native_noise_order": false, - "refine": { - "add_noise": true, - "audio_noise_path": null, - "enabled": false, - "guidance_scale": 1.0, - "image_crf": null, - "lora_path": null, - "noise_path": null, - "num_inference_steps": 3, - "transformer_path": null, - "video_position_offset_sec": null - }, - "use_distilled_sigmas": true, - "vae_spatial_tile_overlap_in_pixels": null, - "vae_spatial_tile_size_in_pixels": null, - "vae_temporal_tile_overlap_in_frames": null, - "vae_temporal_tile_size_in_frames": null - }, - "minimax_h3": { - "sequential_load": null, - "taeh3_checkpoint": null, - "taeh3_chunk_size": 5, - "vae_parallel_decode": false, - "vae_parallel_decode_strategy": "gather", - "vae_parallel_encode": false, - "video_decode_backend": "h3-vae" + "model": { + "dit": {}, + "family": "generic", + "vae": {} }, "output_type": "pil", "preset": null, "preset_overrides": {}, "preset_version": null, - "vae": {}, "vae_sp": false, "vae_tiling": false, "workload_type": "t2v" diff --git a/fastvideo/tests/api/config_snapshot_goldens/registry/FastVideo__FastHunyuan-diffusers.json b/fastvideo/tests/api/config_snapshot_goldens/registry/FastVideo__FastHunyuan-diffusers.json index aed9a49d0..2389b8edd 100644 --- a/fastvideo/tests/api/config_snapshot_goldens/registry/FastVideo__FastHunyuan-diffusers.json +++ b/fastvideo/tests/api/config_snapshot_goldens/registry/FastVideo__FastHunyuan-diffusers.json @@ -304,9 +304,13 @@ "pipeline_config_class": "fastvideo.configs.pipelines.hunyuan.FastHunyuanConfig", "resolution_decisions": [ [ - "fill_vae_parallel_from_env", + "fill_model_family[generic]", { - "pipeline.minimax_h3.vae_parallel_decode_strategy": "gather" + "pipeline.model": { + "dit": {}, + "family": "generic", + "vae": {} + } } ], [ @@ -348,16 +352,6 @@ "engine.compile.regional": false, "engine.compile.text_encoder_enabled": false, "engine.compile.vae_enabled": false, - "pipeline.ltx2.legacy_native_noise_order": false, - "pipeline.ltx2.refine.add_noise": true, - "pipeline.ltx2.refine.enabled": false, - "pipeline.ltx2.refine.guidance_scale": 1.0, - "pipeline.ltx2.refine.num_inference_steps": 3, - "pipeline.ltx2.use_distilled_sigmas": true, - "pipeline.minimax_h3.taeh3_chunk_size": 5, - "pipeline.minimax_h3.vae_parallel_decode": false, - "pipeline.minimax_h3.vae_parallel_encode": false, - "pipeline.minimax_h3.video_decode_backend": "h3-vae", "pipeline.workload_type": "t2v" } ] @@ -441,54 +435,19 @@ "upsampler_weights": null, "vae_weights": null }, - "dit": {}, "dmd_denoising_steps": null, "embedded_cfg_scale": 6, "experimental": {}, "flow_shift": 17, - "longcat": { - "bsa_cdf_threshold": null, - "bsa_chunk_k": null, - "bsa_chunk_q": null, - "bsa_sparsity": null, - "enable_bsa": null - }, - "ltx2": { - "audio_latent_path": null, - "initial_latent_path": null, - "legacy_native_noise_order": false, - "refine": { - "add_noise": true, - "audio_noise_path": null, - "enabled": false, - "guidance_scale": 1.0, - "image_crf": null, - "lora_path": null, - "noise_path": null, - "num_inference_steps": 3, - "transformer_path": null, - "video_position_offset_sec": null - }, - "use_distilled_sigmas": true, - "vae_spatial_tile_overlap_in_pixels": null, - "vae_spatial_tile_size_in_pixels": null, - "vae_temporal_tile_overlap_in_frames": null, - "vae_temporal_tile_size_in_frames": null - }, - "minimax_h3": { - "sequential_load": null, - "taeh3_checkpoint": null, - "taeh3_chunk_size": 5, - "vae_parallel_decode": false, - "vae_parallel_decode_strategy": "gather", - "vae_parallel_encode": false, - "video_decode_backend": "h3-vae" + "model": { + "dit": {}, + "family": "generic", + "vae": {} }, "output_type": "pil", "preset": null, "preset_overrides": {}, "preset_version": null, - "vae": {}, "vae_sp": true, "vae_tiling": true, "workload_type": "t2v" diff --git a/fastvideo/tests/api/config_snapshot_goldens/registry/FastVideo__FastVideo-FastH3-8-Step-V2.json b/fastvideo/tests/api/config_snapshot_goldens/registry/FastVideo__FastVideo-FastH3-8-Step-V2.json index ed78ef9ba..6a9a7acf9 100644 --- a/fastvideo/tests/api/config_snapshot_goldens/registry/FastVideo__FastVideo-FastH3-8-Step-V2.json +++ b/fastvideo/tests/api/config_snapshot_goldens/registry/FastVideo__FastVideo-FastH3-8-Step-V2.json @@ -386,10 +386,27 @@ }, "pipeline_config_class": "fastvideo.configs.pipelines.minimax_h3.MiniMaxH3PipelineConfig", "resolution_decisions": [ + [ + "fill_model_family[minimax_h3]", + { + "pipeline.model": { + "dit": {}, + "family": "minimax_h3", + "sequential_load": null, + "taeh3_checkpoint": null, + "taeh3_chunk_size": null, + "vae": {}, + "vae_parallel_decode": null, + "vae_parallel_decode_strategy": null, + "vae_parallel_encode": null, + "video_decode_backend": null + } + } + ], [ "fill_vae_parallel_from_env", { - "pipeline.minimax_h3.vae_parallel_decode_strategy": "gather" + "pipeline.model.vae_parallel_decode_strategy": "gather" } ], [ @@ -428,16 +445,10 @@ "engine.compile.regional": false, "engine.compile.text_encoder_enabled": false, "engine.compile.vae_enabled": false, - "pipeline.ltx2.legacy_native_noise_order": false, - "pipeline.ltx2.refine.add_noise": true, - "pipeline.ltx2.refine.enabled": false, - "pipeline.ltx2.refine.guidance_scale": 1.0, - "pipeline.ltx2.refine.num_inference_steps": 3, - "pipeline.ltx2.use_distilled_sigmas": true, - "pipeline.minimax_h3.taeh3_chunk_size": 5, - "pipeline.minimax_h3.vae_parallel_decode": false, - "pipeline.minimax_h3.vae_parallel_encode": false, - "pipeline.minimax_h3.video_decode_backend": "h3-vae", + "pipeline.model.taeh3_chunk_size": 5, + "pipeline.model.vae_parallel_decode": false, + "pipeline.model.vae_parallel_encode": false, + "pipeline.model.video_decode_backend": "h3-vae", "pipeline.workload_type": "t2v" } ] @@ -520,44 +531,17 @@ "upsampler_weights": null, "vae_weights": null }, - "dit": {}, "dmd_denoising_steps": null, "embedded_cfg_scale": null, "experimental": {}, "flow_shift": null, - "longcat": { - "bsa_cdf_threshold": null, - "bsa_chunk_k": null, - "bsa_chunk_q": null, - "bsa_sparsity": null, - "enable_bsa": null - }, - "ltx2": { - "audio_latent_path": null, - "initial_latent_path": null, - "legacy_native_noise_order": false, - "refine": { - "add_noise": true, - "audio_noise_path": null, - "enabled": false, - "guidance_scale": 1.0, - "image_crf": null, - "lora_path": null, - "noise_path": null, - "num_inference_steps": 3, - "transformer_path": null, - "video_position_offset_sec": null - }, - "use_distilled_sigmas": true, - "vae_spatial_tile_overlap_in_pixels": null, - "vae_spatial_tile_size_in_pixels": null, - "vae_temporal_tile_overlap_in_frames": null, - "vae_temporal_tile_size_in_frames": null - }, - "minimax_h3": { + "model": { + "dit": {}, + "family": "minimax_h3", "sequential_load": null, "taeh3_checkpoint": null, "taeh3_chunk_size": 5, + "vae": {}, "vae_parallel_decode": false, "vae_parallel_decode_strategy": "gather", "vae_parallel_encode": false, @@ -567,7 +551,6 @@ "preset": null, "preset_overrides": {}, "preset_version": null, - "vae": {}, "vae_sp": false, "vae_tiling": true, "workload_type": "t2v" diff --git a/fastvideo/tests/api/config_snapshot_goldens/registry/FastVideo__FastVideo-Minimax-FastH3-Preview-v0.2.json b/fastvideo/tests/api/config_snapshot_goldens/registry/FastVideo__FastVideo-Minimax-FastH3-Preview-v0.2.json index 9b083fdac..018f32d8d 100644 --- a/fastvideo/tests/api/config_snapshot_goldens/registry/FastVideo__FastVideo-Minimax-FastH3-Preview-v0.2.json +++ b/fastvideo/tests/api/config_snapshot_goldens/registry/FastVideo__FastVideo-Minimax-FastH3-Preview-v0.2.json @@ -386,10 +386,27 @@ }, "pipeline_config_class": "fastvideo.configs.pipelines.minimax_h3.MiniMaxH3PipelineConfig", "resolution_decisions": [ + [ + "fill_model_family[minimax_h3]", + { + "pipeline.model": { + "dit": {}, + "family": "minimax_h3", + "sequential_load": null, + "taeh3_checkpoint": null, + "taeh3_chunk_size": null, + "vae": {}, + "vae_parallel_decode": null, + "vae_parallel_decode_strategy": null, + "vae_parallel_encode": null, + "video_decode_backend": null + } + } + ], [ "fill_vae_parallel_from_env", { - "pipeline.minimax_h3.vae_parallel_decode_strategy": "gather" + "pipeline.model.vae_parallel_decode_strategy": "gather" } ], [ @@ -428,16 +445,10 @@ "engine.compile.regional": false, "engine.compile.text_encoder_enabled": false, "engine.compile.vae_enabled": false, - "pipeline.ltx2.legacy_native_noise_order": false, - "pipeline.ltx2.refine.add_noise": true, - "pipeline.ltx2.refine.enabled": false, - "pipeline.ltx2.refine.guidance_scale": 1.0, - "pipeline.ltx2.refine.num_inference_steps": 3, - "pipeline.ltx2.use_distilled_sigmas": true, - "pipeline.minimax_h3.taeh3_chunk_size": 5, - "pipeline.minimax_h3.vae_parallel_decode": false, - "pipeline.minimax_h3.vae_parallel_encode": false, - "pipeline.minimax_h3.video_decode_backend": "h3-vae", + "pipeline.model.taeh3_chunk_size": 5, + "pipeline.model.vae_parallel_decode": false, + "pipeline.model.vae_parallel_encode": false, + "pipeline.model.video_decode_backend": "h3-vae", "pipeline.workload_type": "t2v" } ] @@ -520,44 +531,17 @@ "upsampler_weights": null, "vae_weights": null }, - "dit": {}, "dmd_denoising_steps": null, "embedded_cfg_scale": null, "experimental": {}, "flow_shift": null, - "longcat": { - "bsa_cdf_threshold": null, - "bsa_chunk_k": null, - "bsa_chunk_q": null, - "bsa_sparsity": null, - "enable_bsa": null - }, - "ltx2": { - "audio_latent_path": null, - "initial_latent_path": null, - "legacy_native_noise_order": false, - "refine": { - "add_noise": true, - "audio_noise_path": null, - "enabled": false, - "guidance_scale": 1.0, - "image_crf": null, - "lora_path": null, - "noise_path": null, - "num_inference_steps": 3, - "transformer_path": null, - "video_position_offset_sec": null - }, - "use_distilled_sigmas": true, - "vae_spatial_tile_overlap_in_pixels": null, - "vae_spatial_tile_size_in_pixels": null, - "vae_temporal_tile_overlap_in_frames": null, - "vae_temporal_tile_size_in_frames": null - }, - "minimax_h3": { + "model": { + "dit": {}, + "family": "minimax_h3", "sequential_load": null, "taeh3_checkpoint": null, "taeh3_chunk_size": 5, + "vae": {}, "vae_parallel_decode": false, "vae_parallel_decode_strategy": "gather", "vae_parallel_encode": false, @@ -567,7 +551,6 @@ "preset": null, "preset_overrides": {}, "preset_version": null, - "vae": {}, "vae_sp": false, "vae_tiling": true, "workload_type": "t2v" diff --git a/fastvideo/tests/api/config_snapshot_goldens/registry/FastVideo__FastWan2.1-T2V-1.3B-Diffusers.json b/fastvideo/tests/api/config_snapshot_goldens/registry/FastVideo__FastWan2.1-T2V-1.3B-Diffusers.json index 493688f30..7eaa41b66 100644 --- a/fastvideo/tests/api/config_snapshot_goldens/registry/FastVideo__FastWan2.1-T2V-1.3B-Diffusers.json +++ b/fastvideo/tests/api/config_snapshot_goldens/registry/FastVideo__FastWan2.1-T2V-1.3B-Diffusers.json @@ -280,9 +280,13 @@ "pipeline_config_class": "fastvideo.models.wan.pipeline_config.FastWan2_1_T2V_480P_Config", "resolution_decisions": [ [ - "fill_vae_parallel_from_env", + "fill_model_family[generic]", { - "pipeline.minimax_h3.vae_parallel_decode_strategy": "gather" + "pipeline.model": { + "dit": {}, + "family": "generic", + "vae": {} + } } ], [ @@ -329,16 +333,6 @@ "engine.compile.regional": false, "engine.compile.text_encoder_enabled": false, "engine.compile.vae_enabled": false, - "pipeline.ltx2.legacy_native_noise_order": false, - "pipeline.ltx2.refine.add_noise": true, - "pipeline.ltx2.refine.enabled": false, - "pipeline.ltx2.refine.guidance_scale": 1.0, - "pipeline.ltx2.refine.num_inference_steps": 3, - "pipeline.ltx2.use_distilled_sigmas": true, - "pipeline.minimax_h3.taeh3_chunk_size": 5, - "pipeline.minimax_h3.vae_parallel_decode": false, - "pipeline.minimax_h3.vae_parallel_encode": false, - "pipeline.minimax_h3.video_decode_backend": "h3-vae", "pipeline.workload_type": "t2v" } ] @@ -421,7 +415,6 @@ "upsampler_weights": null, "vae_weights": null }, - "dit": {}, "dmd_denoising_steps": [ 1000, 757, @@ -430,49 +423,15 @@ "embedded_cfg_scale": 6.0, "experimental": {}, "flow_shift": 8.0, - "longcat": { - "bsa_cdf_threshold": null, - "bsa_chunk_k": null, - "bsa_chunk_q": null, - "bsa_sparsity": null, - "enable_bsa": null - }, - "ltx2": { - "audio_latent_path": null, - "initial_latent_path": null, - "legacy_native_noise_order": false, - "refine": { - "add_noise": true, - "audio_noise_path": null, - "enabled": false, - "guidance_scale": 1.0, - "image_crf": null, - "lora_path": null, - "noise_path": null, - "num_inference_steps": 3, - "transformer_path": null, - "video_position_offset_sec": null - }, - "use_distilled_sigmas": true, - "vae_spatial_tile_overlap_in_pixels": null, - "vae_spatial_tile_size_in_pixels": null, - "vae_temporal_tile_overlap_in_frames": null, - "vae_temporal_tile_size_in_frames": null - }, - "minimax_h3": { - "sequential_load": null, - "taeh3_checkpoint": null, - "taeh3_chunk_size": 5, - "vae_parallel_decode": false, - "vae_parallel_decode_strategy": "gather", - "vae_parallel_encode": false, - "video_decode_backend": "h3-vae" + "model": { + "dit": {}, + "family": "generic", + "vae": {} }, "output_type": "pil", "preset": null, "preset_overrides": {}, "preset_version": null, - "vae": {}, "vae_sp": false, "vae_tiling": false, "workload_type": "t2v" diff --git a/fastvideo/tests/api/config_snapshot_goldens/registry/FastVideo__FastWan2.1-T2V-14B-480P-Diffusers.json b/fastvideo/tests/api/config_snapshot_goldens/registry/FastVideo__FastWan2.1-T2V-14B-480P-Diffusers.json index fd838b585..a9fcc330e 100644 --- a/fastvideo/tests/api/config_snapshot_goldens/registry/FastVideo__FastWan2.1-T2V-14B-480P-Diffusers.json +++ b/fastvideo/tests/api/config_snapshot_goldens/registry/FastVideo__FastWan2.1-T2V-14B-480P-Diffusers.json @@ -280,9 +280,13 @@ "pipeline_config_class": "fastvideo.models.wan.pipeline_config.FastWan2_1_T2V_480P_Config", "resolution_decisions": [ [ - "fill_vae_parallel_from_env", + "fill_model_family[generic]", { - "pipeline.minimax_h3.vae_parallel_decode_strategy": "gather" + "pipeline.model": { + "dit": {}, + "family": "generic", + "vae": {} + } } ], [ @@ -329,16 +333,6 @@ "engine.compile.regional": false, "engine.compile.text_encoder_enabled": false, "engine.compile.vae_enabled": false, - "pipeline.ltx2.legacy_native_noise_order": false, - "pipeline.ltx2.refine.add_noise": true, - "pipeline.ltx2.refine.enabled": false, - "pipeline.ltx2.refine.guidance_scale": 1.0, - "pipeline.ltx2.refine.num_inference_steps": 3, - "pipeline.ltx2.use_distilled_sigmas": true, - "pipeline.minimax_h3.taeh3_chunk_size": 5, - "pipeline.minimax_h3.vae_parallel_decode": false, - "pipeline.minimax_h3.vae_parallel_encode": false, - "pipeline.minimax_h3.video_decode_backend": "h3-vae", "pipeline.workload_type": "t2v" } ] @@ -421,7 +415,6 @@ "upsampler_weights": null, "vae_weights": null }, - "dit": {}, "dmd_denoising_steps": [ 1000, 757, @@ -430,49 +423,15 @@ "embedded_cfg_scale": 6.0, "experimental": {}, "flow_shift": 8.0, - "longcat": { - "bsa_cdf_threshold": null, - "bsa_chunk_k": null, - "bsa_chunk_q": null, - "bsa_sparsity": null, - "enable_bsa": null - }, - "ltx2": { - "audio_latent_path": null, - "initial_latent_path": null, - "legacy_native_noise_order": false, - "refine": { - "add_noise": true, - "audio_noise_path": null, - "enabled": false, - "guidance_scale": 1.0, - "image_crf": null, - "lora_path": null, - "noise_path": null, - "num_inference_steps": 3, - "transformer_path": null, - "video_position_offset_sec": null - }, - "use_distilled_sigmas": true, - "vae_spatial_tile_overlap_in_pixels": null, - "vae_spatial_tile_size_in_pixels": null, - "vae_temporal_tile_overlap_in_frames": null, - "vae_temporal_tile_size_in_frames": null - }, - "minimax_h3": { - "sequential_load": null, - "taeh3_checkpoint": null, - "taeh3_chunk_size": 5, - "vae_parallel_decode": false, - "vae_parallel_decode_strategy": "gather", - "vae_parallel_encode": false, - "video_decode_backend": "h3-vae" + "model": { + "dit": {}, + "family": "generic", + "vae": {} }, "output_type": "pil", "preset": null, "preset_overrides": {}, "preset_version": null, - "vae": {}, "vae_sp": false, "vae_tiling": false, "workload_type": "t2v" diff --git a/fastvideo/tests/api/config_snapshot_goldens/registry/FastVideo__FastWan2.2-TI2V-5B-Diffusers.json b/fastvideo/tests/api/config_snapshot_goldens/registry/FastVideo__FastWan2.2-TI2V-5B-Diffusers.json index af80dba75..9506651ba 100644 --- a/fastvideo/tests/api/config_snapshot_goldens/registry/FastVideo__FastWan2.2-TI2V-5B-Diffusers.json +++ b/fastvideo/tests/api/config_snapshot_goldens/registry/FastVideo__FastWan2.2-TI2V-5B-Diffusers.json @@ -281,9 +281,13 @@ "pipeline_config_class": "fastvideo.models.wan.pipeline_config.FastWan2_2_TI2V_5B_Config", "resolution_decisions": [ [ - "fill_vae_parallel_from_env", + "fill_model_family[generic]", { - "pipeline.minimax_h3.vae_parallel_decode_strategy": "gather" + "pipeline.model": { + "dit": {}, + "family": "generic", + "vae": {} + } } ], [ @@ -330,16 +334,6 @@ "engine.compile.regional": false, "engine.compile.text_encoder_enabled": false, "engine.compile.vae_enabled": false, - "pipeline.ltx2.legacy_native_noise_order": false, - "pipeline.ltx2.refine.add_noise": true, - "pipeline.ltx2.refine.enabled": false, - "pipeline.ltx2.refine.guidance_scale": 1.0, - "pipeline.ltx2.refine.num_inference_steps": 3, - "pipeline.ltx2.use_distilled_sigmas": true, - "pipeline.minimax_h3.taeh3_chunk_size": 5, - "pipeline.minimax_h3.vae_parallel_decode": false, - "pipeline.minimax_h3.vae_parallel_encode": false, - "pipeline.minimax_h3.video_decode_backend": "h3-vae", "pipeline.workload_type": "t2v" } ] @@ -422,7 +416,6 @@ "upsampler_weights": null, "vae_weights": null }, - "dit": {}, "dmd_denoising_steps": [ 1000, 757, @@ -431,49 +424,15 @@ "embedded_cfg_scale": 6.0, "experimental": {}, "flow_shift": 5.0, - "longcat": { - "bsa_cdf_threshold": null, - "bsa_chunk_k": null, - "bsa_chunk_q": null, - "bsa_sparsity": null, - "enable_bsa": null - }, - "ltx2": { - "audio_latent_path": null, - "initial_latent_path": null, - "legacy_native_noise_order": false, - "refine": { - "add_noise": true, - "audio_noise_path": null, - "enabled": false, - "guidance_scale": 1.0, - "image_crf": null, - "lora_path": null, - "noise_path": null, - "num_inference_steps": 3, - "transformer_path": null, - "video_position_offset_sec": null - }, - "use_distilled_sigmas": true, - "vae_spatial_tile_overlap_in_pixels": null, - "vae_spatial_tile_size_in_pixels": null, - "vae_temporal_tile_overlap_in_frames": null, - "vae_temporal_tile_size_in_frames": null - }, - "minimax_h3": { - "sequential_load": null, - "taeh3_checkpoint": null, - "taeh3_chunk_size": 5, - "vae_parallel_decode": false, - "vae_parallel_decode_strategy": "gather", - "vae_parallel_encode": false, - "video_decode_backend": "h3-vae" + "model": { + "dit": {}, + "family": "generic", + "vae": {} }, "output_type": "pil", "preset": null, "preset_overrides": {}, "preset_version": null, - "vae": {}, "vae_sp": false, "vae_tiling": false, "workload_type": "t2v" diff --git a/fastvideo/tests/api/config_snapshot_goldens/registry/FastVideo__FastWan2.2-TI2V-5B-FullAttn-Diffusers.json b/fastvideo/tests/api/config_snapshot_goldens/registry/FastVideo__FastWan2.2-TI2V-5B-FullAttn-Diffusers.json index 012eda106..e28a65165 100644 --- a/fastvideo/tests/api/config_snapshot_goldens/registry/FastVideo__FastWan2.2-TI2V-5B-FullAttn-Diffusers.json +++ b/fastvideo/tests/api/config_snapshot_goldens/registry/FastVideo__FastWan2.2-TI2V-5B-FullAttn-Diffusers.json @@ -281,9 +281,13 @@ "pipeline_config_class": "fastvideo.models.wan.pipeline_config.FastWan2_2_TI2V_5B_Config", "resolution_decisions": [ [ - "fill_vae_parallel_from_env", + "fill_model_family[generic]", { - "pipeline.minimax_h3.vae_parallel_decode_strategy": "gather" + "pipeline.model": { + "dit": {}, + "family": "generic", + "vae": {} + } } ], [ @@ -330,16 +334,6 @@ "engine.compile.regional": false, "engine.compile.text_encoder_enabled": false, "engine.compile.vae_enabled": false, - "pipeline.ltx2.legacy_native_noise_order": false, - "pipeline.ltx2.refine.add_noise": true, - "pipeline.ltx2.refine.enabled": false, - "pipeline.ltx2.refine.guidance_scale": 1.0, - "pipeline.ltx2.refine.num_inference_steps": 3, - "pipeline.ltx2.use_distilled_sigmas": true, - "pipeline.minimax_h3.taeh3_chunk_size": 5, - "pipeline.minimax_h3.vae_parallel_decode": false, - "pipeline.minimax_h3.vae_parallel_encode": false, - "pipeline.minimax_h3.video_decode_backend": "h3-vae", "pipeline.workload_type": "t2v" } ] @@ -422,7 +416,6 @@ "upsampler_weights": null, "vae_weights": null }, - "dit": {}, "dmd_denoising_steps": [ 1000, 757, @@ -431,49 +424,15 @@ "embedded_cfg_scale": 6.0, "experimental": {}, "flow_shift": 5.0, - "longcat": { - "bsa_cdf_threshold": null, - "bsa_chunk_k": null, - "bsa_chunk_q": null, - "bsa_sparsity": null, - "enable_bsa": null - }, - "ltx2": { - "audio_latent_path": null, - "initial_latent_path": null, - "legacy_native_noise_order": false, - "refine": { - "add_noise": true, - "audio_noise_path": null, - "enabled": false, - "guidance_scale": 1.0, - "image_crf": null, - "lora_path": null, - "noise_path": null, - "num_inference_steps": 3, - "transformer_path": null, - "video_position_offset_sec": null - }, - "use_distilled_sigmas": true, - "vae_spatial_tile_overlap_in_pixels": null, - "vae_spatial_tile_size_in_pixels": null, - "vae_temporal_tile_overlap_in_frames": null, - "vae_temporal_tile_size_in_frames": null - }, - "minimax_h3": { - "sequential_load": null, - "taeh3_checkpoint": null, - "taeh3_chunk_size": 5, - "vae_parallel_decode": false, - "vae_parallel_decode_strategy": "gather", - "vae_parallel_encode": false, - "video_decode_backend": "h3-vae" + "model": { + "dit": {}, + "family": "generic", + "vae": {} }, "output_type": "pil", "preset": null, "preset_overrides": {}, "preset_version": null, - "vae": {}, "vae_sp": false, "vae_tiling": false, "workload_type": "t2v" diff --git a/fastvideo/tests/api/config_snapshot_goldens/registry/FastVideo__GEN3C-Cosmos-7B-Diffusers.json b/fastvideo/tests/api/config_snapshot_goldens/registry/FastVideo__GEN3C-Cosmos-7B-Diffusers.json index 0a669ad86..08331f16d 100644 --- a/fastvideo/tests/api/config_snapshot_goldens/registry/FastVideo__GEN3C-Cosmos-7B-Diffusers.json +++ b/fastvideo/tests/api/config_snapshot_goldens/registry/FastVideo__GEN3C-Cosmos-7B-Diffusers.json @@ -308,9 +308,13 @@ "pipeline_config_class": "fastvideo.configs.pipelines.gen3c.Gen3CConfig", "resolution_decisions": [ [ - "fill_vae_parallel_from_env", + "fill_model_family[generic]", { - "pipeline.minimax_h3.vae_parallel_decode_strategy": "gather" + "pipeline.model": { + "dit": {}, + "family": "generic", + "vae": {} + } } ], [ @@ -351,16 +355,6 @@ "engine.compile.regional": false, "engine.compile.text_encoder_enabled": false, "engine.compile.vae_enabled": false, - "pipeline.ltx2.legacy_native_noise_order": false, - "pipeline.ltx2.refine.add_noise": true, - "pipeline.ltx2.refine.enabled": false, - "pipeline.ltx2.refine.guidance_scale": 1.0, - "pipeline.ltx2.refine.num_inference_steps": 3, - "pipeline.ltx2.use_distilled_sigmas": true, - "pipeline.minimax_h3.taeh3_chunk_size": 5, - "pipeline.minimax_h3.vae_parallel_decode": false, - "pipeline.minimax_h3.vae_parallel_encode": false, - "pipeline.minimax_h3.video_decode_backend": "h3-vae", "pipeline.workload_type": "t2v" } ] @@ -443,54 +437,19 @@ "upsampler_weights": null, "vae_weights": null }, - "dit": {}, "dmd_denoising_steps": null, "embedded_cfg_scale": 6, "experimental": {}, "flow_shift": 1.0, - "longcat": { - "bsa_cdf_threshold": null, - "bsa_chunk_k": null, - "bsa_chunk_q": null, - "bsa_sparsity": null, - "enable_bsa": null - }, - "ltx2": { - "audio_latent_path": null, - "initial_latent_path": null, - "legacy_native_noise_order": false, - "refine": { - "add_noise": true, - "audio_noise_path": null, - "enabled": false, - "guidance_scale": 1.0, - "image_crf": null, - "lora_path": null, - "noise_path": null, - "num_inference_steps": 3, - "transformer_path": null, - "video_position_offset_sec": null - }, - "use_distilled_sigmas": true, - "vae_spatial_tile_overlap_in_pixels": null, - "vae_spatial_tile_size_in_pixels": null, - "vae_temporal_tile_overlap_in_frames": null, - "vae_temporal_tile_size_in_frames": null - }, - "minimax_h3": { - "sequential_load": null, - "taeh3_checkpoint": null, - "taeh3_chunk_size": 5, - "vae_parallel_decode": false, - "vae_parallel_decode_strategy": "gather", - "vae_parallel_encode": false, - "video_decode_backend": "h3-vae" + "model": { + "dit": {}, + "family": "generic", + "vae": {} }, "output_type": "pil", "preset": null, "preset_overrides": {}, "preset_version": null, - "vae": {}, "vae_sp": true, "vae_tiling": true, "workload_type": "t2v" diff --git a/fastvideo/tests/api/config_snapshot_goldens/registry/FastVideo__HY-WorldPlay-Bidirectional-Diffusers.json b/fastvideo/tests/api/config_snapshot_goldens/registry/FastVideo__HY-WorldPlay-Bidirectional-Diffusers.json index 4184182c9..a1049a8d7 100644 --- a/fastvideo/tests/api/config_snapshot_goldens/registry/FastVideo__HY-WorldPlay-Bidirectional-Diffusers.json +++ b/fastvideo/tests/api/config_snapshot_goldens/registry/FastVideo__HY-WorldPlay-Bidirectional-Diffusers.json @@ -361,9 +361,13 @@ "pipeline_config_class": "fastvideo.configs.pipelines.hyworld.HYWorldConfig", "resolution_decisions": [ [ - "fill_vae_parallel_from_env", + "fill_model_family[generic]", { - "pipeline.minimax_h3.vae_parallel_decode_strategy": "gather" + "pipeline.model": { + "dit": {}, + "family": "generic", + "vae": {} + } } ], [ @@ -405,16 +409,6 @@ "engine.compile.regional": false, "engine.compile.text_encoder_enabled": false, "engine.compile.vae_enabled": false, - "pipeline.ltx2.legacy_native_noise_order": false, - "pipeline.ltx2.refine.add_noise": true, - "pipeline.ltx2.refine.enabled": false, - "pipeline.ltx2.refine.guidance_scale": 1.0, - "pipeline.ltx2.refine.num_inference_steps": 3, - "pipeline.ltx2.use_distilled_sigmas": true, - "pipeline.minimax_h3.taeh3_chunk_size": 5, - "pipeline.minimax_h3.vae_parallel_decode": false, - "pipeline.minimax_h3.vae_parallel_encode": false, - "pipeline.minimax_h3.video_decode_backend": "h3-vae", "pipeline.workload_type": "t2v" } ] @@ -498,54 +492,19 @@ "upsampler_weights": null, "vae_weights": null }, - "dit": {}, "dmd_denoising_steps": null, "embedded_cfg_scale": 6.0, "experimental": {}, "flow_shift": 5, - "longcat": { - "bsa_cdf_threshold": null, - "bsa_chunk_k": null, - "bsa_chunk_q": null, - "bsa_sparsity": null, - "enable_bsa": null - }, - "ltx2": { - "audio_latent_path": null, - "initial_latent_path": null, - "legacy_native_noise_order": false, - "refine": { - "add_noise": true, - "audio_noise_path": null, - "enabled": false, - "guidance_scale": 1.0, - "image_crf": null, - "lora_path": null, - "noise_path": null, - "num_inference_steps": 3, - "transformer_path": null, - "video_position_offset_sec": null - }, - "use_distilled_sigmas": true, - "vae_spatial_tile_overlap_in_pixels": null, - "vae_spatial_tile_size_in_pixels": null, - "vae_temporal_tile_overlap_in_frames": null, - "vae_temporal_tile_size_in_frames": null - }, - "minimax_h3": { - "sequential_load": null, - "taeh3_checkpoint": null, - "taeh3_chunk_size": 5, - "vae_parallel_decode": false, - "vae_parallel_decode_strategy": "gather", - "vae_parallel_encode": false, - "video_decode_backend": "h3-vae" + "model": { + "dit": {}, + "family": "generic", + "vae": {} }, "output_type": "pil", "preset": null, "preset_overrides": {}, "preset_version": null, - "vae": {}, "vae_sp": true, "vae_tiling": true, "workload_type": "t2v" diff --git a/fastvideo/tests/api/config_snapshot_goldens/registry/FastVideo__HunyuanGameCraft-Diffusers.json b/fastvideo/tests/api/config_snapshot_goldens/registry/FastVideo__HunyuanGameCraft-Diffusers.json index b87c98eb4..904163829 100644 --- a/fastvideo/tests/api/config_snapshot_goldens/registry/FastVideo__HunyuanGameCraft-Diffusers.json +++ b/fastvideo/tests/api/config_snapshot_goldens/registry/FastVideo__HunyuanGameCraft-Diffusers.json @@ -314,9 +314,13 @@ "pipeline_config_class": "fastvideo.configs.pipelines.hunyuangamecraft.HunyuanGameCraftPipelineConfig", "resolution_decisions": [ [ - "fill_vae_parallel_from_env", + "fill_model_family[generic]", { - "pipeline.minimax_h3.vae_parallel_decode_strategy": "gather" + "pipeline.model": { + "dit": {}, + "family": "generic", + "vae": {} + } } ], [ @@ -358,16 +362,6 @@ "engine.compile.regional": false, "engine.compile.text_encoder_enabled": false, "engine.compile.vae_enabled": false, - "pipeline.ltx2.legacy_native_noise_order": false, - "pipeline.ltx2.refine.add_noise": true, - "pipeline.ltx2.refine.enabled": false, - "pipeline.ltx2.refine.guidance_scale": 1.0, - "pipeline.ltx2.refine.num_inference_steps": 3, - "pipeline.ltx2.use_distilled_sigmas": true, - "pipeline.minimax_h3.taeh3_chunk_size": 5, - "pipeline.minimax_h3.vae_parallel_decode": false, - "pipeline.minimax_h3.vae_parallel_encode": false, - "pipeline.minimax_h3.video_decode_backend": "h3-vae", "pipeline.workload_type": "t2v" } ] @@ -451,54 +445,19 @@ "upsampler_weights": null, "vae_weights": null }, - "dit": {}, "dmd_denoising_steps": null, "embedded_cfg_scale": 6.0, "experimental": {}, "flow_shift": 5, - "longcat": { - "bsa_cdf_threshold": null, - "bsa_chunk_k": null, - "bsa_chunk_q": null, - "bsa_sparsity": null, - "enable_bsa": null - }, - "ltx2": { - "audio_latent_path": null, - "initial_latent_path": null, - "legacy_native_noise_order": false, - "refine": { - "add_noise": true, - "audio_noise_path": null, - "enabled": false, - "guidance_scale": 1.0, - "image_crf": null, - "lora_path": null, - "noise_path": null, - "num_inference_steps": 3, - "transformer_path": null, - "video_position_offset_sec": null - }, - "use_distilled_sigmas": true, - "vae_spatial_tile_overlap_in_pixels": null, - "vae_spatial_tile_size_in_pixels": null, - "vae_temporal_tile_overlap_in_frames": null, - "vae_temporal_tile_size_in_frames": null - }, - "minimax_h3": { - "sequential_load": null, - "taeh3_checkpoint": null, - "taeh3_chunk_size": 5, - "vae_parallel_decode": false, - "vae_parallel_decode_strategy": "gather", - "vae_parallel_encode": false, - "video_decode_backend": "h3-vae" + "model": { + "dit": {}, + "family": "generic", + "vae": {} }, "output_type": "pil", "preset": null, "preset_overrides": {}, "preset_version": null, - "vae": {}, "vae_sp": true, "vae_tiling": true, "workload_type": "t2v" diff --git a/fastvideo/tests/api/config_snapshot_goldens/registry/FastVideo__LTX-2.3-Distilled-Diffusers.json b/fastvideo/tests/api/config_snapshot_goldens/registry/FastVideo__LTX-2.3-Distilled-Diffusers.json index f4e9473d0..4c7c6fd5e 100644 --- a/fastvideo/tests/api/config_snapshot_goldens/registry/FastVideo__LTX-2.3-Distilled-Diffusers.json +++ b/fastvideo/tests/api/config_snapshot_goldens/registry/FastVideo__LTX-2.3-Distilled-Diffusers.json @@ -257,9 +257,33 @@ "pipeline_config_class": "fastvideo.pipelines.basic.ltx2.pipeline_configs.LTX2T2VConfig", "resolution_decisions": [ [ - "fill_vae_parallel_from_env", + "fill_model_family[ltx2]", { - "pipeline.minimax_h3.vae_parallel_decode_strategy": "gather" + "pipeline.model": { + "audio_latent_path": null, + "dit": {}, + "family": "ltx2", + "initial_latent_path": null, + "legacy_native_noise_order": null, + "refine": { + "add_noise": null, + "audio_noise_path": null, + "enabled": null, + "guidance_scale": null, + "image_crf": null, + "lora_path": null, + "noise_path": null, + "num_inference_steps": null, + "transformer_path": null, + "video_position_offset_sec": null + }, + "use_distilled_sigmas": null, + "vae": {}, + "vae_spatial_tile_overlap_in_pixels": null, + "vae_spatial_tile_size_in_pixels": null, + "vae_temporal_tile_overlap_in_frames": null, + "vae_temporal_tile_size_in_frames": null + } } ], [ @@ -299,16 +323,12 @@ "engine.compile.regional": false, "engine.compile.text_encoder_enabled": false, "engine.compile.vae_enabled": false, - "pipeline.ltx2.legacy_native_noise_order": false, - "pipeline.ltx2.refine.add_noise": true, - "pipeline.ltx2.refine.enabled": false, - "pipeline.ltx2.refine.guidance_scale": 1.0, - "pipeline.ltx2.refine.num_inference_steps": 3, - "pipeline.ltx2.use_distilled_sigmas": true, - "pipeline.minimax_h3.taeh3_chunk_size": 5, - "pipeline.minimax_h3.vae_parallel_decode": false, - "pipeline.minimax_h3.vae_parallel_encode": false, - "pipeline.minimax_h3.video_decode_backend": "h3-vae", + "pipeline.model.legacy_native_noise_order": false, + "pipeline.model.refine.add_noise": true, + "pipeline.model.refine.enabled": false, + "pipeline.model.refine.guidance_scale": 1.0, + "pipeline.model.refine.num_inference_steps": 3, + "pipeline.model.use_distilled_sigmas": true, "pipeline.workload_type": "t2v" } ] @@ -391,20 +411,14 @@ "upsampler_weights": null, "vae_weights": null }, - "dit": {}, "dmd_denoising_steps": null, "embedded_cfg_scale": 6.0, "experimental": {}, "flow_shift": null, - "longcat": { - "bsa_cdf_threshold": null, - "bsa_chunk_k": null, - "bsa_chunk_q": null, - "bsa_sparsity": null, - "enable_bsa": null - }, - "ltx2": { + "model": { "audio_latent_path": null, + "dit": {}, + "family": "ltx2", "initial_latent_path": null, "legacy_native_noise_order": false, "refine": { @@ -420,25 +434,16 @@ "video_position_offset_sec": null }, "use_distilled_sigmas": true, + "vae": {}, "vae_spatial_tile_overlap_in_pixels": null, "vae_spatial_tile_size_in_pixels": null, "vae_temporal_tile_overlap_in_frames": null, "vae_temporal_tile_size_in_frames": null }, - "minimax_h3": { - "sequential_load": null, - "taeh3_checkpoint": null, - "taeh3_chunk_size": 5, - "vae_parallel_decode": false, - "vae_parallel_decode_strategy": "gather", - "vae_parallel_encode": false, - "video_decode_backend": "h3-vae" - }, "output_type": "pil", "preset": null, "preset_overrides": {}, "preset_version": null, - "vae": {}, "vae_sp": false, "vae_tiling": true, "workload_type": "t2v" diff --git a/fastvideo/tests/api/config_snapshot_goldens/registry/FastVideo__LTX2-Diffusers.json b/fastvideo/tests/api/config_snapshot_goldens/registry/FastVideo__LTX2-Diffusers.json index 49dc1242e..e09e20897 100644 --- a/fastvideo/tests/api/config_snapshot_goldens/registry/FastVideo__LTX2-Diffusers.json +++ b/fastvideo/tests/api/config_snapshot_goldens/registry/FastVideo__LTX2-Diffusers.json @@ -257,9 +257,33 @@ "pipeline_config_class": "fastvideo.pipelines.basic.ltx2.pipeline_configs.LTX2T2VConfig", "resolution_decisions": [ [ - "fill_vae_parallel_from_env", + "fill_model_family[ltx2]", { - "pipeline.minimax_h3.vae_parallel_decode_strategy": "gather" + "pipeline.model": { + "audio_latent_path": null, + "dit": {}, + "family": "ltx2", + "initial_latent_path": null, + "legacy_native_noise_order": null, + "refine": { + "add_noise": null, + "audio_noise_path": null, + "enabled": null, + "guidance_scale": null, + "image_crf": null, + "lora_path": null, + "noise_path": null, + "num_inference_steps": null, + "transformer_path": null, + "video_position_offset_sec": null + }, + "use_distilled_sigmas": null, + "vae": {}, + "vae_spatial_tile_overlap_in_pixels": null, + "vae_spatial_tile_size_in_pixels": null, + "vae_temporal_tile_overlap_in_frames": null, + "vae_temporal_tile_size_in_frames": null + } } ], [ @@ -299,16 +323,12 @@ "engine.compile.regional": false, "engine.compile.text_encoder_enabled": false, "engine.compile.vae_enabled": false, - "pipeline.ltx2.legacy_native_noise_order": false, - "pipeline.ltx2.refine.add_noise": true, - "pipeline.ltx2.refine.enabled": false, - "pipeline.ltx2.refine.guidance_scale": 1.0, - "pipeline.ltx2.refine.num_inference_steps": 3, - "pipeline.ltx2.use_distilled_sigmas": true, - "pipeline.minimax_h3.taeh3_chunk_size": 5, - "pipeline.minimax_h3.vae_parallel_decode": false, - "pipeline.minimax_h3.vae_parallel_encode": false, - "pipeline.minimax_h3.video_decode_backend": "h3-vae", + "pipeline.model.legacy_native_noise_order": false, + "pipeline.model.refine.add_noise": true, + "pipeline.model.refine.enabled": false, + "pipeline.model.refine.guidance_scale": 1.0, + "pipeline.model.refine.num_inference_steps": 3, + "pipeline.model.use_distilled_sigmas": true, "pipeline.workload_type": "t2v" } ] @@ -391,20 +411,14 @@ "upsampler_weights": null, "vae_weights": null }, - "dit": {}, "dmd_denoising_steps": null, "embedded_cfg_scale": 6.0, "experimental": {}, "flow_shift": null, - "longcat": { - "bsa_cdf_threshold": null, - "bsa_chunk_k": null, - "bsa_chunk_q": null, - "bsa_sparsity": null, - "enable_bsa": null - }, - "ltx2": { + "model": { "audio_latent_path": null, + "dit": {}, + "family": "ltx2", "initial_latent_path": null, "legacy_native_noise_order": false, "refine": { @@ -420,25 +434,16 @@ "video_position_offset_sec": null }, "use_distilled_sigmas": true, + "vae": {}, "vae_spatial_tile_overlap_in_pixels": null, "vae_spatial_tile_size_in_pixels": null, "vae_temporal_tile_overlap_in_frames": null, "vae_temporal_tile_size_in_frames": null }, - "minimax_h3": { - "sequential_load": null, - "taeh3_checkpoint": null, - "taeh3_chunk_size": 5, - "vae_parallel_decode": false, - "vae_parallel_decode_strategy": "gather", - "vae_parallel_encode": false, - "video_decode_backend": "h3-vae" - }, "output_type": "pil", "preset": null, "preset_overrides": {}, "preset_version": null, - "vae": {}, "vae_sp": false, "vae_tiling": true, "workload_type": "t2v" diff --git a/fastvideo/tests/api/config_snapshot_goldens/registry/FastVideo__LTX2-Distilled-Diffusers.json b/fastvideo/tests/api/config_snapshot_goldens/registry/FastVideo__LTX2-Distilled-Diffusers.json index ed65b43e6..7fc8efe3d 100644 --- a/fastvideo/tests/api/config_snapshot_goldens/registry/FastVideo__LTX2-Distilled-Diffusers.json +++ b/fastvideo/tests/api/config_snapshot_goldens/registry/FastVideo__LTX2-Distilled-Diffusers.json @@ -257,9 +257,33 @@ "pipeline_config_class": "fastvideo.pipelines.basic.ltx2.pipeline_configs.LTX2T2VConfig", "resolution_decisions": [ [ - "fill_vae_parallel_from_env", + "fill_model_family[ltx2]", { - "pipeline.minimax_h3.vae_parallel_decode_strategy": "gather" + "pipeline.model": { + "audio_latent_path": null, + "dit": {}, + "family": "ltx2", + "initial_latent_path": null, + "legacy_native_noise_order": null, + "refine": { + "add_noise": null, + "audio_noise_path": null, + "enabled": null, + "guidance_scale": null, + "image_crf": null, + "lora_path": null, + "noise_path": null, + "num_inference_steps": null, + "transformer_path": null, + "video_position_offset_sec": null + }, + "use_distilled_sigmas": null, + "vae": {}, + "vae_spatial_tile_overlap_in_pixels": null, + "vae_spatial_tile_size_in_pixels": null, + "vae_temporal_tile_overlap_in_frames": null, + "vae_temporal_tile_size_in_frames": null + } } ], [ @@ -299,16 +323,12 @@ "engine.compile.regional": false, "engine.compile.text_encoder_enabled": false, "engine.compile.vae_enabled": false, - "pipeline.ltx2.legacy_native_noise_order": false, - "pipeline.ltx2.refine.add_noise": true, - "pipeline.ltx2.refine.enabled": false, - "pipeline.ltx2.refine.guidance_scale": 1.0, - "pipeline.ltx2.refine.num_inference_steps": 3, - "pipeline.ltx2.use_distilled_sigmas": true, - "pipeline.minimax_h3.taeh3_chunk_size": 5, - "pipeline.minimax_h3.vae_parallel_decode": false, - "pipeline.minimax_h3.vae_parallel_encode": false, - "pipeline.minimax_h3.video_decode_backend": "h3-vae", + "pipeline.model.legacy_native_noise_order": false, + "pipeline.model.refine.add_noise": true, + "pipeline.model.refine.enabled": false, + "pipeline.model.refine.guidance_scale": 1.0, + "pipeline.model.refine.num_inference_steps": 3, + "pipeline.model.use_distilled_sigmas": true, "pipeline.workload_type": "t2v" } ] @@ -391,20 +411,14 @@ "upsampler_weights": null, "vae_weights": null }, - "dit": {}, "dmd_denoising_steps": null, "embedded_cfg_scale": 6.0, "experimental": {}, "flow_shift": null, - "longcat": { - "bsa_cdf_threshold": null, - "bsa_chunk_k": null, - "bsa_chunk_q": null, - "bsa_sparsity": null, - "enable_bsa": null - }, - "ltx2": { + "model": { "audio_latent_path": null, + "dit": {}, + "family": "ltx2", "initial_latent_path": null, "legacy_native_noise_order": false, "refine": { @@ -420,25 +434,16 @@ "video_position_offset_sec": null }, "use_distilled_sigmas": true, + "vae": {}, "vae_spatial_tile_overlap_in_pixels": null, "vae_spatial_tile_size_in_pixels": null, "vae_temporal_tile_overlap_in_frames": null, "vae_temporal_tile_size_in_frames": null }, - "minimax_h3": { - "sequential_load": null, - "taeh3_checkpoint": null, - "taeh3_chunk_size": 5, - "vae_parallel_decode": false, - "vae_parallel_decode_strategy": "gather", - "vae_parallel_encode": false, - "video_decode_backend": "h3-vae" - }, "output_type": "pil", "preset": null, "preset_overrides": {}, "preset_version": null, - "vae": {}, "vae_sp": false, "vae_tiling": true, "workload_type": "t2v" diff --git a/fastvideo/tests/api/config_snapshot_goldens/registry/FastVideo__LTX2-base.json b/fastvideo/tests/api/config_snapshot_goldens/registry/FastVideo__LTX2-base.json index ceff7624c..986849edf 100644 --- a/fastvideo/tests/api/config_snapshot_goldens/registry/FastVideo__LTX2-base.json +++ b/fastvideo/tests/api/config_snapshot_goldens/registry/FastVideo__LTX2-base.json @@ -257,9 +257,33 @@ "pipeline_config_class": "fastvideo.pipelines.basic.ltx2.pipeline_configs.LTX2T2VConfig", "resolution_decisions": [ [ - "fill_vae_parallel_from_env", + "fill_model_family[ltx2]", { - "pipeline.minimax_h3.vae_parallel_decode_strategy": "gather" + "pipeline.model": { + "audio_latent_path": null, + "dit": {}, + "family": "ltx2", + "initial_latent_path": null, + "legacy_native_noise_order": null, + "refine": { + "add_noise": null, + "audio_noise_path": null, + "enabled": null, + "guidance_scale": null, + "image_crf": null, + "lora_path": null, + "noise_path": null, + "num_inference_steps": null, + "transformer_path": null, + "video_position_offset_sec": null + }, + "use_distilled_sigmas": null, + "vae": {}, + "vae_spatial_tile_overlap_in_pixels": null, + "vae_spatial_tile_size_in_pixels": null, + "vae_temporal_tile_overlap_in_frames": null, + "vae_temporal_tile_size_in_frames": null + } } ], [ @@ -299,16 +323,12 @@ "engine.compile.regional": false, "engine.compile.text_encoder_enabled": false, "engine.compile.vae_enabled": false, - "pipeline.ltx2.legacy_native_noise_order": false, - "pipeline.ltx2.refine.add_noise": true, - "pipeline.ltx2.refine.enabled": false, - "pipeline.ltx2.refine.guidance_scale": 1.0, - "pipeline.ltx2.refine.num_inference_steps": 3, - "pipeline.ltx2.use_distilled_sigmas": true, - "pipeline.minimax_h3.taeh3_chunk_size": 5, - "pipeline.minimax_h3.vae_parallel_decode": false, - "pipeline.minimax_h3.vae_parallel_encode": false, - "pipeline.minimax_h3.video_decode_backend": "h3-vae", + "pipeline.model.legacy_native_noise_order": false, + "pipeline.model.refine.add_noise": true, + "pipeline.model.refine.enabled": false, + "pipeline.model.refine.guidance_scale": 1.0, + "pipeline.model.refine.num_inference_steps": 3, + "pipeline.model.use_distilled_sigmas": true, "pipeline.workload_type": "t2v" } ] @@ -391,20 +411,14 @@ "upsampler_weights": null, "vae_weights": null }, - "dit": {}, "dmd_denoising_steps": null, "embedded_cfg_scale": 6.0, "experimental": {}, "flow_shift": null, - "longcat": { - "bsa_cdf_threshold": null, - "bsa_chunk_k": null, - "bsa_chunk_q": null, - "bsa_sparsity": null, - "enable_bsa": null - }, - "ltx2": { + "model": { "audio_latent_path": null, + "dit": {}, + "family": "ltx2", "initial_latent_path": null, "legacy_native_noise_order": false, "refine": { @@ -420,25 +434,16 @@ "video_position_offset_sec": null }, "use_distilled_sigmas": true, + "vae": {}, "vae_spatial_tile_overlap_in_pixels": null, "vae_spatial_tile_size_in_pixels": null, "vae_temporal_tile_overlap_in_frames": null, "vae_temporal_tile_size_in_frames": null }, - "minimax_h3": { - "sequential_load": null, - "taeh3_checkpoint": null, - "taeh3_chunk_size": 5, - "vae_parallel_decode": false, - "vae_parallel_decode_strategy": "gather", - "vae_parallel_encode": false, - "video_decode_backend": "h3-vae" - }, "output_type": "pil", "preset": null, "preset_overrides": {}, "preset_version": null, - "vae": {}, "vae_sp": false, "vae_tiling": true, "workload_type": "t2v" diff --git a/fastvideo/tests/api/config_snapshot_goldens/registry/FastVideo__LTX2.3-Diffusers.json b/fastvideo/tests/api/config_snapshot_goldens/registry/FastVideo__LTX2.3-Diffusers.json index 2b446a479..d94f75d06 100644 --- a/fastvideo/tests/api/config_snapshot_goldens/registry/FastVideo__LTX2.3-Diffusers.json +++ b/fastvideo/tests/api/config_snapshot_goldens/registry/FastVideo__LTX2.3-Diffusers.json @@ -257,9 +257,33 @@ "pipeline_config_class": "fastvideo.pipelines.basic.ltx2.pipeline_configs.LTX2T2VConfig", "resolution_decisions": [ [ - "fill_vae_parallel_from_env", + "fill_model_family[ltx2]", { - "pipeline.minimax_h3.vae_parallel_decode_strategy": "gather" + "pipeline.model": { + "audio_latent_path": null, + "dit": {}, + "family": "ltx2", + "initial_latent_path": null, + "legacy_native_noise_order": null, + "refine": { + "add_noise": null, + "audio_noise_path": null, + "enabled": null, + "guidance_scale": null, + "image_crf": null, + "lora_path": null, + "noise_path": null, + "num_inference_steps": null, + "transformer_path": null, + "video_position_offset_sec": null + }, + "use_distilled_sigmas": null, + "vae": {}, + "vae_spatial_tile_overlap_in_pixels": null, + "vae_spatial_tile_size_in_pixels": null, + "vae_temporal_tile_overlap_in_frames": null, + "vae_temporal_tile_size_in_frames": null + } } ], [ @@ -299,16 +323,12 @@ "engine.compile.regional": false, "engine.compile.text_encoder_enabled": false, "engine.compile.vae_enabled": false, - "pipeline.ltx2.legacy_native_noise_order": false, - "pipeline.ltx2.refine.add_noise": true, - "pipeline.ltx2.refine.enabled": false, - "pipeline.ltx2.refine.guidance_scale": 1.0, - "pipeline.ltx2.refine.num_inference_steps": 3, - "pipeline.ltx2.use_distilled_sigmas": true, - "pipeline.minimax_h3.taeh3_chunk_size": 5, - "pipeline.minimax_h3.vae_parallel_decode": false, - "pipeline.minimax_h3.vae_parallel_encode": false, - "pipeline.minimax_h3.video_decode_backend": "h3-vae", + "pipeline.model.legacy_native_noise_order": false, + "pipeline.model.refine.add_noise": true, + "pipeline.model.refine.enabled": false, + "pipeline.model.refine.guidance_scale": 1.0, + "pipeline.model.refine.num_inference_steps": 3, + "pipeline.model.use_distilled_sigmas": true, "pipeline.workload_type": "t2v" } ] @@ -391,20 +411,14 @@ "upsampler_weights": null, "vae_weights": null }, - "dit": {}, "dmd_denoising_steps": null, "embedded_cfg_scale": 6.0, "experimental": {}, "flow_shift": null, - "longcat": { - "bsa_cdf_threshold": null, - "bsa_chunk_k": null, - "bsa_chunk_q": null, - "bsa_sparsity": null, - "enable_bsa": null - }, - "ltx2": { + "model": { "audio_latent_path": null, + "dit": {}, + "family": "ltx2", "initial_latent_path": null, "legacy_native_noise_order": false, "refine": { @@ -420,25 +434,16 @@ "video_position_offset_sec": null }, "use_distilled_sigmas": true, + "vae": {}, "vae_spatial_tile_overlap_in_pixels": null, "vae_spatial_tile_size_in_pixels": null, "vae_temporal_tile_overlap_in_frames": null, "vae_temporal_tile_size_in_frames": null }, - "minimax_h3": { - "sequential_load": null, - "taeh3_checkpoint": null, - "taeh3_chunk_size": 5, - "vae_parallel_decode": false, - "vae_parallel_decode_strategy": "gather", - "vae_parallel_encode": false, - "video_decode_backend": "h3-vae" - }, "output_type": "pil", "preset": null, "preset_overrides": {}, "preset_version": null, - "vae": {}, "vae_sp": false, "vae_tiling": true, "workload_type": "t2v" diff --git a/fastvideo/tests/api/config_snapshot_goldens/registry/FastVideo__LTX2.3-Distilled-Diffusers.json b/fastvideo/tests/api/config_snapshot_goldens/registry/FastVideo__LTX2.3-Distilled-Diffusers.json index 7a0e1dce4..aade9c263 100644 --- a/fastvideo/tests/api/config_snapshot_goldens/registry/FastVideo__LTX2.3-Distilled-Diffusers.json +++ b/fastvideo/tests/api/config_snapshot_goldens/registry/FastVideo__LTX2.3-Distilled-Diffusers.json @@ -257,9 +257,33 @@ "pipeline_config_class": "fastvideo.pipelines.basic.ltx2.pipeline_configs.LTX2T2VConfig", "resolution_decisions": [ [ - "fill_vae_parallel_from_env", + "fill_model_family[ltx2]", { - "pipeline.minimax_h3.vae_parallel_decode_strategy": "gather" + "pipeline.model": { + "audio_latent_path": null, + "dit": {}, + "family": "ltx2", + "initial_latent_path": null, + "legacy_native_noise_order": null, + "refine": { + "add_noise": null, + "audio_noise_path": null, + "enabled": null, + "guidance_scale": null, + "image_crf": null, + "lora_path": null, + "noise_path": null, + "num_inference_steps": null, + "transformer_path": null, + "video_position_offset_sec": null + }, + "use_distilled_sigmas": null, + "vae": {}, + "vae_spatial_tile_overlap_in_pixels": null, + "vae_spatial_tile_size_in_pixels": null, + "vae_temporal_tile_overlap_in_frames": null, + "vae_temporal_tile_size_in_frames": null + } } ], [ @@ -299,16 +323,12 @@ "engine.compile.regional": false, "engine.compile.text_encoder_enabled": false, "engine.compile.vae_enabled": false, - "pipeline.ltx2.legacy_native_noise_order": false, - "pipeline.ltx2.refine.add_noise": true, - "pipeline.ltx2.refine.enabled": false, - "pipeline.ltx2.refine.guidance_scale": 1.0, - "pipeline.ltx2.refine.num_inference_steps": 3, - "pipeline.ltx2.use_distilled_sigmas": true, - "pipeline.minimax_h3.taeh3_chunk_size": 5, - "pipeline.minimax_h3.vae_parallel_decode": false, - "pipeline.minimax_h3.vae_parallel_encode": false, - "pipeline.minimax_h3.video_decode_backend": "h3-vae", + "pipeline.model.legacy_native_noise_order": false, + "pipeline.model.refine.add_noise": true, + "pipeline.model.refine.enabled": false, + "pipeline.model.refine.guidance_scale": 1.0, + "pipeline.model.refine.num_inference_steps": 3, + "pipeline.model.use_distilled_sigmas": true, "pipeline.workload_type": "t2v" } ] @@ -391,20 +411,14 @@ "upsampler_weights": null, "vae_weights": null }, - "dit": {}, "dmd_denoising_steps": null, "embedded_cfg_scale": 6.0, "experimental": {}, "flow_shift": null, - "longcat": { - "bsa_cdf_threshold": null, - "bsa_chunk_k": null, - "bsa_chunk_q": null, - "bsa_sparsity": null, - "enable_bsa": null - }, - "ltx2": { + "model": { "audio_latent_path": null, + "dit": {}, + "family": "ltx2", "initial_latent_path": null, "legacy_native_noise_order": false, "refine": { @@ -420,25 +434,16 @@ "video_position_offset_sec": null }, "use_distilled_sigmas": true, + "vae": {}, "vae_spatial_tile_overlap_in_pixels": null, "vae_spatial_tile_size_in_pixels": null, "vae_temporal_tile_overlap_in_frames": null, "vae_temporal_tile_size_in_frames": null }, - "minimax_h3": { - "sequential_load": null, - "taeh3_checkpoint": null, - "taeh3_chunk_size": 5, - "vae_parallel_decode": false, - "vae_parallel_decode_strategy": "gather", - "vae_parallel_encode": false, - "video_decode_backend": "h3-vae" - }, "output_type": "pil", "preset": null, "preset_overrides": {}, "preset_version": null, - "vae": {}, "vae_sp": false, "vae_tiling": true, "workload_type": "t2v" diff --git a/fastvideo/tests/api/config_snapshot_goldens/registry/FastVideo__LTX2.3-base.json b/fastvideo/tests/api/config_snapshot_goldens/registry/FastVideo__LTX2.3-base.json index 2480240c0..621d896f1 100644 --- a/fastvideo/tests/api/config_snapshot_goldens/registry/FastVideo__LTX2.3-base.json +++ b/fastvideo/tests/api/config_snapshot_goldens/registry/FastVideo__LTX2.3-base.json @@ -257,9 +257,33 @@ "pipeline_config_class": "fastvideo.pipelines.basic.ltx2.pipeline_configs.LTX2T2VConfig", "resolution_decisions": [ [ - "fill_vae_parallel_from_env", + "fill_model_family[ltx2]", { - "pipeline.minimax_h3.vae_parallel_decode_strategy": "gather" + "pipeline.model": { + "audio_latent_path": null, + "dit": {}, + "family": "ltx2", + "initial_latent_path": null, + "legacy_native_noise_order": null, + "refine": { + "add_noise": null, + "audio_noise_path": null, + "enabled": null, + "guidance_scale": null, + "image_crf": null, + "lora_path": null, + "noise_path": null, + "num_inference_steps": null, + "transformer_path": null, + "video_position_offset_sec": null + }, + "use_distilled_sigmas": null, + "vae": {}, + "vae_spatial_tile_overlap_in_pixels": null, + "vae_spatial_tile_size_in_pixels": null, + "vae_temporal_tile_overlap_in_frames": null, + "vae_temporal_tile_size_in_frames": null + } } ], [ @@ -299,16 +323,12 @@ "engine.compile.regional": false, "engine.compile.text_encoder_enabled": false, "engine.compile.vae_enabled": false, - "pipeline.ltx2.legacy_native_noise_order": false, - "pipeline.ltx2.refine.add_noise": true, - "pipeline.ltx2.refine.enabled": false, - "pipeline.ltx2.refine.guidance_scale": 1.0, - "pipeline.ltx2.refine.num_inference_steps": 3, - "pipeline.ltx2.use_distilled_sigmas": true, - "pipeline.minimax_h3.taeh3_chunk_size": 5, - "pipeline.minimax_h3.vae_parallel_decode": false, - "pipeline.minimax_h3.vae_parallel_encode": false, - "pipeline.minimax_h3.video_decode_backend": "h3-vae", + "pipeline.model.legacy_native_noise_order": false, + "pipeline.model.refine.add_noise": true, + "pipeline.model.refine.enabled": false, + "pipeline.model.refine.guidance_scale": 1.0, + "pipeline.model.refine.num_inference_steps": 3, + "pipeline.model.use_distilled_sigmas": true, "pipeline.workload_type": "t2v" } ] @@ -391,20 +411,14 @@ "upsampler_weights": null, "vae_weights": null }, - "dit": {}, "dmd_denoising_steps": null, "embedded_cfg_scale": 6.0, "experimental": {}, "flow_shift": null, - "longcat": { - "bsa_cdf_threshold": null, - "bsa_chunk_k": null, - "bsa_chunk_q": null, - "bsa_sparsity": null, - "enable_bsa": null - }, - "ltx2": { + "model": { "audio_latent_path": null, + "dit": {}, + "family": "ltx2", "initial_latent_path": null, "legacy_native_noise_order": false, "refine": { @@ -420,25 +434,16 @@ "video_position_offset_sec": null }, "use_distilled_sigmas": true, + "vae": {}, "vae_spatial_tile_overlap_in_pixels": null, "vae_spatial_tile_size_in_pixels": null, "vae_temporal_tile_overlap_in_frames": null, "vae_temporal_tile_size_in_frames": null }, - "minimax_h3": { - "sequential_load": null, - "taeh3_checkpoint": null, - "taeh3_chunk_size": 5, - "vae_parallel_decode": false, - "vae_parallel_decode_strategy": "gather", - "vae_parallel_encode": false, - "video_decode_backend": "h3-vae" - }, "output_type": "pil", "preset": null, "preset_overrides": {}, "preset_version": null, - "vae": {}, "vae_sp": false, "vae_tiling": true, "workload_type": "t2v" diff --git a/fastvideo/tests/api/config_snapshot_goldens/registry/FastVideo__LingBot-Video-Dense-1.3B-Diffusers.json b/fastvideo/tests/api/config_snapshot_goldens/registry/FastVideo__LingBot-Video-Dense-1.3B-Diffusers.json index e51e5d3e1..a012275e4 100644 --- a/fastvideo/tests/api/config_snapshot_goldens/registry/FastVideo__LingBot-Video-Dense-1.3B-Diffusers.json +++ b/fastvideo/tests/api/config_snapshot_goldens/registry/FastVideo__LingBot-Video-Dense-1.3B-Diffusers.json @@ -284,9 +284,13 @@ "pipeline_config_class": "fastvideo.configs.pipelines.lingbot_video.LingBotVideoT2VConfig", "resolution_decisions": [ [ - "fill_vae_parallel_from_env", + "fill_model_family[generic]", { - "pipeline.minimax_h3.vae_parallel_decode_strategy": "gather" + "pipeline.model": { + "dit": {}, + "family": "generic", + "vae": {} + } } ], [ @@ -327,16 +331,6 @@ "engine.compile.regional": false, "engine.compile.text_encoder_enabled": false, "engine.compile.vae_enabled": false, - "pipeline.ltx2.legacy_native_noise_order": false, - "pipeline.ltx2.refine.add_noise": true, - "pipeline.ltx2.refine.enabled": false, - "pipeline.ltx2.refine.guidance_scale": 1.0, - "pipeline.ltx2.refine.num_inference_steps": 3, - "pipeline.ltx2.use_distilled_sigmas": true, - "pipeline.minimax_h3.taeh3_chunk_size": 5, - "pipeline.minimax_h3.vae_parallel_decode": false, - "pipeline.minimax_h3.vae_parallel_encode": false, - "pipeline.minimax_h3.video_decode_backend": "h3-vae", "pipeline.workload_type": "t2v" } ] @@ -419,54 +413,19 @@ "upsampler_weights": null, "vae_weights": null }, - "dit": {}, "dmd_denoising_steps": null, "embedded_cfg_scale": null, "experimental": {}, "flow_shift": 3.0, - "longcat": { - "bsa_cdf_threshold": null, - "bsa_chunk_k": null, - "bsa_chunk_q": null, - "bsa_sparsity": null, - "enable_bsa": null - }, - "ltx2": { - "audio_latent_path": null, - "initial_latent_path": null, - "legacy_native_noise_order": false, - "refine": { - "add_noise": true, - "audio_noise_path": null, - "enabled": false, - "guidance_scale": 1.0, - "image_crf": null, - "lora_path": null, - "noise_path": null, - "num_inference_steps": 3, - "transformer_path": null, - "video_position_offset_sec": null - }, - "use_distilled_sigmas": true, - "vae_spatial_tile_overlap_in_pixels": null, - "vae_spatial_tile_size_in_pixels": null, - "vae_temporal_tile_overlap_in_frames": null, - "vae_temporal_tile_size_in_frames": null - }, - "minimax_h3": { - "sequential_load": null, - "taeh3_checkpoint": null, - "taeh3_chunk_size": 5, - "vae_parallel_decode": false, - "vae_parallel_decode_strategy": "gather", - "vae_parallel_encode": false, - "video_decode_backend": "h3-vae" + "model": { + "dit": {}, + "family": "generic", + "vae": {} }, "output_type": "pil", "preset": null, "preset_overrides": {}, "preset_version": null, - "vae": {}, "vae_sp": false, "vae_tiling": false, "workload_type": "t2v" diff --git a/fastvideo/tests/api/config_snapshot_goldens/registry/FastVideo__LingBot-Video-MoE-30B-A3B-Diffusers.json b/fastvideo/tests/api/config_snapshot_goldens/registry/FastVideo__LingBot-Video-MoE-30B-A3B-Diffusers.json index bf6fbfede..2eceecc59 100644 --- a/fastvideo/tests/api/config_snapshot_goldens/registry/FastVideo__LingBot-Video-MoE-30B-A3B-Diffusers.json +++ b/fastvideo/tests/api/config_snapshot_goldens/registry/FastVideo__LingBot-Video-MoE-30B-A3B-Diffusers.json @@ -284,9 +284,13 @@ "pipeline_config_class": "fastvideo.configs.pipelines.lingbot_video.LingBotVideoT2VConfig", "resolution_decisions": [ [ - "fill_vae_parallel_from_env", + "fill_model_family[generic]", { - "pipeline.minimax_h3.vae_parallel_decode_strategy": "gather" + "pipeline.model": { + "dit": {}, + "family": "generic", + "vae": {} + } } ], [ @@ -327,16 +331,6 @@ "engine.compile.regional": false, "engine.compile.text_encoder_enabled": false, "engine.compile.vae_enabled": false, - "pipeline.ltx2.legacy_native_noise_order": false, - "pipeline.ltx2.refine.add_noise": true, - "pipeline.ltx2.refine.enabled": false, - "pipeline.ltx2.refine.guidance_scale": 1.0, - "pipeline.ltx2.refine.num_inference_steps": 3, - "pipeline.ltx2.use_distilled_sigmas": true, - "pipeline.minimax_h3.taeh3_chunk_size": 5, - "pipeline.minimax_h3.vae_parallel_decode": false, - "pipeline.minimax_h3.vae_parallel_encode": false, - "pipeline.minimax_h3.video_decode_backend": "h3-vae", "pipeline.workload_type": "t2v" } ] @@ -419,54 +413,19 @@ "upsampler_weights": null, "vae_weights": null }, - "dit": {}, "dmd_denoising_steps": null, "embedded_cfg_scale": null, "experimental": {}, "flow_shift": 3.0, - "longcat": { - "bsa_cdf_threshold": null, - "bsa_chunk_k": null, - "bsa_chunk_q": null, - "bsa_sparsity": null, - "enable_bsa": null - }, - "ltx2": { - "audio_latent_path": null, - "initial_latent_path": null, - "legacy_native_noise_order": false, - "refine": { - "add_noise": true, - "audio_noise_path": null, - "enabled": false, - "guidance_scale": 1.0, - "image_crf": null, - "lora_path": null, - "noise_path": null, - "num_inference_steps": 3, - "transformer_path": null, - "video_position_offset_sec": null - }, - "use_distilled_sigmas": true, - "vae_spatial_tile_overlap_in_pixels": null, - "vae_spatial_tile_size_in_pixels": null, - "vae_temporal_tile_overlap_in_frames": null, - "vae_temporal_tile_size_in_frames": null - }, - "minimax_h3": { - "sequential_load": null, - "taeh3_checkpoint": null, - "taeh3_chunk_size": 5, - "vae_parallel_decode": false, - "vae_parallel_decode_strategy": "gather", - "vae_parallel_encode": false, - "video_decode_backend": "h3-vae" + "model": { + "dit": {}, + "family": "generic", + "vae": {} }, "output_type": "pil", "preset": null, "preset_overrides": {}, "preset_version": null, - "vae": {}, "vae_sp": false, "vae_tiling": false, "workload_type": "t2v" diff --git a/fastvideo/tests/api/config_snapshot_goldens/registry/FastVideo__LingBot-World-Base-Cam-Diffusers.json b/fastvideo/tests/api/config_snapshot_goldens/registry/FastVideo__LingBot-World-Base-Cam-Diffusers.json index 611cf9a1f..c0960b115 100644 --- a/fastvideo/tests/api/config_snapshot_goldens/registry/FastVideo__LingBot-World-Base-Cam-Diffusers.json +++ b/fastvideo/tests/api/config_snapshot_goldens/registry/FastVideo__LingBot-World-Base-Cam-Diffusers.json @@ -306,9 +306,13 @@ "pipeline_config_class": "fastvideo.configs.pipelines.lingbotworld.LingBotWorldI2V480PConfig", "resolution_decisions": [ [ - "fill_vae_parallel_from_env", + "fill_model_family[generic]", { - "pipeline.minimax_h3.vae_parallel_decode_strategy": "gather" + "pipeline.model": { + "dit": {}, + "family": "generic", + "vae": {} + } } ], [ @@ -351,16 +355,6 @@ "engine.compile.regional": false, "engine.compile.text_encoder_enabled": false, "engine.compile.vae_enabled": false, - "pipeline.ltx2.legacy_native_noise_order": false, - "pipeline.ltx2.refine.add_noise": true, - "pipeline.ltx2.refine.enabled": false, - "pipeline.ltx2.refine.guidance_scale": 1.0, - "pipeline.ltx2.refine.num_inference_steps": 3, - "pipeline.ltx2.use_distilled_sigmas": true, - "pipeline.minimax_h3.taeh3_chunk_size": 5, - "pipeline.minimax_h3.vae_parallel_decode": false, - "pipeline.minimax_h3.vae_parallel_encode": false, - "pipeline.minimax_h3.video_decode_backend": "h3-vae", "pipeline.workload_type": "t2v" } ] @@ -443,54 +437,19 @@ "upsampler_weights": null, "vae_weights": null }, - "dit": {}, "dmd_denoising_steps": null, "embedded_cfg_scale": 6.0, "experimental": {}, "flow_shift": 10.0, - "longcat": { - "bsa_cdf_threshold": null, - "bsa_chunk_k": null, - "bsa_chunk_q": null, - "bsa_sparsity": null, - "enable_bsa": null - }, - "ltx2": { - "audio_latent_path": null, - "initial_latent_path": null, - "legacy_native_noise_order": false, - "refine": { - "add_noise": true, - "audio_noise_path": null, - "enabled": false, - "guidance_scale": 1.0, - "image_crf": null, - "lora_path": null, - "noise_path": null, - "num_inference_steps": 3, - "transformer_path": null, - "video_position_offset_sec": null - }, - "use_distilled_sigmas": true, - "vae_spatial_tile_overlap_in_pixels": null, - "vae_spatial_tile_size_in_pixels": null, - "vae_temporal_tile_overlap_in_frames": null, - "vae_temporal_tile_size_in_frames": null - }, - "minimax_h3": { - "sequential_load": null, - "taeh3_checkpoint": null, - "taeh3_chunk_size": 5, - "vae_parallel_decode": false, - "vae_parallel_decode_strategy": "gather", - "vae_parallel_encode": false, - "video_decode_backend": "h3-vae" + "model": { + "dit": {}, + "family": "generic", + "vae": {} }, "output_type": "pil", "preset": null, "preset_overrides": {}, "preset_version": null, - "vae": {}, "vae_sp": false, "vae_tiling": false, "workload_type": "t2v" diff --git a/fastvideo/tests/api/config_snapshot_goldens/registry/FastVideo__LongCat-Video-I2V-Diffusers.json b/fastvideo/tests/api/config_snapshot_goldens/registry/FastVideo__LongCat-Video-I2V-Diffusers.json index 871d41159..25753fedb 100644 --- a/fastvideo/tests/api/config_snapshot_goldens/registry/FastVideo__LongCat-Video-I2V-Diffusers.json +++ b/fastvideo/tests/api/config_snapshot_goldens/registry/FastVideo__LongCat-Video-I2V-Diffusers.json @@ -276,9 +276,18 @@ "pipeline_config_class": "fastvideo.configs.pipelines.longcat.LongCatT2V480PConfig", "resolution_decisions": [ [ - "fill_vae_parallel_from_env", + "fill_model_family[longcat]", { - "pipeline.minimax_h3.vae_parallel_decode_strategy": "gather" + "pipeline.model": { + "bsa_cdf_threshold": null, + "bsa_chunk_k": null, + "bsa_chunk_q": null, + "bsa_sparsity": null, + "dit": {}, + "enable_bsa": null, + "family": "longcat", + "vae": {} + } } ], [ @@ -291,7 +300,7 @@ ], "engine.precision.vae": "bf16", "pipeline.embedded_cfg_scale": 6.0, - "pipeline.longcat.enable_bsa": false, + "pipeline.model.enable_bsa": false, "pipeline.vae_sp": false } ], @@ -319,16 +328,6 @@ "engine.compile.regional": false, "engine.compile.text_encoder_enabled": false, "engine.compile.vae_enabled": false, - "pipeline.ltx2.legacy_native_noise_order": false, - "pipeline.ltx2.refine.add_noise": true, - "pipeline.ltx2.refine.enabled": false, - "pipeline.ltx2.refine.guidance_scale": 1.0, - "pipeline.ltx2.refine.num_inference_steps": 3, - "pipeline.ltx2.use_distilled_sigmas": true, - "pipeline.minimax_h3.taeh3_chunk_size": 5, - "pipeline.minimax_h3.vae_parallel_decode": false, - "pipeline.minimax_h3.vae_parallel_encode": false, - "pipeline.minimax_h3.video_decode_backend": "h3-vae", "pipeline.workload_type": "t2v" } ] @@ -411,54 +410,24 @@ "upsampler_weights": null, "vae_weights": null }, - "dit": {}, "dmd_denoising_steps": null, "embedded_cfg_scale": 6.0, "experimental": {}, "flow_shift": null, - "longcat": { + "model": { "bsa_cdf_threshold": null, "bsa_chunk_k": null, "bsa_chunk_q": null, "bsa_sparsity": null, - "enable_bsa": false - }, - "ltx2": { - "audio_latent_path": null, - "initial_latent_path": null, - "legacy_native_noise_order": false, - "refine": { - "add_noise": true, - "audio_noise_path": null, - "enabled": false, - "guidance_scale": 1.0, - "image_crf": null, - "lora_path": null, - "noise_path": null, - "num_inference_steps": 3, - "transformer_path": null, - "video_position_offset_sec": null - }, - "use_distilled_sigmas": true, - "vae_spatial_tile_overlap_in_pixels": null, - "vae_spatial_tile_size_in_pixels": null, - "vae_temporal_tile_overlap_in_frames": null, - "vae_temporal_tile_size_in_frames": null - }, - "minimax_h3": { - "sequential_load": null, - "taeh3_checkpoint": null, - "taeh3_chunk_size": 5, - "vae_parallel_decode": false, - "vae_parallel_decode_strategy": "gather", - "vae_parallel_encode": false, - "video_decode_backend": "h3-vae" + "dit": {}, + "enable_bsa": false, + "family": "longcat", + "vae": {} }, "output_type": "pil", "preset": null, "preset_overrides": {}, "preset_version": null, - "vae": {}, "vae_sp": false, "vae_tiling": false, "workload_type": "t2v" diff --git a/fastvideo/tests/api/config_snapshot_goldens/registry/FastVideo__LongCat-Video-T2V-Diffusers.json b/fastvideo/tests/api/config_snapshot_goldens/registry/FastVideo__LongCat-Video-T2V-Diffusers.json index 566f4af18..fd7ece06d 100644 --- a/fastvideo/tests/api/config_snapshot_goldens/registry/FastVideo__LongCat-Video-T2V-Diffusers.json +++ b/fastvideo/tests/api/config_snapshot_goldens/registry/FastVideo__LongCat-Video-T2V-Diffusers.json @@ -276,9 +276,18 @@ "pipeline_config_class": "fastvideo.configs.pipelines.longcat.LongCatT2V480PConfig", "resolution_decisions": [ [ - "fill_vae_parallel_from_env", + "fill_model_family[longcat]", { - "pipeline.minimax_h3.vae_parallel_decode_strategy": "gather" + "pipeline.model": { + "bsa_cdf_threshold": null, + "bsa_chunk_k": null, + "bsa_chunk_q": null, + "bsa_sparsity": null, + "dit": {}, + "enable_bsa": null, + "family": "longcat", + "vae": {} + } } ], [ @@ -291,7 +300,7 @@ ], "engine.precision.vae": "bf16", "pipeline.embedded_cfg_scale": 6.0, - "pipeline.longcat.enable_bsa": false, + "pipeline.model.enable_bsa": false, "pipeline.vae_sp": false } ], @@ -319,16 +328,6 @@ "engine.compile.regional": false, "engine.compile.text_encoder_enabled": false, "engine.compile.vae_enabled": false, - "pipeline.ltx2.legacy_native_noise_order": false, - "pipeline.ltx2.refine.add_noise": true, - "pipeline.ltx2.refine.enabled": false, - "pipeline.ltx2.refine.guidance_scale": 1.0, - "pipeline.ltx2.refine.num_inference_steps": 3, - "pipeline.ltx2.use_distilled_sigmas": true, - "pipeline.minimax_h3.taeh3_chunk_size": 5, - "pipeline.minimax_h3.vae_parallel_decode": false, - "pipeline.minimax_h3.vae_parallel_encode": false, - "pipeline.minimax_h3.video_decode_backend": "h3-vae", "pipeline.workload_type": "t2v" } ] @@ -411,54 +410,24 @@ "upsampler_weights": null, "vae_weights": null }, - "dit": {}, "dmd_denoising_steps": null, "embedded_cfg_scale": 6.0, "experimental": {}, "flow_shift": null, - "longcat": { + "model": { "bsa_cdf_threshold": null, "bsa_chunk_k": null, "bsa_chunk_q": null, "bsa_sparsity": null, - "enable_bsa": false - }, - "ltx2": { - "audio_latent_path": null, - "initial_latent_path": null, - "legacy_native_noise_order": false, - "refine": { - "add_noise": true, - "audio_noise_path": null, - "enabled": false, - "guidance_scale": 1.0, - "image_crf": null, - "lora_path": null, - "noise_path": null, - "num_inference_steps": 3, - "transformer_path": null, - "video_position_offset_sec": null - }, - "use_distilled_sigmas": true, - "vae_spatial_tile_overlap_in_pixels": null, - "vae_spatial_tile_size_in_pixels": null, - "vae_temporal_tile_overlap_in_frames": null, - "vae_temporal_tile_size_in_frames": null - }, - "minimax_h3": { - "sequential_load": null, - "taeh3_checkpoint": null, - "taeh3_chunk_size": 5, - "vae_parallel_decode": false, - "vae_parallel_decode_strategy": "gather", - "vae_parallel_encode": false, - "video_decode_backend": "h3-vae" + "dit": {}, + "enable_bsa": false, + "family": "longcat", + "vae": {} }, "output_type": "pil", "preset": null, "preset_overrides": {}, "preset_version": null, - "vae": {}, "vae_sp": false, "vae_tiling": false, "workload_type": "t2v" diff --git a/fastvideo/tests/api/config_snapshot_goldens/registry/FastVideo__LongCat-Video-VC-Diffusers.json b/fastvideo/tests/api/config_snapshot_goldens/registry/FastVideo__LongCat-Video-VC-Diffusers.json index 422b13519..f72d9e6bb 100644 --- a/fastvideo/tests/api/config_snapshot_goldens/registry/FastVideo__LongCat-Video-VC-Diffusers.json +++ b/fastvideo/tests/api/config_snapshot_goldens/registry/FastVideo__LongCat-Video-VC-Diffusers.json @@ -276,9 +276,18 @@ "pipeline_config_class": "fastvideo.configs.pipelines.longcat.LongCatT2V480PConfig", "resolution_decisions": [ [ - "fill_vae_parallel_from_env", + "fill_model_family[longcat]", { - "pipeline.minimax_h3.vae_parallel_decode_strategy": "gather" + "pipeline.model": { + "bsa_cdf_threshold": null, + "bsa_chunk_k": null, + "bsa_chunk_q": null, + "bsa_sparsity": null, + "dit": {}, + "enable_bsa": null, + "family": "longcat", + "vae": {} + } } ], [ @@ -291,7 +300,7 @@ ], "engine.precision.vae": "bf16", "pipeline.embedded_cfg_scale": 6.0, - "pipeline.longcat.enable_bsa": false, + "pipeline.model.enable_bsa": false, "pipeline.vae_sp": false } ], @@ -319,16 +328,6 @@ "engine.compile.regional": false, "engine.compile.text_encoder_enabled": false, "engine.compile.vae_enabled": false, - "pipeline.ltx2.legacy_native_noise_order": false, - "pipeline.ltx2.refine.add_noise": true, - "pipeline.ltx2.refine.enabled": false, - "pipeline.ltx2.refine.guidance_scale": 1.0, - "pipeline.ltx2.refine.num_inference_steps": 3, - "pipeline.ltx2.use_distilled_sigmas": true, - "pipeline.minimax_h3.taeh3_chunk_size": 5, - "pipeline.minimax_h3.vae_parallel_decode": false, - "pipeline.minimax_h3.vae_parallel_encode": false, - "pipeline.minimax_h3.video_decode_backend": "h3-vae", "pipeline.workload_type": "t2v" } ] @@ -411,54 +410,24 @@ "upsampler_weights": null, "vae_weights": null }, - "dit": {}, "dmd_denoising_steps": null, "embedded_cfg_scale": 6.0, "experimental": {}, "flow_shift": null, - "longcat": { + "model": { "bsa_cdf_threshold": null, "bsa_chunk_k": null, "bsa_chunk_q": null, "bsa_sparsity": null, - "enable_bsa": false - }, - "ltx2": { - "audio_latent_path": null, - "initial_latent_path": null, - "legacy_native_noise_order": false, - "refine": { - "add_noise": true, - "audio_noise_path": null, - "enabled": false, - "guidance_scale": 1.0, - "image_crf": null, - "lora_path": null, - "noise_path": null, - "num_inference_steps": 3, - "transformer_path": null, - "video_position_offset_sec": null - }, - "use_distilled_sigmas": true, - "vae_spatial_tile_overlap_in_pixels": null, - "vae_spatial_tile_size_in_pixels": null, - "vae_temporal_tile_overlap_in_frames": null, - "vae_temporal_tile_size_in_frames": null - }, - "minimax_h3": { - "sequential_load": null, - "taeh3_checkpoint": null, - "taeh3_chunk_size": 5, - "vae_parallel_decode": false, - "vae_parallel_decode_strategy": "gather", - "vae_parallel_encode": false, - "video_decode_backend": "h3-vae" + "dit": {}, + "enable_bsa": false, + "family": "longcat", + "vae": {} }, "output_type": "pil", "preset": null, "preset_overrides": {}, "preset_version": null, - "vae": {}, "vae_sp": false, "vae_tiling": false, "workload_type": "t2v" diff --git a/fastvideo/tests/api/config_snapshot_goldens/registry/FastVideo__MMAudio-large-44k-v2-Diffusers.json b/fastvideo/tests/api/config_snapshot_goldens/registry/FastVideo__MMAudio-large-44k-v2-Diffusers.json index bd6153dc6..d462f7421 100644 --- a/fastvideo/tests/api/config_snapshot_goldens/registry/FastVideo__MMAudio-large-44k-v2-Diffusers.json +++ b/fastvideo/tests/api/config_snapshot_goldens/registry/FastVideo__MMAudio-large-44k-v2-Diffusers.json @@ -305,9 +305,13 @@ "pipeline_config_class": "fastvideo.configs.pipelines.mmaudio.MMAudioV2AConfig", "resolution_decisions": [ [ - "fill_vae_parallel_from_env", + "fill_model_family[generic]", { - "pipeline.minimax_h3.vae_parallel_decode_strategy": "gather" + "pipeline.model": { + "dit": {}, + "family": "generic", + "vae": {} + } } ], [ @@ -347,16 +351,6 @@ "engine.compile.regional": false, "engine.compile.text_encoder_enabled": false, "engine.compile.vae_enabled": false, - "pipeline.ltx2.legacy_native_noise_order": false, - "pipeline.ltx2.refine.add_noise": true, - "pipeline.ltx2.refine.enabled": false, - "pipeline.ltx2.refine.guidance_scale": 1.0, - "pipeline.ltx2.refine.num_inference_steps": 3, - "pipeline.ltx2.use_distilled_sigmas": true, - "pipeline.minimax_h3.taeh3_chunk_size": 5, - "pipeline.minimax_h3.vae_parallel_decode": false, - "pipeline.minimax_h3.vae_parallel_encode": false, - "pipeline.minimax_h3.video_decode_backend": "h3-vae", "pipeline.workload_type": "t2v" } ] @@ -439,54 +433,19 @@ "upsampler_weights": null, "vae_weights": null }, - "dit": {}, "dmd_denoising_steps": null, "embedded_cfg_scale": 6.0, "experimental": {}, "flow_shift": null, - "longcat": { - "bsa_cdf_threshold": null, - "bsa_chunk_k": null, - "bsa_chunk_q": null, - "bsa_sparsity": null, - "enable_bsa": null - }, - "ltx2": { - "audio_latent_path": null, - "initial_latent_path": null, - "legacy_native_noise_order": false, - "refine": { - "add_noise": true, - "audio_noise_path": null, - "enabled": false, - "guidance_scale": 1.0, - "image_crf": null, - "lora_path": null, - "noise_path": null, - "num_inference_steps": 3, - "transformer_path": null, - "video_position_offset_sec": null - }, - "use_distilled_sigmas": true, - "vae_spatial_tile_overlap_in_pixels": null, - "vae_spatial_tile_size_in_pixels": null, - "vae_temporal_tile_overlap_in_frames": null, - "vae_temporal_tile_size_in_frames": null - }, - "minimax_h3": { - "sequential_load": null, - "taeh3_checkpoint": null, - "taeh3_chunk_size": 5, - "vae_parallel_decode": false, - "vae_parallel_decode_strategy": "gather", - "vae_parallel_encode": false, - "video_decode_backend": "h3-vae" + "model": { + "dit": {}, + "family": "generic", + "vae": {} }, "output_type": "pil", "preset": null, "preset_overrides": {}, "preset_version": null, - "vae": {}, "vae_sp": false, "vae_tiling": false, "workload_type": "t2v" diff --git a/fastvideo/tests/api/config_snapshot_goldens/registry/FastVideo__Matrix-Game-2.0-Base-Diffusers.json b/fastvideo/tests/api/config_snapshot_goldens/registry/FastVideo__Matrix-Game-2.0-Base-Diffusers.json index 85fec65cf..811c87cea 100644 --- a/fastvideo/tests/api/config_snapshot_goldens/registry/FastVideo__Matrix-Game-2.0-Base-Diffusers.json +++ b/fastvideo/tests/api/config_snapshot_goldens/registry/FastVideo__Matrix-Game-2.0-Base-Diffusers.json @@ -365,9 +365,13 @@ "pipeline_config_class": "fastvideo.configs.pipelines.matrixgame2.MatrixGame2I2V480PConfig", "resolution_decisions": [ [ - "fill_vae_parallel_from_env", + "fill_model_family[generic]", { - "pipeline.minimax_h3.vae_parallel_decode_strategy": "gather" + "pipeline.model": { + "dit": {}, + "family": "generic", + "vae": {} + } } ], [ @@ -414,16 +418,6 @@ "engine.compile.regional": false, "engine.compile.text_encoder_enabled": false, "engine.compile.vae_enabled": false, - "pipeline.ltx2.legacy_native_noise_order": false, - "pipeline.ltx2.refine.add_noise": true, - "pipeline.ltx2.refine.enabled": false, - "pipeline.ltx2.refine.guidance_scale": 1.0, - "pipeline.ltx2.refine.num_inference_steps": 3, - "pipeline.ltx2.use_distilled_sigmas": true, - "pipeline.minimax_h3.taeh3_chunk_size": 5, - "pipeline.minimax_h3.vae_parallel_decode": false, - "pipeline.minimax_h3.vae_parallel_encode": false, - "pipeline.minimax_h3.video_decode_backend": "h3-vae", "pipeline.workload_type": "t2v" } ] @@ -506,7 +500,6 @@ "upsampler_weights": null, "vae_weights": null }, - "dit": {}, "dmd_denoising_steps": [ 1000, 666, @@ -515,49 +508,15 @@ "embedded_cfg_scale": 6.0, "experimental": {}, "flow_shift": 5.0, - "longcat": { - "bsa_cdf_threshold": null, - "bsa_chunk_k": null, - "bsa_chunk_q": null, - "bsa_sparsity": null, - "enable_bsa": null - }, - "ltx2": { - "audio_latent_path": null, - "initial_latent_path": null, - "legacy_native_noise_order": false, - "refine": { - "add_noise": true, - "audio_noise_path": null, - "enabled": false, - "guidance_scale": 1.0, - "image_crf": null, - "lora_path": null, - "noise_path": null, - "num_inference_steps": 3, - "transformer_path": null, - "video_position_offset_sec": null - }, - "use_distilled_sigmas": true, - "vae_spatial_tile_overlap_in_pixels": null, - "vae_spatial_tile_size_in_pixels": null, - "vae_temporal_tile_overlap_in_frames": null, - "vae_temporal_tile_size_in_frames": null - }, - "minimax_h3": { - "sequential_load": null, - "taeh3_checkpoint": null, - "taeh3_chunk_size": 5, - "vae_parallel_decode": false, - "vae_parallel_decode_strategy": "gather", - "vae_parallel_encode": false, - "video_decode_backend": "h3-vae" + "model": { + "dit": {}, + "family": "generic", + "vae": {} }, "output_type": "pil", "preset": null, "preset_overrides": {}, "preset_version": null, - "vae": {}, "vae_sp": false, "vae_tiling": false, "workload_type": "t2v" diff --git a/fastvideo/tests/api/config_snapshot_goldens/registry/FastVideo__Matrix-Game-2.0-Base-Distilled-Diffusers.json b/fastvideo/tests/api/config_snapshot_goldens/registry/FastVideo__Matrix-Game-2.0-Base-Distilled-Diffusers.json index 4dfbd2343..4eb361053 100644 --- a/fastvideo/tests/api/config_snapshot_goldens/registry/FastVideo__Matrix-Game-2.0-Base-Distilled-Diffusers.json +++ b/fastvideo/tests/api/config_snapshot_goldens/registry/FastVideo__Matrix-Game-2.0-Base-Distilled-Diffusers.json @@ -365,9 +365,13 @@ "pipeline_config_class": "fastvideo.configs.pipelines.matrixgame2.MatrixGame2I2V480PConfig", "resolution_decisions": [ [ - "fill_vae_parallel_from_env", + "fill_model_family[generic]", { - "pipeline.minimax_h3.vae_parallel_decode_strategy": "gather" + "pipeline.model": { + "dit": {}, + "family": "generic", + "vae": {} + } } ], [ @@ -414,16 +418,6 @@ "engine.compile.regional": false, "engine.compile.text_encoder_enabled": false, "engine.compile.vae_enabled": false, - "pipeline.ltx2.legacy_native_noise_order": false, - "pipeline.ltx2.refine.add_noise": true, - "pipeline.ltx2.refine.enabled": false, - "pipeline.ltx2.refine.guidance_scale": 1.0, - "pipeline.ltx2.refine.num_inference_steps": 3, - "pipeline.ltx2.use_distilled_sigmas": true, - "pipeline.minimax_h3.taeh3_chunk_size": 5, - "pipeline.minimax_h3.vae_parallel_decode": false, - "pipeline.minimax_h3.vae_parallel_encode": false, - "pipeline.minimax_h3.video_decode_backend": "h3-vae", "pipeline.workload_type": "t2v" } ] @@ -506,7 +500,6 @@ "upsampler_weights": null, "vae_weights": null }, - "dit": {}, "dmd_denoising_steps": [ 1000, 666, @@ -515,49 +508,15 @@ "embedded_cfg_scale": 6.0, "experimental": {}, "flow_shift": 5.0, - "longcat": { - "bsa_cdf_threshold": null, - "bsa_chunk_k": null, - "bsa_chunk_q": null, - "bsa_sparsity": null, - "enable_bsa": null - }, - "ltx2": { - "audio_latent_path": null, - "initial_latent_path": null, - "legacy_native_noise_order": false, - "refine": { - "add_noise": true, - "audio_noise_path": null, - "enabled": false, - "guidance_scale": 1.0, - "image_crf": null, - "lora_path": null, - "noise_path": null, - "num_inference_steps": 3, - "transformer_path": null, - "video_position_offset_sec": null - }, - "use_distilled_sigmas": true, - "vae_spatial_tile_overlap_in_pixels": null, - "vae_spatial_tile_size_in_pixels": null, - "vae_temporal_tile_overlap_in_frames": null, - "vae_temporal_tile_size_in_frames": null - }, - "minimax_h3": { - "sequential_load": null, - "taeh3_checkpoint": null, - "taeh3_chunk_size": 5, - "vae_parallel_decode": false, - "vae_parallel_decode_strategy": "gather", - "vae_parallel_encode": false, - "video_decode_backend": "h3-vae" + "model": { + "dit": {}, + "family": "generic", + "vae": {} }, "output_type": "pil", "preset": null, "preset_overrides": {}, "preset_version": null, - "vae": {}, "vae_sp": false, "vae_tiling": false, "workload_type": "t2v" diff --git a/fastvideo/tests/api/config_snapshot_goldens/registry/FastVideo__Matrix-Game-2.0-GTA-Diffusers.json b/fastvideo/tests/api/config_snapshot_goldens/registry/FastVideo__Matrix-Game-2.0-GTA-Diffusers.json index 4f7c18811..9727600a1 100644 --- a/fastvideo/tests/api/config_snapshot_goldens/registry/FastVideo__Matrix-Game-2.0-GTA-Diffusers.json +++ b/fastvideo/tests/api/config_snapshot_goldens/registry/FastVideo__Matrix-Game-2.0-GTA-Diffusers.json @@ -365,9 +365,13 @@ "pipeline_config_class": "fastvideo.configs.pipelines.matrixgame2.MatrixGame2I2V480PConfig", "resolution_decisions": [ [ - "fill_vae_parallel_from_env", + "fill_model_family[generic]", { - "pipeline.minimax_h3.vae_parallel_decode_strategy": "gather" + "pipeline.model": { + "dit": {}, + "family": "generic", + "vae": {} + } } ], [ @@ -414,16 +418,6 @@ "engine.compile.regional": false, "engine.compile.text_encoder_enabled": false, "engine.compile.vae_enabled": false, - "pipeline.ltx2.legacy_native_noise_order": false, - "pipeline.ltx2.refine.add_noise": true, - "pipeline.ltx2.refine.enabled": false, - "pipeline.ltx2.refine.guidance_scale": 1.0, - "pipeline.ltx2.refine.num_inference_steps": 3, - "pipeline.ltx2.use_distilled_sigmas": true, - "pipeline.minimax_h3.taeh3_chunk_size": 5, - "pipeline.minimax_h3.vae_parallel_decode": false, - "pipeline.minimax_h3.vae_parallel_encode": false, - "pipeline.minimax_h3.video_decode_backend": "h3-vae", "pipeline.workload_type": "t2v" } ] @@ -506,7 +500,6 @@ "upsampler_weights": null, "vae_weights": null }, - "dit": {}, "dmd_denoising_steps": [ 1000, 666, @@ -515,49 +508,15 @@ "embedded_cfg_scale": 6.0, "experimental": {}, "flow_shift": 5.0, - "longcat": { - "bsa_cdf_threshold": null, - "bsa_chunk_k": null, - "bsa_chunk_q": null, - "bsa_sparsity": null, - "enable_bsa": null - }, - "ltx2": { - "audio_latent_path": null, - "initial_latent_path": null, - "legacy_native_noise_order": false, - "refine": { - "add_noise": true, - "audio_noise_path": null, - "enabled": false, - "guidance_scale": 1.0, - "image_crf": null, - "lora_path": null, - "noise_path": null, - "num_inference_steps": 3, - "transformer_path": null, - "video_position_offset_sec": null - }, - "use_distilled_sigmas": true, - "vae_spatial_tile_overlap_in_pixels": null, - "vae_spatial_tile_size_in_pixels": null, - "vae_temporal_tile_overlap_in_frames": null, - "vae_temporal_tile_size_in_frames": null - }, - "minimax_h3": { - "sequential_load": null, - "taeh3_checkpoint": null, - "taeh3_chunk_size": 5, - "vae_parallel_decode": false, - "vae_parallel_decode_strategy": "gather", - "vae_parallel_encode": false, - "video_decode_backend": "h3-vae" + "model": { + "dit": {}, + "family": "generic", + "vae": {} }, "output_type": "pil", "preset": null, "preset_overrides": {}, "preset_version": null, - "vae": {}, "vae_sp": false, "vae_tiling": false, "workload_type": "t2v" diff --git a/fastvideo/tests/api/config_snapshot_goldens/registry/FastVideo__Matrix-Game-2.0-GTA-Distilled-Diffusers.json b/fastvideo/tests/api/config_snapshot_goldens/registry/FastVideo__Matrix-Game-2.0-GTA-Distilled-Diffusers.json index ea3c04958..bd8b3bad4 100644 --- a/fastvideo/tests/api/config_snapshot_goldens/registry/FastVideo__Matrix-Game-2.0-GTA-Distilled-Diffusers.json +++ b/fastvideo/tests/api/config_snapshot_goldens/registry/FastVideo__Matrix-Game-2.0-GTA-Distilled-Diffusers.json @@ -365,9 +365,13 @@ "pipeline_config_class": "fastvideo.configs.pipelines.matrixgame2.MatrixGame2I2V480PConfig", "resolution_decisions": [ [ - "fill_vae_parallel_from_env", + "fill_model_family[generic]", { - "pipeline.minimax_h3.vae_parallel_decode_strategy": "gather" + "pipeline.model": { + "dit": {}, + "family": "generic", + "vae": {} + } } ], [ @@ -414,16 +418,6 @@ "engine.compile.regional": false, "engine.compile.text_encoder_enabled": false, "engine.compile.vae_enabled": false, - "pipeline.ltx2.legacy_native_noise_order": false, - "pipeline.ltx2.refine.add_noise": true, - "pipeline.ltx2.refine.enabled": false, - "pipeline.ltx2.refine.guidance_scale": 1.0, - "pipeline.ltx2.refine.num_inference_steps": 3, - "pipeline.ltx2.use_distilled_sigmas": true, - "pipeline.minimax_h3.taeh3_chunk_size": 5, - "pipeline.minimax_h3.vae_parallel_decode": false, - "pipeline.minimax_h3.vae_parallel_encode": false, - "pipeline.minimax_h3.video_decode_backend": "h3-vae", "pipeline.workload_type": "t2v" } ] @@ -506,7 +500,6 @@ "upsampler_weights": null, "vae_weights": null }, - "dit": {}, "dmd_denoising_steps": [ 1000, 666, @@ -515,49 +508,15 @@ "embedded_cfg_scale": 6.0, "experimental": {}, "flow_shift": 5.0, - "longcat": { - "bsa_cdf_threshold": null, - "bsa_chunk_k": null, - "bsa_chunk_q": null, - "bsa_sparsity": null, - "enable_bsa": null - }, - "ltx2": { - "audio_latent_path": null, - "initial_latent_path": null, - "legacy_native_noise_order": false, - "refine": { - "add_noise": true, - "audio_noise_path": null, - "enabled": false, - "guidance_scale": 1.0, - "image_crf": null, - "lora_path": null, - "noise_path": null, - "num_inference_steps": 3, - "transformer_path": null, - "video_position_offset_sec": null - }, - "use_distilled_sigmas": true, - "vae_spatial_tile_overlap_in_pixels": null, - "vae_spatial_tile_size_in_pixels": null, - "vae_temporal_tile_overlap_in_frames": null, - "vae_temporal_tile_size_in_frames": null - }, - "minimax_h3": { - "sequential_load": null, - "taeh3_checkpoint": null, - "taeh3_chunk_size": 5, - "vae_parallel_decode": false, - "vae_parallel_decode_strategy": "gather", - "vae_parallel_encode": false, - "video_decode_backend": "h3-vae" + "model": { + "dit": {}, + "family": "generic", + "vae": {} }, "output_type": "pil", "preset": null, "preset_overrides": {}, "preset_version": null, - "vae": {}, "vae_sp": false, "vae_tiling": false, "workload_type": "t2v" diff --git a/fastvideo/tests/api/config_snapshot_goldens/registry/FastVideo__Matrix-Game-2.0-TempleRun-Diffusers.json b/fastvideo/tests/api/config_snapshot_goldens/registry/FastVideo__Matrix-Game-2.0-TempleRun-Diffusers.json index 21ca3ffe4..3fddc04bb 100644 --- a/fastvideo/tests/api/config_snapshot_goldens/registry/FastVideo__Matrix-Game-2.0-TempleRun-Diffusers.json +++ b/fastvideo/tests/api/config_snapshot_goldens/registry/FastVideo__Matrix-Game-2.0-TempleRun-Diffusers.json @@ -365,9 +365,13 @@ "pipeline_config_class": "fastvideo.configs.pipelines.matrixgame2.MatrixGame2I2V480PConfig", "resolution_decisions": [ [ - "fill_vae_parallel_from_env", + "fill_model_family[generic]", { - "pipeline.minimax_h3.vae_parallel_decode_strategy": "gather" + "pipeline.model": { + "dit": {}, + "family": "generic", + "vae": {} + } } ], [ @@ -414,16 +418,6 @@ "engine.compile.regional": false, "engine.compile.text_encoder_enabled": false, "engine.compile.vae_enabled": false, - "pipeline.ltx2.legacy_native_noise_order": false, - "pipeline.ltx2.refine.add_noise": true, - "pipeline.ltx2.refine.enabled": false, - "pipeline.ltx2.refine.guidance_scale": 1.0, - "pipeline.ltx2.refine.num_inference_steps": 3, - "pipeline.ltx2.use_distilled_sigmas": true, - "pipeline.minimax_h3.taeh3_chunk_size": 5, - "pipeline.minimax_h3.vae_parallel_decode": false, - "pipeline.minimax_h3.vae_parallel_encode": false, - "pipeline.minimax_h3.video_decode_backend": "h3-vae", "pipeline.workload_type": "t2v" } ] @@ -506,7 +500,6 @@ "upsampler_weights": null, "vae_weights": null }, - "dit": {}, "dmd_denoising_steps": [ 1000, 666, @@ -515,49 +508,15 @@ "embedded_cfg_scale": 6.0, "experimental": {}, "flow_shift": 5.0, - "longcat": { - "bsa_cdf_threshold": null, - "bsa_chunk_k": null, - "bsa_chunk_q": null, - "bsa_sparsity": null, - "enable_bsa": null - }, - "ltx2": { - "audio_latent_path": null, - "initial_latent_path": null, - "legacy_native_noise_order": false, - "refine": { - "add_noise": true, - "audio_noise_path": null, - "enabled": false, - "guidance_scale": 1.0, - "image_crf": null, - "lora_path": null, - "noise_path": null, - "num_inference_steps": 3, - "transformer_path": null, - "video_position_offset_sec": null - }, - "use_distilled_sigmas": true, - "vae_spatial_tile_overlap_in_pixels": null, - "vae_spatial_tile_size_in_pixels": null, - "vae_temporal_tile_overlap_in_frames": null, - "vae_temporal_tile_size_in_frames": null - }, - "minimax_h3": { - "sequential_load": null, - "taeh3_checkpoint": null, - "taeh3_chunk_size": 5, - "vae_parallel_decode": false, - "vae_parallel_decode_strategy": "gather", - "vae_parallel_encode": false, - "video_decode_backend": "h3-vae" + "model": { + "dit": {}, + "family": "generic", + "vae": {} }, "output_type": "pil", "preset": null, "preset_overrides": {}, "preset_version": null, - "vae": {}, "vae_sp": false, "vae_tiling": false, "workload_type": "t2v" diff --git a/fastvideo/tests/api/config_snapshot_goldens/registry/FastVideo__Matrix-Game-2.0-TempleRun-Distilled-Diffusers.json b/fastvideo/tests/api/config_snapshot_goldens/registry/FastVideo__Matrix-Game-2.0-TempleRun-Distilled-Diffusers.json index 7be07eb3d..e7ce8e783 100644 --- a/fastvideo/tests/api/config_snapshot_goldens/registry/FastVideo__Matrix-Game-2.0-TempleRun-Distilled-Diffusers.json +++ b/fastvideo/tests/api/config_snapshot_goldens/registry/FastVideo__Matrix-Game-2.0-TempleRun-Distilled-Diffusers.json @@ -365,9 +365,13 @@ "pipeline_config_class": "fastvideo.configs.pipelines.matrixgame2.MatrixGame2I2V480PConfig", "resolution_decisions": [ [ - "fill_vae_parallel_from_env", + "fill_model_family[generic]", { - "pipeline.minimax_h3.vae_parallel_decode_strategy": "gather" + "pipeline.model": { + "dit": {}, + "family": "generic", + "vae": {} + } } ], [ @@ -414,16 +418,6 @@ "engine.compile.regional": false, "engine.compile.text_encoder_enabled": false, "engine.compile.vae_enabled": false, - "pipeline.ltx2.legacy_native_noise_order": false, - "pipeline.ltx2.refine.add_noise": true, - "pipeline.ltx2.refine.enabled": false, - "pipeline.ltx2.refine.guidance_scale": 1.0, - "pipeline.ltx2.refine.num_inference_steps": 3, - "pipeline.ltx2.use_distilled_sigmas": true, - "pipeline.minimax_h3.taeh3_chunk_size": 5, - "pipeline.minimax_h3.vae_parallel_decode": false, - "pipeline.minimax_h3.vae_parallel_encode": false, - "pipeline.minimax_h3.video_decode_backend": "h3-vae", "pipeline.workload_type": "t2v" } ] @@ -506,7 +500,6 @@ "upsampler_weights": null, "vae_weights": null }, - "dit": {}, "dmd_denoising_steps": [ 1000, 666, @@ -515,49 +508,15 @@ "embedded_cfg_scale": 6.0, "experimental": {}, "flow_shift": 5.0, - "longcat": { - "bsa_cdf_threshold": null, - "bsa_chunk_k": null, - "bsa_chunk_q": null, - "bsa_sparsity": null, - "enable_bsa": null - }, - "ltx2": { - "audio_latent_path": null, - "initial_latent_path": null, - "legacy_native_noise_order": false, - "refine": { - "add_noise": true, - "audio_noise_path": null, - "enabled": false, - "guidance_scale": 1.0, - "image_crf": null, - "lora_path": null, - "noise_path": null, - "num_inference_steps": 3, - "transformer_path": null, - "video_position_offset_sec": null - }, - "use_distilled_sigmas": true, - "vae_spatial_tile_overlap_in_pixels": null, - "vae_spatial_tile_size_in_pixels": null, - "vae_temporal_tile_overlap_in_frames": null, - "vae_temporal_tile_size_in_frames": null - }, - "minimax_h3": { - "sequential_load": null, - "taeh3_checkpoint": null, - "taeh3_chunk_size": 5, - "vae_parallel_decode": false, - "vae_parallel_decode_strategy": "gather", - "vae_parallel_encode": false, - "video_decode_backend": "h3-vae" + "model": { + "dit": {}, + "family": "generic", + "vae": {} }, "output_type": "pil", "preset": null, "preset_overrides": {}, "preset_version": null, - "vae": {}, "vae_sp": false, "vae_tiling": false, "workload_type": "t2v" diff --git a/fastvideo/tests/api/config_snapshot_goldens/registry/FastVideo__Matrix-Game-3.0-Base-Distilled-Diffusers.json b/fastvideo/tests/api/config_snapshot_goldens/registry/FastVideo__Matrix-Game-3.0-Base-Distilled-Diffusers.json index 46f85ff19..14388f7b0 100644 --- a/fastvideo/tests/api/config_snapshot_goldens/registry/FastVideo__Matrix-Game-3.0-Base-Distilled-Diffusers.json +++ b/fastvideo/tests/api/config_snapshot_goldens/registry/FastVideo__Matrix-Game-3.0-Base-Distilled-Diffusers.json @@ -329,9 +329,13 @@ "pipeline_config_class": "fastvideo.configs.pipelines.matrixgame3.MatrixGame3I2V720PConfig", "resolution_decisions": [ [ - "fill_vae_parallel_from_env", + "fill_model_family[generic]", { - "pipeline.minimax_h3.vae_parallel_decode_strategy": "gather" + "pipeline.model": { + "dit": {}, + "family": "generic", + "vae": {} + } } ], [ @@ -373,16 +377,6 @@ "engine.compile.regional": false, "engine.compile.text_encoder_enabled": false, "engine.compile.vae_enabled": false, - "pipeline.ltx2.legacy_native_noise_order": false, - "pipeline.ltx2.refine.add_noise": true, - "pipeline.ltx2.refine.enabled": false, - "pipeline.ltx2.refine.guidance_scale": 1.0, - "pipeline.ltx2.refine.num_inference_steps": 3, - "pipeline.ltx2.use_distilled_sigmas": true, - "pipeline.minimax_h3.taeh3_chunk_size": 5, - "pipeline.minimax_h3.vae_parallel_decode": false, - "pipeline.minimax_h3.vae_parallel_encode": false, - "pipeline.minimax_h3.video_decode_backend": "h3-vae", "pipeline.workload_type": "t2v" } ] @@ -465,54 +459,19 @@ "upsampler_weights": null, "vae_weights": null }, - "dit": {}, "dmd_denoising_steps": null, "embedded_cfg_scale": 6.0, "experimental": {}, "flow_shift": 5.0, - "longcat": { - "bsa_cdf_threshold": null, - "bsa_chunk_k": null, - "bsa_chunk_q": null, - "bsa_sparsity": null, - "enable_bsa": null - }, - "ltx2": { - "audio_latent_path": null, - "initial_latent_path": null, - "legacy_native_noise_order": false, - "refine": { - "add_noise": true, - "audio_noise_path": null, - "enabled": false, - "guidance_scale": 1.0, - "image_crf": null, - "lora_path": null, - "noise_path": null, - "num_inference_steps": 3, - "transformer_path": null, - "video_position_offset_sec": null - }, - "use_distilled_sigmas": true, - "vae_spatial_tile_overlap_in_pixels": null, - "vae_spatial_tile_size_in_pixels": null, - "vae_temporal_tile_overlap_in_frames": null, - "vae_temporal_tile_size_in_frames": null - }, - "minimax_h3": { - "sequential_load": null, - "taeh3_checkpoint": null, - "taeh3_chunk_size": 5, - "vae_parallel_decode": false, - "vae_parallel_decode_strategy": "gather", - "vae_parallel_encode": false, - "video_decode_backend": "h3-vae" + "model": { + "dit": {}, + "family": "generic", + "vae": {} }, "output_type": "pil", "preset": null, "preset_overrides": {}, "preset_version": null, - "vae": {}, "vae_sp": false, "vae_tiling": false, "workload_type": "t2v" diff --git a/fastvideo/tests/api/config_snapshot_goldens/registry/FastVideo__SFWan2.2-I2V-A14B-Preview-Diffusers.json b/fastvideo/tests/api/config_snapshot_goldens/registry/FastVideo__SFWan2.2-I2V-A14B-Preview-Diffusers.json index fda2025e1..8b12e8328 100644 --- a/fastvideo/tests/api/config_snapshot_goldens/registry/FastVideo__SFWan2.2-I2V-A14B-Preview-Diffusers.json +++ b/fastvideo/tests/api/config_snapshot_goldens/registry/FastVideo__SFWan2.2-I2V-A14B-Preview-Diffusers.json @@ -285,9 +285,13 @@ "pipeline_config_class": "fastvideo.models.wan.pipeline_config.SelfForcingWan2_2_T2V480PConfig", "resolution_decisions": [ [ - "fill_vae_parallel_from_env", + "fill_model_family[generic]", { - "pipeline.minimax_h3.vae_parallel_decode_strategy": "gather" + "pipeline.model": { + "dit": {}, + "family": "generic", + "vae": {} + } } ], [ @@ -340,16 +344,6 @@ "engine.compile.regional": false, "engine.compile.text_encoder_enabled": false, "engine.compile.vae_enabled": false, - "pipeline.ltx2.legacy_native_noise_order": false, - "pipeline.ltx2.refine.add_noise": true, - "pipeline.ltx2.refine.enabled": false, - "pipeline.ltx2.refine.guidance_scale": 1.0, - "pipeline.ltx2.refine.num_inference_steps": 3, - "pipeline.ltx2.use_distilled_sigmas": true, - "pipeline.minimax_h3.taeh3_chunk_size": 5, - "pipeline.minimax_h3.vae_parallel_decode": false, - "pipeline.minimax_h3.vae_parallel_encode": false, - "pipeline.minimax_h3.video_decode_backend": "h3-vae", "pipeline.workload_type": "t2v" } ] @@ -432,7 +426,6 @@ "upsampler_weights": null, "vae_weights": null }, - "dit": {}, "dmd_denoising_steps": [ 1000, 850, @@ -446,49 +439,15 @@ "embedded_cfg_scale": 6.0, "experimental": {}, "flow_shift": 12.0, - "longcat": { - "bsa_cdf_threshold": null, - "bsa_chunk_k": null, - "bsa_chunk_q": null, - "bsa_sparsity": null, - "enable_bsa": null - }, - "ltx2": { - "audio_latent_path": null, - "initial_latent_path": null, - "legacy_native_noise_order": false, - "refine": { - "add_noise": true, - "audio_noise_path": null, - "enabled": false, - "guidance_scale": 1.0, - "image_crf": null, - "lora_path": null, - "noise_path": null, - "num_inference_steps": 3, - "transformer_path": null, - "video_position_offset_sec": null - }, - "use_distilled_sigmas": true, - "vae_spatial_tile_overlap_in_pixels": null, - "vae_spatial_tile_size_in_pixels": null, - "vae_temporal_tile_overlap_in_frames": null, - "vae_temporal_tile_size_in_frames": null - }, - "minimax_h3": { - "sequential_load": null, - "taeh3_checkpoint": null, - "taeh3_chunk_size": 5, - "vae_parallel_decode": false, - "vae_parallel_decode_strategy": "gather", - "vae_parallel_encode": false, - "video_decode_backend": "h3-vae" + "model": { + "dit": {}, + "family": "generic", + "vae": {} }, "output_type": "pil", "preset": null, "preset_overrides": {}, "preset_version": null, - "vae": {}, "vae_sp": false, "vae_tiling": false, "workload_type": "t2v" diff --git a/fastvideo/tests/api/config_snapshot_goldens/registry/FastVideo__Wan2.1-VSA-T2V-14B-720P-Diffusers.json b/fastvideo/tests/api/config_snapshot_goldens/registry/FastVideo__Wan2.1-VSA-T2V-14B-720P-Diffusers.json index f69f39243..47a877c68 100644 --- a/fastvideo/tests/api/config_snapshot_goldens/registry/FastVideo__Wan2.1-VSA-T2V-14B-720P-Diffusers.json +++ b/fastvideo/tests/api/config_snapshot_goldens/registry/FastVideo__Wan2.1-VSA-T2V-14B-720P-Diffusers.json @@ -276,9 +276,13 @@ "pipeline_config_class": "fastvideo.models.wan.pipeline_config.WanT2V720PConfig", "resolution_decisions": [ [ - "fill_vae_parallel_from_env", + "fill_model_family[generic]", { - "pipeline.minimax_h3.vae_parallel_decode_strategy": "gather" + "pipeline.model": { + "dit": {}, + "family": "generic", + "vae": {} + } } ], [ @@ -320,16 +324,6 @@ "engine.compile.regional": false, "engine.compile.text_encoder_enabled": false, "engine.compile.vae_enabled": false, - "pipeline.ltx2.legacy_native_noise_order": false, - "pipeline.ltx2.refine.add_noise": true, - "pipeline.ltx2.refine.enabled": false, - "pipeline.ltx2.refine.guidance_scale": 1.0, - "pipeline.ltx2.refine.num_inference_steps": 3, - "pipeline.ltx2.use_distilled_sigmas": true, - "pipeline.minimax_h3.taeh3_chunk_size": 5, - "pipeline.minimax_h3.vae_parallel_decode": false, - "pipeline.minimax_h3.vae_parallel_encode": false, - "pipeline.minimax_h3.video_decode_backend": "h3-vae", "pipeline.workload_type": "t2v" } ] @@ -412,54 +406,19 @@ "upsampler_weights": null, "vae_weights": null }, - "dit": {}, "dmd_denoising_steps": null, "embedded_cfg_scale": 6.0, "experimental": {}, "flow_shift": 5.0, - "longcat": { - "bsa_cdf_threshold": null, - "bsa_chunk_k": null, - "bsa_chunk_q": null, - "bsa_sparsity": null, - "enable_bsa": null - }, - "ltx2": { - "audio_latent_path": null, - "initial_latent_path": null, - "legacy_native_noise_order": false, - "refine": { - "add_noise": true, - "audio_noise_path": null, - "enabled": false, - "guidance_scale": 1.0, - "image_crf": null, - "lora_path": null, - "noise_path": null, - "num_inference_steps": 3, - "transformer_path": null, - "video_position_offset_sec": null - }, - "use_distilled_sigmas": true, - "vae_spatial_tile_overlap_in_pixels": null, - "vae_spatial_tile_size_in_pixels": null, - "vae_temporal_tile_overlap_in_frames": null, - "vae_temporal_tile_size_in_frames": null - }, - "minimax_h3": { - "sequential_load": null, - "taeh3_checkpoint": null, - "taeh3_chunk_size": 5, - "vae_parallel_decode": false, - "vae_parallel_decode_strategy": "gather", - "vae_parallel_encode": false, - "video_decode_backend": "h3-vae" + "model": { + "dit": {}, + "family": "generic", + "vae": {} }, "output_type": "pil", "preset": null, "preset_overrides": {}, "preset_version": null, - "vae": {}, "vae_sp": false, "vae_tiling": false, "workload_type": "t2v" diff --git a/fastvideo/tests/api/config_snapshot_goldens/registry/FastVideo__stable-audio-open-1.0-Diffusers.json b/fastvideo/tests/api/config_snapshot_goldens/registry/FastVideo__stable-audio-open-1.0-Diffusers.json index 040a27692..39368fa0a 100644 --- a/fastvideo/tests/api/config_snapshot_goldens/registry/FastVideo__stable-audio-open-1.0-Diffusers.json +++ b/fastvideo/tests/api/config_snapshot_goldens/registry/FastVideo__stable-audio-open-1.0-Diffusers.json @@ -135,9 +135,13 @@ "pipeline_config_class": "fastvideo.configs.pipelines.stable_audio.StableAudioT2AConfig", "resolution_decisions": [ [ - "fill_vae_parallel_from_env", + "fill_model_family[generic]", { - "pipeline.minimax_h3.vae_parallel_decode_strategy": "gather" + "pipeline.model": { + "dit": {}, + "family": "generic", + "vae": {} + } } ], [ @@ -175,16 +179,6 @@ "engine.compile.regional": false, "engine.compile.text_encoder_enabled": false, "engine.compile.vae_enabled": false, - "pipeline.ltx2.legacy_native_noise_order": false, - "pipeline.ltx2.refine.add_noise": true, - "pipeline.ltx2.refine.enabled": false, - "pipeline.ltx2.refine.guidance_scale": 1.0, - "pipeline.ltx2.refine.num_inference_steps": 3, - "pipeline.ltx2.use_distilled_sigmas": true, - "pipeline.minimax_h3.taeh3_chunk_size": 5, - "pipeline.minimax_h3.vae_parallel_decode": false, - "pipeline.minimax_h3.vae_parallel_encode": false, - "pipeline.minimax_h3.video_decode_backend": "h3-vae", "pipeline.workload_type": "t2v" } ] @@ -265,54 +259,19 @@ "upsampler_weights": null, "vae_weights": null }, - "dit": {}, "dmd_denoising_steps": null, "embedded_cfg_scale": 6.0, "experimental": {}, "flow_shift": null, - "longcat": { - "bsa_cdf_threshold": null, - "bsa_chunk_k": null, - "bsa_chunk_q": null, - "bsa_sparsity": null, - "enable_bsa": null - }, - "ltx2": { - "audio_latent_path": null, - "initial_latent_path": null, - "legacy_native_noise_order": false, - "refine": { - "add_noise": true, - "audio_noise_path": null, - "enabled": false, - "guidance_scale": 1.0, - "image_crf": null, - "lora_path": null, - "noise_path": null, - "num_inference_steps": 3, - "transformer_path": null, - "video_position_offset_sec": null - }, - "use_distilled_sigmas": true, - "vae_spatial_tile_overlap_in_pixels": null, - "vae_spatial_tile_size_in_pixels": null, - "vae_temporal_tile_overlap_in_frames": null, - "vae_temporal_tile_size_in_frames": null - }, - "minimax_h3": { - "sequential_load": null, - "taeh3_checkpoint": null, - "taeh3_chunk_size": 5, - "vae_parallel_decode": false, - "vae_parallel_decode_strategy": "gather", - "vae_parallel_encode": false, - "video_decode_backend": "h3-vae" + "model": { + "dit": {}, + "family": "generic", + "vae": {} }, "output_type": "pil", "preset": null, "preset_overrides": {}, "preset_version": null, - "vae": {}, "vae_sp": false, "vae_tiling": false, "workload_type": "t2v" diff --git a/fastvideo/tests/api/config_snapshot_goldens/registry/FastVideo__stable-audio-open-small-Diffusers.json b/fastvideo/tests/api/config_snapshot_goldens/registry/FastVideo__stable-audio-open-small-Diffusers.json index a6a88b747..7d98a6e7c 100644 --- a/fastvideo/tests/api/config_snapshot_goldens/registry/FastVideo__stable-audio-open-small-Diffusers.json +++ b/fastvideo/tests/api/config_snapshot_goldens/registry/FastVideo__stable-audio-open-small-Diffusers.json @@ -135,9 +135,13 @@ "pipeline_config_class": "fastvideo.configs.pipelines.stable_audio.StableAudioOpenSmallConfig", "resolution_decisions": [ [ - "fill_vae_parallel_from_env", + "fill_model_family[generic]", { - "pipeline.minimax_h3.vae_parallel_decode_strategy": "gather" + "pipeline.model": { + "dit": {}, + "family": "generic", + "vae": {} + } } ], [ @@ -175,16 +179,6 @@ "engine.compile.regional": false, "engine.compile.text_encoder_enabled": false, "engine.compile.vae_enabled": false, - "pipeline.ltx2.legacy_native_noise_order": false, - "pipeline.ltx2.refine.add_noise": true, - "pipeline.ltx2.refine.enabled": false, - "pipeline.ltx2.refine.guidance_scale": 1.0, - "pipeline.ltx2.refine.num_inference_steps": 3, - "pipeline.ltx2.use_distilled_sigmas": true, - "pipeline.minimax_h3.taeh3_chunk_size": 5, - "pipeline.minimax_h3.vae_parallel_decode": false, - "pipeline.minimax_h3.vae_parallel_encode": false, - "pipeline.minimax_h3.video_decode_backend": "h3-vae", "pipeline.workload_type": "t2v" } ] @@ -265,54 +259,19 @@ "upsampler_weights": null, "vae_weights": null }, - "dit": {}, "dmd_denoising_steps": null, "embedded_cfg_scale": 6.0, "experimental": {}, "flow_shift": null, - "longcat": { - "bsa_cdf_threshold": null, - "bsa_chunk_k": null, - "bsa_chunk_q": null, - "bsa_sparsity": null, - "enable_bsa": null - }, - "ltx2": { - "audio_latent_path": null, - "initial_latent_path": null, - "legacy_native_noise_order": false, - "refine": { - "add_noise": true, - "audio_noise_path": null, - "enabled": false, - "guidance_scale": 1.0, - "image_crf": null, - "lora_path": null, - "noise_path": null, - "num_inference_steps": 3, - "transformer_path": null, - "video_position_offset_sec": null - }, - "use_distilled_sigmas": true, - "vae_spatial_tile_overlap_in_pixels": null, - "vae_spatial_tile_size_in_pixels": null, - "vae_temporal_tile_overlap_in_frames": null, - "vae_temporal_tile_size_in_frames": null - }, - "minimax_h3": { - "sequential_load": null, - "taeh3_checkpoint": null, - "taeh3_chunk_size": 5, - "vae_parallel_decode": false, - "vae_parallel_decode_strategy": "gather", - "vae_parallel_encode": false, - "video_decode_backend": "h3-vae" + "model": { + "dit": {}, + "family": "generic", + "vae": {} }, "output_type": "pil", "preset": null, "preset_overrides": {}, "preset_version": null, - "vae": {}, "vae_sp": false, "vae_tiling": false, "workload_type": "t2v" diff --git a/fastvideo/tests/api/config_snapshot_goldens/registry/IRMChen__Wan2.1-Fun-1.3B-Control-Diffusers.json b/fastvideo/tests/api/config_snapshot_goldens/registry/IRMChen__Wan2.1-Fun-1.3B-Control-Diffusers.json index 5ab398873..8790045f3 100644 --- a/fastvideo/tests/api/config_snapshot_goldens/registry/IRMChen__Wan2.1-Fun-1.3B-Control-Diffusers.json +++ b/fastvideo/tests/api/config_snapshot_goldens/registry/IRMChen__Wan2.1-Fun-1.3B-Control-Diffusers.json @@ -310,9 +310,13 @@ "pipeline_config_class": "fastvideo.models.wan.pipeline_config.WANV2VConfig", "resolution_decisions": [ [ - "fill_vae_parallel_from_env", + "fill_model_family[generic]", { - "pipeline.minimax_h3.vae_parallel_decode_strategy": "gather" + "pipeline.model": { + "dit": {}, + "family": "generic", + "vae": {} + } } ], [ @@ -354,16 +358,6 @@ "engine.compile.regional": false, "engine.compile.text_encoder_enabled": false, "engine.compile.vae_enabled": false, - "pipeline.ltx2.legacy_native_noise_order": false, - "pipeline.ltx2.refine.add_noise": true, - "pipeline.ltx2.refine.enabled": false, - "pipeline.ltx2.refine.guidance_scale": 1.0, - "pipeline.ltx2.refine.num_inference_steps": 3, - "pipeline.ltx2.use_distilled_sigmas": true, - "pipeline.minimax_h3.taeh3_chunk_size": 5, - "pipeline.minimax_h3.vae_parallel_decode": false, - "pipeline.minimax_h3.vae_parallel_encode": false, - "pipeline.minimax_h3.video_decode_backend": "h3-vae", "pipeline.workload_type": "t2v" } ] @@ -446,54 +440,19 @@ "upsampler_weights": null, "vae_weights": null }, - "dit": {}, "dmd_denoising_steps": null, "embedded_cfg_scale": 6.0, "experimental": {}, "flow_shift": 3.0, - "longcat": { - "bsa_cdf_threshold": null, - "bsa_chunk_k": null, - "bsa_chunk_q": null, - "bsa_sparsity": null, - "enable_bsa": null - }, - "ltx2": { - "audio_latent_path": null, - "initial_latent_path": null, - "legacy_native_noise_order": false, - "refine": { - "add_noise": true, - "audio_noise_path": null, - "enabled": false, - "guidance_scale": 1.0, - "image_crf": null, - "lora_path": null, - "noise_path": null, - "num_inference_steps": 3, - "transformer_path": null, - "video_position_offset_sec": null - }, - "use_distilled_sigmas": true, - "vae_spatial_tile_overlap_in_pixels": null, - "vae_spatial_tile_size_in_pixels": null, - "vae_temporal_tile_overlap_in_frames": null, - "vae_temporal_tile_size_in_frames": null - }, - "minimax_h3": { - "sequential_load": null, - "taeh3_checkpoint": null, - "taeh3_chunk_size": 5, - "vae_parallel_decode": false, - "vae_parallel_decode_strategy": "gather", - "vae_parallel_encode": false, - "video_decode_backend": "h3-vae" + "model": { + "dit": {}, + "family": "generic", + "vae": {} }, "output_type": "pil", "preset": null, "preset_overrides": {}, "preset_version": null, - "vae": {}, "vae_sp": false, "vae_tiling": false, "workload_type": "t2v" diff --git a/fastvideo/tests/api/config_snapshot_goldens/registry/KyleShao__Cosmos-Predict2.5-2B-Diffusers.json b/fastvideo/tests/api/config_snapshot_goldens/registry/KyleShao__Cosmos-Predict2.5-2B-Diffusers.json index 97bd7380c..bd7e14aea 100644 --- a/fastvideo/tests/api/config_snapshot_goldens/registry/KyleShao__Cosmos-Predict2.5-2B-Diffusers.json +++ b/fastvideo/tests/api/config_snapshot_goldens/registry/KyleShao__Cosmos-Predict2.5-2B-Diffusers.json @@ -273,9 +273,13 @@ "pipeline_config_class": "fastvideo.configs.pipelines.cosmos2_5.Cosmos25Config", "resolution_decisions": [ [ - "fill_vae_parallel_from_env", + "fill_model_family[generic]", { - "pipeline.minimax_h3.vae_parallel_decode_strategy": "gather" + "pipeline.model": { + "dit": {}, + "family": "generic", + "vae": {} + } } ], [ @@ -316,16 +320,6 @@ "engine.compile.regional": false, "engine.compile.text_encoder_enabled": false, "engine.compile.vae_enabled": false, - "pipeline.ltx2.legacy_native_noise_order": false, - "pipeline.ltx2.refine.add_noise": true, - "pipeline.ltx2.refine.enabled": false, - "pipeline.ltx2.refine.guidance_scale": 1.0, - "pipeline.ltx2.refine.num_inference_steps": 3, - "pipeline.ltx2.use_distilled_sigmas": true, - "pipeline.minimax_h3.taeh3_chunk_size": 5, - "pipeline.minimax_h3.vae_parallel_decode": false, - "pipeline.minimax_h3.vae_parallel_encode": false, - "pipeline.minimax_h3.video_decode_backend": "h3-vae", "pipeline.workload_type": "t2v" } ] @@ -408,54 +402,19 @@ "upsampler_weights": null, "vae_weights": null }, - "dit": {}, "dmd_denoising_steps": null, "embedded_cfg_scale": 0.0, "experimental": {}, "flow_shift": 5.0, - "longcat": { - "bsa_cdf_threshold": null, - "bsa_chunk_k": null, - "bsa_chunk_q": null, - "bsa_sparsity": null, - "enable_bsa": null - }, - "ltx2": { - "audio_latent_path": null, - "initial_latent_path": null, - "legacy_native_noise_order": false, - "refine": { - "add_noise": true, - "audio_noise_path": null, - "enabled": false, - "guidance_scale": 1.0, - "image_crf": null, - "lora_path": null, - "noise_path": null, - "num_inference_steps": 3, - "transformer_path": null, - "video_position_offset_sec": null - }, - "use_distilled_sigmas": true, - "vae_spatial_tile_overlap_in_pixels": null, - "vae_spatial_tile_size_in_pixels": null, - "vae_temporal_tile_overlap_in_frames": null, - "vae_temporal_tile_size_in_frames": null - }, - "minimax_h3": { - "sequential_load": null, - "taeh3_checkpoint": null, - "taeh3_chunk_size": 5, - "vae_parallel_decode": false, - "vae_parallel_decode_strategy": "gather", - "vae_parallel_encode": false, - "video_decode_backend": "h3-vae" + "model": { + "dit": {}, + "family": "generic", + "vae": {} }, "output_type": "pil", "preset": null, "preset_overrides": {}, "preset_version": null, - "vae": {}, "vae_sp": false, "vae_tiling": false, "workload_type": "t2v" diff --git a/fastvideo/tests/api/config_snapshot_goldens/registry/Lightricks__LTX-2.3.json b/fastvideo/tests/api/config_snapshot_goldens/registry/Lightricks__LTX-2.3.json index 205d580ac..35b71f302 100644 --- a/fastvideo/tests/api/config_snapshot_goldens/registry/Lightricks__LTX-2.3.json +++ b/fastvideo/tests/api/config_snapshot_goldens/registry/Lightricks__LTX-2.3.json @@ -257,9 +257,33 @@ "pipeline_config_class": "fastvideo.pipelines.basic.ltx2.pipeline_configs.LTX2T2VConfig", "resolution_decisions": [ [ - "fill_vae_parallel_from_env", + "fill_model_family[ltx2]", { - "pipeline.minimax_h3.vae_parallel_decode_strategy": "gather" + "pipeline.model": { + "audio_latent_path": null, + "dit": {}, + "family": "ltx2", + "initial_latent_path": null, + "legacy_native_noise_order": null, + "refine": { + "add_noise": null, + "audio_noise_path": null, + "enabled": null, + "guidance_scale": null, + "image_crf": null, + "lora_path": null, + "noise_path": null, + "num_inference_steps": null, + "transformer_path": null, + "video_position_offset_sec": null + }, + "use_distilled_sigmas": null, + "vae": {}, + "vae_spatial_tile_overlap_in_pixels": null, + "vae_spatial_tile_size_in_pixels": null, + "vae_temporal_tile_overlap_in_frames": null, + "vae_temporal_tile_size_in_frames": null + } } ], [ @@ -299,16 +323,12 @@ "engine.compile.regional": false, "engine.compile.text_encoder_enabled": false, "engine.compile.vae_enabled": false, - "pipeline.ltx2.legacy_native_noise_order": false, - "pipeline.ltx2.refine.add_noise": true, - "pipeline.ltx2.refine.enabled": false, - "pipeline.ltx2.refine.guidance_scale": 1.0, - "pipeline.ltx2.refine.num_inference_steps": 3, - "pipeline.ltx2.use_distilled_sigmas": true, - "pipeline.minimax_h3.taeh3_chunk_size": 5, - "pipeline.minimax_h3.vae_parallel_decode": false, - "pipeline.minimax_h3.vae_parallel_encode": false, - "pipeline.minimax_h3.video_decode_backend": "h3-vae", + "pipeline.model.legacy_native_noise_order": false, + "pipeline.model.refine.add_noise": true, + "pipeline.model.refine.enabled": false, + "pipeline.model.refine.guidance_scale": 1.0, + "pipeline.model.refine.num_inference_steps": 3, + "pipeline.model.use_distilled_sigmas": true, "pipeline.workload_type": "t2v" } ] @@ -391,20 +411,14 @@ "upsampler_weights": null, "vae_weights": null }, - "dit": {}, "dmd_denoising_steps": null, "embedded_cfg_scale": 6.0, "experimental": {}, "flow_shift": null, - "longcat": { - "bsa_cdf_threshold": null, - "bsa_chunk_k": null, - "bsa_chunk_q": null, - "bsa_sparsity": null, - "enable_bsa": null - }, - "ltx2": { + "model": { "audio_latent_path": null, + "dit": {}, + "family": "ltx2", "initial_latent_path": null, "legacy_native_noise_order": false, "refine": { @@ -420,25 +434,16 @@ "video_position_offset_sec": null }, "use_distilled_sigmas": true, + "vae": {}, "vae_spatial_tile_overlap_in_pixels": null, "vae_spatial_tile_size_in_pixels": null, "vae_temporal_tile_overlap_in_frames": null, "vae_temporal_tile_size_in_frames": null }, - "minimax_h3": { - "sequential_load": null, - "taeh3_checkpoint": null, - "taeh3_chunk_size": 5, - "vae_parallel_decode": false, - "vae_parallel_decode_strategy": "gather", - "vae_parallel_encode": false, - "video_decode_backend": "h3-vae" - }, "output_type": "pil", "preset": null, "preset_overrides": {}, "preset_version": null, - "vae": {}, "vae_sp": false, "vae_tiling": true, "workload_type": "t2v" diff --git a/fastvideo/tests/api/config_snapshot_goldens/registry/Lightricks__LTX-2.json b/fastvideo/tests/api/config_snapshot_goldens/registry/Lightricks__LTX-2.json index bcfb8ed90..a3366b4a5 100644 --- a/fastvideo/tests/api/config_snapshot_goldens/registry/Lightricks__LTX-2.json +++ b/fastvideo/tests/api/config_snapshot_goldens/registry/Lightricks__LTX-2.json @@ -257,9 +257,33 @@ "pipeline_config_class": "fastvideo.pipelines.basic.ltx2.pipeline_configs.LTX2T2VConfig", "resolution_decisions": [ [ - "fill_vae_parallel_from_env", + "fill_model_family[ltx2]", { - "pipeline.minimax_h3.vae_parallel_decode_strategy": "gather" + "pipeline.model": { + "audio_latent_path": null, + "dit": {}, + "family": "ltx2", + "initial_latent_path": null, + "legacy_native_noise_order": null, + "refine": { + "add_noise": null, + "audio_noise_path": null, + "enabled": null, + "guidance_scale": null, + "image_crf": null, + "lora_path": null, + "noise_path": null, + "num_inference_steps": null, + "transformer_path": null, + "video_position_offset_sec": null + }, + "use_distilled_sigmas": null, + "vae": {}, + "vae_spatial_tile_overlap_in_pixels": null, + "vae_spatial_tile_size_in_pixels": null, + "vae_temporal_tile_overlap_in_frames": null, + "vae_temporal_tile_size_in_frames": null + } } ], [ @@ -299,16 +323,12 @@ "engine.compile.regional": false, "engine.compile.text_encoder_enabled": false, "engine.compile.vae_enabled": false, - "pipeline.ltx2.legacy_native_noise_order": false, - "pipeline.ltx2.refine.add_noise": true, - "pipeline.ltx2.refine.enabled": false, - "pipeline.ltx2.refine.guidance_scale": 1.0, - "pipeline.ltx2.refine.num_inference_steps": 3, - "pipeline.ltx2.use_distilled_sigmas": true, - "pipeline.minimax_h3.taeh3_chunk_size": 5, - "pipeline.minimax_h3.vae_parallel_decode": false, - "pipeline.minimax_h3.vae_parallel_encode": false, - "pipeline.minimax_h3.video_decode_backend": "h3-vae", + "pipeline.model.legacy_native_noise_order": false, + "pipeline.model.refine.add_noise": true, + "pipeline.model.refine.enabled": false, + "pipeline.model.refine.guidance_scale": 1.0, + "pipeline.model.refine.num_inference_steps": 3, + "pipeline.model.use_distilled_sigmas": true, "pipeline.workload_type": "t2v" } ] @@ -391,20 +411,14 @@ "upsampler_weights": null, "vae_weights": null }, - "dit": {}, "dmd_denoising_steps": null, "embedded_cfg_scale": 6.0, "experimental": {}, "flow_shift": null, - "longcat": { - "bsa_cdf_threshold": null, - "bsa_chunk_k": null, - "bsa_chunk_q": null, - "bsa_sparsity": null, - "enable_bsa": null - }, - "ltx2": { + "model": { "audio_latent_path": null, + "dit": {}, + "family": "ltx2", "initial_latent_path": null, "legacy_native_noise_order": false, "refine": { @@ -420,25 +434,16 @@ "video_position_offset_sec": null }, "use_distilled_sigmas": true, + "vae": {}, "vae_spatial_tile_overlap_in_pixels": null, "vae_spatial_tile_size_in_pixels": null, "vae_temporal_tile_overlap_in_frames": null, "vae_temporal_tile_size_in_frames": null }, - "minimax_h3": { - "sequential_load": null, - "taeh3_checkpoint": null, - "taeh3_chunk_size": 5, - "vae_parallel_decode": false, - "vae_parallel_decode_strategy": "gather", - "vae_parallel_encode": false, - "video_decode_backend": "h3-vae" - }, "output_type": "pil", "preset": null, "preset_overrides": {}, "preset_version": null, - "vae": {}, "vae_sp": false, "vae_tiling": true, "workload_type": "t2v" diff --git a/fastvideo/tests/api/config_snapshot_goldens/registry/MiniMaxAI__MiniMax-H3.json b/fastvideo/tests/api/config_snapshot_goldens/registry/MiniMaxAI__MiniMax-H3.json index 12036c38b..47e8201cc 100644 --- a/fastvideo/tests/api/config_snapshot_goldens/registry/MiniMaxAI__MiniMax-H3.json +++ b/fastvideo/tests/api/config_snapshot_goldens/registry/MiniMaxAI__MiniMax-H3.json @@ -386,10 +386,27 @@ }, "pipeline_config_class": "fastvideo.configs.pipelines.minimax_h3.MiniMaxH3PipelineConfig", "resolution_decisions": [ + [ + "fill_model_family[minimax_h3]", + { + "pipeline.model": { + "dit": {}, + "family": "minimax_h3", + "sequential_load": null, + "taeh3_checkpoint": null, + "taeh3_chunk_size": null, + "vae": {}, + "vae_parallel_decode": null, + "vae_parallel_decode_strategy": null, + "vae_parallel_encode": null, + "video_decode_backend": null + } + } + ], [ "fill_vae_parallel_from_env", { - "pipeline.minimax_h3.vae_parallel_decode_strategy": "gather" + "pipeline.model.vae_parallel_decode_strategy": "gather" } ], [ @@ -428,16 +445,10 @@ "engine.compile.regional": false, "engine.compile.text_encoder_enabled": false, "engine.compile.vae_enabled": false, - "pipeline.ltx2.legacy_native_noise_order": false, - "pipeline.ltx2.refine.add_noise": true, - "pipeline.ltx2.refine.enabled": false, - "pipeline.ltx2.refine.guidance_scale": 1.0, - "pipeline.ltx2.refine.num_inference_steps": 3, - "pipeline.ltx2.use_distilled_sigmas": true, - "pipeline.minimax_h3.taeh3_chunk_size": 5, - "pipeline.minimax_h3.vae_parallel_decode": false, - "pipeline.minimax_h3.vae_parallel_encode": false, - "pipeline.minimax_h3.video_decode_backend": "h3-vae", + "pipeline.model.taeh3_chunk_size": 5, + "pipeline.model.vae_parallel_decode": false, + "pipeline.model.vae_parallel_encode": false, + "pipeline.model.video_decode_backend": "h3-vae", "pipeline.workload_type": "t2v" } ] @@ -520,44 +531,17 @@ "upsampler_weights": null, "vae_weights": null }, - "dit": {}, "dmd_denoising_steps": null, "embedded_cfg_scale": null, "experimental": {}, "flow_shift": null, - "longcat": { - "bsa_cdf_threshold": null, - "bsa_chunk_k": null, - "bsa_chunk_q": null, - "bsa_sparsity": null, - "enable_bsa": null - }, - "ltx2": { - "audio_latent_path": null, - "initial_latent_path": null, - "legacy_native_noise_order": false, - "refine": { - "add_noise": true, - "audio_noise_path": null, - "enabled": false, - "guidance_scale": 1.0, - "image_crf": null, - "lora_path": null, - "noise_path": null, - "num_inference_steps": 3, - "transformer_path": null, - "video_position_offset_sec": null - }, - "use_distilled_sigmas": true, - "vae_spatial_tile_overlap_in_pixels": null, - "vae_spatial_tile_size_in_pixels": null, - "vae_temporal_tile_overlap_in_frames": null, - "vae_temporal_tile_size_in_frames": null - }, - "minimax_h3": { + "model": { + "dit": {}, + "family": "minimax_h3", "sequential_load": null, "taeh3_checkpoint": null, "taeh3_chunk_size": 5, + "vae": {}, "vae_parallel_decode": false, "vae_parallel_decode_strategy": "gather", "vae_parallel_encode": false, @@ -567,7 +551,6 @@ "preset": null, "preset_overrides": {}, "preset_version": null, - "vae": {}, "vae_sp": false, "vae_tiling": true, "workload_type": "t2v" diff --git a/fastvideo/tests/api/config_snapshot_goldens/registry/Tongyi-MAI__Z-Image-Turbo.json b/fastvideo/tests/api/config_snapshot_goldens/registry/Tongyi-MAI__Z-Image-Turbo.json index 3562b819f..893875a7a 100644 --- a/fastvideo/tests/api/config_snapshot_goldens/registry/Tongyi-MAI__Z-Image-Turbo.json +++ b/fastvideo/tests/api/config_snapshot_goldens/registry/Tongyi-MAI__Z-Image-Turbo.json @@ -237,9 +237,13 @@ "pipeline_config_class": "fastvideo.configs.pipelines.zimage.ZImagePipelineConfig", "resolution_decisions": [ [ - "fill_vae_parallel_from_env", + "fill_model_family[generic]", { - "pipeline.minimax_h3.vae_parallel_decode_strategy": "gather" + "pipeline.model": { + "dit": {}, + "family": "generic", + "vae": {} + } } ], [ @@ -280,16 +284,6 @@ "engine.compile.regional": false, "engine.compile.text_encoder_enabled": false, "engine.compile.vae_enabled": false, - "pipeline.ltx2.legacy_native_noise_order": false, - "pipeline.ltx2.refine.add_noise": true, - "pipeline.ltx2.refine.enabled": false, - "pipeline.ltx2.refine.guidance_scale": 1.0, - "pipeline.ltx2.refine.num_inference_steps": 3, - "pipeline.ltx2.use_distilled_sigmas": true, - "pipeline.minimax_h3.taeh3_chunk_size": 5, - "pipeline.minimax_h3.vae_parallel_decode": false, - "pipeline.minimax_h3.vae_parallel_encode": false, - "pipeline.minimax_h3.video_decode_backend": "h3-vae", "pipeline.workload_type": "t2v" } ] @@ -372,54 +366,19 @@ "upsampler_weights": null, "vae_weights": null }, - "dit": {}, "dmd_denoising_steps": null, "embedded_cfg_scale": 0.0, "experimental": {}, "flow_shift": 3.0, - "longcat": { - "bsa_cdf_threshold": null, - "bsa_chunk_k": null, - "bsa_chunk_q": null, - "bsa_sparsity": null, - "enable_bsa": null - }, - "ltx2": { - "audio_latent_path": null, - "initial_latent_path": null, - "legacy_native_noise_order": false, - "refine": { - "add_noise": true, - "audio_noise_path": null, - "enabled": false, - "guidance_scale": 1.0, - "image_crf": null, - "lora_path": null, - "noise_path": null, - "num_inference_steps": 3, - "transformer_path": null, - "video_position_offset_sec": null - }, - "use_distilled_sigmas": true, - "vae_spatial_tile_overlap_in_pixels": null, - "vae_spatial_tile_size_in_pixels": null, - "vae_temporal_tile_overlap_in_frames": null, - "vae_temporal_tile_size_in_frames": null - }, - "minimax_h3": { - "sequential_load": null, - "taeh3_checkpoint": null, - "taeh3_chunk_size": 5, - "vae_parallel_decode": false, - "vae_parallel_decode_strategy": "gather", - "vae_parallel_encode": false, - "video_decode_backend": "h3-vae" + "model": { + "dit": {}, + "family": "generic", + "vae": {} }, "output_type": "pil", "preset": null, "preset_overrides": {}, "preset_version": null, - "vae": {}, "vae_sp": false, "vae_tiling": false, "workload_type": "t2v" diff --git a/fastvideo/tests/api/config_snapshot_goldens/registry/Wan-AI__Wan2.1-I2V-14B-480P-Diffusers.json b/fastvideo/tests/api/config_snapshot_goldens/registry/Wan-AI__Wan2.1-I2V-14B-480P-Diffusers.json index 93dec675d..f587883ba 100644 --- a/fastvideo/tests/api/config_snapshot_goldens/registry/Wan-AI__Wan2.1-I2V-14B-480P-Diffusers.json +++ b/fastvideo/tests/api/config_snapshot_goldens/registry/Wan-AI__Wan2.1-I2V-14B-480P-Diffusers.json @@ -310,9 +310,13 @@ "pipeline_config_class": "fastvideo.models.wan.pipeline_config.WanI2V480PConfig", "resolution_decisions": [ [ - "fill_vae_parallel_from_env", + "fill_model_family[generic]", { - "pipeline.minimax_h3.vae_parallel_decode_strategy": "gather" + "pipeline.model": { + "dit": {}, + "family": "generic", + "vae": {} + } } ], [ @@ -354,16 +358,6 @@ "engine.compile.regional": false, "engine.compile.text_encoder_enabled": false, "engine.compile.vae_enabled": false, - "pipeline.ltx2.legacy_native_noise_order": false, - "pipeline.ltx2.refine.add_noise": true, - "pipeline.ltx2.refine.enabled": false, - "pipeline.ltx2.refine.guidance_scale": 1.0, - "pipeline.ltx2.refine.num_inference_steps": 3, - "pipeline.ltx2.use_distilled_sigmas": true, - "pipeline.minimax_h3.taeh3_chunk_size": 5, - "pipeline.minimax_h3.vae_parallel_decode": false, - "pipeline.minimax_h3.vae_parallel_encode": false, - "pipeline.minimax_h3.video_decode_backend": "h3-vae", "pipeline.workload_type": "t2v" } ] @@ -446,54 +440,19 @@ "upsampler_weights": null, "vae_weights": null }, - "dit": {}, "dmd_denoising_steps": null, "embedded_cfg_scale": 6.0, "experimental": {}, "flow_shift": 3.0, - "longcat": { - "bsa_cdf_threshold": null, - "bsa_chunk_k": null, - "bsa_chunk_q": null, - "bsa_sparsity": null, - "enable_bsa": null - }, - "ltx2": { - "audio_latent_path": null, - "initial_latent_path": null, - "legacy_native_noise_order": false, - "refine": { - "add_noise": true, - "audio_noise_path": null, - "enabled": false, - "guidance_scale": 1.0, - "image_crf": null, - "lora_path": null, - "noise_path": null, - "num_inference_steps": 3, - "transformer_path": null, - "video_position_offset_sec": null - }, - "use_distilled_sigmas": true, - "vae_spatial_tile_overlap_in_pixels": null, - "vae_spatial_tile_size_in_pixels": null, - "vae_temporal_tile_overlap_in_frames": null, - "vae_temporal_tile_size_in_frames": null - }, - "minimax_h3": { - "sequential_load": null, - "taeh3_checkpoint": null, - "taeh3_chunk_size": 5, - "vae_parallel_decode": false, - "vae_parallel_decode_strategy": "gather", - "vae_parallel_encode": false, - "video_decode_backend": "h3-vae" + "model": { + "dit": {}, + "family": "generic", + "vae": {} }, "output_type": "pil", "preset": null, "preset_overrides": {}, "preset_version": null, - "vae": {}, "vae_sp": false, "vae_tiling": false, "workload_type": "t2v" diff --git a/fastvideo/tests/api/config_snapshot_goldens/registry/Wan-AI__Wan2.1-I2V-14B-720P-Diffusers.json b/fastvideo/tests/api/config_snapshot_goldens/registry/Wan-AI__Wan2.1-I2V-14B-720P-Diffusers.json index c0df23ccd..5b6af2f5a 100644 --- a/fastvideo/tests/api/config_snapshot_goldens/registry/Wan-AI__Wan2.1-I2V-14B-720P-Diffusers.json +++ b/fastvideo/tests/api/config_snapshot_goldens/registry/Wan-AI__Wan2.1-I2V-14B-720P-Diffusers.json @@ -310,9 +310,13 @@ "pipeline_config_class": "fastvideo.models.wan.pipeline_config.WanI2V720PConfig", "resolution_decisions": [ [ - "fill_vae_parallel_from_env", + "fill_model_family[generic]", { - "pipeline.minimax_h3.vae_parallel_decode_strategy": "gather" + "pipeline.model": { + "dit": {}, + "family": "generic", + "vae": {} + } } ], [ @@ -354,16 +358,6 @@ "engine.compile.regional": false, "engine.compile.text_encoder_enabled": false, "engine.compile.vae_enabled": false, - "pipeline.ltx2.legacy_native_noise_order": false, - "pipeline.ltx2.refine.add_noise": true, - "pipeline.ltx2.refine.enabled": false, - "pipeline.ltx2.refine.guidance_scale": 1.0, - "pipeline.ltx2.refine.num_inference_steps": 3, - "pipeline.ltx2.use_distilled_sigmas": true, - "pipeline.minimax_h3.taeh3_chunk_size": 5, - "pipeline.minimax_h3.vae_parallel_decode": false, - "pipeline.minimax_h3.vae_parallel_encode": false, - "pipeline.minimax_h3.video_decode_backend": "h3-vae", "pipeline.workload_type": "t2v" } ] @@ -446,54 +440,19 @@ "upsampler_weights": null, "vae_weights": null }, - "dit": {}, "dmd_denoising_steps": null, "embedded_cfg_scale": 6.0, "experimental": {}, "flow_shift": 5.0, - "longcat": { - "bsa_cdf_threshold": null, - "bsa_chunk_k": null, - "bsa_chunk_q": null, - "bsa_sparsity": null, - "enable_bsa": null - }, - "ltx2": { - "audio_latent_path": null, - "initial_latent_path": null, - "legacy_native_noise_order": false, - "refine": { - "add_noise": true, - "audio_noise_path": null, - "enabled": false, - "guidance_scale": 1.0, - "image_crf": null, - "lora_path": null, - "noise_path": null, - "num_inference_steps": 3, - "transformer_path": null, - "video_position_offset_sec": null - }, - "use_distilled_sigmas": true, - "vae_spatial_tile_overlap_in_pixels": null, - "vae_spatial_tile_size_in_pixels": null, - "vae_temporal_tile_overlap_in_frames": null, - "vae_temporal_tile_size_in_frames": null - }, - "minimax_h3": { - "sequential_load": null, - "taeh3_checkpoint": null, - "taeh3_chunk_size": 5, - "vae_parallel_decode": false, - "vae_parallel_decode_strategy": "gather", - "vae_parallel_encode": false, - "video_decode_backend": "h3-vae" + "model": { + "dit": {}, + "family": "generic", + "vae": {} }, "output_type": "pil", "preset": null, "preset_overrides": {}, "preset_version": null, - "vae": {}, "vae_sp": false, "vae_tiling": false, "workload_type": "t2v" diff --git a/fastvideo/tests/api/config_snapshot_goldens/registry/Wan-AI__Wan2.1-T2V-1.3B-Diffusers.json b/fastvideo/tests/api/config_snapshot_goldens/registry/Wan-AI__Wan2.1-T2V-1.3B-Diffusers.json index 7ec546182..80dbc5193 100644 --- a/fastvideo/tests/api/config_snapshot_goldens/registry/Wan-AI__Wan2.1-T2V-1.3B-Diffusers.json +++ b/fastvideo/tests/api/config_snapshot_goldens/registry/Wan-AI__Wan2.1-T2V-1.3B-Diffusers.json @@ -276,9 +276,13 @@ "pipeline_config_class": "fastvideo.models.wan.pipeline_config.WanT2V480PConfig", "resolution_decisions": [ [ - "fill_vae_parallel_from_env", + "fill_model_family[generic]", { - "pipeline.minimax_h3.vae_parallel_decode_strategy": "gather" + "pipeline.model": { + "dit": {}, + "family": "generic", + "vae": {} + } } ], [ @@ -320,16 +324,6 @@ "engine.compile.regional": false, "engine.compile.text_encoder_enabled": false, "engine.compile.vae_enabled": false, - "pipeline.ltx2.legacy_native_noise_order": false, - "pipeline.ltx2.refine.add_noise": true, - "pipeline.ltx2.refine.enabled": false, - "pipeline.ltx2.refine.guidance_scale": 1.0, - "pipeline.ltx2.refine.num_inference_steps": 3, - "pipeline.ltx2.use_distilled_sigmas": true, - "pipeline.minimax_h3.taeh3_chunk_size": 5, - "pipeline.minimax_h3.vae_parallel_decode": false, - "pipeline.minimax_h3.vae_parallel_encode": false, - "pipeline.minimax_h3.video_decode_backend": "h3-vae", "pipeline.workload_type": "t2v" } ] @@ -412,54 +406,19 @@ "upsampler_weights": null, "vae_weights": null }, - "dit": {}, "dmd_denoising_steps": null, "embedded_cfg_scale": 6.0, "experimental": {}, "flow_shift": 3.0, - "longcat": { - "bsa_cdf_threshold": null, - "bsa_chunk_k": null, - "bsa_chunk_q": null, - "bsa_sparsity": null, - "enable_bsa": null - }, - "ltx2": { - "audio_latent_path": null, - "initial_latent_path": null, - "legacy_native_noise_order": false, - "refine": { - "add_noise": true, - "audio_noise_path": null, - "enabled": false, - "guidance_scale": 1.0, - "image_crf": null, - "lora_path": null, - "noise_path": null, - "num_inference_steps": 3, - "transformer_path": null, - "video_position_offset_sec": null - }, - "use_distilled_sigmas": true, - "vae_spatial_tile_overlap_in_pixels": null, - "vae_spatial_tile_size_in_pixels": null, - "vae_temporal_tile_overlap_in_frames": null, - "vae_temporal_tile_size_in_frames": null - }, - "minimax_h3": { - "sequential_load": null, - "taeh3_checkpoint": null, - "taeh3_chunk_size": 5, - "vae_parallel_decode": false, - "vae_parallel_decode_strategy": "gather", - "vae_parallel_encode": false, - "video_decode_backend": "h3-vae" + "model": { + "dit": {}, + "family": "generic", + "vae": {} }, "output_type": "pil", "preset": null, "preset_overrides": {}, "preset_version": null, - "vae": {}, "vae_sp": false, "vae_tiling": false, "workload_type": "t2v" diff --git a/fastvideo/tests/api/config_snapshot_goldens/registry/Wan-AI__Wan2.1-T2V-14B-Diffusers.json b/fastvideo/tests/api/config_snapshot_goldens/registry/Wan-AI__Wan2.1-T2V-14B-Diffusers.json index deab0d45f..0d4a72226 100644 --- a/fastvideo/tests/api/config_snapshot_goldens/registry/Wan-AI__Wan2.1-T2V-14B-Diffusers.json +++ b/fastvideo/tests/api/config_snapshot_goldens/registry/Wan-AI__Wan2.1-T2V-14B-Diffusers.json @@ -276,9 +276,13 @@ "pipeline_config_class": "fastvideo.models.wan.pipeline_config.WanT2V720PConfig", "resolution_decisions": [ [ - "fill_vae_parallel_from_env", + "fill_model_family[generic]", { - "pipeline.minimax_h3.vae_parallel_decode_strategy": "gather" + "pipeline.model": { + "dit": {}, + "family": "generic", + "vae": {} + } } ], [ @@ -320,16 +324,6 @@ "engine.compile.regional": false, "engine.compile.text_encoder_enabled": false, "engine.compile.vae_enabled": false, - "pipeline.ltx2.legacy_native_noise_order": false, - "pipeline.ltx2.refine.add_noise": true, - "pipeline.ltx2.refine.enabled": false, - "pipeline.ltx2.refine.guidance_scale": 1.0, - "pipeline.ltx2.refine.num_inference_steps": 3, - "pipeline.ltx2.use_distilled_sigmas": true, - "pipeline.minimax_h3.taeh3_chunk_size": 5, - "pipeline.minimax_h3.vae_parallel_decode": false, - "pipeline.minimax_h3.vae_parallel_encode": false, - "pipeline.minimax_h3.video_decode_backend": "h3-vae", "pipeline.workload_type": "t2v" } ] @@ -412,54 +406,19 @@ "upsampler_weights": null, "vae_weights": null }, - "dit": {}, "dmd_denoising_steps": null, "embedded_cfg_scale": 6.0, "experimental": {}, "flow_shift": 5.0, - "longcat": { - "bsa_cdf_threshold": null, - "bsa_chunk_k": null, - "bsa_chunk_q": null, - "bsa_sparsity": null, - "enable_bsa": null - }, - "ltx2": { - "audio_latent_path": null, - "initial_latent_path": null, - "legacy_native_noise_order": false, - "refine": { - "add_noise": true, - "audio_noise_path": null, - "enabled": false, - "guidance_scale": 1.0, - "image_crf": null, - "lora_path": null, - "noise_path": null, - "num_inference_steps": 3, - "transformer_path": null, - "video_position_offset_sec": null - }, - "use_distilled_sigmas": true, - "vae_spatial_tile_overlap_in_pixels": null, - "vae_spatial_tile_size_in_pixels": null, - "vae_temporal_tile_overlap_in_frames": null, - "vae_temporal_tile_size_in_frames": null - }, - "minimax_h3": { - "sequential_load": null, - "taeh3_checkpoint": null, - "taeh3_chunk_size": 5, - "vae_parallel_decode": false, - "vae_parallel_decode_strategy": "gather", - "vae_parallel_encode": false, - "video_decode_backend": "h3-vae" + "model": { + "dit": {}, + "family": "generic", + "vae": {} }, "output_type": "pil", "preset": null, "preset_overrides": {}, "preset_version": null, - "vae": {}, "vae_sp": false, "vae_tiling": false, "workload_type": "t2v" diff --git a/fastvideo/tests/api/config_snapshot_goldens/registry/Wan-AI__Wan2.2-I2V-A14B-Diffusers.json b/fastvideo/tests/api/config_snapshot_goldens/registry/Wan-AI__Wan2.2-I2V-A14B-Diffusers.json index cc844423a..b9b9906f3 100644 --- a/fastvideo/tests/api/config_snapshot_goldens/registry/Wan-AI__Wan2.2-I2V-A14B-Diffusers.json +++ b/fastvideo/tests/api/config_snapshot_goldens/registry/Wan-AI__Wan2.2-I2V-A14B-Diffusers.json @@ -310,9 +310,13 @@ "pipeline_config_class": "fastvideo.models.wan.pipeline_config.Wan2_2_I2V_A14B_Config", "resolution_decisions": [ [ - "fill_vae_parallel_from_env", + "fill_model_family[generic]", { - "pipeline.minimax_h3.vae_parallel_decode_strategy": "gather" + "pipeline.model": { + "dit": {}, + "family": "generic", + "vae": {} + } } ], [ @@ -355,16 +359,6 @@ "engine.compile.regional": false, "engine.compile.text_encoder_enabled": false, "engine.compile.vae_enabled": false, - "pipeline.ltx2.legacy_native_noise_order": false, - "pipeline.ltx2.refine.add_noise": true, - "pipeline.ltx2.refine.enabled": false, - "pipeline.ltx2.refine.guidance_scale": 1.0, - "pipeline.ltx2.refine.num_inference_steps": 3, - "pipeline.ltx2.use_distilled_sigmas": true, - "pipeline.minimax_h3.taeh3_chunk_size": 5, - "pipeline.minimax_h3.vae_parallel_decode": false, - "pipeline.minimax_h3.vae_parallel_encode": false, - "pipeline.minimax_h3.video_decode_backend": "h3-vae", "pipeline.workload_type": "t2v" } ] @@ -447,54 +441,19 @@ "upsampler_weights": null, "vae_weights": null }, - "dit": {}, "dmd_denoising_steps": null, "embedded_cfg_scale": 6.0, "experimental": {}, "flow_shift": 5.0, - "longcat": { - "bsa_cdf_threshold": null, - "bsa_chunk_k": null, - "bsa_chunk_q": null, - "bsa_sparsity": null, - "enable_bsa": null - }, - "ltx2": { - "audio_latent_path": null, - "initial_latent_path": null, - "legacy_native_noise_order": false, - "refine": { - "add_noise": true, - "audio_noise_path": null, - "enabled": false, - "guidance_scale": 1.0, - "image_crf": null, - "lora_path": null, - "noise_path": null, - "num_inference_steps": 3, - "transformer_path": null, - "video_position_offset_sec": null - }, - "use_distilled_sigmas": true, - "vae_spatial_tile_overlap_in_pixels": null, - "vae_spatial_tile_size_in_pixels": null, - "vae_temporal_tile_overlap_in_frames": null, - "vae_temporal_tile_size_in_frames": null - }, - "minimax_h3": { - "sequential_load": null, - "taeh3_checkpoint": null, - "taeh3_chunk_size": 5, - "vae_parallel_decode": false, - "vae_parallel_decode_strategy": "gather", - "vae_parallel_encode": false, - "video_decode_backend": "h3-vae" + "model": { + "dit": {}, + "family": "generic", + "vae": {} }, "output_type": "pil", "preset": null, "preset_overrides": {}, "preset_version": null, - "vae": {}, "vae_sp": false, "vae_tiling": false, "workload_type": "t2v" diff --git a/fastvideo/tests/api/config_snapshot_goldens/registry/Wan-AI__Wan2.2-T2V-A14B-Diffusers.json b/fastvideo/tests/api/config_snapshot_goldens/registry/Wan-AI__Wan2.2-T2V-A14B-Diffusers.json index 85dd28973..20ad1e3d5 100644 --- a/fastvideo/tests/api/config_snapshot_goldens/registry/Wan-AI__Wan2.2-T2V-A14B-Diffusers.json +++ b/fastvideo/tests/api/config_snapshot_goldens/registry/Wan-AI__Wan2.2-T2V-A14B-Diffusers.json @@ -281,9 +281,13 @@ "pipeline_config_class": "fastvideo.models.wan.pipeline_config.Wan2_2_T2V_A14B_Config", "resolution_decisions": [ [ - "fill_vae_parallel_from_env", + "fill_model_family[generic]", { - "pipeline.minimax_h3.vae_parallel_decode_strategy": "gather" + "pipeline.model": { + "dit": {}, + "family": "generic", + "vae": {} + } } ], [ @@ -332,16 +336,6 @@ "engine.compile.regional": false, "engine.compile.text_encoder_enabled": false, "engine.compile.vae_enabled": false, - "pipeline.ltx2.legacy_native_noise_order": false, - "pipeline.ltx2.refine.add_noise": true, - "pipeline.ltx2.refine.enabled": false, - "pipeline.ltx2.refine.guidance_scale": 1.0, - "pipeline.ltx2.refine.num_inference_steps": 3, - "pipeline.ltx2.use_distilled_sigmas": true, - "pipeline.minimax_h3.taeh3_chunk_size": 5, - "pipeline.minimax_h3.vae_parallel_decode": false, - "pipeline.minimax_h3.vae_parallel_encode": false, - "pipeline.minimax_h3.video_decode_backend": "h3-vae", "pipeline.workload_type": "t2v" } ] @@ -424,7 +418,6 @@ "upsampler_weights": null, "vae_weights": null }, - "dit": {}, "dmd_denoising_steps": [ 1000, 750, @@ -434,49 +427,15 @@ "embedded_cfg_scale": 6.0, "experimental": {}, "flow_shift": 12.0, - "longcat": { - "bsa_cdf_threshold": null, - "bsa_chunk_k": null, - "bsa_chunk_q": null, - "bsa_sparsity": null, - "enable_bsa": null - }, - "ltx2": { - "audio_latent_path": null, - "initial_latent_path": null, - "legacy_native_noise_order": false, - "refine": { - "add_noise": true, - "audio_noise_path": null, - "enabled": false, - "guidance_scale": 1.0, - "image_crf": null, - "lora_path": null, - "noise_path": null, - "num_inference_steps": 3, - "transformer_path": null, - "video_position_offset_sec": null - }, - "use_distilled_sigmas": true, - "vae_spatial_tile_overlap_in_pixels": null, - "vae_spatial_tile_size_in_pixels": null, - "vae_temporal_tile_overlap_in_frames": null, - "vae_temporal_tile_size_in_frames": null - }, - "minimax_h3": { - "sequential_load": null, - "taeh3_checkpoint": null, - "taeh3_chunk_size": 5, - "vae_parallel_decode": false, - "vae_parallel_decode_strategy": "gather", - "vae_parallel_encode": false, - "video_decode_backend": "h3-vae" + "model": { + "dit": {}, + "family": "generic", + "vae": {} }, "output_type": "pil", "preset": null, "preset_overrides": {}, "preset_version": null, - "vae": {}, "vae_sp": false, "vae_tiling": false, "workload_type": "t2v" diff --git a/fastvideo/tests/api/config_snapshot_goldens/registry/Wan-AI__Wan2.2-TI2V-5B-Diffusers.json b/fastvideo/tests/api/config_snapshot_goldens/registry/Wan-AI__Wan2.2-TI2V-5B-Diffusers.json index 465969dbc..123bef741 100644 --- a/fastvideo/tests/api/config_snapshot_goldens/registry/Wan-AI__Wan2.2-TI2V-5B-Diffusers.json +++ b/fastvideo/tests/api/config_snapshot_goldens/registry/Wan-AI__Wan2.2-TI2V-5B-Diffusers.json @@ -277,9 +277,13 @@ "pipeline_config_class": "fastvideo.models.wan.pipeline_config.Wan2_2_TI2V_5B_Config", "resolution_decisions": [ [ - "fill_vae_parallel_from_env", + "fill_model_family[generic]", { - "pipeline.minimax_h3.vae_parallel_decode_strategy": "gather" + "pipeline.model": { + "dit": {}, + "family": "generic", + "vae": {} + } } ], [ @@ -321,16 +325,6 @@ "engine.compile.regional": false, "engine.compile.text_encoder_enabled": false, "engine.compile.vae_enabled": false, - "pipeline.ltx2.legacy_native_noise_order": false, - "pipeline.ltx2.refine.add_noise": true, - "pipeline.ltx2.refine.enabled": false, - "pipeline.ltx2.refine.guidance_scale": 1.0, - "pipeline.ltx2.refine.num_inference_steps": 3, - "pipeline.ltx2.use_distilled_sigmas": true, - "pipeline.minimax_h3.taeh3_chunk_size": 5, - "pipeline.minimax_h3.vae_parallel_decode": false, - "pipeline.minimax_h3.vae_parallel_encode": false, - "pipeline.minimax_h3.video_decode_backend": "h3-vae", "pipeline.workload_type": "t2v" } ] @@ -413,54 +407,19 @@ "upsampler_weights": null, "vae_weights": null }, - "dit": {}, "dmd_denoising_steps": null, "embedded_cfg_scale": 6.0, "experimental": {}, "flow_shift": 5.0, - "longcat": { - "bsa_cdf_threshold": null, - "bsa_chunk_k": null, - "bsa_chunk_q": null, - "bsa_sparsity": null, - "enable_bsa": null - }, - "ltx2": { - "audio_latent_path": null, - "initial_latent_path": null, - "legacy_native_noise_order": false, - "refine": { - "add_noise": true, - "audio_noise_path": null, - "enabled": false, - "guidance_scale": 1.0, - "image_crf": null, - "lora_path": null, - "noise_path": null, - "num_inference_steps": 3, - "transformer_path": null, - "video_position_offset_sec": null - }, - "use_distilled_sigmas": true, - "vae_spatial_tile_overlap_in_pixels": null, - "vae_spatial_tile_size_in_pixels": null, - "vae_temporal_tile_overlap_in_frames": null, - "vae_temporal_tile_size_in_frames": null - }, - "minimax_h3": { - "sequential_load": null, - "taeh3_checkpoint": null, - "taeh3_chunk_size": 5, - "vae_parallel_decode": false, - "vae_parallel_decode_strategy": "gather", - "vae_parallel_encode": false, - "video_decode_backend": "h3-vae" + "model": { + "dit": {}, + "family": "generic", + "vae": {} }, "output_type": "pil", "preset": null, "preset_overrides": {}, "preset_version": null, - "vae": {}, "vae_sp": false, "vae_tiling": false, "workload_type": "t2v" diff --git a/fastvideo/tests/api/config_snapshot_goldens/registry/black-forest-labs__FLUX.1-dev.json b/fastvideo/tests/api/config_snapshot_goldens/registry/black-forest-labs__FLUX.1-dev.json index 86a9f5bdb..45da6fd29 100644 --- a/fastvideo/tests/api/config_snapshot_goldens/registry/black-forest-labs__FLUX.1-dev.json +++ b/fastvideo/tests/api/config_snapshot_goldens/registry/black-forest-labs__FLUX.1-dev.json @@ -297,9 +297,13 @@ "pipeline_config_class": "fastvideo.configs.pipelines.flux.FluxPipelineConfig", "resolution_decisions": [ [ - "fill_vae_parallel_from_env", + "fill_model_family[generic]", { - "pipeline.minimax_h3.vae_parallel_decode_strategy": "gather" + "pipeline.model": { + "dit": {}, + "family": "generic", + "vae": {} + } } ], [ @@ -340,16 +344,6 @@ "engine.compile.regional": false, "engine.compile.text_encoder_enabled": false, "engine.compile.vae_enabled": false, - "pipeline.ltx2.legacy_native_noise_order": false, - "pipeline.ltx2.refine.add_noise": true, - "pipeline.ltx2.refine.enabled": false, - "pipeline.ltx2.refine.guidance_scale": 1.0, - "pipeline.ltx2.refine.num_inference_steps": 3, - "pipeline.ltx2.use_distilled_sigmas": true, - "pipeline.minimax_h3.taeh3_chunk_size": 5, - "pipeline.minimax_h3.vae_parallel_decode": false, - "pipeline.minimax_h3.vae_parallel_encode": false, - "pipeline.minimax_h3.video_decode_backend": "h3-vae", "pipeline.workload_type": "t2v" } ] @@ -433,54 +427,19 @@ "upsampler_weights": null, "vae_weights": null }, - "dit": {}, "dmd_denoising_steps": null, "embedded_cfg_scale": 3.5, "experimental": {}, "flow_shift": null, - "longcat": { - "bsa_cdf_threshold": null, - "bsa_chunk_k": null, - "bsa_chunk_q": null, - "bsa_sparsity": null, - "enable_bsa": null - }, - "ltx2": { - "audio_latent_path": null, - "initial_latent_path": null, - "legacy_native_noise_order": false, - "refine": { - "add_noise": true, - "audio_noise_path": null, - "enabled": false, - "guidance_scale": 1.0, - "image_crf": null, - "lora_path": null, - "noise_path": null, - "num_inference_steps": 3, - "transformer_path": null, - "video_position_offset_sec": null - }, - "use_distilled_sigmas": true, - "vae_spatial_tile_overlap_in_pixels": null, - "vae_spatial_tile_size_in_pixels": null, - "vae_temporal_tile_overlap_in_frames": null, - "vae_temporal_tile_size_in_frames": null - }, - "minimax_h3": { - "sequential_load": null, - "taeh3_checkpoint": null, - "taeh3_chunk_size": 5, - "vae_parallel_decode": false, - "vae_parallel_decode_strategy": "gather", - "vae_parallel_encode": false, - "video_decode_backend": "h3-vae" + "model": { + "dit": {}, + "family": "generic", + "vae": {} }, "output_type": "pil", "preset": null, "preset_overrides": {}, "preset_version": null, - "vae": {}, "vae_sp": true, "vae_tiling": true, "workload_type": "t2v" diff --git a/fastvideo/tests/api/config_snapshot_goldens/registry/black-forest-labs__FLUX.2-dev.json b/fastvideo/tests/api/config_snapshot_goldens/registry/black-forest-labs__FLUX.2-dev.json index 9d40afc9a..a487db27d 100644 --- a/fastvideo/tests/api/config_snapshot_goldens/registry/black-forest-labs__FLUX.2-dev.json +++ b/fastvideo/tests/api/config_snapshot_goldens/registry/black-forest-labs__FLUX.2-dev.json @@ -206,9 +206,13 @@ "pipeline_config_class": "fastvideo.configs.pipelines.flux_2.Flux2PipelineConfig", "resolution_decisions": [ [ - "fill_vae_parallel_from_env", + "fill_model_family[generic]", { - "pipeline.minimax_h3.vae_parallel_decode_strategy": "gather" + "pipeline.model": { + "dit": {}, + "family": "generic", + "vae": {} + } } ], [ @@ -248,16 +252,6 @@ "engine.compile.regional": false, "engine.compile.text_encoder_enabled": false, "engine.compile.vae_enabled": false, - "pipeline.ltx2.legacy_native_noise_order": false, - "pipeline.ltx2.refine.add_noise": true, - "pipeline.ltx2.refine.enabled": false, - "pipeline.ltx2.refine.guidance_scale": 1.0, - "pipeline.ltx2.refine.num_inference_steps": 3, - "pipeline.ltx2.use_distilled_sigmas": true, - "pipeline.minimax_h3.taeh3_chunk_size": 5, - "pipeline.minimax_h3.vae_parallel_decode": false, - "pipeline.minimax_h3.vae_parallel_encode": false, - "pipeline.minimax_h3.video_decode_backend": "h3-vae", "pipeline.workload_type": "t2v" } ] @@ -340,54 +334,19 @@ "upsampler_weights": null, "vae_weights": null }, - "dit": {}, "dmd_denoising_steps": null, "embedded_cfg_scale": 4.0, "experimental": {}, "flow_shift": null, - "longcat": { - "bsa_cdf_threshold": null, - "bsa_chunk_k": null, - "bsa_chunk_q": null, - "bsa_sparsity": null, - "enable_bsa": null - }, - "ltx2": { - "audio_latent_path": null, - "initial_latent_path": null, - "legacy_native_noise_order": false, - "refine": { - "add_noise": true, - "audio_noise_path": null, - "enabled": false, - "guidance_scale": 1.0, - "image_crf": null, - "lora_path": null, - "noise_path": null, - "num_inference_steps": 3, - "transformer_path": null, - "video_position_offset_sec": null - }, - "use_distilled_sigmas": true, - "vae_spatial_tile_overlap_in_pixels": null, - "vae_spatial_tile_size_in_pixels": null, - "vae_temporal_tile_overlap_in_frames": null, - "vae_temporal_tile_size_in_frames": null - }, - "minimax_h3": { - "sequential_load": null, - "taeh3_checkpoint": null, - "taeh3_chunk_size": 5, - "vae_parallel_decode": false, - "vae_parallel_decode_strategy": "gather", - "vae_parallel_encode": false, - "video_decode_backend": "h3-vae" + "model": { + "dit": {}, + "family": "generic", + "vae": {} }, "output_type": "pil", "preset": null, "preset_overrides": {}, "preset_version": null, - "vae": {}, "vae_sp": false, "vae_tiling": false, "workload_type": "t2v" diff --git a/fastvideo/tests/api/config_snapshot_goldens/registry/black-forest-labs__FLUX.2-klein-4B.json b/fastvideo/tests/api/config_snapshot_goldens/registry/black-forest-labs__FLUX.2-klein-4B.json index 6a76c2faf..d3ef25975 100644 --- a/fastvideo/tests/api/config_snapshot_goldens/registry/black-forest-labs__FLUX.2-klein-4B.json +++ b/fastvideo/tests/api/config_snapshot_goldens/registry/black-forest-labs__FLUX.2-klein-4B.json @@ -244,9 +244,13 @@ "pipeline_config_class": "fastvideo.configs.pipelines.flux_2.Flux2KleinPipelineConfig", "resolution_decisions": [ [ - "fill_vae_parallel_from_env", + "fill_model_family[generic]", { - "pipeline.minimax_h3.vae_parallel_decode_strategy": "gather" + "pipeline.model": { + "dit": {}, + "family": "generic", + "vae": {} + } } ], [ @@ -285,16 +289,6 @@ "engine.compile.regional": false, "engine.compile.text_encoder_enabled": false, "engine.compile.vae_enabled": false, - "pipeline.ltx2.legacy_native_noise_order": false, - "pipeline.ltx2.refine.add_noise": true, - "pipeline.ltx2.refine.enabled": false, - "pipeline.ltx2.refine.guidance_scale": 1.0, - "pipeline.ltx2.refine.num_inference_steps": 3, - "pipeline.ltx2.use_distilled_sigmas": true, - "pipeline.minimax_h3.taeh3_chunk_size": 5, - "pipeline.minimax_h3.vae_parallel_decode": false, - "pipeline.minimax_h3.vae_parallel_encode": false, - "pipeline.minimax_h3.video_decode_backend": "h3-vae", "pipeline.workload_type": "t2v" } ] @@ -377,54 +371,19 @@ "upsampler_weights": null, "vae_weights": null }, - "dit": {}, "dmd_denoising_steps": null, "embedded_cfg_scale": null, "experimental": {}, "flow_shift": null, - "longcat": { - "bsa_cdf_threshold": null, - "bsa_chunk_k": null, - "bsa_chunk_q": null, - "bsa_sparsity": null, - "enable_bsa": null - }, - "ltx2": { - "audio_latent_path": null, - "initial_latent_path": null, - "legacy_native_noise_order": false, - "refine": { - "add_noise": true, - "audio_noise_path": null, - "enabled": false, - "guidance_scale": 1.0, - "image_crf": null, - "lora_path": null, - "noise_path": null, - "num_inference_steps": 3, - "transformer_path": null, - "video_position_offset_sec": null - }, - "use_distilled_sigmas": true, - "vae_spatial_tile_overlap_in_pixels": null, - "vae_spatial_tile_size_in_pixels": null, - "vae_temporal_tile_overlap_in_frames": null, - "vae_temporal_tile_size_in_frames": null - }, - "minimax_h3": { - "sequential_load": null, - "taeh3_checkpoint": null, - "taeh3_chunk_size": 5, - "vae_parallel_decode": false, - "vae_parallel_decode_strategy": "gather", - "vae_parallel_encode": false, - "video_decode_backend": "h3-vae" + "model": { + "dit": {}, + "family": "generic", + "vae": {} }, "output_type": "pil", "preset": null, "preset_overrides": {}, "preset_version": null, - "vae": {}, "vae_sp": false, "vae_tiling": false, "workload_type": "t2v" diff --git a/fastvideo/tests/api/config_snapshot_goldens/registry/black-forest-labs__FLUX.2-klein-9B.json b/fastvideo/tests/api/config_snapshot_goldens/registry/black-forest-labs__FLUX.2-klein-9B.json index d5cbe5678..f9d97a7cb 100644 --- a/fastvideo/tests/api/config_snapshot_goldens/registry/black-forest-labs__FLUX.2-klein-9B.json +++ b/fastvideo/tests/api/config_snapshot_goldens/registry/black-forest-labs__FLUX.2-klein-9B.json @@ -244,9 +244,13 @@ "pipeline_config_class": "fastvideo.configs.pipelines.flux_2.Flux2KleinPipelineConfig", "resolution_decisions": [ [ - "fill_vae_parallel_from_env", + "fill_model_family[generic]", { - "pipeline.minimax_h3.vae_parallel_decode_strategy": "gather" + "pipeline.model": { + "dit": {}, + "family": "generic", + "vae": {} + } } ], [ @@ -285,16 +289,6 @@ "engine.compile.regional": false, "engine.compile.text_encoder_enabled": false, "engine.compile.vae_enabled": false, - "pipeline.ltx2.legacy_native_noise_order": false, - "pipeline.ltx2.refine.add_noise": true, - "pipeline.ltx2.refine.enabled": false, - "pipeline.ltx2.refine.guidance_scale": 1.0, - "pipeline.ltx2.refine.num_inference_steps": 3, - "pipeline.ltx2.use_distilled_sigmas": true, - "pipeline.minimax_h3.taeh3_chunk_size": 5, - "pipeline.minimax_h3.vae_parallel_decode": false, - "pipeline.minimax_h3.vae_parallel_encode": false, - "pipeline.minimax_h3.video_decode_backend": "h3-vae", "pipeline.workload_type": "t2v" } ] @@ -377,54 +371,19 @@ "upsampler_weights": null, "vae_weights": null }, - "dit": {}, "dmd_denoising_steps": null, "embedded_cfg_scale": null, "experimental": {}, "flow_shift": null, - "longcat": { - "bsa_cdf_threshold": null, - "bsa_chunk_k": null, - "bsa_chunk_q": null, - "bsa_sparsity": null, - "enable_bsa": null - }, - "ltx2": { - "audio_latent_path": null, - "initial_latent_path": null, - "legacy_native_noise_order": false, - "refine": { - "add_noise": true, - "audio_noise_path": null, - "enabled": false, - "guidance_scale": 1.0, - "image_crf": null, - "lora_path": null, - "noise_path": null, - "num_inference_steps": 3, - "transformer_path": null, - "video_position_offset_sec": null - }, - "use_distilled_sigmas": true, - "vae_spatial_tile_overlap_in_pixels": null, - "vae_spatial_tile_size_in_pixels": null, - "vae_temporal_tile_overlap_in_frames": null, - "vae_temporal_tile_size_in_frames": null - }, - "minimax_h3": { - "sequential_load": null, - "taeh3_checkpoint": null, - "taeh3_chunk_size": 5, - "vae_parallel_decode": false, - "vae_parallel_decode_strategy": "gather", - "vae_parallel_encode": false, - "video_decode_backend": "h3-vae" + "model": { + "dit": {}, + "family": "generic", + "vae": {} }, "output_type": "pil", "preset": null, "preset_overrides": {}, "preset_version": null, - "vae": {}, "vae_sp": false, "vae_tiling": false, "workload_type": "t2v" diff --git a/fastvideo/tests/api/config_snapshot_goldens/registry/decart-ai__Lucy-Edit-1.1-Dev.json b/fastvideo/tests/api/config_snapshot_goldens/registry/decart-ai__Lucy-Edit-1.1-Dev.json index 3ffc26329..a563b14a8 100644 --- a/fastvideo/tests/api/config_snapshot_goldens/registry/decart-ai__Lucy-Edit-1.1-Dev.json +++ b/fastvideo/tests/api/config_snapshot_goldens/registry/decart-ai__Lucy-Edit-1.1-Dev.json @@ -341,9 +341,13 @@ "pipeline_config_class": "fastvideo.models.wan.pipeline_config.LucyEditDevConfig", "resolution_decisions": [ [ - "fill_vae_parallel_from_env", + "fill_model_family[generic]", { - "pipeline.minimax_h3.vae_parallel_decode_strategy": "gather" + "pipeline.model": { + "dit": {}, + "family": "generic", + "vae": {} + } } ], [ @@ -385,16 +389,6 @@ "engine.compile.regional": false, "engine.compile.text_encoder_enabled": false, "engine.compile.vae_enabled": false, - "pipeline.ltx2.legacy_native_noise_order": false, - "pipeline.ltx2.refine.add_noise": true, - "pipeline.ltx2.refine.enabled": false, - "pipeline.ltx2.refine.guidance_scale": 1.0, - "pipeline.ltx2.refine.num_inference_steps": 3, - "pipeline.ltx2.use_distilled_sigmas": true, - "pipeline.minimax_h3.taeh3_chunk_size": 5, - "pipeline.minimax_h3.vae_parallel_decode": false, - "pipeline.minimax_h3.vae_parallel_encode": false, - "pipeline.minimax_h3.video_decode_backend": "h3-vae", "pipeline.workload_type": "t2v" } ] @@ -477,54 +471,19 @@ "upsampler_weights": null, "vae_weights": null }, - "dit": {}, "dmd_denoising_steps": null, "embedded_cfg_scale": 6.0, "experimental": {}, "flow_shift": 5.0, - "longcat": { - "bsa_cdf_threshold": null, - "bsa_chunk_k": null, - "bsa_chunk_q": null, - "bsa_sparsity": null, - "enable_bsa": null - }, - "ltx2": { - "audio_latent_path": null, - "initial_latent_path": null, - "legacy_native_noise_order": false, - "refine": { - "add_noise": true, - "audio_noise_path": null, - "enabled": false, - "guidance_scale": 1.0, - "image_crf": null, - "lora_path": null, - "noise_path": null, - "num_inference_steps": 3, - "transformer_path": null, - "video_position_offset_sec": null - }, - "use_distilled_sigmas": true, - "vae_spatial_tile_overlap_in_pixels": null, - "vae_spatial_tile_size_in_pixels": null, - "vae_temporal_tile_overlap_in_frames": null, - "vae_temporal_tile_size_in_frames": null - }, - "minimax_h3": { - "sequential_load": null, - "taeh3_checkpoint": null, - "taeh3_chunk_size": 5, - "vae_parallel_decode": false, - "vae_parallel_decode_strategy": "gather", - "vae_parallel_encode": false, - "video_decode_backend": "h3-vae" + "model": { + "dit": {}, + "family": "generic", + "vae": {} }, "output_type": "pil", "preset": null, "preset_overrides": {}, "preset_version": null, - "vae": {}, "vae_sp": false, "vae_tiling": false, "workload_type": "t2v" diff --git a/fastvideo/tests/api/config_snapshot_goldens/registry/decart-ai__Lucy-Edit-Dev.json b/fastvideo/tests/api/config_snapshot_goldens/registry/decart-ai__Lucy-Edit-Dev.json index 6be7b3131..0c943ff91 100644 --- a/fastvideo/tests/api/config_snapshot_goldens/registry/decart-ai__Lucy-Edit-Dev.json +++ b/fastvideo/tests/api/config_snapshot_goldens/registry/decart-ai__Lucy-Edit-Dev.json @@ -341,9 +341,13 @@ "pipeline_config_class": "fastvideo.models.wan.pipeline_config.LucyEditDevConfig", "resolution_decisions": [ [ - "fill_vae_parallel_from_env", + "fill_model_family[generic]", { - "pipeline.minimax_h3.vae_parallel_decode_strategy": "gather" + "pipeline.model": { + "dit": {}, + "family": "generic", + "vae": {} + } } ], [ @@ -385,16 +389,6 @@ "engine.compile.regional": false, "engine.compile.text_encoder_enabled": false, "engine.compile.vae_enabled": false, - "pipeline.ltx2.legacy_native_noise_order": false, - "pipeline.ltx2.refine.add_noise": true, - "pipeline.ltx2.refine.enabled": false, - "pipeline.ltx2.refine.guidance_scale": 1.0, - "pipeline.ltx2.refine.num_inference_steps": 3, - "pipeline.ltx2.use_distilled_sigmas": true, - "pipeline.minimax_h3.taeh3_chunk_size": 5, - "pipeline.minimax_h3.vae_parallel_decode": false, - "pipeline.minimax_h3.vae_parallel_encode": false, - "pipeline.minimax_h3.video_decode_backend": "h3-vae", "pipeline.workload_type": "t2v" } ] @@ -477,54 +471,19 @@ "upsampler_weights": null, "vae_weights": null }, - "dit": {}, "dmd_denoising_steps": null, "embedded_cfg_scale": 6.0, "experimental": {}, "flow_shift": 5.0, - "longcat": { - "bsa_cdf_threshold": null, - "bsa_chunk_k": null, - "bsa_chunk_q": null, - "bsa_sparsity": null, - "enable_bsa": null - }, - "ltx2": { - "audio_latent_path": null, - "initial_latent_path": null, - "legacy_native_noise_order": false, - "refine": { - "add_noise": true, - "audio_noise_path": null, - "enabled": false, - "guidance_scale": 1.0, - "image_crf": null, - "lora_path": null, - "noise_path": null, - "num_inference_steps": 3, - "transformer_path": null, - "video_position_offset_sec": null - }, - "use_distilled_sigmas": true, - "vae_spatial_tile_overlap_in_pixels": null, - "vae_spatial_tile_size_in_pixels": null, - "vae_temporal_tile_overlap_in_frames": null, - "vae_temporal_tile_size_in_frames": null - }, - "minimax_h3": { - "sequential_load": null, - "taeh3_checkpoint": null, - "taeh3_chunk_size": 5, - "vae_parallel_decode": false, - "vae_parallel_decode_strategy": "gather", - "vae_parallel_encode": false, - "video_decode_backend": "h3-vae" + "model": { + "dit": {}, + "family": "generic", + "vae": {} }, "output_type": "pil", "preset": null, "preset_overrides": {}, "preset_version": null, - "vae": {}, "vae_sp": false, "vae_tiling": false, "workload_type": "t2v" diff --git a/fastvideo/tests/api/config_snapshot_goldens/registry/hunyuanvideo-community__HunyuanVideo-1.5-Diffusers-480p_i2v_step_distilled.json b/fastvideo/tests/api/config_snapshot_goldens/registry/hunyuanvideo-community__HunyuanVideo-1.5-Diffusers-480p_i2v_step_distilled.json index c56c41ffd..afa0b9829 100644 --- a/fastvideo/tests/api/config_snapshot_goldens/registry/hunyuanvideo-community__HunyuanVideo-1.5-Diffusers-480p_i2v_step_distilled.json +++ b/fastvideo/tests/api/config_snapshot_goldens/registry/hunyuanvideo-community__HunyuanVideo-1.5-Diffusers-480p_i2v_step_distilled.json @@ -313,9 +313,13 @@ "pipeline_config_class": "fastvideo.configs.pipelines.hunyuan15.Hunyuan15I2V480PStepDistilledConfig", "resolution_decisions": [ [ - "fill_vae_parallel_from_env", + "fill_model_family[generic]", { - "pipeline.minimax_h3.vae_parallel_decode_strategy": "gather" + "pipeline.model": { + "dit": {}, + "family": "generic", + "vae": {} + } } ], [ @@ -357,16 +361,6 @@ "engine.compile.regional": false, "engine.compile.text_encoder_enabled": false, "engine.compile.vae_enabled": false, - "pipeline.ltx2.legacy_native_noise_order": false, - "pipeline.ltx2.refine.add_noise": true, - "pipeline.ltx2.refine.enabled": false, - "pipeline.ltx2.refine.guidance_scale": 1.0, - "pipeline.ltx2.refine.num_inference_steps": 3, - "pipeline.ltx2.use_distilled_sigmas": true, - "pipeline.minimax_h3.taeh3_chunk_size": 5, - "pipeline.minimax_h3.vae_parallel_decode": false, - "pipeline.minimax_h3.vae_parallel_encode": false, - "pipeline.minimax_h3.video_decode_backend": "h3-vae", "pipeline.workload_type": "t2v" } ] @@ -450,54 +444,19 @@ "upsampler_weights": null, "vae_weights": null }, - "dit": {}, "dmd_denoising_steps": null, "embedded_cfg_scale": 6.0, "experimental": {}, "flow_shift": 7, - "longcat": { - "bsa_cdf_threshold": null, - "bsa_chunk_k": null, - "bsa_chunk_q": null, - "bsa_sparsity": null, - "enable_bsa": null - }, - "ltx2": { - "audio_latent_path": null, - "initial_latent_path": null, - "legacy_native_noise_order": false, - "refine": { - "add_noise": true, - "audio_noise_path": null, - "enabled": false, - "guidance_scale": 1.0, - "image_crf": null, - "lora_path": null, - "noise_path": null, - "num_inference_steps": 3, - "transformer_path": null, - "video_position_offset_sec": null - }, - "use_distilled_sigmas": true, - "vae_spatial_tile_overlap_in_pixels": null, - "vae_spatial_tile_size_in_pixels": null, - "vae_temporal_tile_overlap_in_frames": null, - "vae_temporal_tile_size_in_frames": null - }, - "minimax_h3": { - "sequential_load": null, - "taeh3_checkpoint": null, - "taeh3_chunk_size": 5, - "vae_parallel_decode": false, - "vae_parallel_decode_strategy": "gather", - "vae_parallel_encode": false, - "video_decode_backend": "h3-vae" + "model": { + "dit": {}, + "family": "generic", + "vae": {} }, "output_type": "pil", "preset": null, "preset_overrides": {}, "preset_version": null, - "vae": {}, "vae_sp": true, "vae_tiling": true, "workload_type": "t2v" diff --git a/fastvideo/tests/api/config_snapshot_goldens/registry/hunyuanvideo-community__HunyuanVideo-1.5-Diffusers-480p_t2v.json b/fastvideo/tests/api/config_snapshot_goldens/registry/hunyuanvideo-community__HunyuanVideo-1.5-Diffusers-480p_t2v.json index bbbd67877..2268a09d4 100644 --- a/fastvideo/tests/api/config_snapshot_goldens/registry/hunyuanvideo-community__HunyuanVideo-1.5-Diffusers-480p_t2v.json +++ b/fastvideo/tests/api/config_snapshot_goldens/registry/hunyuanvideo-community__HunyuanVideo-1.5-Diffusers-480p_t2v.json @@ -313,9 +313,13 @@ "pipeline_config_class": "fastvideo.configs.pipelines.hunyuan15.Hunyuan15T2V480PConfig", "resolution_decisions": [ [ - "fill_vae_parallel_from_env", + "fill_model_family[generic]", { - "pipeline.minimax_h3.vae_parallel_decode_strategy": "gather" + "pipeline.model": { + "dit": {}, + "family": "generic", + "vae": {} + } } ], [ @@ -357,16 +361,6 @@ "engine.compile.regional": false, "engine.compile.text_encoder_enabled": false, "engine.compile.vae_enabled": false, - "pipeline.ltx2.legacy_native_noise_order": false, - "pipeline.ltx2.refine.add_noise": true, - "pipeline.ltx2.refine.enabled": false, - "pipeline.ltx2.refine.guidance_scale": 1.0, - "pipeline.ltx2.refine.num_inference_steps": 3, - "pipeline.ltx2.use_distilled_sigmas": true, - "pipeline.minimax_h3.taeh3_chunk_size": 5, - "pipeline.minimax_h3.vae_parallel_decode": false, - "pipeline.minimax_h3.vae_parallel_encode": false, - "pipeline.minimax_h3.video_decode_backend": "h3-vae", "pipeline.workload_type": "t2v" } ] @@ -450,54 +444,19 @@ "upsampler_weights": null, "vae_weights": null }, - "dit": {}, "dmd_denoising_steps": null, "embedded_cfg_scale": 6.0, "experimental": {}, "flow_shift": 5, - "longcat": { - "bsa_cdf_threshold": null, - "bsa_chunk_k": null, - "bsa_chunk_q": null, - "bsa_sparsity": null, - "enable_bsa": null - }, - "ltx2": { - "audio_latent_path": null, - "initial_latent_path": null, - "legacy_native_noise_order": false, - "refine": { - "add_noise": true, - "audio_noise_path": null, - "enabled": false, - "guidance_scale": 1.0, - "image_crf": null, - "lora_path": null, - "noise_path": null, - "num_inference_steps": 3, - "transformer_path": null, - "video_position_offset_sec": null - }, - "use_distilled_sigmas": true, - "vae_spatial_tile_overlap_in_pixels": null, - "vae_spatial_tile_size_in_pixels": null, - "vae_temporal_tile_overlap_in_frames": null, - "vae_temporal_tile_size_in_frames": null - }, - "minimax_h3": { - "sequential_load": null, - "taeh3_checkpoint": null, - "taeh3_chunk_size": 5, - "vae_parallel_decode": false, - "vae_parallel_decode_strategy": "gather", - "vae_parallel_encode": false, - "video_decode_backend": "h3-vae" + "model": { + "dit": {}, + "family": "generic", + "vae": {} }, "output_type": "pil", "preset": null, "preset_overrides": {}, "preset_version": null, - "vae": {}, "vae_sp": true, "vae_tiling": true, "workload_type": "t2v" diff --git a/fastvideo/tests/api/config_snapshot_goldens/registry/hunyuanvideo-community__HunyuanVideo-1.5-Diffusers-720p_i2v_distilled.json b/fastvideo/tests/api/config_snapshot_goldens/registry/hunyuanvideo-community__HunyuanVideo-1.5-Diffusers-720p_i2v_distilled.json index aa1421801..37c9288d3 100644 --- a/fastvideo/tests/api/config_snapshot_goldens/registry/hunyuanvideo-community__HunyuanVideo-1.5-Diffusers-720p_i2v_distilled.json +++ b/fastvideo/tests/api/config_snapshot_goldens/registry/hunyuanvideo-community__HunyuanVideo-1.5-Diffusers-720p_i2v_distilled.json @@ -313,9 +313,13 @@ "pipeline_config_class": "fastvideo.configs.pipelines.hunyuan15.Hunyuan15I2V720PConfig", "resolution_decisions": [ [ - "fill_vae_parallel_from_env", + "fill_model_family[generic]", { - "pipeline.minimax_h3.vae_parallel_decode_strategy": "gather" + "pipeline.model": { + "dit": {}, + "family": "generic", + "vae": {} + } } ], [ @@ -357,16 +361,6 @@ "engine.compile.regional": false, "engine.compile.text_encoder_enabled": false, "engine.compile.vae_enabled": false, - "pipeline.ltx2.legacy_native_noise_order": false, - "pipeline.ltx2.refine.add_noise": true, - "pipeline.ltx2.refine.enabled": false, - "pipeline.ltx2.refine.guidance_scale": 1.0, - "pipeline.ltx2.refine.num_inference_steps": 3, - "pipeline.ltx2.use_distilled_sigmas": true, - "pipeline.minimax_h3.taeh3_chunk_size": 5, - "pipeline.minimax_h3.vae_parallel_decode": false, - "pipeline.minimax_h3.vae_parallel_encode": false, - "pipeline.minimax_h3.video_decode_backend": "h3-vae", "pipeline.workload_type": "t2v" } ] @@ -450,54 +444,19 @@ "upsampler_weights": null, "vae_weights": null }, - "dit": {}, "dmd_denoising_steps": null, "embedded_cfg_scale": 6.0, "experimental": {}, "flow_shift": 7, - "longcat": { - "bsa_cdf_threshold": null, - "bsa_chunk_k": null, - "bsa_chunk_q": null, - "bsa_sparsity": null, - "enable_bsa": null - }, - "ltx2": { - "audio_latent_path": null, - "initial_latent_path": null, - "legacy_native_noise_order": false, - "refine": { - "add_noise": true, - "audio_noise_path": null, - "enabled": false, - "guidance_scale": 1.0, - "image_crf": null, - "lora_path": null, - "noise_path": null, - "num_inference_steps": 3, - "transformer_path": null, - "video_position_offset_sec": null - }, - "use_distilled_sigmas": true, - "vae_spatial_tile_overlap_in_pixels": null, - "vae_spatial_tile_size_in_pixels": null, - "vae_temporal_tile_overlap_in_frames": null, - "vae_temporal_tile_size_in_frames": null - }, - "minimax_h3": { - "sequential_load": null, - "taeh3_checkpoint": null, - "taeh3_chunk_size": 5, - "vae_parallel_decode": false, - "vae_parallel_decode_strategy": "gather", - "vae_parallel_encode": false, - "video_decode_backend": "h3-vae" + "model": { + "dit": {}, + "family": "generic", + "vae": {} }, "output_type": "pil", "preset": null, "preset_overrides": {}, "preset_version": null, - "vae": {}, "vae_sp": true, "vae_tiling": true, "workload_type": "t2v" diff --git a/fastvideo/tests/api/config_snapshot_goldens/registry/hunyuanvideo-community__HunyuanVideo-1.5-Diffusers-720p_t2v.json b/fastvideo/tests/api/config_snapshot_goldens/registry/hunyuanvideo-community__HunyuanVideo-1.5-Diffusers-720p_t2v.json index 319f4e025..05c1651dc 100644 --- a/fastvideo/tests/api/config_snapshot_goldens/registry/hunyuanvideo-community__HunyuanVideo-1.5-Diffusers-720p_t2v.json +++ b/fastvideo/tests/api/config_snapshot_goldens/registry/hunyuanvideo-community__HunyuanVideo-1.5-Diffusers-720p_t2v.json @@ -313,9 +313,13 @@ "pipeline_config_class": "fastvideo.configs.pipelines.hunyuan15.Hunyuan15T2V720PConfig", "resolution_decisions": [ [ - "fill_vae_parallel_from_env", + "fill_model_family[generic]", { - "pipeline.minimax_h3.vae_parallel_decode_strategy": "gather" + "pipeline.model": { + "dit": {}, + "family": "generic", + "vae": {} + } } ], [ @@ -357,16 +361,6 @@ "engine.compile.regional": false, "engine.compile.text_encoder_enabled": false, "engine.compile.vae_enabled": false, - "pipeline.ltx2.legacy_native_noise_order": false, - "pipeline.ltx2.refine.add_noise": true, - "pipeline.ltx2.refine.enabled": false, - "pipeline.ltx2.refine.guidance_scale": 1.0, - "pipeline.ltx2.refine.num_inference_steps": 3, - "pipeline.ltx2.use_distilled_sigmas": true, - "pipeline.minimax_h3.taeh3_chunk_size": 5, - "pipeline.minimax_h3.vae_parallel_decode": false, - "pipeline.minimax_h3.vae_parallel_encode": false, - "pipeline.minimax_h3.video_decode_backend": "h3-vae", "pipeline.workload_type": "t2v" } ] @@ -450,54 +444,19 @@ "upsampler_weights": null, "vae_weights": null }, - "dit": {}, "dmd_denoising_steps": null, "embedded_cfg_scale": 6.0, "experimental": {}, "flow_shift": 9, - "longcat": { - "bsa_cdf_threshold": null, - "bsa_chunk_k": null, - "bsa_chunk_q": null, - "bsa_sparsity": null, - "enable_bsa": null - }, - "ltx2": { - "audio_latent_path": null, - "initial_latent_path": null, - "legacy_native_noise_order": false, - "refine": { - "add_noise": true, - "audio_noise_path": null, - "enabled": false, - "guidance_scale": 1.0, - "image_crf": null, - "lora_path": null, - "noise_path": null, - "num_inference_steps": 3, - "transformer_path": null, - "video_position_offset_sec": null - }, - "use_distilled_sigmas": true, - "vae_spatial_tile_overlap_in_pixels": null, - "vae_spatial_tile_size_in_pixels": null, - "vae_temporal_tile_overlap_in_frames": null, - "vae_temporal_tile_size_in_frames": null - }, - "minimax_h3": { - "sequential_load": null, - "taeh3_checkpoint": null, - "taeh3_chunk_size": 5, - "vae_parallel_decode": false, - "vae_parallel_decode_strategy": "gather", - "vae_parallel_encode": false, - "video_decode_backend": "h3-vae" + "model": { + "dit": {}, + "family": "generic", + "vae": {} }, "output_type": "pil", "preset": null, "preset_overrides": {}, "preset_version": null, - "vae": {}, "vae_sp": true, "vae_tiling": true, "workload_type": "t2v" diff --git a/fastvideo/tests/api/config_snapshot_goldens/registry/hunyuanvideo-community__HunyuanVideo.json b/fastvideo/tests/api/config_snapshot_goldens/registry/hunyuanvideo-community__HunyuanVideo.json index b89f5dc24..d1809be08 100644 --- a/fastvideo/tests/api/config_snapshot_goldens/registry/hunyuanvideo-community__HunyuanVideo.json +++ b/fastvideo/tests/api/config_snapshot_goldens/registry/hunyuanvideo-community__HunyuanVideo.json @@ -304,9 +304,13 @@ "pipeline_config_class": "fastvideo.configs.pipelines.hunyuan.HunyuanConfig", "resolution_decisions": [ [ - "fill_vae_parallel_from_env", + "fill_model_family[generic]", { - "pipeline.minimax_h3.vae_parallel_decode_strategy": "gather" + "pipeline.model": { + "dit": {}, + "family": "generic", + "vae": {} + } } ], [ @@ -348,16 +352,6 @@ "engine.compile.regional": false, "engine.compile.text_encoder_enabled": false, "engine.compile.vae_enabled": false, - "pipeline.ltx2.legacy_native_noise_order": false, - "pipeline.ltx2.refine.add_noise": true, - "pipeline.ltx2.refine.enabled": false, - "pipeline.ltx2.refine.guidance_scale": 1.0, - "pipeline.ltx2.refine.num_inference_steps": 3, - "pipeline.ltx2.use_distilled_sigmas": true, - "pipeline.minimax_h3.taeh3_chunk_size": 5, - "pipeline.minimax_h3.vae_parallel_decode": false, - "pipeline.minimax_h3.vae_parallel_encode": false, - "pipeline.minimax_h3.video_decode_backend": "h3-vae", "pipeline.workload_type": "t2v" } ] @@ -441,54 +435,19 @@ "upsampler_weights": null, "vae_weights": null }, - "dit": {}, "dmd_denoising_steps": null, "embedded_cfg_scale": 6, "experimental": {}, "flow_shift": 7, - "longcat": { - "bsa_cdf_threshold": null, - "bsa_chunk_k": null, - "bsa_chunk_q": null, - "bsa_sparsity": null, - "enable_bsa": null - }, - "ltx2": { - "audio_latent_path": null, - "initial_latent_path": null, - "legacy_native_noise_order": false, - "refine": { - "add_noise": true, - "audio_noise_path": null, - "enabled": false, - "guidance_scale": 1.0, - "image_crf": null, - "lora_path": null, - "noise_path": null, - "num_inference_steps": 3, - "transformer_path": null, - "video_position_offset_sec": null - }, - "use_distilled_sigmas": true, - "vae_spatial_tile_overlap_in_pixels": null, - "vae_spatial_tile_size_in_pixels": null, - "vae_temporal_tile_overlap_in_frames": null, - "vae_temporal_tile_size_in_frames": null - }, - "minimax_h3": { - "sequential_load": null, - "taeh3_checkpoint": null, - "taeh3_chunk_size": 5, - "vae_parallel_decode": false, - "vae_parallel_decode_strategy": "gather", - "vae_parallel_encode": false, - "video_decode_backend": "h3-vae" + "model": { + "dit": {}, + "family": "generic", + "vae": {} }, "output_type": "pil", "preset": null, "preset_overrides": {}, "preset_version": null, - "vae": {}, "vae_sp": true, "vae_tiling": true, "workload_type": "t2v" diff --git a/fastvideo/tests/api/config_snapshot_goldens/registry/kandinskylab__Kandinsky-5.0-I2V-Lite-5s-Diffusers.json b/fastvideo/tests/api/config_snapshot_goldens/registry/kandinskylab__Kandinsky-5.0-I2V-Lite-5s-Diffusers.json index 7fb27721f..137505588 100644 --- a/fastvideo/tests/api/config_snapshot_goldens/registry/kandinskylab__Kandinsky-5.0-I2V-Lite-5s-Diffusers.json +++ b/fastvideo/tests/api/config_snapshot_goldens/registry/kandinskylab__Kandinsky-5.0-I2V-Lite-5s-Diffusers.json @@ -309,9 +309,13 @@ "pipeline_config_class": "fastvideo.configs.pipelines.kandinsky5.Kandinsky5I2VConfig", "resolution_decisions": [ [ - "fill_vae_parallel_from_env", + "fill_model_family[generic]", { - "pipeline.minimax_h3.vae_parallel_decode_strategy": "gather" + "pipeline.model": { + "dit": {}, + "family": "generic", + "vae": {} + } } ], [ @@ -353,16 +357,6 @@ "engine.compile.regional": false, "engine.compile.text_encoder_enabled": false, "engine.compile.vae_enabled": false, - "pipeline.ltx2.legacy_native_noise_order": false, - "pipeline.ltx2.refine.add_noise": true, - "pipeline.ltx2.refine.enabled": false, - "pipeline.ltx2.refine.guidance_scale": 1.0, - "pipeline.ltx2.refine.num_inference_steps": 3, - "pipeline.ltx2.use_distilled_sigmas": true, - "pipeline.minimax_h3.taeh3_chunk_size": 5, - "pipeline.minimax_h3.vae_parallel_decode": false, - "pipeline.minimax_h3.vae_parallel_encode": false, - "pipeline.minimax_h3.video_decode_backend": "h3-vae", "pipeline.workload_type": "t2v" } ] @@ -446,54 +440,19 @@ "upsampler_weights": null, "vae_weights": null }, - "dit": {}, "dmd_denoising_steps": null, "embedded_cfg_scale": 6.0, "experimental": {}, "flow_shift": 5.0, - "longcat": { - "bsa_cdf_threshold": null, - "bsa_chunk_k": null, - "bsa_chunk_q": null, - "bsa_sparsity": null, - "enable_bsa": null - }, - "ltx2": { - "audio_latent_path": null, - "initial_latent_path": null, - "legacy_native_noise_order": false, - "refine": { - "add_noise": true, - "audio_noise_path": null, - "enabled": false, - "guidance_scale": 1.0, - "image_crf": null, - "lora_path": null, - "noise_path": null, - "num_inference_steps": 3, - "transformer_path": null, - "video_position_offset_sec": null - }, - "use_distilled_sigmas": true, - "vae_spatial_tile_overlap_in_pixels": null, - "vae_spatial_tile_size_in_pixels": null, - "vae_temporal_tile_overlap_in_frames": null, - "vae_temporal_tile_size_in_frames": null - }, - "minimax_h3": { - "sequential_load": null, - "taeh3_checkpoint": null, - "taeh3_chunk_size": 5, - "vae_parallel_decode": false, - "vae_parallel_decode_strategy": "gather", - "vae_parallel_encode": false, - "video_decode_backend": "h3-vae" + "model": { + "dit": {}, + "family": "generic", + "vae": {} }, "output_type": "pil", "preset": null, "preset_overrides": {}, "preset_version": null, - "vae": {}, "vae_sp": true, "vae_tiling": true, "workload_type": "t2v" diff --git a/fastvideo/tests/api/config_snapshot_goldens/registry/kandinskylab__Kandinsky-5.0-I2V-Pro-distilled-5s-Diffusers.json b/fastvideo/tests/api/config_snapshot_goldens/registry/kandinskylab__Kandinsky-5.0-I2V-Pro-distilled-5s-Diffusers.json index 69d5ae039..d68bb77be 100644 --- a/fastvideo/tests/api/config_snapshot_goldens/registry/kandinskylab__Kandinsky-5.0-I2V-Pro-distilled-5s-Diffusers.json +++ b/fastvideo/tests/api/config_snapshot_goldens/registry/kandinskylab__Kandinsky-5.0-I2V-Pro-distilled-5s-Diffusers.json @@ -309,9 +309,13 @@ "pipeline_config_class": "fastvideo.configs.pipelines.kandinsky5.Kandinsky5I2VConfig", "resolution_decisions": [ [ - "fill_vae_parallel_from_env", + "fill_model_family[generic]", { - "pipeline.minimax_h3.vae_parallel_decode_strategy": "gather" + "pipeline.model": { + "dit": {}, + "family": "generic", + "vae": {} + } } ], [ @@ -353,16 +357,6 @@ "engine.compile.regional": false, "engine.compile.text_encoder_enabled": false, "engine.compile.vae_enabled": false, - "pipeline.ltx2.legacy_native_noise_order": false, - "pipeline.ltx2.refine.add_noise": true, - "pipeline.ltx2.refine.enabled": false, - "pipeline.ltx2.refine.guidance_scale": 1.0, - "pipeline.ltx2.refine.num_inference_steps": 3, - "pipeline.ltx2.use_distilled_sigmas": true, - "pipeline.minimax_h3.taeh3_chunk_size": 5, - "pipeline.minimax_h3.vae_parallel_decode": false, - "pipeline.minimax_h3.vae_parallel_encode": false, - "pipeline.minimax_h3.video_decode_backend": "h3-vae", "pipeline.workload_type": "t2v" } ] @@ -446,54 +440,19 @@ "upsampler_weights": null, "vae_weights": null }, - "dit": {}, "dmd_denoising_steps": null, "embedded_cfg_scale": 6.0, "experimental": {}, "flow_shift": 5.0, - "longcat": { - "bsa_cdf_threshold": null, - "bsa_chunk_k": null, - "bsa_chunk_q": null, - "bsa_sparsity": null, - "enable_bsa": null - }, - "ltx2": { - "audio_latent_path": null, - "initial_latent_path": null, - "legacy_native_noise_order": false, - "refine": { - "add_noise": true, - "audio_noise_path": null, - "enabled": false, - "guidance_scale": 1.0, - "image_crf": null, - "lora_path": null, - "noise_path": null, - "num_inference_steps": 3, - "transformer_path": null, - "video_position_offset_sec": null - }, - "use_distilled_sigmas": true, - "vae_spatial_tile_overlap_in_pixels": null, - "vae_spatial_tile_size_in_pixels": null, - "vae_temporal_tile_overlap_in_frames": null, - "vae_temporal_tile_size_in_frames": null - }, - "minimax_h3": { - "sequential_load": null, - "taeh3_checkpoint": null, - "taeh3_chunk_size": 5, - "vae_parallel_decode": false, - "vae_parallel_decode_strategy": "gather", - "vae_parallel_encode": false, - "video_decode_backend": "h3-vae" + "model": { + "dit": {}, + "family": "generic", + "vae": {} }, "output_type": "pil", "preset": null, "preset_overrides": {}, "preset_version": null, - "vae": {}, "vae_sp": true, "vae_tiling": true, "workload_type": "t2v" diff --git a/fastvideo/tests/api/config_snapshot_goldens/registry/kandinskylab__Kandinsky-5.0-I2V-Pro-sft-5s-Diffusers.json b/fastvideo/tests/api/config_snapshot_goldens/registry/kandinskylab__Kandinsky-5.0-I2V-Pro-sft-5s-Diffusers.json index 1ff540278..190e4ff65 100644 --- a/fastvideo/tests/api/config_snapshot_goldens/registry/kandinskylab__Kandinsky-5.0-I2V-Pro-sft-5s-Diffusers.json +++ b/fastvideo/tests/api/config_snapshot_goldens/registry/kandinskylab__Kandinsky-5.0-I2V-Pro-sft-5s-Diffusers.json @@ -309,9 +309,13 @@ "pipeline_config_class": "fastvideo.configs.pipelines.kandinsky5.Kandinsky5I2VConfig", "resolution_decisions": [ [ - "fill_vae_parallel_from_env", + "fill_model_family[generic]", { - "pipeline.minimax_h3.vae_parallel_decode_strategy": "gather" + "pipeline.model": { + "dit": {}, + "family": "generic", + "vae": {} + } } ], [ @@ -353,16 +357,6 @@ "engine.compile.regional": false, "engine.compile.text_encoder_enabled": false, "engine.compile.vae_enabled": false, - "pipeline.ltx2.legacy_native_noise_order": false, - "pipeline.ltx2.refine.add_noise": true, - "pipeline.ltx2.refine.enabled": false, - "pipeline.ltx2.refine.guidance_scale": 1.0, - "pipeline.ltx2.refine.num_inference_steps": 3, - "pipeline.ltx2.use_distilled_sigmas": true, - "pipeline.minimax_h3.taeh3_chunk_size": 5, - "pipeline.minimax_h3.vae_parallel_decode": false, - "pipeline.minimax_h3.vae_parallel_encode": false, - "pipeline.minimax_h3.video_decode_backend": "h3-vae", "pipeline.workload_type": "t2v" } ] @@ -446,54 +440,19 @@ "upsampler_weights": null, "vae_weights": null }, - "dit": {}, "dmd_denoising_steps": null, "embedded_cfg_scale": 6.0, "experimental": {}, "flow_shift": 5.0, - "longcat": { - "bsa_cdf_threshold": null, - "bsa_chunk_k": null, - "bsa_chunk_q": null, - "bsa_sparsity": null, - "enable_bsa": null - }, - "ltx2": { - "audio_latent_path": null, - "initial_latent_path": null, - "legacy_native_noise_order": false, - "refine": { - "add_noise": true, - "audio_noise_path": null, - "enabled": false, - "guidance_scale": 1.0, - "image_crf": null, - "lora_path": null, - "noise_path": null, - "num_inference_steps": 3, - "transformer_path": null, - "video_position_offset_sec": null - }, - "use_distilled_sigmas": true, - "vae_spatial_tile_overlap_in_pixels": null, - "vae_spatial_tile_size_in_pixels": null, - "vae_temporal_tile_overlap_in_frames": null, - "vae_temporal_tile_size_in_frames": null - }, - "minimax_h3": { - "sequential_load": null, - "taeh3_checkpoint": null, - "taeh3_chunk_size": 5, - "vae_parallel_decode": false, - "vae_parallel_decode_strategy": "gather", - "vae_parallel_encode": false, - "video_decode_backend": "h3-vae" + "model": { + "dit": {}, + "family": "generic", + "vae": {} }, "output_type": "pil", "preset": null, "preset_overrides": {}, "preset_version": null, - "vae": {}, "vae_sp": true, "vae_tiling": true, "workload_type": "t2v" diff --git a/fastvideo/tests/api/config_snapshot_goldens/registry/kandinskylab__Kandinsky-5.0-T2V-Lite-distilled16steps-5s-Diffusers.json b/fastvideo/tests/api/config_snapshot_goldens/registry/kandinskylab__Kandinsky-5.0-T2V-Lite-distilled16steps-5s-Diffusers.json index 94c7c87c9..c73352429 100644 --- a/fastvideo/tests/api/config_snapshot_goldens/registry/kandinskylab__Kandinsky-5.0-T2V-Lite-distilled16steps-5s-Diffusers.json +++ b/fastvideo/tests/api/config_snapshot_goldens/registry/kandinskylab__Kandinsky-5.0-T2V-Lite-distilled16steps-5s-Diffusers.json @@ -309,9 +309,13 @@ "pipeline_config_class": "fastvideo.configs.pipelines.kandinsky5.Kandinsky5T2VConfig", "resolution_decisions": [ [ - "fill_vae_parallel_from_env", + "fill_model_family[generic]", { - "pipeline.minimax_h3.vae_parallel_decode_strategy": "gather" + "pipeline.model": { + "dit": {}, + "family": "generic", + "vae": {} + } } ], [ @@ -353,16 +357,6 @@ "engine.compile.regional": false, "engine.compile.text_encoder_enabled": false, "engine.compile.vae_enabled": false, - "pipeline.ltx2.legacy_native_noise_order": false, - "pipeline.ltx2.refine.add_noise": true, - "pipeline.ltx2.refine.enabled": false, - "pipeline.ltx2.refine.guidance_scale": 1.0, - "pipeline.ltx2.refine.num_inference_steps": 3, - "pipeline.ltx2.use_distilled_sigmas": true, - "pipeline.minimax_h3.taeh3_chunk_size": 5, - "pipeline.minimax_h3.vae_parallel_decode": false, - "pipeline.minimax_h3.vae_parallel_encode": false, - "pipeline.minimax_h3.video_decode_backend": "h3-vae", "pipeline.workload_type": "t2v" } ] @@ -446,54 +440,19 @@ "upsampler_weights": null, "vae_weights": null }, - "dit": {}, "dmd_denoising_steps": null, "embedded_cfg_scale": 6.0, "experimental": {}, "flow_shift": 5.0, - "longcat": { - "bsa_cdf_threshold": null, - "bsa_chunk_k": null, - "bsa_chunk_q": null, - "bsa_sparsity": null, - "enable_bsa": null - }, - "ltx2": { - "audio_latent_path": null, - "initial_latent_path": null, - "legacy_native_noise_order": false, - "refine": { - "add_noise": true, - "audio_noise_path": null, - "enabled": false, - "guidance_scale": 1.0, - "image_crf": null, - "lora_path": null, - "noise_path": null, - "num_inference_steps": 3, - "transformer_path": null, - "video_position_offset_sec": null - }, - "use_distilled_sigmas": true, - "vae_spatial_tile_overlap_in_pixels": null, - "vae_spatial_tile_size_in_pixels": null, - "vae_temporal_tile_overlap_in_frames": null, - "vae_temporal_tile_size_in_frames": null - }, - "minimax_h3": { - "sequential_load": null, - "taeh3_checkpoint": null, - "taeh3_chunk_size": 5, - "vae_parallel_decode": false, - "vae_parallel_decode_strategy": "gather", - "vae_parallel_encode": false, - "video_decode_backend": "h3-vae" + "model": { + "dit": {}, + "family": "generic", + "vae": {} }, "output_type": "pil", "preset": null, "preset_overrides": {}, "preset_version": null, - "vae": {}, "vae_sp": true, "vae_tiling": true, "workload_type": "t2v" diff --git a/fastvideo/tests/api/config_snapshot_goldens/registry/kandinskylab__Kandinsky-5.0-T2V-Lite-sft-5s-Diffusers.json b/fastvideo/tests/api/config_snapshot_goldens/registry/kandinskylab__Kandinsky-5.0-T2V-Lite-sft-5s-Diffusers.json index 22ad48950..23c6dcf43 100644 --- a/fastvideo/tests/api/config_snapshot_goldens/registry/kandinskylab__Kandinsky-5.0-T2V-Lite-sft-5s-Diffusers.json +++ b/fastvideo/tests/api/config_snapshot_goldens/registry/kandinskylab__Kandinsky-5.0-T2V-Lite-sft-5s-Diffusers.json @@ -309,9 +309,13 @@ "pipeline_config_class": "fastvideo.configs.pipelines.kandinsky5.Kandinsky5T2VConfig", "resolution_decisions": [ [ - "fill_vae_parallel_from_env", + "fill_model_family[generic]", { - "pipeline.minimax_h3.vae_parallel_decode_strategy": "gather" + "pipeline.model": { + "dit": {}, + "family": "generic", + "vae": {} + } } ], [ @@ -353,16 +357,6 @@ "engine.compile.regional": false, "engine.compile.text_encoder_enabled": false, "engine.compile.vae_enabled": false, - "pipeline.ltx2.legacy_native_noise_order": false, - "pipeline.ltx2.refine.add_noise": true, - "pipeline.ltx2.refine.enabled": false, - "pipeline.ltx2.refine.guidance_scale": 1.0, - "pipeline.ltx2.refine.num_inference_steps": 3, - "pipeline.ltx2.use_distilled_sigmas": true, - "pipeline.minimax_h3.taeh3_chunk_size": 5, - "pipeline.minimax_h3.vae_parallel_decode": false, - "pipeline.minimax_h3.vae_parallel_encode": false, - "pipeline.minimax_h3.video_decode_backend": "h3-vae", "pipeline.workload_type": "t2v" } ] @@ -446,54 +440,19 @@ "upsampler_weights": null, "vae_weights": null }, - "dit": {}, "dmd_denoising_steps": null, "embedded_cfg_scale": 6.0, "experimental": {}, "flow_shift": 5.0, - "longcat": { - "bsa_cdf_threshold": null, - "bsa_chunk_k": null, - "bsa_chunk_q": null, - "bsa_sparsity": null, - "enable_bsa": null - }, - "ltx2": { - "audio_latent_path": null, - "initial_latent_path": null, - "legacy_native_noise_order": false, - "refine": { - "add_noise": true, - "audio_noise_path": null, - "enabled": false, - "guidance_scale": 1.0, - "image_crf": null, - "lora_path": null, - "noise_path": null, - "num_inference_steps": 3, - "transformer_path": null, - "video_position_offset_sec": null - }, - "use_distilled_sigmas": true, - "vae_spatial_tile_overlap_in_pixels": null, - "vae_spatial_tile_size_in_pixels": null, - "vae_temporal_tile_overlap_in_frames": null, - "vae_temporal_tile_size_in_frames": null - }, - "minimax_h3": { - "sequential_load": null, - "taeh3_checkpoint": null, - "taeh3_chunk_size": 5, - "vae_parallel_decode": false, - "vae_parallel_decode_strategy": "gather", - "vae_parallel_encode": false, - "video_decode_backend": "h3-vae" + "model": { + "dit": {}, + "family": "generic", + "vae": {} }, "output_type": "pil", "preset": null, "preset_overrides": {}, "preset_version": null, - "vae": {}, "vae_sp": true, "vae_tiling": true, "workload_type": "t2v" diff --git a/fastvideo/tests/api/config_snapshot_goldens/registry/kandinskylab__Kandinsky-5.0-T2V-Pro-distilled-5s-Diffusers.json b/fastvideo/tests/api/config_snapshot_goldens/registry/kandinskylab__Kandinsky-5.0-T2V-Pro-distilled-5s-Diffusers.json index de085a957..909508bba 100644 --- a/fastvideo/tests/api/config_snapshot_goldens/registry/kandinskylab__Kandinsky-5.0-T2V-Pro-distilled-5s-Diffusers.json +++ b/fastvideo/tests/api/config_snapshot_goldens/registry/kandinskylab__Kandinsky-5.0-T2V-Pro-distilled-5s-Diffusers.json @@ -309,9 +309,13 @@ "pipeline_config_class": "fastvideo.configs.pipelines.kandinsky5.Kandinsky5T2VConfig", "resolution_decisions": [ [ - "fill_vae_parallel_from_env", + "fill_model_family[generic]", { - "pipeline.minimax_h3.vae_parallel_decode_strategy": "gather" + "pipeline.model": { + "dit": {}, + "family": "generic", + "vae": {} + } } ], [ @@ -353,16 +357,6 @@ "engine.compile.regional": false, "engine.compile.text_encoder_enabled": false, "engine.compile.vae_enabled": false, - "pipeline.ltx2.legacy_native_noise_order": false, - "pipeline.ltx2.refine.add_noise": true, - "pipeline.ltx2.refine.enabled": false, - "pipeline.ltx2.refine.guidance_scale": 1.0, - "pipeline.ltx2.refine.num_inference_steps": 3, - "pipeline.ltx2.use_distilled_sigmas": true, - "pipeline.minimax_h3.taeh3_chunk_size": 5, - "pipeline.minimax_h3.vae_parallel_decode": false, - "pipeline.minimax_h3.vae_parallel_encode": false, - "pipeline.minimax_h3.video_decode_backend": "h3-vae", "pipeline.workload_type": "t2v" } ] @@ -446,54 +440,19 @@ "upsampler_weights": null, "vae_weights": null }, - "dit": {}, "dmd_denoising_steps": null, "embedded_cfg_scale": 6.0, "experimental": {}, "flow_shift": 5.0, - "longcat": { - "bsa_cdf_threshold": null, - "bsa_chunk_k": null, - "bsa_chunk_q": null, - "bsa_sparsity": null, - "enable_bsa": null - }, - "ltx2": { - "audio_latent_path": null, - "initial_latent_path": null, - "legacy_native_noise_order": false, - "refine": { - "add_noise": true, - "audio_noise_path": null, - "enabled": false, - "guidance_scale": 1.0, - "image_crf": null, - "lora_path": null, - "noise_path": null, - "num_inference_steps": 3, - "transformer_path": null, - "video_position_offset_sec": null - }, - "use_distilled_sigmas": true, - "vae_spatial_tile_overlap_in_pixels": null, - "vae_spatial_tile_size_in_pixels": null, - "vae_temporal_tile_overlap_in_frames": null, - "vae_temporal_tile_size_in_frames": null - }, - "minimax_h3": { - "sequential_load": null, - "taeh3_checkpoint": null, - "taeh3_chunk_size": 5, - "vae_parallel_decode": false, - "vae_parallel_decode_strategy": "gather", - "vae_parallel_encode": false, - "video_decode_backend": "h3-vae" + "model": { + "dit": {}, + "family": "generic", + "vae": {} }, "output_type": "pil", "preset": null, "preset_overrides": {}, "preset_version": null, - "vae": {}, "vae_sp": true, "vae_tiling": true, "workload_type": "t2v" diff --git a/fastvideo/tests/api/config_snapshot_goldens/registry/kandinskylab__Kandinsky-5.0-T2V-Pro-sft-5s-Diffusers.json b/fastvideo/tests/api/config_snapshot_goldens/registry/kandinskylab__Kandinsky-5.0-T2V-Pro-sft-5s-Diffusers.json index ba5e2dd9f..8244bc544 100644 --- a/fastvideo/tests/api/config_snapshot_goldens/registry/kandinskylab__Kandinsky-5.0-T2V-Pro-sft-5s-Diffusers.json +++ b/fastvideo/tests/api/config_snapshot_goldens/registry/kandinskylab__Kandinsky-5.0-T2V-Pro-sft-5s-Diffusers.json @@ -309,9 +309,13 @@ "pipeline_config_class": "fastvideo.configs.pipelines.kandinsky5.Kandinsky5T2VConfig", "resolution_decisions": [ [ - "fill_vae_parallel_from_env", + "fill_model_family[generic]", { - "pipeline.minimax_h3.vae_parallel_decode_strategy": "gather" + "pipeline.model": { + "dit": {}, + "family": "generic", + "vae": {} + } } ], [ @@ -353,16 +357,6 @@ "engine.compile.regional": false, "engine.compile.text_encoder_enabled": false, "engine.compile.vae_enabled": false, - "pipeline.ltx2.legacy_native_noise_order": false, - "pipeline.ltx2.refine.add_noise": true, - "pipeline.ltx2.refine.enabled": false, - "pipeline.ltx2.refine.guidance_scale": 1.0, - "pipeline.ltx2.refine.num_inference_steps": 3, - "pipeline.ltx2.use_distilled_sigmas": true, - "pipeline.minimax_h3.taeh3_chunk_size": 5, - "pipeline.minimax_h3.vae_parallel_decode": false, - "pipeline.minimax_h3.vae_parallel_encode": false, - "pipeline.minimax_h3.video_decode_backend": "h3-vae", "pipeline.workload_type": "t2v" } ] @@ -446,54 +440,19 @@ "upsampler_weights": null, "vae_weights": null }, - "dit": {}, "dmd_denoising_steps": null, "embedded_cfg_scale": 6.0, "experimental": {}, "flow_shift": 5.0, - "longcat": { - "bsa_cdf_threshold": null, - "bsa_chunk_k": null, - "bsa_chunk_q": null, - "bsa_sparsity": null, - "enable_bsa": null - }, - "ltx2": { - "audio_latent_path": null, - "initial_latent_path": null, - "legacy_native_noise_order": false, - "refine": { - "add_noise": true, - "audio_noise_path": null, - "enabled": false, - "guidance_scale": 1.0, - "image_crf": null, - "lora_path": null, - "noise_path": null, - "num_inference_steps": 3, - "transformer_path": null, - "video_position_offset_sec": null - }, - "use_distilled_sigmas": true, - "vae_spatial_tile_overlap_in_pixels": null, - "vae_spatial_tile_size_in_pixels": null, - "vae_temporal_tile_overlap_in_frames": null, - "vae_temporal_tile_size_in_frames": null - }, - "minimax_h3": { - "sequential_load": null, - "taeh3_checkpoint": null, - "taeh3_chunk_size": 5, - "vae_parallel_decode": false, - "vae_parallel_decode_strategy": "gather", - "vae_parallel_encode": false, - "video_decode_backend": "h3-vae" + "model": { + "dit": {}, + "family": "generic", + "vae": {} }, "output_type": "pil", "preset": null, "preset_overrides": {}, "preset_version": null, - "vae": {}, "vae_sp": true, "vae_tiling": true, "workload_type": "t2v" diff --git a/fastvideo/tests/api/config_snapshot_goldens/registry/loayrashid__TurboWan2.1-T2V-1.3B-Diffusers.json b/fastvideo/tests/api/config_snapshot_goldens/registry/loayrashid__TurboWan2.1-T2V-1.3B-Diffusers.json index 71f57bbcb..9a6098938 100644 --- a/fastvideo/tests/api/config_snapshot_goldens/registry/loayrashid__TurboWan2.1-T2V-1.3B-Diffusers.json +++ b/fastvideo/tests/api/config_snapshot_goldens/registry/loayrashid__TurboWan2.1-T2V-1.3B-Diffusers.json @@ -276,9 +276,13 @@ "pipeline_config_class": "fastvideo.configs.pipelines.turbodiffusion.TurboDiffusionT2V_1_3B_Config", "resolution_decisions": [ [ - "fill_vae_parallel_from_env", + "fill_model_family[generic]", { - "pipeline.minimax_h3.vae_parallel_decode_strategy": "gather" + "pipeline.model": { + "dit": {}, + "family": "generic", + "vae": {} + } } ], [ @@ -319,16 +323,6 @@ "engine.compile.regional": false, "engine.compile.text_encoder_enabled": false, "engine.compile.vae_enabled": false, - "pipeline.ltx2.legacy_native_noise_order": false, - "pipeline.ltx2.refine.add_noise": true, - "pipeline.ltx2.refine.enabled": false, - "pipeline.ltx2.refine.guidance_scale": 1.0, - "pipeline.ltx2.refine.num_inference_steps": 3, - "pipeline.ltx2.use_distilled_sigmas": true, - "pipeline.minimax_h3.taeh3_chunk_size": 5, - "pipeline.minimax_h3.vae_parallel_decode": false, - "pipeline.minimax_h3.vae_parallel_encode": false, - "pipeline.minimax_h3.video_decode_backend": "h3-vae", "pipeline.workload_type": "t2v" } ] @@ -411,54 +405,19 @@ "upsampler_weights": null, "vae_weights": null }, - "dit": {}, "dmd_denoising_steps": null, "embedded_cfg_scale": 6.0, "experimental": {}, "flow_shift": 3.0, - "longcat": { - "bsa_cdf_threshold": null, - "bsa_chunk_k": null, - "bsa_chunk_q": null, - "bsa_sparsity": null, - "enable_bsa": null - }, - "ltx2": { - "audio_latent_path": null, - "initial_latent_path": null, - "legacy_native_noise_order": false, - "refine": { - "add_noise": true, - "audio_noise_path": null, - "enabled": false, - "guidance_scale": 1.0, - "image_crf": null, - "lora_path": null, - "noise_path": null, - "num_inference_steps": 3, - "transformer_path": null, - "video_position_offset_sec": null - }, - "use_distilled_sigmas": true, - "vae_spatial_tile_overlap_in_pixels": null, - "vae_spatial_tile_size_in_pixels": null, - "vae_temporal_tile_overlap_in_frames": null, - "vae_temporal_tile_size_in_frames": null - }, - "minimax_h3": { - "sequential_load": null, - "taeh3_checkpoint": null, - "taeh3_chunk_size": 5, - "vae_parallel_decode": false, - "vae_parallel_decode_strategy": "gather", - "vae_parallel_encode": false, - "video_decode_backend": "h3-vae" + "model": { + "dit": {}, + "family": "generic", + "vae": {} }, "output_type": "pil", "preset": null, "preset_overrides": {}, "preset_version": null, - "vae": {}, "vae_sp": false, "vae_tiling": false, "workload_type": "t2v" diff --git a/fastvideo/tests/api/config_snapshot_goldens/registry/loayrashid__TurboWan2.1-T2V-14B-Diffusers.json b/fastvideo/tests/api/config_snapshot_goldens/registry/loayrashid__TurboWan2.1-T2V-14B-Diffusers.json index bcd9138de..6e56d37db 100644 --- a/fastvideo/tests/api/config_snapshot_goldens/registry/loayrashid__TurboWan2.1-T2V-14B-Diffusers.json +++ b/fastvideo/tests/api/config_snapshot_goldens/registry/loayrashid__TurboWan2.1-T2V-14B-Diffusers.json @@ -276,9 +276,13 @@ "pipeline_config_class": "fastvideo.configs.pipelines.turbodiffusion.TurboDiffusionT2V_14B_Config", "resolution_decisions": [ [ - "fill_vae_parallel_from_env", + "fill_model_family[generic]", { - "pipeline.minimax_h3.vae_parallel_decode_strategy": "gather" + "pipeline.model": { + "dit": {}, + "family": "generic", + "vae": {} + } } ], [ @@ -319,16 +323,6 @@ "engine.compile.regional": false, "engine.compile.text_encoder_enabled": false, "engine.compile.vae_enabled": false, - "pipeline.ltx2.legacy_native_noise_order": false, - "pipeline.ltx2.refine.add_noise": true, - "pipeline.ltx2.refine.enabled": false, - "pipeline.ltx2.refine.guidance_scale": 1.0, - "pipeline.ltx2.refine.num_inference_steps": 3, - "pipeline.ltx2.use_distilled_sigmas": true, - "pipeline.minimax_h3.taeh3_chunk_size": 5, - "pipeline.minimax_h3.vae_parallel_decode": false, - "pipeline.minimax_h3.vae_parallel_encode": false, - "pipeline.minimax_h3.video_decode_backend": "h3-vae", "pipeline.workload_type": "t2v" } ] @@ -411,54 +405,19 @@ "upsampler_weights": null, "vae_weights": null }, - "dit": {}, "dmd_denoising_steps": null, "embedded_cfg_scale": 6.0, "experimental": {}, "flow_shift": 5.0, - "longcat": { - "bsa_cdf_threshold": null, - "bsa_chunk_k": null, - "bsa_chunk_q": null, - "bsa_sparsity": null, - "enable_bsa": null - }, - "ltx2": { - "audio_latent_path": null, - "initial_latent_path": null, - "legacy_native_noise_order": false, - "refine": { - "add_noise": true, - "audio_noise_path": null, - "enabled": false, - "guidance_scale": 1.0, - "image_crf": null, - "lora_path": null, - "noise_path": null, - "num_inference_steps": 3, - "transformer_path": null, - "video_position_offset_sec": null - }, - "use_distilled_sigmas": true, - "vae_spatial_tile_overlap_in_pixels": null, - "vae_spatial_tile_size_in_pixels": null, - "vae_temporal_tile_overlap_in_frames": null, - "vae_temporal_tile_size_in_frames": null - }, - "minimax_h3": { - "sequential_load": null, - "taeh3_checkpoint": null, - "taeh3_chunk_size": 5, - "vae_parallel_decode": false, - "vae_parallel_decode_strategy": "gather", - "vae_parallel_encode": false, - "video_decode_backend": "h3-vae" + "model": { + "dit": {}, + "family": "generic", + "vae": {} }, "output_type": "pil", "preset": null, "preset_overrides": {}, "preset_version": null, - "vae": {}, "vae_sp": false, "vae_tiling": false, "workload_type": "t2v" diff --git a/fastvideo/tests/api/config_snapshot_goldens/registry/loayrashid__TurboWan2.2-I2V-A14B-Diffusers.json b/fastvideo/tests/api/config_snapshot_goldens/registry/loayrashid__TurboWan2.2-I2V-A14B-Diffusers.json index 2b719bd82..c4f200d01 100644 --- a/fastvideo/tests/api/config_snapshot_goldens/registry/loayrashid__TurboWan2.2-I2V-A14B-Diffusers.json +++ b/fastvideo/tests/api/config_snapshot_goldens/registry/loayrashid__TurboWan2.2-I2V-A14B-Diffusers.json @@ -310,9 +310,13 @@ "pipeline_config_class": "fastvideo.configs.pipelines.turbodiffusion.TurboDiffusionI2V_A14B_Config", "resolution_decisions": [ [ - "fill_vae_parallel_from_env", + "fill_model_family[generic]", { - "pipeline.minimax_h3.vae_parallel_decode_strategy": "gather" + "pipeline.model": { + "dit": {}, + "family": "generic", + "vae": {} + } } ], [ @@ -354,16 +358,6 @@ "engine.compile.regional": false, "engine.compile.text_encoder_enabled": false, "engine.compile.vae_enabled": false, - "pipeline.ltx2.legacy_native_noise_order": false, - "pipeline.ltx2.refine.add_noise": true, - "pipeline.ltx2.refine.enabled": false, - "pipeline.ltx2.refine.guidance_scale": 1.0, - "pipeline.ltx2.refine.num_inference_steps": 3, - "pipeline.ltx2.use_distilled_sigmas": true, - "pipeline.minimax_h3.taeh3_chunk_size": 5, - "pipeline.minimax_h3.vae_parallel_decode": false, - "pipeline.minimax_h3.vae_parallel_encode": false, - "pipeline.minimax_h3.video_decode_backend": "h3-vae", "pipeline.workload_type": "t2v" } ] @@ -446,54 +440,19 @@ "upsampler_weights": null, "vae_weights": null }, - "dit": {}, "dmd_denoising_steps": null, "embedded_cfg_scale": 6.0, "experimental": {}, "flow_shift": 5.0, - "longcat": { - "bsa_cdf_threshold": null, - "bsa_chunk_k": null, - "bsa_chunk_q": null, - "bsa_sparsity": null, - "enable_bsa": null - }, - "ltx2": { - "audio_latent_path": null, - "initial_latent_path": null, - "legacy_native_noise_order": false, - "refine": { - "add_noise": true, - "audio_noise_path": null, - "enabled": false, - "guidance_scale": 1.0, - "image_crf": null, - "lora_path": null, - "noise_path": null, - "num_inference_steps": 3, - "transformer_path": null, - "video_position_offset_sec": null - }, - "use_distilled_sigmas": true, - "vae_spatial_tile_overlap_in_pixels": null, - "vae_spatial_tile_size_in_pixels": null, - "vae_temporal_tile_overlap_in_frames": null, - "vae_temporal_tile_size_in_frames": null - }, - "minimax_h3": { - "sequential_load": null, - "taeh3_checkpoint": null, - "taeh3_chunk_size": 5, - "vae_parallel_decode": false, - "vae_parallel_decode_strategy": "gather", - "vae_parallel_encode": false, - "video_decode_backend": "h3-vae" + "model": { + "dit": {}, + "family": "generic", + "vae": {} }, "output_type": "pil", "preset": null, "preset_overrides": {}, "preset_version": null, - "vae": {}, "vae_sp": false, "vae_tiling": false, "workload_type": "t2v" diff --git a/fastvideo/tests/api/config_snapshot_goldens/registry/mignonjia__mg_bidirectional_zelda.json b/fastvideo/tests/api/config_snapshot_goldens/registry/mignonjia__mg_bidirectional_zelda.json index b52fabf0a..d19373413 100644 --- a/fastvideo/tests/api/config_snapshot_goldens/registry/mignonjia__mg_bidirectional_zelda.json +++ b/fastvideo/tests/api/config_snapshot_goldens/registry/mignonjia__mg_bidirectional_zelda.json @@ -365,9 +365,13 @@ "pipeline_config_class": "fastvideo.configs.pipelines.matrixgame2.MatrixGame2I2V480PConfig", "resolution_decisions": [ [ - "fill_vae_parallel_from_env", + "fill_model_family[generic]", { - "pipeline.minimax_h3.vae_parallel_decode_strategy": "gather" + "pipeline.model": { + "dit": {}, + "family": "generic", + "vae": {} + } } ], [ @@ -414,16 +418,6 @@ "engine.compile.regional": false, "engine.compile.text_encoder_enabled": false, "engine.compile.vae_enabled": false, - "pipeline.ltx2.legacy_native_noise_order": false, - "pipeline.ltx2.refine.add_noise": true, - "pipeline.ltx2.refine.enabled": false, - "pipeline.ltx2.refine.guidance_scale": 1.0, - "pipeline.ltx2.refine.num_inference_steps": 3, - "pipeline.ltx2.use_distilled_sigmas": true, - "pipeline.minimax_h3.taeh3_chunk_size": 5, - "pipeline.minimax_h3.vae_parallel_decode": false, - "pipeline.minimax_h3.vae_parallel_encode": false, - "pipeline.minimax_h3.video_decode_backend": "h3-vae", "pipeline.workload_type": "t2v" } ] @@ -506,7 +500,6 @@ "upsampler_weights": null, "vae_weights": null }, - "dit": {}, "dmd_denoising_steps": [ 1000, 666, @@ -515,49 +508,15 @@ "embedded_cfg_scale": 6.0, "experimental": {}, "flow_shift": 5.0, - "longcat": { - "bsa_cdf_threshold": null, - "bsa_chunk_k": null, - "bsa_chunk_q": null, - "bsa_sparsity": null, - "enable_bsa": null - }, - "ltx2": { - "audio_latent_path": null, - "initial_latent_path": null, - "legacy_native_noise_order": false, - "refine": { - "add_noise": true, - "audio_noise_path": null, - "enabled": false, - "guidance_scale": 1.0, - "image_crf": null, - "lora_path": null, - "noise_path": null, - "num_inference_steps": 3, - "transformer_path": null, - "video_position_offset_sec": null - }, - "use_distilled_sigmas": true, - "vae_spatial_tile_overlap_in_pixels": null, - "vae_spatial_tile_size_in_pixels": null, - "vae_temporal_tile_overlap_in_frames": null, - "vae_temporal_tile_size_in_frames": null - }, - "minimax_h3": { - "sequential_load": null, - "taeh3_checkpoint": null, - "taeh3_chunk_size": 5, - "vae_parallel_decode": false, - "vae_parallel_decode_strategy": "gather", - "vae_parallel_encode": false, - "video_decode_backend": "h3-vae" + "model": { + "dit": {}, + "family": "generic", + "vae": {} }, "output_type": "pil", "preset": null, "preset_overrides": {}, "preset_version": null, - "vae": {}, "vae_sp": false, "vae_tiling": false, "workload_type": "t2v" diff --git a/fastvideo/tests/api/config_snapshot_goldens/registry/mignonjia__mg_causal_zelda.json b/fastvideo/tests/api/config_snapshot_goldens/registry/mignonjia__mg_causal_zelda.json index f7c95eaa2..3ecd713b2 100644 --- a/fastvideo/tests/api/config_snapshot_goldens/registry/mignonjia__mg_causal_zelda.json +++ b/fastvideo/tests/api/config_snapshot_goldens/registry/mignonjia__mg_causal_zelda.json @@ -365,9 +365,13 @@ "pipeline_config_class": "fastvideo.configs.pipelines.matrixgame2.MatrixGame2I2V480PConfig", "resolution_decisions": [ [ - "fill_vae_parallel_from_env", + "fill_model_family[generic]", { - "pipeline.minimax_h3.vae_parallel_decode_strategy": "gather" + "pipeline.model": { + "dit": {}, + "family": "generic", + "vae": {} + } } ], [ @@ -414,16 +418,6 @@ "engine.compile.regional": false, "engine.compile.text_encoder_enabled": false, "engine.compile.vae_enabled": false, - "pipeline.ltx2.legacy_native_noise_order": false, - "pipeline.ltx2.refine.add_noise": true, - "pipeline.ltx2.refine.enabled": false, - "pipeline.ltx2.refine.guidance_scale": 1.0, - "pipeline.ltx2.refine.num_inference_steps": 3, - "pipeline.ltx2.use_distilled_sigmas": true, - "pipeline.minimax_h3.taeh3_chunk_size": 5, - "pipeline.minimax_h3.vae_parallel_decode": false, - "pipeline.minimax_h3.vae_parallel_encode": false, - "pipeline.minimax_h3.video_decode_backend": "h3-vae", "pipeline.workload_type": "t2v" } ] @@ -506,7 +500,6 @@ "upsampler_weights": null, "vae_weights": null }, - "dit": {}, "dmd_denoising_steps": [ 1000, 666, @@ -515,49 +508,15 @@ "embedded_cfg_scale": 6.0, "experimental": {}, "flow_shift": 5.0, - "longcat": { - "bsa_cdf_threshold": null, - "bsa_chunk_k": null, - "bsa_chunk_q": null, - "bsa_sparsity": null, - "enable_bsa": null - }, - "ltx2": { - "audio_latent_path": null, - "initial_latent_path": null, - "legacy_native_noise_order": false, - "refine": { - "add_noise": true, - "audio_noise_path": null, - "enabled": false, - "guidance_scale": 1.0, - "image_crf": null, - "lora_path": null, - "noise_path": null, - "num_inference_steps": 3, - "transformer_path": null, - "video_position_offset_sec": null - }, - "use_distilled_sigmas": true, - "vae_spatial_tile_overlap_in_pixels": null, - "vae_spatial_tile_size_in_pixels": null, - "vae_temporal_tile_overlap_in_frames": null, - "vae_temporal_tile_size_in_frames": null - }, - "minimax_h3": { - "sequential_load": null, - "taeh3_checkpoint": null, - "taeh3_chunk_size": 5, - "vae_parallel_decode": false, - "vae_parallel_decode_strategy": "gather", - "vae_parallel_encode": false, - "video_decode_backend": "h3-vae" + "model": { + "dit": {}, + "family": "generic", + "vae": {} }, "output_type": "pil", "preset": null, "preset_overrides": {}, "preset_version": null, - "vae": {}, "vae_sp": false, "vae_tiling": false, "workload_type": "t2v" diff --git a/fastvideo/tests/api/config_snapshot_goldens/registry/mignonjia__mg_longtuning_distilled_zelda.json b/fastvideo/tests/api/config_snapshot_goldens/registry/mignonjia__mg_longtuning_distilled_zelda.json index 1e515289a..2b837acb3 100644 --- a/fastvideo/tests/api/config_snapshot_goldens/registry/mignonjia__mg_longtuning_distilled_zelda.json +++ b/fastvideo/tests/api/config_snapshot_goldens/registry/mignonjia__mg_longtuning_distilled_zelda.json @@ -365,9 +365,13 @@ "pipeline_config_class": "fastvideo.configs.pipelines.matrixgame2.MatrixGame2I2V480PConfig", "resolution_decisions": [ [ - "fill_vae_parallel_from_env", + "fill_model_family[generic]", { - "pipeline.minimax_h3.vae_parallel_decode_strategy": "gather" + "pipeline.model": { + "dit": {}, + "family": "generic", + "vae": {} + } } ], [ @@ -414,16 +418,6 @@ "engine.compile.regional": false, "engine.compile.text_encoder_enabled": false, "engine.compile.vae_enabled": false, - "pipeline.ltx2.legacy_native_noise_order": false, - "pipeline.ltx2.refine.add_noise": true, - "pipeline.ltx2.refine.enabled": false, - "pipeline.ltx2.refine.guidance_scale": 1.0, - "pipeline.ltx2.refine.num_inference_steps": 3, - "pipeline.ltx2.use_distilled_sigmas": true, - "pipeline.minimax_h3.taeh3_chunk_size": 5, - "pipeline.minimax_h3.vae_parallel_decode": false, - "pipeline.minimax_h3.vae_parallel_encode": false, - "pipeline.minimax_h3.video_decode_backend": "h3-vae", "pipeline.workload_type": "t2v" } ] @@ -506,7 +500,6 @@ "upsampler_weights": null, "vae_weights": null }, - "dit": {}, "dmd_denoising_steps": [ 1000, 666, @@ -515,49 +508,15 @@ "embedded_cfg_scale": 6.0, "experimental": {}, "flow_shift": 5.0, - "longcat": { - "bsa_cdf_threshold": null, - "bsa_chunk_k": null, - "bsa_chunk_q": null, - "bsa_sparsity": null, - "enable_bsa": null - }, - "ltx2": { - "audio_latent_path": null, - "initial_latent_path": null, - "legacy_native_noise_order": false, - "refine": { - "add_noise": true, - "audio_noise_path": null, - "enabled": false, - "guidance_scale": 1.0, - "image_crf": null, - "lora_path": null, - "noise_path": null, - "num_inference_steps": 3, - "transformer_path": null, - "video_position_offset_sec": null - }, - "use_distilled_sigmas": true, - "vae_spatial_tile_overlap_in_pixels": null, - "vae_spatial_tile_size_in_pixels": null, - "vae_temporal_tile_overlap_in_frames": null, - "vae_temporal_tile_size_in_frames": null - }, - "minimax_h3": { - "sequential_load": null, - "taeh3_checkpoint": null, - "taeh3_chunk_size": 5, - "vae_parallel_decode": false, - "vae_parallel_decode_strategy": "gather", - "vae_parallel_encode": false, - "video_decode_backend": "h3-vae" + "model": { + "dit": {}, + "family": "generic", + "vae": {} }, "output_type": "pil", "preset": null, "preset_overrides": {}, "preset_version": null, - "vae": {}, "vae_sp": false, "vae_tiling": false, "workload_type": "t2v" diff --git a/fastvideo/tests/api/config_snapshot_goldens/registry/mignonjia__mg_sf_distilled_zelda.json b/fastvideo/tests/api/config_snapshot_goldens/registry/mignonjia__mg_sf_distilled_zelda.json index 83a4b929c..2ed1c7a22 100644 --- a/fastvideo/tests/api/config_snapshot_goldens/registry/mignonjia__mg_sf_distilled_zelda.json +++ b/fastvideo/tests/api/config_snapshot_goldens/registry/mignonjia__mg_sf_distilled_zelda.json @@ -365,9 +365,13 @@ "pipeline_config_class": "fastvideo.configs.pipelines.matrixgame2.MatrixGame2I2V480PConfig", "resolution_decisions": [ [ - "fill_vae_parallel_from_env", + "fill_model_family[generic]", { - "pipeline.minimax_h3.vae_parallel_decode_strategy": "gather" + "pipeline.model": { + "dit": {}, + "family": "generic", + "vae": {} + } } ], [ @@ -414,16 +418,6 @@ "engine.compile.regional": false, "engine.compile.text_encoder_enabled": false, "engine.compile.vae_enabled": false, - "pipeline.ltx2.legacy_native_noise_order": false, - "pipeline.ltx2.refine.add_noise": true, - "pipeline.ltx2.refine.enabled": false, - "pipeline.ltx2.refine.guidance_scale": 1.0, - "pipeline.ltx2.refine.num_inference_steps": 3, - "pipeline.ltx2.use_distilled_sigmas": true, - "pipeline.minimax_h3.taeh3_chunk_size": 5, - "pipeline.minimax_h3.vae_parallel_decode": false, - "pipeline.minimax_h3.vae_parallel_encode": false, - "pipeline.minimax_h3.video_decode_backend": "h3-vae", "pipeline.workload_type": "t2v" } ] @@ -506,7 +500,6 @@ "upsampler_weights": null, "vae_weights": null }, - "dit": {}, "dmd_denoising_steps": [ 1000, 666, @@ -515,49 +508,15 @@ "embedded_cfg_scale": 6.0, "experimental": {}, "flow_shift": 5.0, - "longcat": { - "bsa_cdf_threshold": null, - "bsa_chunk_k": null, - "bsa_chunk_q": null, - "bsa_sparsity": null, - "enable_bsa": null - }, - "ltx2": { - "audio_latent_path": null, - "initial_latent_path": null, - "legacy_native_noise_order": false, - "refine": { - "add_noise": true, - "audio_noise_path": null, - "enabled": false, - "guidance_scale": 1.0, - "image_crf": null, - "lora_path": null, - "noise_path": null, - "num_inference_steps": 3, - "transformer_path": null, - "video_position_offset_sec": null - }, - "use_distilled_sigmas": true, - "vae_spatial_tile_overlap_in_pixels": null, - "vae_spatial_tile_size_in_pixels": null, - "vae_temporal_tile_overlap_in_frames": null, - "vae_temporal_tile_size_in_frames": null - }, - "minimax_h3": { - "sequential_load": null, - "taeh3_checkpoint": null, - "taeh3_chunk_size": 5, - "vae_parallel_decode": false, - "vae_parallel_decode_strategy": "gather", - "vae_parallel_encode": false, - "video_decode_backend": "h3-vae" + "model": { + "dit": {}, + "family": "generic", + "vae": {} }, "output_type": "pil", "preset": null, "preset_overrides": {}, "preset_version": null, - "vae": {}, "vae_sp": false, "vae_tiling": false, "workload_type": "t2v" diff --git a/fastvideo/tests/api/config_snapshot_goldens/registry/mignonjia__mg_sf_distilled_zelda_1k_steps.json b/fastvideo/tests/api/config_snapshot_goldens/registry/mignonjia__mg_sf_distilled_zelda_1k_steps.json index 05b1886b3..ba6db30eb 100644 --- a/fastvideo/tests/api/config_snapshot_goldens/registry/mignonjia__mg_sf_distilled_zelda_1k_steps.json +++ b/fastvideo/tests/api/config_snapshot_goldens/registry/mignonjia__mg_sf_distilled_zelda_1k_steps.json @@ -365,9 +365,13 @@ "pipeline_config_class": "fastvideo.configs.pipelines.matrixgame2.MatrixGame2I2V480PConfig", "resolution_decisions": [ [ - "fill_vae_parallel_from_env", + "fill_model_family[generic]", { - "pipeline.minimax_h3.vae_parallel_decode_strategy": "gather" + "pipeline.model": { + "dit": {}, + "family": "generic", + "vae": {} + } } ], [ @@ -414,16 +418,6 @@ "engine.compile.regional": false, "engine.compile.text_encoder_enabled": false, "engine.compile.vae_enabled": false, - "pipeline.ltx2.legacy_native_noise_order": false, - "pipeline.ltx2.refine.add_noise": true, - "pipeline.ltx2.refine.enabled": false, - "pipeline.ltx2.refine.guidance_scale": 1.0, - "pipeline.ltx2.refine.num_inference_steps": 3, - "pipeline.ltx2.use_distilled_sigmas": true, - "pipeline.minimax_h3.taeh3_chunk_size": 5, - "pipeline.minimax_h3.vae_parallel_decode": false, - "pipeline.minimax_h3.vae_parallel_encode": false, - "pipeline.minimax_h3.video_decode_backend": "h3-vae", "pipeline.workload_type": "t2v" } ] @@ -506,7 +500,6 @@ "upsampler_weights": null, "vae_weights": null }, - "dit": {}, "dmd_denoising_steps": [ 1000, 666, @@ -515,49 +508,15 @@ "embedded_cfg_scale": 6.0, "experimental": {}, "flow_shift": 5.0, - "longcat": { - "bsa_cdf_threshold": null, - "bsa_chunk_k": null, - "bsa_chunk_q": null, - "bsa_sparsity": null, - "enable_bsa": null - }, - "ltx2": { - "audio_latent_path": null, - "initial_latent_path": null, - "legacy_native_noise_order": false, - "refine": { - "add_noise": true, - "audio_noise_path": null, - "enabled": false, - "guidance_scale": 1.0, - "image_crf": null, - "lora_path": null, - "noise_path": null, - "num_inference_steps": 3, - "transformer_path": null, - "video_position_offset_sec": null - }, - "use_distilled_sigmas": true, - "vae_spatial_tile_overlap_in_pixels": null, - "vae_spatial_tile_size_in_pixels": null, - "vae_temporal_tile_overlap_in_frames": null, - "vae_temporal_tile_size_in_frames": null - }, - "minimax_h3": { - "sequential_load": null, - "taeh3_checkpoint": null, - "taeh3_chunk_size": 5, - "vae_parallel_decode": false, - "vae_parallel_decode_strategy": "gather", - "vae_parallel_encode": false, - "video_decode_backend": "h3-vae" + "model": { + "dit": {}, + "family": "generic", + "vae": {} }, "output_type": "pil", "preset": null, "preset_overrides": {}, "preset_version": null, - "vae": {}, "vae_sp": false, "vae_tiling": false, "workload_type": "t2v" diff --git a/fastvideo/tests/api/config_snapshot_goldens/registry/nvidia__Cosmos-Predict2-2B-Video2World.json b/fastvideo/tests/api/config_snapshot_goldens/registry/nvidia__Cosmos-Predict2-2B-Video2World.json index 929869c18..d05353025 100644 --- a/fastvideo/tests/api/config_snapshot_goldens/registry/nvidia__Cosmos-Predict2-2B-Video2World.json +++ b/fastvideo/tests/api/config_snapshot_goldens/registry/nvidia__Cosmos-Predict2-2B-Video2World.json @@ -280,9 +280,13 @@ "pipeline_config_class": "fastvideo.configs.pipelines.cosmos.CosmosConfig", "resolution_decisions": [ [ - "fill_vae_parallel_from_env", + "fill_model_family[generic]", { - "pipeline.minimax_h3.vae_parallel_decode_strategy": "gather" + "pipeline.model": { + "dit": {}, + "family": "generic", + "vae": {} + } } ], [ @@ -323,16 +327,6 @@ "engine.compile.regional": false, "engine.compile.text_encoder_enabled": false, "engine.compile.vae_enabled": false, - "pipeline.ltx2.legacy_native_noise_order": false, - "pipeline.ltx2.refine.add_noise": true, - "pipeline.ltx2.refine.enabled": false, - "pipeline.ltx2.refine.guidance_scale": 1.0, - "pipeline.ltx2.refine.num_inference_steps": 3, - "pipeline.ltx2.use_distilled_sigmas": true, - "pipeline.minimax_h3.taeh3_chunk_size": 5, - "pipeline.minimax_h3.vae_parallel_decode": false, - "pipeline.minimax_h3.vae_parallel_encode": false, - "pipeline.minimax_h3.video_decode_backend": "h3-vae", "pipeline.workload_type": "t2v" } ] @@ -415,54 +409,19 @@ "upsampler_weights": null, "vae_weights": null }, - "dit": {}, "dmd_denoising_steps": null, "embedded_cfg_scale": 6, "experimental": {}, "flow_shift": 1.0, - "longcat": { - "bsa_cdf_threshold": null, - "bsa_chunk_k": null, - "bsa_chunk_q": null, - "bsa_sparsity": null, - "enable_bsa": null - }, - "ltx2": { - "audio_latent_path": null, - "initial_latent_path": null, - "legacy_native_noise_order": false, - "refine": { - "add_noise": true, - "audio_noise_path": null, - "enabled": false, - "guidance_scale": 1.0, - "image_crf": null, - "lora_path": null, - "noise_path": null, - "num_inference_steps": 3, - "transformer_path": null, - "video_position_offset_sec": null - }, - "use_distilled_sigmas": true, - "vae_spatial_tile_overlap_in_pixels": null, - "vae_spatial_tile_size_in_pixels": null, - "vae_temporal_tile_overlap_in_frames": null, - "vae_temporal_tile_size_in_frames": null - }, - "minimax_h3": { - "sequential_load": null, - "taeh3_checkpoint": null, - "taeh3_chunk_size": 5, - "vae_parallel_decode": false, - "vae_parallel_decode_strategy": "gather", - "vae_parallel_encode": false, - "video_decode_backend": "h3-vae" + "model": { + "dit": {}, + "family": "generic", + "vae": {} }, "output_type": "pil", "preset": null, "preset_overrides": {}, "preset_version": null, - "vae": {}, "vae_sp": true, "vae_tiling": true, "workload_type": "t2v" diff --git a/fastvideo/tests/api/config_snapshot_goldens/registry/nvidia__Cosmos-Predict2.5-14B.json b/fastvideo/tests/api/config_snapshot_goldens/registry/nvidia__Cosmos-Predict2.5-14B.json index 1fc254a83..8fc405f8f 100644 --- a/fastvideo/tests/api/config_snapshot_goldens/registry/nvidia__Cosmos-Predict2.5-14B.json +++ b/fastvideo/tests/api/config_snapshot_goldens/registry/nvidia__Cosmos-Predict2.5-14B.json @@ -273,9 +273,13 @@ "pipeline_config_class": "fastvideo.configs.pipelines.cosmos2_5.Cosmos25_14BConfig", "resolution_decisions": [ [ - "fill_vae_parallel_from_env", + "fill_model_family[generic]", { - "pipeline.minimax_h3.vae_parallel_decode_strategy": "gather" + "pipeline.model": { + "dit": {}, + "family": "generic", + "vae": {} + } } ], [ @@ -316,16 +320,6 @@ "engine.compile.regional": false, "engine.compile.text_encoder_enabled": false, "engine.compile.vae_enabled": false, - "pipeline.ltx2.legacy_native_noise_order": false, - "pipeline.ltx2.refine.add_noise": true, - "pipeline.ltx2.refine.enabled": false, - "pipeline.ltx2.refine.guidance_scale": 1.0, - "pipeline.ltx2.refine.num_inference_steps": 3, - "pipeline.ltx2.use_distilled_sigmas": true, - "pipeline.minimax_h3.taeh3_chunk_size": 5, - "pipeline.minimax_h3.vae_parallel_decode": false, - "pipeline.minimax_h3.vae_parallel_encode": false, - "pipeline.minimax_h3.video_decode_backend": "h3-vae", "pipeline.workload_type": "t2v" } ] @@ -408,54 +402,19 @@ "upsampler_weights": null, "vae_weights": null }, - "dit": {}, "dmd_denoising_steps": null, "embedded_cfg_scale": 0.0, "experimental": {}, "flow_shift": 5.0, - "longcat": { - "bsa_cdf_threshold": null, - "bsa_chunk_k": null, - "bsa_chunk_q": null, - "bsa_sparsity": null, - "enable_bsa": null - }, - "ltx2": { - "audio_latent_path": null, - "initial_latent_path": null, - "legacy_native_noise_order": false, - "refine": { - "add_noise": true, - "audio_noise_path": null, - "enabled": false, - "guidance_scale": 1.0, - "image_crf": null, - "lora_path": null, - "noise_path": null, - "num_inference_steps": 3, - "transformer_path": null, - "video_position_offset_sec": null - }, - "use_distilled_sigmas": true, - "vae_spatial_tile_overlap_in_pixels": null, - "vae_spatial_tile_size_in_pixels": null, - "vae_temporal_tile_overlap_in_frames": null, - "vae_temporal_tile_size_in_frames": null - }, - "minimax_h3": { - "sequential_load": null, - "taeh3_checkpoint": null, - "taeh3_chunk_size": 5, - "vae_parallel_decode": false, - "vae_parallel_decode_strategy": "gather", - "vae_parallel_encode": false, - "video_decode_backend": "h3-vae" + "model": { + "dit": {}, + "family": "generic", + "vae": {} }, "output_type": "pil", "preset": null, "preset_overrides": {}, "preset_version": null, - "vae": {}, "vae_sp": false, "vae_tiling": false, "workload_type": "t2v" diff --git a/fastvideo/tests/api/config_snapshot_goldens/registry/rand0nmr__SFWan2.2-T2V-A14B-Diffusers.json b/fastvideo/tests/api/config_snapshot_goldens/registry/rand0nmr__SFWan2.2-T2V-A14B-Diffusers.json index 161db9c7f..1488e9856 100644 --- a/fastvideo/tests/api/config_snapshot_goldens/registry/rand0nmr__SFWan2.2-T2V-A14B-Diffusers.json +++ b/fastvideo/tests/api/config_snapshot_goldens/registry/rand0nmr__SFWan2.2-T2V-A14B-Diffusers.json @@ -285,9 +285,13 @@ "pipeline_config_class": "fastvideo.models.wan.pipeline_config.SelfForcingWan2_2_T2V480PConfig", "resolution_decisions": [ [ - "fill_vae_parallel_from_env", + "fill_model_family[generic]", { - "pipeline.minimax_h3.vae_parallel_decode_strategy": "gather" + "pipeline.model": { + "dit": {}, + "family": "generic", + "vae": {} + } } ], [ @@ -340,16 +344,6 @@ "engine.compile.regional": false, "engine.compile.text_encoder_enabled": false, "engine.compile.vae_enabled": false, - "pipeline.ltx2.legacy_native_noise_order": false, - "pipeline.ltx2.refine.add_noise": true, - "pipeline.ltx2.refine.enabled": false, - "pipeline.ltx2.refine.guidance_scale": 1.0, - "pipeline.ltx2.refine.num_inference_steps": 3, - "pipeline.ltx2.use_distilled_sigmas": true, - "pipeline.minimax_h3.taeh3_chunk_size": 5, - "pipeline.minimax_h3.vae_parallel_decode": false, - "pipeline.minimax_h3.vae_parallel_encode": false, - "pipeline.minimax_h3.video_decode_backend": "h3-vae", "pipeline.workload_type": "t2v" } ] @@ -432,7 +426,6 @@ "upsampler_weights": null, "vae_weights": null }, - "dit": {}, "dmd_denoising_steps": [ 1000, 850, @@ -446,49 +439,15 @@ "embedded_cfg_scale": 6.0, "experimental": {}, "flow_shift": 12.0, - "longcat": { - "bsa_cdf_threshold": null, - "bsa_chunk_k": null, - "bsa_chunk_q": null, - "bsa_sparsity": null, - "enable_bsa": null - }, - "ltx2": { - "audio_latent_path": null, - "initial_latent_path": null, - "legacy_native_noise_order": false, - "refine": { - "add_noise": true, - "audio_noise_path": null, - "enabled": false, - "guidance_scale": 1.0, - "image_crf": null, - "lora_path": null, - "noise_path": null, - "num_inference_steps": 3, - "transformer_path": null, - "video_position_offset_sec": null - }, - "use_distilled_sigmas": true, - "vae_spatial_tile_overlap_in_pixels": null, - "vae_spatial_tile_size_in_pixels": null, - "vae_temporal_tile_overlap_in_frames": null, - "vae_temporal_tile_size_in_frames": null - }, - "minimax_h3": { - "sequential_load": null, - "taeh3_checkpoint": null, - "taeh3_chunk_size": 5, - "vae_parallel_decode": false, - "vae_parallel_decode_strategy": "gather", - "vae_parallel_encode": false, - "video_decode_backend": "h3-vae" + "model": { + "dit": {}, + "family": "generic", + "vae": {} }, "output_type": "pil", "preset": null, "preset_overrides": {}, "preset_version": null, - "vae": {}, "vae_sp": false, "vae_tiling": false, "workload_type": "t2v" diff --git a/fastvideo/tests/api/config_snapshot_goldens/registry/robbyant__lingbot-world-v2-14b-causal-fast.json b/fastvideo/tests/api/config_snapshot_goldens/registry/robbyant__lingbot-world-v2-14b-causal-fast.json index 46498e45a..07525f666 100644 --- a/fastvideo/tests/api/config_snapshot_goldens/registry/robbyant__lingbot-world-v2-14b-causal-fast.json +++ b/fastvideo/tests/api/config_snapshot_goldens/registry/robbyant__lingbot-world-v2-14b-causal-fast.json @@ -285,9 +285,13 @@ "pipeline_config_class": "fastvideo.configs.pipelines.lingbotworld2.LingBotWorld2CausalFastI2V480PConfig", "resolution_decisions": [ [ - "fill_vae_parallel_from_env", + "fill_model_family[generic]", { - "pipeline.minimax_h3.vae_parallel_decode_strategy": "gather" + "pipeline.model": { + "dit": {}, + "family": "generic", + "vae": {} + } } ], [ @@ -330,16 +334,6 @@ "engine.compile.regional": false, "engine.compile.text_encoder_enabled": false, "engine.compile.vae_enabled": false, - "pipeline.ltx2.legacy_native_noise_order": false, - "pipeline.ltx2.refine.add_noise": true, - "pipeline.ltx2.refine.enabled": false, - "pipeline.ltx2.refine.guidance_scale": 1.0, - "pipeline.ltx2.refine.num_inference_steps": 3, - "pipeline.ltx2.use_distilled_sigmas": true, - "pipeline.minimax_h3.taeh3_chunk_size": 5, - "pipeline.minimax_h3.vae_parallel_decode": false, - "pipeline.minimax_h3.vae_parallel_encode": false, - "pipeline.minimax_h3.video_decode_backend": "h3-vae", "pipeline.workload_type": "t2v" } ] @@ -422,54 +416,19 @@ "upsampler_weights": null, "vae_weights": null }, - "dit": {}, "dmd_denoising_steps": null, "embedded_cfg_scale": 6.0, "experimental": {}, "flow_shift": 10.0, - "longcat": { - "bsa_cdf_threshold": null, - "bsa_chunk_k": null, - "bsa_chunk_q": null, - "bsa_sparsity": null, - "enable_bsa": null - }, - "ltx2": { - "audio_latent_path": null, - "initial_latent_path": null, - "legacy_native_noise_order": false, - "refine": { - "add_noise": true, - "audio_noise_path": null, - "enabled": false, - "guidance_scale": 1.0, - "image_crf": null, - "lora_path": null, - "noise_path": null, - "num_inference_steps": 3, - "transformer_path": null, - "video_position_offset_sec": null - }, - "use_distilled_sigmas": true, - "vae_spatial_tile_overlap_in_pixels": null, - "vae_spatial_tile_size_in_pixels": null, - "vae_temporal_tile_overlap_in_frames": null, - "vae_temporal_tile_size_in_frames": null - }, - "minimax_h3": { - "sequential_load": null, - "taeh3_checkpoint": null, - "taeh3_chunk_size": 5, - "vae_parallel_decode": false, - "vae_parallel_decode_strategy": "gather", - "vae_parallel_encode": false, - "video_decode_backend": "h3-vae" + "model": { + "dit": {}, + "family": "generic", + "vae": {} }, "output_type": "pil", "preset": null, "preset_overrides": {}, "preset_version": null, - "vae": {}, "vae_sp": false, "vae_tiling": false, "workload_type": "t2v" diff --git a/fastvideo/tests/api/config_snapshot_goldens/registry/stabilityai__stable-diffusion-3.5-medium.json b/fastvideo/tests/api/config_snapshot_goldens/registry/stabilityai__stable-diffusion-3.5-medium.json index 056ad8573..b37f3eb74 100644 --- a/fastvideo/tests/api/config_snapshot_goldens/registry/stabilityai__stable-diffusion-3.5-medium.json +++ b/fastvideo/tests/api/config_snapshot_goldens/registry/stabilityai__stable-diffusion-3.5-medium.json @@ -379,9 +379,13 @@ "pipeline_config_class": "fastvideo.configs.pipelines.sd35.SD35Config", "resolution_decisions": [ [ - "fill_vae_parallel_from_env", + "fill_model_family[generic]", { - "pipeline.minimax_h3.vae_parallel_decode_strategy": "gather" + "pipeline.model": { + "dit": {}, + "family": "generic", + "vae": {} + } } ], [ @@ -423,16 +427,6 @@ "engine.compile.regional": false, "engine.compile.text_encoder_enabled": false, "engine.compile.vae_enabled": false, - "pipeline.ltx2.legacy_native_noise_order": false, - "pipeline.ltx2.refine.add_noise": true, - "pipeline.ltx2.refine.enabled": false, - "pipeline.ltx2.refine.guidance_scale": 1.0, - "pipeline.ltx2.refine.num_inference_steps": 3, - "pipeline.ltx2.use_distilled_sigmas": true, - "pipeline.minimax_h3.taeh3_chunk_size": 5, - "pipeline.minimax_h3.vae_parallel_decode": false, - "pipeline.minimax_h3.vae_parallel_encode": false, - "pipeline.minimax_h3.video_decode_backend": "h3-vae", "pipeline.workload_type": "t2v" } ] @@ -517,54 +511,19 @@ "upsampler_weights": null, "vae_weights": null }, - "dit": {}, "dmd_denoising_steps": null, "embedded_cfg_scale": 0.0, "experimental": {}, "flow_shift": null, - "longcat": { - "bsa_cdf_threshold": null, - "bsa_chunk_k": null, - "bsa_chunk_q": null, - "bsa_sparsity": null, - "enable_bsa": null - }, - "ltx2": { - "audio_latent_path": null, - "initial_latent_path": null, - "legacy_native_noise_order": false, - "refine": { - "add_noise": true, - "audio_noise_path": null, - "enabled": false, - "guidance_scale": 1.0, - "image_crf": null, - "lora_path": null, - "noise_path": null, - "num_inference_steps": 3, - "transformer_path": null, - "video_position_offset_sec": null - }, - "use_distilled_sigmas": true, - "vae_spatial_tile_overlap_in_pixels": null, - "vae_spatial_tile_size_in_pixels": null, - "vae_temporal_tile_overlap_in_frames": null, - "vae_temporal_tile_size_in_frames": null - }, - "minimax_h3": { - "sequential_load": null, - "taeh3_checkpoint": null, - "taeh3_chunk_size": 5, - "vae_parallel_decode": false, - "vae_parallel_decode_strategy": "gather", - "vae_parallel_encode": false, - "video_decode_backend": "h3-vae" + "model": { + "dit": {}, + "family": "generic", + "vae": {} }, "output_type": "pil", "preset": null, "preset_overrides": {}, "preset_version": null, - "vae": {}, "vae_sp": true, "vae_tiling": true, "workload_type": "t2v" diff --git a/fastvideo/tests/api/config_snapshot_goldens/registry/weizhou03__HunyuanVideo-1.5-Diffusers-1080p-2SR.json b/fastvideo/tests/api/config_snapshot_goldens/registry/weizhou03__HunyuanVideo-1.5-Diffusers-1080p-2SR.json index d916c6e97..94b118620 100644 --- a/fastvideo/tests/api/config_snapshot_goldens/registry/weizhou03__HunyuanVideo-1.5-Diffusers-1080p-2SR.json +++ b/fastvideo/tests/api/config_snapshot_goldens/registry/weizhou03__HunyuanVideo-1.5-Diffusers-1080p-2SR.json @@ -334,9 +334,13 @@ "pipeline_config_class": "fastvideo.configs.pipelines.hunyuan15.Hunyuan15SR1080PConfig", "resolution_decisions": [ [ - "fill_vae_parallel_from_env", + "fill_model_family[generic]", { - "pipeline.minimax_h3.vae_parallel_decode_strategy": "gather" + "pipeline.model": { + "dit": {}, + "family": "generic", + "vae": {} + } } ], [ @@ -378,16 +382,6 @@ "engine.compile.regional": false, "engine.compile.text_encoder_enabled": false, "engine.compile.vae_enabled": false, - "pipeline.ltx2.legacy_native_noise_order": false, - "pipeline.ltx2.refine.add_noise": true, - "pipeline.ltx2.refine.enabled": false, - "pipeline.ltx2.refine.guidance_scale": 1.0, - "pipeline.ltx2.refine.num_inference_steps": 3, - "pipeline.ltx2.use_distilled_sigmas": true, - "pipeline.minimax_h3.taeh3_chunk_size": 5, - "pipeline.minimax_h3.vae_parallel_decode": false, - "pipeline.minimax_h3.vae_parallel_encode": false, - "pipeline.minimax_h3.video_decode_backend": "h3-vae", "pipeline.workload_type": "t2v" } ] @@ -471,54 +465,19 @@ "upsampler_weights": null, "vae_weights": null }, - "dit": {}, "dmd_denoising_steps": null, "embedded_cfg_scale": 6.0, "experimental": {}, "flow_shift": 7, - "longcat": { - "bsa_cdf_threshold": null, - "bsa_chunk_k": null, - "bsa_chunk_q": null, - "bsa_sparsity": null, - "enable_bsa": null - }, - "ltx2": { - "audio_latent_path": null, - "initial_latent_path": null, - "legacy_native_noise_order": false, - "refine": { - "add_noise": true, - "audio_noise_path": null, - "enabled": false, - "guidance_scale": 1.0, - "image_crf": null, - "lora_path": null, - "noise_path": null, - "num_inference_steps": 3, - "transformer_path": null, - "video_position_offset_sec": null - }, - "use_distilled_sigmas": true, - "vae_spatial_tile_overlap_in_pixels": null, - "vae_spatial_tile_size_in_pixels": null, - "vae_temporal_tile_overlap_in_frames": null, - "vae_temporal_tile_size_in_frames": null - }, - "minimax_h3": { - "sequential_load": null, - "taeh3_checkpoint": null, - "taeh3_chunk_size": 5, - "vae_parallel_decode": false, - "vae_parallel_decode_strategy": "gather", - "vae_parallel_encode": false, - "video_decode_backend": "h3-vae" + "model": { + "dit": {}, + "family": "generic", + "vae": {} }, "output_type": "pil", "preset": null, "preset_overrides": {}, "preset_version": null, - "vae": {}, "vae_sp": true, "vae_tiling": true, "workload_type": "t2v" diff --git a/fastvideo/tests/api/config_snapshot_goldens/registry/weizhou03__HunyuanVideo-1.5-Diffusers-1080p.json b/fastvideo/tests/api/config_snapshot_goldens/registry/weizhou03__HunyuanVideo-1.5-Diffusers-1080p.json index 3a4094931..00aa4cc95 100644 --- a/fastvideo/tests/api/config_snapshot_goldens/registry/weizhou03__HunyuanVideo-1.5-Diffusers-1080p.json +++ b/fastvideo/tests/api/config_snapshot_goldens/registry/weizhou03__HunyuanVideo-1.5-Diffusers-1080p.json @@ -334,9 +334,13 @@ "pipeline_config_class": "fastvideo.configs.pipelines.hunyuan15.Hunyuan15SR1080PConfig", "resolution_decisions": [ [ - "fill_vae_parallel_from_env", + "fill_model_family[generic]", { - "pipeline.minimax_h3.vae_parallel_decode_strategy": "gather" + "pipeline.model": { + "dit": {}, + "family": "generic", + "vae": {} + } } ], [ @@ -378,16 +382,6 @@ "engine.compile.regional": false, "engine.compile.text_encoder_enabled": false, "engine.compile.vae_enabled": false, - "pipeline.ltx2.legacy_native_noise_order": false, - "pipeline.ltx2.refine.add_noise": true, - "pipeline.ltx2.refine.enabled": false, - "pipeline.ltx2.refine.guidance_scale": 1.0, - "pipeline.ltx2.refine.num_inference_steps": 3, - "pipeline.ltx2.use_distilled_sigmas": true, - "pipeline.minimax_h3.taeh3_chunk_size": 5, - "pipeline.minimax_h3.vae_parallel_decode": false, - "pipeline.minimax_h3.vae_parallel_encode": false, - "pipeline.minimax_h3.video_decode_backend": "h3-vae", "pipeline.workload_type": "t2v" } ] @@ -471,54 +465,19 @@ "upsampler_weights": null, "vae_weights": null }, - "dit": {}, "dmd_denoising_steps": null, "embedded_cfg_scale": 6.0, "experimental": {}, "flow_shift": 7, - "longcat": { - "bsa_cdf_threshold": null, - "bsa_chunk_k": null, - "bsa_chunk_q": null, - "bsa_sparsity": null, - "enable_bsa": null - }, - "ltx2": { - "audio_latent_path": null, - "initial_latent_path": null, - "legacy_native_noise_order": false, - "refine": { - "add_noise": true, - "audio_noise_path": null, - "enabled": false, - "guidance_scale": 1.0, - "image_crf": null, - "lora_path": null, - "noise_path": null, - "num_inference_steps": 3, - "transformer_path": null, - "video_position_offset_sec": null - }, - "use_distilled_sigmas": true, - "vae_spatial_tile_overlap_in_pixels": null, - "vae_spatial_tile_size_in_pixels": null, - "vae_temporal_tile_overlap_in_frames": null, - "vae_temporal_tile_size_in_frames": null - }, - "minimax_h3": { - "sequential_load": null, - "taeh3_checkpoint": null, - "taeh3_chunk_size": 5, - "vae_parallel_decode": false, - "vae_parallel_decode_strategy": "gather", - "vae_parallel_encode": false, - "video_decode_backend": "h3-vae" + "model": { + "dit": {}, + "family": "generic", + "vae": {} }, "output_type": "pil", "preset": null, "preset_overrides": {}, "preset_version": null, - "vae": {}, "vae_sp": true, "vae_tiling": true, "workload_type": "t2v" diff --git a/fastvideo/tests/api/config_snapshot_goldens/registry/weizhou03__Wan2.1-Fun-1.3B-InP-Diffusers.json b/fastvideo/tests/api/config_snapshot_goldens/registry/weizhou03__Wan2.1-Fun-1.3B-InP-Diffusers.json index be88f6bff..117ab261c 100644 --- a/fastvideo/tests/api/config_snapshot_goldens/registry/weizhou03__Wan2.1-Fun-1.3B-InP-Diffusers.json +++ b/fastvideo/tests/api/config_snapshot_goldens/registry/weizhou03__Wan2.1-Fun-1.3B-InP-Diffusers.json @@ -310,9 +310,13 @@ "pipeline_config_class": "fastvideo.models.wan.pipeline_config.WanI2V480PConfig", "resolution_decisions": [ [ - "fill_vae_parallel_from_env", + "fill_model_family[generic]", { - "pipeline.minimax_h3.vae_parallel_decode_strategy": "gather" + "pipeline.model": { + "dit": {}, + "family": "generic", + "vae": {} + } } ], [ @@ -354,16 +358,6 @@ "engine.compile.regional": false, "engine.compile.text_encoder_enabled": false, "engine.compile.vae_enabled": false, - "pipeline.ltx2.legacy_native_noise_order": false, - "pipeline.ltx2.refine.add_noise": true, - "pipeline.ltx2.refine.enabled": false, - "pipeline.ltx2.refine.guidance_scale": 1.0, - "pipeline.ltx2.refine.num_inference_steps": 3, - "pipeline.ltx2.use_distilled_sigmas": true, - "pipeline.minimax_h3.taeh3_chunk_size": 5, - "pipeline.minimax_h3.vae_parallel_decode": false, - "pipeline.minimax_h3.vae_parallel_encode": false, - "pipeline.minimax_h3.video_decode_backend": "h3-vae", "pipeline.workload_type": "t2v" } ] @@ -446,54 +440,19 @@ "upsampler_weights": null, "vae_weights": null }, - "dit": {}, "dmd_denoising_steps": null, "embedded_cfg_scale": 6.0, "experimental": {}, "flow_shift": 3.0, - "longcat": { - "bsa_cdf_threshold": null, - "bsa_chunk_k": null, - "bsa_chunk_q": null, - "bsa_sparsity": null, - "enable_bsa": null - }, - "ltx2": { - "audio_latent_path": null, - "initial_latent_path": null, - "legacy_native_noise_order": false, - "refine": { - "add_noise": true, - "audio_noise_path": null, - "enabled": false, - "guidance_scale": 1.0, - "image_crf": null, - "lora_path": null, - "noise_path": null, - "num_inference_steps": 3, - "transformer_path": null, - "video_position_offset_sec": null - }, - "use_distilled_sigmas": true, - "vae_spatial_tile_overlap_in_pixels": null, - "vae_spatial_tile_size_in_pixels": null, - "vae_temporal_tile_overlap_in_frames": null, - "vae_temporal_tile_size_in_frames": null - }, - "minimax_h3": { - "sequential_load": null, - "taeh3_checkpoint": null, - "taeh3_chunk_size": 5, - "vae_parallel_decode": false, - "vae_parallel_decode_strategy": "gather", - "vae_parallel_encode": false, - "video_decode_backend": "h3-vae" + "model": { + "dit": {}, + "family": "generic", + "vae": {} }, "output_type": "pil", "preset": null, "preset_overrides": {}, "preset_version": null, - "vae": {}, "vae_sp": false, "vae_tiling": false, "workload_type": "t2v" diff --git a/fastvideo/tests/api/config_snapshot_goldens/registry/wlsaidhi__SFWan2.1-T2V-1.3B-Diffusers.json b/fastvideo/tests/api/config_snapshot_goldens/registry/wlsaidhi__SFWan2.1-T2V-1.3B-Diffusers.json index bc63b1bf6..1605d51a0 100644 --- a/fastvideo/tests/api/config_snapshot_goldens/registry/wlsaidhi__SFWan2.1-T2V-1.3B-Diffusers.json +++ b/fastvideo/tests/api/config_snapshot_goldens/registry/wlsaidhi__SFWan2.1-T2V-1.3B-Diffusers.json @@ -281,9 +281,13 @@ "pipeline_config_class": "fastvideo.models.wan.pipeline_config.SelfForcingWanT2V480PConfig", "resolution_decisions": [ [ - "fill_vae_parallel_from_env", + "fill_model_family[generic]", { - "pipeline.minimax_h3.vae_parallel_decode_strategy": "gather" + "pipeline.model": { + "dit": {}, + "family": "generic", + "vae": {} + } } ], [ @@ -331,16 +335,6 @@ "engine.compile.regional": false, "engine.compile.text_encoder_enabled": false, "engine.compile.vae_enabled": false, - "pipeline.ltx2.legacy_native_noise_order": false, - "pipeline.ltx2.refine.add_noise": true, - "pipeline.ltx2.refine.enabled": false, - "pipeline.ltx2.refine.guidance_scale": 1.0, - "pipeline.ltx2.refine.num_inference_steps": 3, - "pipeline.ltx2.use_distilled_sigmas": true, - "pipeline.minimax_h3.taeh3_chunk_size": 5, - "pipeline.minimax_h3.vae_parallel_decode": false, - "pipeline.minimax_h3.vae_parallel_encode": false, - "pipeline.minimax_h3.video_decode_backend": "h3-vae", "pipeline.workload_type": "t2v" } ] @@ -423,7 +417,6 @@ "upsampler_weights": null, "vae_weights": null }, - "dit": {}, "dmd_denoising_steps": [ 1000, 750, @@ -433,49 +426,15 @@ "embedded_cfg_scale": 6.0, "experimental": {}, "flow_shift": 5.0, - "longcat": { - "bsa_cdf_threshold": null, - "bsa_chunk_k": null, - "bsa_chunk_q": null, - "bsa_sparsity": null, - "enable_bsa": null - }, - "ltx2": { - "audio_latent_path": null, - "initial_latent_path": null, - "legacy_native_noise_order": false, - "refine": { - "add_noise": true, - "audio_noise_path": null, - "enabled": false, - "guidance_scale": 1.0, - "image_crf": null, - "lora_path": null, - "noise_path": null, - "num_inference_steps": 3, - "transformer_path": null, - "video_position_offset_sec": null - }, - "use_distilled_sigmas": true, - "vae_spatial_tile_overlap_in_pixels": null, - "vae_spatial_tile_size_in_pixels": null, - "vae_temporal_tile_overlap_in_frames": null, - "vae_temporal_tile_size_in_frames": null - }, - "minimax_h3": { - "sequential_load": null, - "taeh3_checkpoint": null, - "taeh3_chunk_size": 5, - "vae_parallel_decode": false, - "vae_parallel_decode_strategy": "gather", - "vae_parallel_encode": false, - "video_decode_backend": "h3-vae" + "model": { + "dit": {}, + "family": "generic", + "vae": {} }, "output_type": "pil", "preset": null, "preset_overrides": {}, "preset_version": null, - "vae": {}, "vae_sp": false, "vae_tiling": false, "workload_type": "t2v" diff --git a/fastvideo/tests/api/config_snapshot_goldens/registry/zai-org__GLM-Image.json b/fastvideo/tests/api/config_snapshot_goldens/registry/zai-org__GLM-Image.json index 3463821c3..2205d01b8 100644 --- a/fastvideo/tests/api/config_snapshot_goldens/registry/zai-org__GLM-Image.json +++ b/fastvideo/tests/api/config_snapshot_goldens/registry/zai-org__GLM-Image.json @@ -266,9 +266,13 @@ "pipeline_config_class": "fastvideo.configs.pipelines.glm_image.GlmImageConfig", "resolution_decisions": [ [ - "fill_vae_parallel_from_env", + "fill_model_family[generic]", { - "pipeline.minimax_h3.vae_parallel_decode_strategy": "gather" + "pipeline.model": { + "dit": {}, + "family": "generic", + "vae": {} + } } ], [ @@ -309,16 +313,6 @@ "engine.compile.regional": false, "engine.compile.text_encoder_enabled": false, "engine.compile.vae_enabled": false, - "pipeline.ltx2.legacy_native_noise_order": false, - "pipeline.ltx2.refine.add_noise": true, - "pipeline.ltx2.refine.enabled": false, - "pipeline.ltx2.refine.guidance_scale": 1.0, - "pipeline.ltx2.refine.num_inference_steps": 3, - "pipeline.ltx2.use_distilled_sigmas": true, - "pipeline.minimax_h3.taeh3_chunk_size": 5, - "pipeline.minimax_h3.vae_parallel_decode": false, - "pipeline.minimax_h3.vae_parallel_encode": false, - "pipeline.minimax_h3.video_decode_backend": "h3-vae", "pipeline.workload_type": "t2v" } ] @@ -401,54 +395,19 @@ "upsampler_weights": null, "vae_weights": null }, - "dit": {}, "dmd_denoising_steps": null, "embedded_cfg_scale": 7.5, "experimental": {}, "flow_shift": 1.0, - "longcat": { - "bsa_cdf_threshold": null, - "bsa_chunk_k": null, - "bsa_chunk_q": null, - "bsa_sparsity": null, - "enable_bsa": null - }, - "ltx2": { - "audio_latent_path": null, - "initial_latent_path": null, - "legacy_native_noise_order": false, - "refine": { - "add_noise": true, - "audio_noise_path": null, - "enabled": false, - "guidance_scale": 1.0, - "image_crf": null, - "lora_path": null, - "noise_path": null, - "num_inference_steps": 3, - "transformer_path": null, - "video_position_offset_sec": null - }, - "use_distilled_sigmas": true, - "vae_spatial_tile_overlap_in_pixels": null, - "vae_spatial_tile_size_in_pixels": null, - "vae_temporal_tile_overlap_in_frames": null, - "vae_temporal_tile_size_in_frames": null - }, - "minimax_h3": { - "sequential_load": null, - "taeh3_checkpoint": null, - "taeh3_chunk_size": 5, - "vae_parallel_decode": false, - "vae_parallel_decode_strategy": "gather", - "vae_parallel_encode": false, - "video_decode_backend": "h3-vae" + "model": { + "dit": {}, + "family": "generic", + "vae": {} }, "output_type": "pil", "preset": null, "preset_overrides": {}, "preset_version": null, - "vae": {}, "vae_sp": false, "vae_tiling": true, "workload_type": "t2v" diff --git a/fastvideo/tests/api/config_snapshot_goldens/yaml/apps__dreamverse__serve_configs__streaming_demo.yaml.json b/fastvideo/tests/api/config_snapshot_goldens/yaml/apps__dreamverse__serve_configs__streaming_demo.yaml.json index ffcc68dcf..52672a6b7 100644 --- a/fastvideo/tests/api/config_snapshot_goldens/yaml/apps__dreamverse__serve_configs__streaming_demo.yaml.json +++ b/fastvideo/tests/api/config_snapshot_goldens/yaml/apps__dreamverse__serve_configs__streaming_demo.yaml.json @@ -273,9 +273,33 @@ ], "resolution_decisions": [ [ - "fill_vae_parallel_from_env", + "fill_model_family[ltx2]", { - "pipeline.minimax_h3.vae_parallel_decode_strategy": "gather" + "pipeline.model": { + "audio_latent_path": null, + "dit": {}, + "family": "ltx2", + "initial_latent_path": null, + "legacy_native_noise_order": null, + "refine": { + "add_noise": null, + "audio_noise_path": null, + "enabled": null, + "guidance_scale": null, + "image_crf": null, + "lora_path": null, + "noise_path": null, + "num_inference_steps": null, + "transformer_path": null, + "video_position_offset_sec": null + }, + "use_distilled_sigmas": null, + "vae": {}, + "vae_spatial_tile_overlap_in_pixels": null, + "vae_spatial_tile_size_in_pixels": null, + "vae_temporal_tile_overlap_in_frames": null, + "vae_temporal_tile_size_in_frames": null + } } ], [ @@ -294,10 +318,10 @@ [ "copy_refine_preset_overrides", { - "pipeline.ltx2.refine.add_noise": true, - "pipeline.ltx2.refine.enabled": true, - "pipeline.ltx2.refine.guidance_scale": 1.0, - "pipeline.ltx2.refine.num_inference_steps": 2 + "pipeline.model.refine.add_noise": true, + "pipeline.model.refine.enabled": true, + "pipeline.model.refine.guidance_scale": 1.0, + "pipeline.model.refine.num_inference_steps": 2 } ], [ @@ -317,12 +341,8 @@ "engine.compile.audio_vae_enabled": false, "engine.compile.regional": false, "engine.compile.vae_enabled": false, - "pipeline.ltx2.legacy_native_noise_order": false, - "pipeline.ltx2.use_distilled_sigmas": true, - "pipeline.minimax_h3.taeh3_chunk_size": 5, - "pipeline.minimax_h3.vae_parallel_decode": false, - "pipeline.minimax_h3.vae_parallel_encode": false, - "pipeline.minimax_h3.video_decode_backend": "h3-vae" + "pipeline.model.legacy_native_noise_order": false, + "pipeline.model.use_distilled_sigmas": true } ] ], @@ -407,20 +427,14 @@ "upsampler_weights": null, "vae_weights": null }, - "dit": {}, "dmd_denoising_steps": null, "embedded_cfg_scale": 6.0, "experimental": {}, "flow_shift": null, - "longcat": { - "bsa_cdf_threshold": null, - "bsa_chunk_k": null, - "bsa_chunk_q": null, - "bsa_sparsity": null, - "enable_bsa": null - }, - "ltx2": { + "model": { "audio_latent_path": null, + "dit": {}, + "family": "ltx2", "initial_latent_path": null, "legacy_native_noise_order": false, "refine": { @@ -436,20 +450,12 @@ "video_position_offset_sec": null }, "use_distilled_sigmas": true, + "vae": {}, "vae_spatial_tile_overlap_in_pixels": null, "vae_spatial_tile_size_in_pixels": null, "vae_temporal_tile_overlap_in_frames": null, "vae_temporal_tile_size_in_frames": null }, - "minimax_h3": { - "sequential_load": null, - "taeh3_checkpoint": null, - "taeh3_chunk_size": 5, - "vae_parallel_decode": false, - "vae_parallel_decode_strategy": "gather", - "vae_parallel_encode": false, - "video_decode_backend": "h3-vae" - }, "output_type": "pil", "preset": null, "preset_overrides": { @@ -461,7 +467,6 @@ } }, "preset_version": null, - "vae": {}, "vae_sp": false, "vae_tiling": false, "workload_type": "t2v" diff --git a/fastvideo/tests/api/config_snapshot_goldens/yaml/examples__inference__ltx2_3__i2v_5s2_1024x1536.yaml.json b/fastvideo/tests/api/config_snapshot_goldens/yaml/examples__inference__ltx2_3__i2v_5s2_1024x1536.yaml.json index c414cf164..175dbac8c 100644 --- a/fastvideo/tests/api/config_snapshot_goldens/yaml/examples__inference__ltx2_3__i2v_5s2_1024x1536.yaml.json +++ b/fastvideo/tests/api/config_snapshot_goldens/yaml/examples__inference__ltx2_3__i2v_5s2_1024x1536.yaml.json @@ -268,9 +268,33 @@ ], "resolution_decisions": [ [ - "fill_vae_parallel_from_env", + "fill_model_family[ltx2]", { - "pipeline.minimax_h3.vae_parallel_decode_strategy": "gather" + "pipeline.model": { + "audio_latent_path": null, + "dit": {}, + "family": "ltx2", + "initial_latent_path": null, + "legacy_native_noise_order": null, + "refine": { + "add_noise": null, + "audio_noise_path": null, + "enabled": null, + "guidance_scale": null, + "image_crf": null, + "lora_path": null, + "noise_path": null, + "num_inference_steps": null, + "transformer_path": null, + "video_position_offset_sec": null + }, + "use_distilled_sigmas": null, + "vae": {}, + "vae_spatial_tile_overlap_in_pixels": null, + "vae_spatial_tile_size_in_pixels": null, + "vae_temporal_tile_overlap_in_frames": null, + "vae_temporal_tile_size_in_frames": null + } } ], [ @@ -289,10 +313,10 @@ [ "copy_refine_preset_overrides", { - "pipeline.ltx2.refine.add_noise": true, - "pipeline.ltx2.refine.enabled": true, - "pipeline.ltx2.refine.guidance_scale": 1.0, - "pipeline.ltx2.refine.num_inference_steps": 2 + "pipeline.model.refine.add_noise": true, + "pipeline.model.refine.enabled": true, + "pipeline.model.refine.guidance_scale": 1.0, + "pipeline.model.refine.num_inference_steps": 2 } ], [ @@ -319,12 +343,8 @@ "engine.compile.regional": false, "engine.compile.text_encoder_enabled": false, "engine.compile.vae_enabled": false, - "pipeline.ltx2.legacy_native_noise_order": false, - "pipeline.ltx2.use_distilled_sigmas": true, - "pipeline.minimax_h3.taeh3_chunk_size": 5, - "pipeline.minimax_h3.vae_parallel_decode": false, - "pipeline.minimax_h3.vae_parallel_encode": false, - "pipeline.minimax_h3.video_decode_backend": "h3-vae" + "pipeline.model.legacy_native_noise_order": false, + "pipeline.model.use_distilled_sigmas": true } ] ], @@ -406,20 +426,14 @@ "upsampler_weights": null, "vae_weights": null }, - "dit": {}, "dmd_denoising_steps": null, "embedded_cfg_scale": 6.0, "experimental": {}, "flow_shift": null, - "longcat": { - "bsa_cdf_threshold": null, - "bsa_chunk_k": null, - "bsa_chunk_q": null, - "bsa_sparsity": null, - "enable_bsa": null - }, - "ltx2": { + "model": { "audio_latent_path": null, + "dit": {}, + "family": "ltx2", "initial_latent_path": null, "legacy_native_noise_order": false, "refine": { @@ -435,20 +449,12 @@ "video_position_offset_sec": null }, "use_distilled_sigmas": true, + "vae": {}, "vae_spatial_tile_overlap_in_pixels": null, "vae_spatial_tile_size_in_pixels": null, "vae_temporal_tile_overlap_in_frames": null, "vae_temporal_tile_size_in_frames": null }, - "minimax_h3": { - "sequential_load": null, - "taeh3_checkpoint": null, - "taeh3_chunk_size": 5, - "vae_parallel_decode": false, - "vae_parallel_decode_strategy": "gather", - "vae_parallel_encode": false, - "video_decode_backend": "h3-vae" - }, "output_type": "pil", "preset": null, "preset_overrides": { @@ -460,7 +466,6 @@ } }, "preset_version": null, - "vae": {}, "vae_sp": false, "vae_tiling": true, "workload_type": "i2v" diff --git a/fastvideo/tests/api/config_snapshot_goldens/yaml/examples__inference__ltx2_3__i2v_5s2_1280x832.yaml.json b/fastvideo/tests/api/config_snapshot_goldens/yaml/examples__inference__ltx2_3__i2v_5s2_1280x832.yaml.json index 6cf9e820b..1ea158da0 100644 --- a/fastvideo/tests/api/config_snapshot_goldens/yaml/examples__inference__ltx2_3__i2v_5s2_1280x832.yaml.json +++ b/fastvideo/tests/api/config_snapshot_goldens/yaml/examples__inference__ltx2_3__i2v_5s2_1280x832.yaml.json @@ -268,9 +268,33 @@ ], "resolution_decisions": [ [ - "fill_vae_parallel_from_env", + "fill_model_family[ltx2]", { - "pipeline.minimax_h3.vae_parallel_decode_strategy": "gather" + "pipeline.model": { + "audio_latent_path": null, + "dit": {}, + "family": "ltx2", + "initial_latent_path": null, + "legacy_native_noise_order": null, + "refine": { + "add_noise": null, + "audio_noise_path": null, + "enabled": null, + "guidance_scale": null, + "image_crf": null, + "lora_path": null, + "noise_path": null, + "num_inference_steps": null, + "transformer_path": null, + "video_position_offset_sec": null + }, + "use_distilled_sigmas": null, + "vae": {}, + "vae_spatial_tile_overlap_in_pixels": null, + "vae_spatial_tile_size_in_pixels": null, + "vae_temporal_tile_overlap_in_frames": null, + "vae_temporal_tile_size_in_frames": null + } } ], [ @@ -289,10 +313,10 @@ [ "copy_refine_preset_overrides", { - "pipeline.ltx2.refine.add_noise": true, - "pipeline.ltx2.refine.enabled": true, - "pipeline.ltx2.refine.guidance_scale": 1.0, - "pipeline.ltx2.refine.num_inference_steps": 2 + "pipeline.model.refine.add_noise": true, + "pipeline.model.refine.enabled": true, + "pipeline.model.refine.guidance_scale": 1.0, + "pipeline.model.refine.num_inference_steps": 2 } ], [ @@ -319,12 +343,8 @@ "engine.compile.regional": false, "engine.compile.text_encoder_enabled": false, "engine.compile.vae_enabled": false, - "pipeline.ltx2.legacy_native_noise_order": false, - "pipeline.ltx2.use_distilled_sigmas": true, - "pipeline.minimax_h3.taeh3_chunk_size": 5, - "pipeline.minimax_h3.vae_parallel_decode": false, - "pipeline.minimax_h3.vae_parallel_encode": false, - "pipeline.minimax_h3.video_decode_backend": "h3-vae" + "pipeline.model.legacy_native_noise_order": false, + "pipeline.model.use_distilled_sigmas": true } ] ], @@ -406,20 +426,14 @@ "upsampler_weights": null, "vae_weights": null }, - "dit": {}, "dmd_denoising_steps": null, "embedded_cfg_scale": 6.0, "experimental": {}, "flow_shift": null, - "longcat": { - "bsa_cdf_threshold": null, - "bsa_chunk_k": null, - "bsa_chunk_q": null, - "bsa_sparsity": null, - "enable_bsa": null - }, - "ltx2": { + "model": { "audio_latent_path": null, + "dit": {}, + "family": "ltx2", "initial_latent_path": null, "legacy_native_noise_order": false, "refine": { @@ -435,20 +449,12 @@ "video_position_offset_sec": null }, "use_distilled_sigmas": true, + "vae": {}, "vae_spatial_tile_overlap_in_pixels": null, "vae_spatial_tile_size_in_pixels": null, "vae_temporal_tile_overlap_in_frames": null, "vae_temporal_tile_size_in_frames": null }, - "minimax_h3": { - "sequential_load": null, - "taeh3_checkpoint": null, - "taeh3_chunk_size": 5, - "vae_parallel_decode": false, - "vae_parallel_decode_strategy": "gather", - "vae_parallel_encode": false, - "video_decode_backend": "h3-vae" - }, "output_type": "pil", "preset": null, "preset_overrides": { @@ -460,7 +466,6 @@ } }, "preset_version": null, - "vae": {}, "vae_sp": false, "vae_tiling": true, "workload_type": "i2v" diff --git a/fastvideo/tests/api/config_snapshot_goldens/yaml/examples__inference__ltx2_3__i2v_5s2_512x768.yaml.json b/fastvideo/tests/api/config_snapshot_goldens/yaml/examples__inference__ltx2_3__i2v_5s2_512x768.yaml.json index 6b452ac62..518d67fbc 100644 --- a/fastvideo/tests/api/config_snapshot_goldens/yaml/examples__inference__ltx2_3__i2v_5s2_512x768.yaml.json +++ b/fastvideo/tests/api/config_snapshot_goldens/yaml/examples__inference__ltx2_3__i2v_5s2_512x768.yaml.json @@ -268,9 +268,33 @@ ], "resolution_decisions": [ [ - "fill_vae_parallel_from_env", + "fill_model_family[ltx2]", { - "pipeline.minimax_h3.vae_parallel_decode_strategy": "gather" + "pipeline.model": { + "audio_latent_path": null, + "dit": {}, + "family": "ltx2", + "initial_latent_path": null, + "legacy_native_noise_order": null, + "refine": { + "add_noise": null, + "audio_noise_path": null, + "enabled": null, + "guidance_scale": null, + "image_crf": null, + "lora_path": null, + "noise_path": null, + "num_inference_steps": null, + "transformer_path": null, + "video_position_offset_sec": null + }, + "use_distilled_sigmas": null, + "vae": {}, + "vae_spatial_tile_overlap_in_pixels": null, + "vae_spatial_tile_size_in_pixels": null, + "vae_temporal_tile_overlap_in_frames": null, + "vae_temporal_tile_size_in_frames": null + } } ], [ @@ -289,10 +313,10 @@ [ "copy_refine_preset_overrides", { - "pipeline.ltx2.refine.add_noise": true, - "pipeline.ltx2.refine.enabled": true, - "pipeline.ltx2.refine.guidance_scale": 1.0, - "pipeline.ltx2.refine.num_inference_steps": 2 + "pipeline.model.refine.add_noise": true, + "pipeline.model.refine.enabled": true, + "pipeline.model.refine.guidance_scale": 1.0, + "pipeline.model.refine.num_inference_steps": 2 } ], [ @@ -319,12 +343,8 @@ "engine.compile.regional": false, "engine.compile.text_encoder_enabled": false, "engine.compile.vae_enabled": false, - "pipeline.ltx2.legacy_native_noise_order": false, - "pipeline.ltx2.use_distilled_sigmas": true, - "pipeline.minimax_h3.taeh3_chunk_size": 5, - "pipeline.minimax_h3.vae_parallel_decode": false, - "pipeline.minimax_h3.vae_parallel_encode": false, - "pipeline.minimax_h3.video_decode_backend": "h3-vae" + "pipeline.model.legacy_native_noise_order": false, + "pipeline.model.use_distilled_sigmas": true } ] ], @@ -406,20 +426,14 @@ "upsampler_weights": null, "vae_weights": null }, - "dit": {}, "dmd_denoising_steps": null, "embedded_cfg_scale": 6.0, "experimental": {}, "flow_shift": null, - "longcat": { - "bsa_cdf_threshold": null, - "bsa_chunk_k": null, - "bsa_chunk_q": null, - "bsa_sparsity": null, - "enable_bsa": null - }, - "ltx2": { + "model": { "audio_latent_path": null, + "dit": {}, + "family": "ltx2", "initial_latent_path": null, "legacy_native_noise_order": false, "refine": { @@ -435,20 +449,12 @@ "video_position_offset_sec": null }, "use_distilled_sigmas": true, + "vae": {}, "vae_spatial_tile_overlap_in_pixels": null, "vae_spatial_tile_size_in_pixels": null, "vae_temporal_tile_overlap_in_frames": null, "vae_temporal_tile_size_in_frames": null }, - "minimax_h3": { - "sequential_load": null, - "taeh3_checkpoint": null, - "taeh3_chunk_size": 5, - "vae_parallel_decode": false, - "vae_parallel_decode_strategy": "gather", - "vae_parallel_encode": false, - "video_decode_backend": "h3-vae" - }, "output_type": "pil", "preset": null, "preset_overrides": { @@ -460,7 +466,6 @@ } }, "preset_version": null, - "vae": {}, "vae_sp": false, "vae_tiling": true, "workload_type": "i2v" diff --git a/fastvideo/tests/api/config_snapshot_goldens/yaml/examples__inference__ltx2_3__i2v_5s2_768x1280.yaml.json b/fastvideo/tests/api/config_snapshot_goldens/yaml/examples__inference__ltx2_3__i2v_5s2_768x1280.yaml.json index 1aa0cfff6..94fd387c5 100644 --- a/fastvideo/tests/api/config_snapshot_goldens/yaml/examples__inference__ltx2_3__i2v_5s2_768x1280.yaml.json +++ b/fastvideo/tests/api/config_snapshot_goldens/yaml/examples__inference__ltx2_3__i2v_5s2_768x1280.yaml.json @@ -268,9 +268,33 @@ ], "resolution_decisions": [ [ - "fill_vae_parallel_from_env", + "fill_model_family[ltx2]", { - "pipeline.minimax_h3.vae_parallel_decode_strategy": "gather" + "pipeline.model": { + "audio_latent_path": null, + "dit": {}, + "family": "ltx2", + "initial_latent_path": null, + "legacy_native_noise_order": null, + "refine": { + "add_noise": null, + "audio_noise_path": null, + "enabled": null, + "guidance_scale": null, + "image_crf": null, + "lora_path": null, + "noise_path": null, + "num_inference_steps": null, + "transformer_path": null, + "video_position_offset_sec": null + }, + "use_distilled_sigmas": null, + "vae": {}, + "vae_spatial_tile_overlap_in_pixels": null, + "vae_spatial_tile_size_in_pixels": null, + "vae_temporal_tile_overlap_in_frames": null, + "vae_temporal_tile_size_in_frames": null + } } ], [ @@ -289,10 +313,10 @@ [ "copy_refine_preset_overrides", { - "pipeline.ltx2.refine.add_noise": true, - "pipeline.ltx2.refine.enabled": true, - "pipeline.ltx2.refine.guidance_scale": 1.0, - "pipeline.ltx2.refine.num_inference_steps": 2 + "pipeline.model.refine.add_noise": true, + "pipeline.model.refine.enabled": true, + "pipeline.model.refine.guidance_scale": 1.0, + "pipeline.model.refine.num_inference_steps": 2 } ], [ @@ -319,12 +343,8 @@ "engine.compile.regional": false, "engine.compile.text_encoder_enabled": false, "engine.compile.vae_enabled": false, - "pipeline.ltx2.legacy_native_noise_order": false, - "pipeline.ltx2.use_distilled_sigmas": true, - "pipeline.minimax_h3.taeh3_chunk_size": 5, - "pipeline.minimax_h3.vae_parallel_decode": false, - "pipeline.minimax_h3.vae_parallel_encode": false, - "pipeline.minimax_h3.video_decode_backend": "h3-vae" + "pipeline.model.legacy_native_noise_order": false, + "pipeline.model.use_distilled_sigmas": true } ] ], @@ -406,20 +426,14 @@ "upsampler_weights": null, "vae_weights": null }, - "dit": {}, "dmd_denoising_steps": null, "embedded_cfg_scale": 6.0, "experimental": {}, "flow_shift": null, - "longcat": { - "bsa_cdf_threshold": null, - "bsa_chunk_k": null, - "bsa_chunk_q": null, - "bsa_sparsity": null, - "enable_bsa": null - }, - "ltx2": { + "model": { "audio_latent_path": null, + "dit": {}, + "family": "ltx2", "initial_latent_path": null, "legacy_native_noise_order": false, "refine": { @@ -435,20 +449,12 @@ "video_position_offset_sec": null }, "use_distilled_sigmas": true, + "vae": {}, "vae_spatial_tile_overlap_in_pixels": null, "vae_spatial_tile_size_in_pixels": null, "vae_temporal_tile_overlap_in_frames": null, "vae_temporal_tile_size_in_frames": null }, - "minimax_h3": { - "sequential_load": null, - "taeh3_checkpoint": null, - "taeh3_chunk_size": 5, - "vae_parallel_decode": false, - "vae_parallel_decode_strategy": "gather", - "vae_parallel_encode": false, - "video_decode_backend": "h3-vae" - }, "output_type": "pil", "preset": null, "preset_overrides": { @@ -460,7 +466,6 @@ } }, "preset_version": null, - "vae": {}, "vae_sp": false, "vae_tiling": true, "workload_type": "i2v" diff --git a/fastvideo/tests/api/config_snapshot_goldens/yaml/examples__inference__ltx2_3__i2v_8s3_1024x1536.yaml.json b/fastvideo/tests/api/config_snapshot_goldens/yaml/examples__inference__ltx2_3__i2v_8s3_1024x1536.yaml.json index a29edc88a..19940dc16 100644 --- a/fastvideo/tests/api/config_snapshot_goldens/yaml/examples__inference__ltx2_3__i2v_8s3_1024x1536.yaml.json +++ b/fastvideo/tests/api/config_snapshot_goldens/yaml/examples__inference__ltx2_3__i2v_8s3_1024x1536.yaml.json @@ -268,9 +268,33 @@ ], "resolution_decisions": [ [ - "fill_vae_parallel_from_env", + "fill_model_family[ltx2]", { - "pipeline.minimax_h3.vae_parallel_decode_strategy": "gather" + "pipeline.model": { + "audio_latent_path": null, + "dit": {}, + "family": "ltx2", + "initial_latent_path": null, + "legacy_native_noise_order": null, + "refine": { + "add_noise": null, + "audio_noise_path": null, + "enabled": null, + "guidance_scale": null, + "image_crf": null, + "lora_path": null, + "noise_path": null, + "num_inference_steps": null, + "transformer_path": null, + "video_position_offset_sec": null + }, + "use_distilled_sigmas": null, + "vae": {}, + "vae_spatial_tile_overlap_in_pixels": null, + "vae_spatial_tile_size_in_pixels": null, + "vae_temporal_tile_overlap_in_frames": null, + "vae_temporal_tile_size_in_frames": null + } } ], [ @@ -289,10 +313,10 @@ [ "copy_refine_preset_overrides", { - "pipeline.ltx2.refine.add_noise": true, - "pipeline.ltx2.refine.enabled": true, - "pipeline.ltx2.refine.guidance_scale": 1.0, - "pipeline.ltx2.refine.num_inference_steps": 3 + "pipeline.model.refine.add_noise": true, + "pipeline.model.refine.enabled": true, + "pipeline.model.refine.guidance_scale": 1.0, + "pipeline.model.refine.num_inference_steps": 3 } ], [ @@ -319,12 +343,8 @@ "engine.compile.regional": false, "engine.compile.text_encoder_enabled": false, "engine.compile.vae_enabled": false, - "pipeline.ltx2.legacy_native_noise_order": false, - "pipeline.ltx2.use_distilled_sigmas": true, - "pipeline.minimax_h3.taeh3_chunk_size": 5, - "pipeline.minimax_h3.vae_parallel_decode": false, - "pipeline.minimax_h3.vae_parallel_encode": false, - "pipeline.minimax_h3.video_decode_backend": "h3-vae" + "pipeline.model.legacy_native_noise_order": false, + "pipeline.model.use_distilled_sigmas": true } ] ], @@ -406,20 +426,14 @@ "upsampler_weights": null, "vae_weights": null }, - "dit": {}, "dmd_denoising_steps": null, "embedded_cfg_scale": 6.0, "experimental": {}, "flow_shift": null, - "longcat": { - "bsa_cdf_threshold": null, - "bsa_chunk_k": null, - "bsa_chunk_q": null, - "bsa_sparsity": null, - "enable_bsa": null - }, - "ltx2": { + "model": { "audio_latent_path": null, + "dit": {}, + "family": "ltx2", "initial_latent_path": null, "legacy_native_noise_order": false, "refine": { @@ -435,20 +449,12 @@ "video_position_offset_sec": null }, "use_distilled_sigmas": true, + "vae": {}, "vae_spatial_tile_overlap_in_pixels": null, "vae_spatial_tile_size_in_pixels": null, "vae_temporal_tile_overlap_in_frames": null, "vae_temporal_tile_size_in_frames": null }, - "minimax_h3": { - "sequential_load": null, - "taeh3_checkpoint": null, - "taeh3_chunk_size": 5, - "vae_parallel_decode": false, - "vae_parallel_decode_strategy": "gather", - "vae_parallel_encode": false, - "video_decode_backend": "h3-vae" - }, "output_type": "pil", "preset": null, "preset_overrides": { @@ -460,7 +466,6 @@ } }, "preset_version": null, - "vae": {}, "vae_sp": false, "vae_tiling": true, "workload_type": "i2v" diff --git a/fastvideo/tests/api/config_snapshot_goldens/yaml/examples__inference__ltx2_3__i2v_8s3_1280x832.yaml.json b/fastvideo/tests/api/config_snapshot_goldens/yaml/examples__inference__ltx2_3__i2v_8s3_1280x832.yaml.json index 35dce8891..f3f233d8b 100644 --- a/fastvideo/tests/api/config_snapshot_goldens/yaml/examples__inference__ltx2_3__i2v_8s3_1280x832.yaml.json +++ b/fastvideo/tests/api/config_snapshot_goldens/yaml/examples__inference__ltx2_3__i2v_8s3_1280x832.yaml.json @@ -268,9 +268,33 @@ ], "resolution_decisions": [ [ - "fill_vae_parallel_from_env", + "fill_model_family[ltx2]", { - "pipeline.minimax_h3.vae_parallel_decode_strategy": "gather" + "pipeline.model": { + "audio_latent_path": null, + "dit": {}, + "family": "ltx2", + "initial_latent_path": null, + "legacy_native_noise_order": null, + "refine": { + "add_noise": null, + "audio_noise_path": null, + "enabled": null, + "guidance_scale": null, + "image_crf": null, + "lora_path": null, + "noise_path": null, + "num_inference_steps": null, + "transformer_path": null, + "video_position_offset_sec": null + }, + "use_distilled_sigmas": null, + "vae": {}, + "vae_spatial_tile_overlap_in_pixels": null, + "vae_spatial_tile_size_in_pixels": null, + "vae_temporal_tile_overlap_in_frames": null, + "vae_temporal_tile_size_in_frames": null + } } ], [ @@ -289,10 +313,10 @@ [ "copy_refine_preset_overrides", { - "pipeline.ltx2.refine.add_noise": true, - "pipeline.ltx2.refine.enabled": true, - "pipeline.ltx2.refine.guidance_scale": 1.0, - "pipeline.ltx2.refine.num_inference_steps": 3 + "pipeline.model.refine.add_noise": true, + "pipeline.model.refine.enabled": true, + "pipeline.model.refine.guidance_scale": 1.0, + "pipeline.model.refine.num_inference_steps": 3 } ], [ @@ -319,12 +343,8 @@ "engine.compile.regional": false, "engine.compile.text_encoder_enabled": false, "engine.compile.vae_enabled": false, - "pipeline.ltx2.legacy_native_noise_order": false, - "pipeline.ltx2.use_distilled_sigmas": true, - "pipeline.minimax_h3.taeh3_chunk_size": 5, - "pipeline.minimax_h3.vae_parallel_decode": false, - "pipeline.minimax_h3.vae_parallel_encode": false, - "pipeline.minimax_h3.video_decode_backend": "h3-vae" + "pipeline.model.legacy_native_noise_order": false, + "pipeline.model.use_distilled_sigmas": true } ] ], @@ -406,20 +426,14 @@ "upsampler_weights": null, "vae_weights": null }, - "dit": {}, "dmd_denoising_steps": null, "embedded_cfg_scale": 6.0, "experimental": {}, "flow_shift": null, - "longcat": { - "bsa_cdf_threshold": null, - "bsa_chunk_k": null, - "bsa_chunk_q": null, - "bsa_sparsity": null, - "enable_bsa": null - }, - "ltx2": { + "model": { "audio_latent_path": null, + "dit": {}, + "family": "ltx2", "initial_latent_path": null, "legacy_native_noise_order": false, "refine": { @@ -435,20 +449,12 @@ "video_position_offset_sec": null }, "use_distilled_sigmas": true, + "vae": {}, "vae_spatial_tile_overlap_in_pixels": null, "vae_spatial_tile_size_in_pixels": null, "vae_temporal_tile_overlap_in_frames": null, "vae_temporal_tile_size_in_frames": null }, - "minimax_h3": { - "sequential_load": null, - "taeh3_checkpoint": null, - "taeh3_chunk_size": 5, - "vae_parallel_decode": false, - "vae_parallel_decode_strategy": "gather", - "vae_parallel_encode": false, - "video_decode_backend": "h3-vae" - }, "output_type": "pil", "preset": null, "preset_overrides": { @@ -460,7 +466,6 @@ } }, "preset_version": null, - "vae": {}, "vae_sp": false, "vae_tiling": true, "workload_type": "i2v" diff --git a/fastvideo/tests/api/config_snapshot_goldens/yaml/examples__inference__ltx2_3__i2v_8s3_512x768.yaml.json b/fastvideo/tests/api/config_snapshot_goldens/yaml/examples__inference__ltx2_3__i2v_8s3_512x768.yaml.json index 3bdf1e62e..64be31e45 100644 --- a/fastvideo/tests/api/config_snapshot_goldens/yaml/examples__inference__ltx2_3__i2v_8s3_512x768.yaml.json +++ b/fastvideo/tests/api/config_snapshot_goldens/yaml/examples__inference__ltx2_3__i2v_8s3_512x768.yaml.json @@ -268,9 +268,33 @@ ], "resolution_decisions": [ [ - "fill_vae_parallel_from_env", + "fill_model_family[ltx2]", { - "pipeline.minimax_h3.vae_parallel_decode_strategy": "gather" + "pipeline.model": { + "audio_latent_path": null, + "dit": {}, + "family": "ltx2", + "initial_latent_path": null, + "legacy_native_noise_order": null, + "refine": { + "add_noise": null, + "audio_noise_path": null, + "enabled": null, + "guidance_scale": null, + "image_crf": null, + "lora_path": null, + "noise_path": null, + "num_inference_steps": null, + "transformer_path": null, + "video_position_offset_sec": null + }, + "use_distilled_sigmas": null, + "vae": {}, + "vae_spatial_tile_overlap_in_pixels": null, + "vae_spatial_tile_size_in_pixels": null, + "vae_temporal_tile_overlap_in_frames": null, + "vae_temporal_tile_size_in_frames": null + } } ], [ @@ -289,10 +313,10 @@ [ "copy_refine_preset_overrides", { - "pipeline.ltx2.refine.add_noise": true, - "pipeline.ltx2.refine.enabled": true, - "pipeline.ltx2.refine.guidance_scale": 1.0, - "pipeline.ltx2.refine.num_inference_steps": 3 + "pipeline.model.refine.add_noise": true, + "pipeline.model.refine.enabled": true, + "pipeline.model.refine.guidance_scale": 1.0, + "pipeline.model.refine.num_inference_steps": 3 } ], [ @@ -319,12 +343,8 @@ "engine.compile.regional": false, "engine.compile.text_encoder_enabled": false, "engine.compile.vae_enabled": false, - "pipeline.ltx2.legacy_native_noise_order": false, - "pipeline.ltx2.use_distilled_sigmas": true, - "pipeline.minimax_h3.taeh3_chunk_size": 5, - "pipeline.minimax_h3.vae_parallel_decode": false, - "pipeline.minimax_h3.vae_parallel_encode": false, - "pipeline.minimax_h3.video_decode_backend": "h3-vae" + "pipeline.model.legacy_native_noise_order": false, + "pipeline.model.use_distilled_sigmas": true } ] ], @@ -406,20 +426,14 @@ "upsampler_weights": null, "vae_weights": null }, - "dit": {}, "dmd_denoising_steps": null, "embedded_cfg_scale": 6.0, "experimental": {}, "flow_shift": null, - "longcat": { - "bsa_cdf_threshold": null, - "bsa_chunk_k": null, - "bsa_chunk_q": null, - "bsa_sparsity": null, - "enable_bsa": null - }, - "ltx2": { + "model": { "audio_latent_path": null, + "dit": {}, + "family": "ltx2", "initial_latent_path": null, "legacy_native_noise_order": false, "refine": { @@ -435,20 +449,12 @@ "video_position_offset_sec": null }, "use_distilled_sigmas": true, + "vae": {}, "vae_spatial_tile_overlap_in_pixels": null, "vae_spatial_tile_size_in_pixels": null, "vae_temporal_tile_overlap_in_frames": null, "vae_temporal_tile_size_in_frames": null }, - "minimax_h3": { - "sequential_load": null, - "taeh3_checkpoint": null, - "taeh3_chunk_size": 5, - "vae_parallel_decode": false, - "vae_parallel_decode_strategy": "gather", - "vae_parallel_encode": false, - "video_decode_backend": "h3-vae" - }, "output_type": "pil", "preset": null, "preset_overrides": { @@ -460,7 +466,6 @@ } }, "preset_version": null, - "vae": {}, "vae_sp": false, "vae_tiling": true, "workload_type": "i2v" diff --git a/fastvideo/tests/api/config_snapshot_goldens/yaml/examples__inference__ltx2_3__i2v_8s3_768x1280.yaml.json b/fastvideo/tests/api/config_snapshot_goldens/yaml/examples__inference__ltx2_3__i2v_8s3_768x1280.yaml.json index 438db02c0..517488cf1 100644 --- a/fastvideo/tests/api/config_snapshot_goldens/yaml/examples__inference__ltx2_3__i2v_8s3_768x1280.yaml.json +++ b/fastvideo/tests/api/config_snapshot_goldens/yaml/examples__inference__ltx2_3__i2v_8s3_768x1280.yaml.json @@ -268,9 +268,33 @@ ], "resolution_decisions": [ [ - "fill_vae_parallel_from_env", + "fill_model_family[ltx2]", { - "pipeline.minimax_h3.vae_parallel_decode_strategy": "gather" + "pipeline.model": { + "audio_latent_path": null, + "dit": {}, + "family": "ltx2", + "initial_latent_path": null, + "legacy_native_noise_order": null, + "refine": { + "add_noise": null, + "audio_noise_path": null, + "enabled": null, + "guidance_scale": null, + "image_crf": null, + "lora_path": null, + "noise_path": null, + "num_inference_steps": null, + "transformer_path": null, + "video_position_offset_sec": null + }, + "use_distilled_sigmas": null, + "vae": {}, + "vae_spatial_tile_overlap_in_pixels": null, + "vae_spatial_tile_size_in_pixels": null, + "vae_temporal_tile_overlap_in_frames": null, + "vae_temporal_tile_size_in_frames": null + } } ], [ @@ -289,10 +313,10 @@ [ "copy_refine_preset_overrides", { - "pipeline.ltx2.refine.add_noise": true, - "pipeline.ltx2.refine.enabled": true, - "pipeline.ltx2.refine.guidance_scale": 1.0, - "pipeline.ltx2.refine.num_inference_steps": 3 + "pipeline.model.refine.add_noise": true, + "pipeline.model.refine.enabled": true, + "pipeline.model.refine.guidance_scale": 1.0, + "pipeline.model.refine.num_inference_steps": 3 } ], [ @@ -319,12 +343,8 @@ "engine.compile.regional": false, "engine.compile.text_encoder_enabled": false, "engine.compile.vae_enabled": false, - "pipeline.ltx2.legacy_native_noise_order": false, - "pipeline.ltx2.use_distilled_sigmas": true, - "pipeline.minimax_h3.taeh3_chunk_size": 5, - "pipeline.minimax_h3.vae_parallel_decode": false, - "pipeline.minimax_h3.vae_parallel_encode": false, - "pipeline.minimax_h3.video_decode_backend": "h3-vae" + "pipeline.model.legacy_native_noise_order": false, + "pipeline.model.use_distilled_sigmas": true } ] ], @@ -406,20 +426,14 @@ "upsampler_weights": null, "vae_weights": null }, - "dit": {}, "dmd_denoising_steps": null, "embedded_cfg_scale": 6.0, "experimental": {}, "flow_shift": null, - "longcat": { - "bsa_cdf_threshold": null, - "bsa_chunk_k": null, - "bsa_chunk_q": null, - "bsa_sparsity": null, - "enable_bsa": null - }, - "ltx2": { + "model": { "audio_latent_path": null, + "dit": {}, + "family": "ltx2", "initial_latent_path": null, "legacy_native_noise_order": false, "refine": { @@ -435,20 +449,12 @@ "video_position_offset_sec": null }, "use_distilled_sigmas": true, + "vae": {}, "vae_spatial_tile_overlap_in_pixels": null, "vae_spatial_tile_size_in_pixels": null, "vae_temporal_tile_overlap_in_frames": null, "vae_temporal_tile_size_in_frames": null }, - "minimax_h3": { - "sequential_load": null, - "taeh3_checkpoint": null, - "taeh3_chunk_size": 5, - "vae_parallel_decode": false, - "vae_parallel_decode_strategy": "gather", - "vae_parallel_encode": false, - "video_decode_backend": "h3-vae" - }, "output_type": "pil", "preset": null, "preset_overrides": { @@ -460,7 +466,6 @@ } }, "preset_version": null, - "vae": {}, "vae_sp": false, "vae_tiling": true, "workload_type": "i2v" diff --git a/fastvideo/tests/api/config_snapshot_goldens/yaml/examples__inference__ltx2_3__t2v_5s2_1024x1536.yaml.json b/fastvideo/tests/api/config_snapshot_goldens/yaml/examples__inference__ltx2_3__t2v_5s2_1024x1536.yaml.json index a2421e7ab..8754ee0c2 100644 --- a/fastvideo/tests/api/config_snapshot_goldens/yaml/examples__inference__ltx2_3__t2v_5s2_1024x1536.yaml.json +++ b/fastvideo/tests/api/config_snapshot_goldens/yaml/examples__inference__ltx2_3__t2v_5s2_1024x1536.yaml.json @@ -268,9 +268,33 @@ ], "resolution_decisions": [ [ - "fill_vae_parallel_from_env", + "fill_model_family[ltx2]", { - "pipeline.minimax_h3.vae_parallel_decode_strategy": "gather" + "pipeline.model": { + "audio_latent_path": null, + "dit": {}, + "family": "ltx2", + "initial_latent_path": null, + "legacy_native_noise_order": null, + "refine": { + "add_noise": null, + "audio_noise_path": null, + "enabled": null, + "guidance_scale": null, + "image_crf": null, + "lora_path": null, + "noise_path": null, + "num_inference_steps": null, + "transformer_path": null, + "video_position_offset_sec": null + }, + "use_distilled_sigmas": null, + "vae": {}, + "vae_spatial_tile_overlap_in_pixels": null, + "vae_spatial_tile_size_in_pixels": null, + "vae_temporal_tile_overlap_in_frames": null, + "vae_temporal_tile_size_in_frames": null + } } ], [ @@ -289,10 +313,10 @@ [ "copy_refine_preset_overrides", { - "pipeline.ltx2.refine.add_noise": true, - "pipeline.ltx2.refine.enabled": true, - "pipeline.ltx2.refine.guidance_scale": 1.0, - "pipeline.ltx2.refine.num_inference_steps": 2 + "pipeline.model.refine.add_noise": true, + "pipeline.model.refine.enabled": true, + "pipeline.model.refine.guidance_scale": 1.0, + "pipeline.model.refine.num_inference_steps": 2 } ], [ @@ -319,12 +343,8 @@ "engine.compile.regional": false, "engine.compile.text_encoder_enabled": false, "engine.compile.vae_enabled": false, - "pipeline.ltx2.legacy_native_noise_order": false, - "pipeline.ltx2.use_distilled_sigmas": true, - "pipeline.minimax_h3.taeh3_chunk_size": 5, - "pipeline.minimax_h3.vae_parallel_decode": false, - "pipeline.minimax_h3.vae_parallel_encode": false, - "pipeline.minimax_h3.video_decode_backend": "h3-vae" + "pipeline.model.legacy_native_noise_order": false, + "pipeline.model.use_distilled_sigmas": true } ] ], @@ -406,20 +426,14 @@ "upsampler_weights": null, "vae_weights": null }, - "dit": {}, "dmd_denoising_steps": null, "embedded_cfg_scale": 6.0, "experimental": {}, "flow_shift": null, - "longcat": { - "bsa_cdf_threshold": null, - "bsa_chunk_k": null, - "bsa_chunk_q": null, - "bsa_sparsity": null, - "enable_bsa": null - }, - "ltx2": { + "model": { "audio_latent_path": null, + "dit": {}, + "family": "ltx2", "initial_latent_path": null, "legacy_native_noise_order": false, "refine": { @@ -435,20 +449,12 @@ "video_position_offset_sec": null }, "use_distilled_sigmas": true, + "vae": {}, "vae_spatial_tile_overlap_in_pixels": null, "vae_spatial_tile_size_in_pixels": null, "vae_temporal_tile_overlap_in_frames": null, "vae_temporal_tile_size_in_frames": null }, - "minimax_h3": { - "sequential_load": null, - "taeh3_checkpoint": null, - "taeh3_chunk_size": 5, - "vae_parallel_decode": false, - "vae_parallel_decode_strategy": "gather", - "vae_parallel_encode": false, - "video_decode_backend": "h3-vae" - }, "output_type": "pil", "preset": null, "preset_overrides": { @@ -460,7 +466,6 @@ } }, "preset_version": null, - "vae": {}, "vae_sp": false, "vae_tiling": true, "workload_type": "t2v" diff --git a/fastvideo/tests/api/config_snapshot_goldens/yaml/examples__inference__ltx2_3__t2v_5s2_1280x832.yaml.json b/fastvideo/tests/api/config_snapshot_goldens/yaml/examples__inference__ltx2_3__t2v_5s2_1280x832.yaml.json index 79ebe7d9b..9a25f5d3a 100644 --- a/fastvideo/tests/api/config_snapshot_goldens/yaml/examples__inference__ltx2_3__t2v_5s2_1280x832.yaml.json +++ b/fastvideo/tests/api/config_snapshot_goldens/yaml/examples__inference__ltx2_3__t2v_5s2_1280x832.yaml.json @@ -268,9 +268,33 @@ ], "resolution_decisions": [ [ - "fill_vae_parallel_from_env", + "fill_model_family[ltx2]", { - "pipeline.minimax_h3.vae_parallel_decode_strategy": "gather" + "pipeline.model": { + "audio_latent_path": null, + "dit": {}, + "family": "ltx2", + "initial_latent_path": null, + "legacy_native_noise_order": null, + "refine": { + "add_noise": null, + "audio_noise_path": null, + "enabled": null, + "guidance_scale": null, + "image_crf": null, + "lora_path": null, + "noise_path": null, + "num_inference_steps": null, + "transformer_path": null, + "video_position_offset_sec": null + }, + "use_distilled_sigmas": null, + "vae": {}, + "vae_spatial_tile_overlap_in_pixels": null, + "vae_spatial_tile_size_in_pixels": null, + "vae_temporal_tile_overlap_in_frames": null, + "vae_temporal_tile_size_in_frames": null + } } ], [ @@ -289,10 +313,10 @@ [ "copy_refine_preset_overrides", { - "pipeline.ltx2.refine.add_noise": true, - "pipeline.ltx2.refine.enabled": true, - "pipeline.ltx2.refine.guidance_scale": 1.0, - "pipeline.ltx2.refine.num_inference_steps": 2 + "pipeline.model.refine.add_noise": true, + "pipeline.model.refine.enabled": true, + "pipeline.model.refine.guidance_scale": 1.0, + "pipeline.model.refine.num_inference_steps": 2 } ], [ @@ -319,12 +343,8 @@ "engine.compile.regional": false, "engine.compile.text_encoder_enabled": false, "engine.compile.vae_enabled": false, - "pipeline.ltx2.legacy_native_noise_order": false, - "pipeline.ltx2.use_distilled_sigmas": true, - "pipeline.minimax_h3.taeh3_chunk_size": 5, - "pipeline.minimax_h3.vae_parallel_decode": false, - "pipeline.minimax_h3.vae_parallel_encode": false, - "pipeline.minimax_h3.video_decode_backend": "h3-vae" + "pipeline.model.legacy_native_noise_order": false, + "pipeline.model.use_distilled_sigmas": true } ] ], @@ -406,20 +426,14 @@ "upsampler_weights": null, "vae_weights": null }, - "dit": {}, "dmd_denoising_steps": null, "embedded_cfg_scale": 6.0, "experimental": {}, "flow_shift": null, - "longcat": { - "bsa_cdf_threshold": null, - "bsa_chunk_k": null, - "bsa_chunk_q": null, - "bsa_sparsity": null, - "enable_bsa": null - }, - "ltx2": { + "model": { "audio_latent_path": null, + "dit": {}, + "family": "ltx2", "initial_latent_path": null, "legacy_native_noise_order": false, "refine": { @@ -435,20 +449,12 @@ "video_position_offset_sec": null }, "use_distilled_sigmas": true, + "vae": {}, "vae_spatial_tile_overlap_in_pixels": null, "vae_spatial_tile_size_in_pixels": null, "vae_temporal_tile_overlap_in_frames": null, "vae_temporal_tile_size_in_frames": null }, - "minimax_h3": { - "sequential_load": null, - "taeh3_checkpoint": null, - "taeh3_chunk_size": 5, - "vae_parallel_decode": false, - "vae_parallel_decode_strategy": "gather", - "vae_parallel_encode": false, - "video_decode_backend": "h3-vae" - }, "output_type": "pil", "preset": null, "preset_overrides": { @@ -460,7 +466,6 @@ } }, "preset_version": null, - "vae": {}, "vae_sp": false, "vae_tiling": true, "workload_type": "t2v" diff --git a/fastvideo/tests/api/config_snapshot_goldens/yaml/examples__inference__ltx2_3__t2v_5s2_512x768.yaml.json b/fastvideo/tests/api/config_snapshot_goldens/yaml/examples__inference__ltx2_3__t2v_5s2_512x768.yaml.json index ab6a29ad5..f0aecc70f 100644 --- a/fastvideo/tests/api/config_snapshot_goldens/yaml/examples__inference__ltx2_3__t2v_5s2_512x768.yaml.json +++ b/fastvideo/tests/api/config_snapshot_goldens/yaml/examples__inference__ltx2_3__t2v_5s2_512x768.yaml.json @@ -268,9 +268,33 @@ ], "resolution_decisions": [ [ - "fill_vae_parallel_from_env", + "fill_model_family[ltx2]", { - "pipeline.minimax_h3.vae_parallel_decode_strategy": "gather" + "pipeline.model": { + "audio_latent_path": null, + "dit": {}, + "family": "ltx2", + "initial_latent_path": null, + "legacy_native_noise_order": null, + "refine": { + "add_noise": null, + "audio_noise_path": null, + "enabled": null, + "guidance_scale": null, + "image_crf": null, + "lora_path": null, + "noise_path": null, + "num_inference_steps": null, + "transformer_path": null, + "video_position_offset_sec": null + }, + "use_distilled_sigmas": null, + "vae": {}, + "vae_spatial_tile_overlap_in_pixels": null, + "vae_spatial_tile_size_in_pixels": null, + "vae_temporal_tile_overlap_in_frames": null, + "vae_temporal_tile_size_in_frames": null + } } ], [ @@ -289,10 +313,10 @@ [ "copy_refine_preset_overrides", { - "pipeline.ltx2.refine.add_noise": true, - "pipeline.ltx2.refine.enabled": true, - "pipeline.ltx2.refine.guidance_scale": 1.0, - "pipeline.ltx2.refine.num_inference_steps": 2 + "pipeline.model.refine.add_noise": true, + "pipeline.model.refine.enabled": true, + "pipeline.model.refine.guidance_scale": 1.0, + "pipeline.model.refine.num_inference_steps": 2 } ], [ @@ -319,12 +343,8 @@ "engine.compile.regional": false, "engine.compile.text_encoder_enabled": false, "engine.compile.vae_enabled": false, - "pipeline.ltx2.legacy_native_noise_order": false, - "pipeline.ltx2.use_distilled_sigmas": true, - "pipeline.minimax_h3.taeh3_chunk_size": 5, - "pipeline.minimax_h3.vae_parallel_decode": false, - "pipeline.minimax_h3.vae_parallel_encode": false, - "pipeline.minimax_h3.video_decode_backend": "h3-vae" + "pipeline.model.legacy_native_noise_order": false, + "pipeline.model.use_distilled_sigmas": true } ] ], @@ -406,20 +426,14 @@ "upsampler_weights": null, "vae_weights": null }, - "dit": {}, "dmd_denoising_steps": null, "embedded_cfg_scale": 6.0, "experimental": {}, "flow_shift": null, - "longcat": { - "bsa_cdf_threshold": null, - "bsa_chunk_k": null, - "bsa_chunk_q": null, - "bsa_sparsity": null, - "enable_bsa": null - }, - "ltx2": { + "model": { "audio_latent_path": null, + "dit": {}, + "family": "ltx2", "initial_latent_path": null, "legacy_native_noise_order": false, "refine": { @@ -435,20 +449,12 @@ "video_position_offset_sec": null }, "use_distilled_sigmas": true, + "vae": {}, "vae_spatial_tile_overlap_in_pixels": null, "vae_spatial_tile_size_in_pixels": null, "vae_temporal_tile_overlap_in_frames": null, "vae_temporal_tile_size_in_frames": null }, - "minimax_h3": { - "sequential_load": null, - "taeh3_checkpoint": null, - "taeh3_chunk_size": 5, - "vae_parallel_decode": false, - "vae_parallel_decode_strategy": "gather", - "vae_parallel_encode": false, - "video_decode_backend": "h3-vae" - }, "output_type": "pil", "preset": null, "preset_overrides": { @@ -460,7 +466,6 @@ } }, "preset_version": null, - "vae": {}, "vae_sp": false, "vae_tiling": true, "workload_type": "t2v" diff --git a/fastvideo/tests/api/config_snapshot_goldens/yaml/examples__inference__ltx2_3__t2v_5s2_768x1280.yaml.json b/fastvideo/tests/api/config_snapshot_goldens/yaml/examples__inference__ltx2_3__t2v_5s2_768x1280.yaml.json index 3e099b4fc..1f9518312 100644 --- a/fastvideo/tests/api/config_snapshot_goldens/yaml/examples__inference__ltx2_3__t2v_5s2_768x1280.yaml.json +++ b/fastvideo/tests/api/config_snapshot_goldens/yaml/examples__inference__ltx2_3__t2v_5s2_768x1280.yaml.json @@ -268,9 +268,33 @@ ], "resolution_decisions": [ [ - "fill_vae_parallel_from_env", + "fill_model_family[ltx2]", { - "pipeline.minimax_h3.vae_parallel_decode_strategy": "gather" + "pipeline.model": { + "audio_latent_path": null, + "dit": {}, + "family": "ltx2", + "initial_latent_path": null, + "legacy_native_noise_order": null, + "refine": { + "add_noise": null, + "audio_noise_path": null, + "enabled": null, + "guidance_scale": null, + "image_crf": null, + "lora_path": null, + "noise_path": null, + "num_inference_steps": null, + "transformer_path": null, + "video_position_offset_sec": null + }, + "use_distilled_sigmas": null, + "vae": {}, + "vae_spatial_tile_overlap_in_pixels": null, + "vae_spatial_tile_size_in_pixels": null, + "vae_temporal_tile_overlap_in_frames": null, + "vae_temporal_tile_size_in_frames": null + } } ], [ @@ -289,10 +313,10 @@ [ "copy_refine_preset_overrides", { - "pipeline.ltx2.refine.add_noise": true, - "pipeline.ltx2.refine.enabled": true, - "pipeline.ltx2.refine.guidance_scale": 1.0, - "pipeline.ltx2.refine.num_inference_steps": 2 + "pipeline.model.refine.add_noise": true, + "pipeline.model.refine.enabled": true, + "pipeline.model.refine.guidance_scale": 1.0, + "pipeline.model.refine.num_inference_steps": 2 } ], [ @@ -319,12 +343,8 @@ "engine.compile.regional": false, "engine.compile.text_encoder_enabled": false, "engine.compile.vae_enabled": false, - "pipeline.ltx2.legacy_native_noise_order": false, - "pipeline.ltx2.use_distilled_sigmas": true, - "pipeline.minimax_h3.taeh3_chunk_size": 5, - "pipeline.minimax_h3.vae_parallel_decode": false, - "pipeline.minimax_h3.vae_parallel_encode": false, - "pipeline.minimax_h3.video_decode_backend": "h3-vae" + "pipeline.model.legacy_native_noise_order": false, + "pipeline.model.use_distilled_sigmas": true } ] ], @@ -406,20 +426,14 @@ "upsampler_weights": null, "vae_weights": null }, - "dit": {}, "dmd_denoising_steps": null, "embedded_cfg_scale": 6.0, "experimental": {}, "flow_shift": null, - "longcat": { - "bsa_cdf_threshold": null, - "bsa_chunk_k": null, - "bsa_chunk_q": null, - "bsa_sparsity": null, - "enable_bsa": null - }, - "ltx2": { + "model": { "audio_latent_path": null, + "dit": {}, + "family": "ltx2", "initial_latent_path": null, "legacy_native_noise_order": false, "refine": { @@ -435,20 +449,12 @@ "video_position_offset_sec": null }, "use_distilled_sigmas": true, + "vae": {}, "vae_spatial_tile_overlap_in_pixels": null, "vae_spatial_tile_size_in_pixels": null, "vae_temporal_tile_overlap_in_frames": null, "vae_temporal_tile_size_in_frames": null }, - "minimax_h3": { - "sequential_load": null, - "taeh3_checkpoint": null, - "taeh3_chunk_size": 5, - "vae_parallel_decode": false, - "vae_parallel_decode_strategy": "gather", - "vae_parallel_encode": false, - "video_decode_backend": "h3-vae" - }, "output_type": "pil", "preset": null, "preset_overrides": { @@ -460,7 +466,6 @@ } }, "preset_version": null, - "vae": {}, "vae_sp": false, "vae_tiling": true, "workload_type": "t2v" diff --git a/fastvideo/tests/api/config_snapshot_goldens/yaml/examples__inference__ltx2_3__t2v_8s3_1024x1536.yaml.json b/fastvideo/tests/api/config_snapshot_goldens/yaml/examples__inference__ltx2_3__t2v_8s3_1024x1536.yaml.json index b326307d0..668a4fc6e 100644 --- a/fastvideo/tests/api/config_snapshot_goldens/yaml/examples__inference__ltx2_3__t2v_8s3_1024x1536.yaml.json +++ b/fastvideo/tests/api/config_snapshot_goldens/yaml/examples__inference__ltx2_3__t2v_8s3_1024x1536.yaml.json @@ -268,9 +268,33 @@ ], "resolution_decisions": [ [ - "fill_vae_parallel_from_env", + "fill_model_family[ltx2]", { - "pipeline.minimax_h3.vae_parallel_decode_strategy": "gather" + "pipeline.model": { + "audio_latent_path": null, + "dit": {}, + "family": "ltx2", + "initial_latent_path": null, + "legacy_native_noise_order": null, + "refine": { + "add_noise": null, + "audio_noise_path": null, + "enabled": null, + "guidance_scale": null, + "image_crf": null, + "lora_path": null, + "noise_path": null, + "num_inference_steps": null, + "transformer_path": null, + "video_position_offset_sec": null + }, + "use_distilled_sigmas": null, + "vae": {}, + "vae_spatial_tile_overlap_in_pixels": null, + "vae_spatial_tile_size_in_pixels": null, + "vae_temporal_tile_overlap_in_frames": null, + "vae_temporal_tile_size_in_frames": null + } } ], [ @@ -289,10 +313,10 @@ [ "copy_refine_preset_overrides", { - "pipeline.ltx2.refine.add_noise": true, - "pipeline.ltx2.refine.enabled": true, - "pipeline.ltx2.refine.guidance_scale": 1.0, - "pipeline.ltx2.refine.num_inference_steps": 3 + "pipeline.model.refine.add_noise": true, + "pipeline.model.refine.enabled": true, + "pipeline.model.refine.guidance_scale": 1.0, + "pipeline.model.refine.num_inference_steps": 3 } ], [ @@ -319,12 +343,8 @@ "engine.compile.regional": false, "engine.compile.text_encoder_enabled": false, "engine.compile.vae_enabled": false, - "pipeline.ltx2.legacy_native_noise_order": false, - "pipeline.ltx2.use_distilled_sigmas": true, - "pipeline.minimax_h3.taeh3_chunk_size": 5, - "pipeline.minimax_h3.vae_parallel_decode": false, - "pipeline.minimax_h3.vae_parallel_encode": false, - "pipeline.minimax_h3.video_decode_backend": "h3-vae" + "pipeline.model.legacy_native_noise_order": false, + "pipeline.model.use_distilled_sigmas": true } ] ], @@ -406,20 +426,14 @@ "upsampler_weights": null, "vae_weights": null }, - "dit": {}, "dmd_denoising_steps": null, "embedded_cfg_scale": 6.0, "experimental": {}, "flow_shift": null, - "longcat": { - "bsa_cdf_threshold": null, - "bsa_chunk_k": null, - "bsa_chunk_q": null, - "bsa_sparsity": null, - "enable_bsa": null - }, - "ltx2": { + "model": { "audio_latent_path": null, + "dit": {}, + "family": "ltx2", "initial_latent_path": null, "legacy_native_noise_order": false, "refine": { @@ -435,20 +449,12 @@ "video_position_offset_sec": null }, "use_distilled_sigmas": true, + "vae": {}, "vae_spatial_tile_overlap_in_pixels": null, "vae_spatial_tile_size_in_pixels": null, "vae_temporal_tile_overlap_in_frames": null, "vae_temporal_tile_size_in_frames": null }, - "minimax_h3": { - "sequential_load": null, - "taeh3_checkpoint": null, - "taeh3_chunk_size": 5, - "vae_parallel_decode": false, - "vae_parallel_decode_strategy": "gather", - "vae_parallel_encode": false, - "video_decode_backend": "h3-vae" - }, "output_type": "pil", "preset": null, "preset_overrides": { @@ -460,7 +466,6 @@ } }, "preset_version": null, - "vae": {}, "vae_sp": false, "vae_tiling": true, "workload_type": "t2v" diff --git a/fastvideo/tests/api/config_snapshot_goldens/yaml/examples__inference__ltx2_3__t2v_8s3_1280x832.yaml.json b/fastvideo/tests/api/config_snapshot_goldens/yaml/examples__inference__ltx2_3__t2v_8s3_1280x832.yaml.json index 0c1f6145b..9193aa16a 100644 --- a/fastvideo/tests/api/config_snapshot_goldens/yaml/examples__inference__ltx2_3__t2v_8s3_1280x832.yaml.json +++ b/fastvideo/tests/api/config_snapshot_goldens/yaml/examples__inference__ltx2_3__t2v_8s3_1280x832.yaml.json @@ -268,9 +268,33 @@ ], "resolution_decisions": [ [ - "fill_vae_parallel_from_env", + "fill_model_family[ltx2]", { - "pipeline.minimax_h3.vae_parallel_decode_strategy": "gather" + "pipeline.model": { + "audio_latent_path": null, + "dit": {}, + "family": "ltx2", + "initial_latent_path": null, + "legacy_native_noise_order": null, + "refine": { + "add_noise": null, + "audio_noise_path": null, + "enabled": null, + "guidance_scale": null, + "image_crf": null, + "lora_path": null, + "noise_path": null, + "num_inference_steps": null, + "transformer_path": null, + "video_position_offset_sec": null + }, + "use_distilled_sigmas": null, + "vae": {}, + "vae_spatial_tile_overlap_in_pixels": null, + "vae_spatial_tile_size_in_pixels": null, + "vae_temporal_tile_overlap_in_frames": null, + "vae_temporal_tile_size_in_frames": null + } } ], [ @@ -289,10 +313,10 @@ [ "copy_refine_preset_overrides", { - "pipeline.ltx2.refine.add_noise": true, - "pipeline.ltx2.refine.enabled": true, - "pipeline.ltx2.refine.guidance_scale": 1.0, - "pipeline.ltx2.refine.num_inference_steps": 3 + "pipeline.model.refine.add_noise": true, + "pipeline.model.refine.enabled": true, + "pipeline.model.refine.guidance_scale": 1.0, + "pipeline.model.refine.num_inference_steps": 3 } ], [ @@ -319,12 +343,8 @@ "engine.compile.regional": false, "engine.compile.text_encoder_enabled": false, "engine.compile.vae_enabled": false, - "pipeline.ltx2.legacy_native_noise_order": false, - "pipeline.ltx2.use_distilled_sigmas": true, - "pipeline.minimax_h3.taeh3_chunk_size": 5, - "pipeline.minimax_h3.vae_parallel_decode": false, - "pipeline.minimax_h3.vae_parallel_encode": false, - "pipeline.minimax_h3.video_decode_backend": "h3-vae" + "pipeline.model.legacy_native_noise_order": false, + "pipeline.model.use_distilled_sigmas": true } ] ], @@ -406,20 +426,14 @@ "upsampler_weights": null, "vae_weights": null }, - "dit": {}, "dmd_denoising_steps": null, "embedded_cfg_scale": 6.0, "experimental": {}, "flow_shift": null, - "longcat": { - "bsa_cdf_threshold": null, - "bsa_chunk_k": null, - "bsa_chunk_q": null, - "bsa_sparsity": null, - "enable_bsa": null - }, - "ltx2": { + "model": { "audio_latent_path": null, + "dit": {}, + "family": "ltx2", "initial_latent_path": null, "legacy_native_noise_order": false, "refine": { @@ -435,20 +449,12 @@ "video_position_offset_sec": null }, "use_distilled_sigmas": true, + "vae": {}, "vae_spatial_tile_overlap_in_pixels": null, "vae_spatial_tile_size_in_pixels": null, "vae_temporal_tile_overlap_in_frames": null, "vae_temporal_tile_size_in_frames": null }, - "minimax_h3": { - "sequential_load": null, - "taeh3_checkpoint": null, - "taeh3_chunk_size": 5, - "vae_parallel_decode": false, - "vae_parallel_decode_strategy": "gather", - "vae_parallel_encode": false, - "video_decode_backend": "h3-vae" - }, "output_type": "pil", "preset": null, "preset_overrides": { @@ -460,7 +466,6 @@ } }, "preset_version": null, - "vae": {}, "vae_sp": false, "vae_tiling": true, "workload_type": "t2v" diff --git a/fastvideo/tests/api/config_snapshot_goldens/yaml/examples__inference__ltx2_3__t2v_8s3_512x768.yaml.json b/fastvideo/tests/api/config_snapshot_goldens/yaml/examples__inference__ltx2_3__t2v_8s3_512x768.yaml.json index 412fc02bf..54b8f37ac 100644 --- a/fastvideo/tests/api/config_snapshot_goldens/yaml/examples__inference__ltx2_3__t2v_8s3_512x768.yaml.json +++ b/fastvideo/tests/api/config_snapshot_goldens/yaml/examples__inference__ltx2_3__t2v_8s3_512x768.yaml.json @@ -268,9 +268,33 @@ ], "resolution_decisions": [ [ - "fill_vae_parallel_from_env", + "fill_model_family[ltx2]", { - "pipeline.minimax_h3.vae_parallel_decode_strategy": "gather" + "pipeline.model": { + "audio_latent_path": null, + "dit": {}, + "family": "ltx2", + "initial_latent_path": null, + "legacy_native_noise_order": null, + "refine": { + "add_noise": null, + "audio_noise_path": null, + "enabled": null, + "guidance_scale": null, + "image_crf": null, + "lora_path": null, + "noise_path": null, + "num_inference_steps": null, + "transformer_path": null, + "video_position_offset_sec": null + }, + "use_distilled_sigmas": null, + "vae": {}, + "vae_spatial_tile_overlap_in_pixels": null, + "vae_spatial_tile_size_in_pixels": null, + "vae_temporal_tile_overlap_in_frames": null, + "vae_temporal_tile_size_in_frames": null + } } ], [ @@ -289,10 +313,10 @@ [ "copy_refine_preset_overrides", { - "pipeline.ltx2.refine.add_noise": true, - "pipeline.ltx2.refine.enabled": true, - "pipeline.ltx2.refine.guidance_scale": 1.0, - "pipeline.ltx2.refine.num_inference_steps": 3 + "pipeline.model.refine.add_noise": true, + "pipeline.model.refine.enabled": true, + "pipeline.model.refine.guidance_scale": 1.0, + "pipeline.model.refine.num_inference_steps": 3 } ], [ @@ -319,12 +343,8 @@ "engine.compile.regional": false, "engine.compile.text_encoder_enabled": false, "engine.compile.vae_enabled": false, - "pipeline.ltx2.legacy_native_noise_order": false, - "pipeline.ltx2.use_distilled_sigmas": true, - "pipeline.minimax_h3.taeh3_chunk_size": 5, - "pipeline.minimax_h3.vae_parallel_decode": false, - "pipeline.minimax_h3.vae_parallel_encode": false, - "pipeline.minimax_h3.video_decode_backend": "h3-vae" + "pipeline.model.legacy_native_noise_order": false, + "pipeline.model.use_distilled_sigmas": true } ] ], @@ -406,20 +426,14 @@ "upsampler_weights": null, "vae_weights": null }, - "dit": {}, "dmd_denoising_steps": null, "embedded_cfg_scale": 6.0, "experimental": {}, "flow_shift": null, - "longcat": { - "bsa_cdf_threshold": null, - "bsa_chunk_k": null, - "bsa_chunk_q": null, - "bsa_sparsity": null, - "enable_bsa": null - }, - "ltx2": { + "model": { "audio_latent_path": null, + "dit": {}, + "family": "ltx2", "initial_latent_path": null, "legacy_native_noise_order": false, "refine": { @@ -435,20 +449,12 @@ "video_position_offset_sec": null }, "use_distilled_sigmas": true, + "vae": {}, "vae_spatial_tile_overlap_in_pixels": null, "vae_spatial_tile_size_in_pixels": null, "vae_temporal_tile_overlap_in_frames": null, "vae_temporal_tile_size_in_frames": null }, - "minimax_h3": { - "sequential_load": null, - "taeh3_checkpoint": null, - "taeh3_chunk_size": 5, - "vae_parallel_decode": false, - "vae_parallel_decode_strategy": "gather", - "vae_parallel_encode": false, - "video_decode_backend": "h3-vae" - }, "output_type": "pil", "preset": null, "preset_overrides": { @@ -460,7 +466,6 @@ } }, "preset_version": null, - "vae": {}, "vae_sp": false, "vae_tiling": true, "workload_type": "t2v" diff --git a/fastvideo/tests/api/config_snapshot_goldens/yaml/examples__inference__ltx2_3__t2v_8s3_768x1280.yaml.json b/fastvideo/tests/api/config_snapshot_goldens/yaml/examples__inference__ltx2_3__t2v_8s3_768x1280.yaml.json index 18f1ff7bb..2394cc408 100644 --- a/fastvideo/tests/api/config_snapshot_goldens/yaml/examples__inference__ltx2_3__t2v_8s3_768x1280.yaml.json +++ b/fastvideo/tests/api/config_snapshot_goldens/yaml/examples__inference__ltx2_3__t2v_8s3_768x1280.yaml.json @@ -268,9 +268,33 @@ ], "resolution_decisions": [ [ - "fill_vae_parallel_from_env", + "fill_model_family[ltx2]", { - "pipeline.minimax_h3.vae_parallel_decode_strategy": "gather" + "pipeline.model": { + "audio_latent_path": null, + "dit": {}, + "family": "ltx2", + "initial_latent_path": null, + "legacy_native_noise_order": null, + "refine": { + "add_noise": null, + "audio_noise_path": null, + "enabled": null, + "guidance_scale": null, + "image_crf": null, + "lora_path": null, + "noise_path": null, + "num_inference_steps": null, + "transformer_path": null, + "video_position_offset_sec": null + }, + "use_distilled_sigmas": null, + "vae": {}, + "vae_spatial_tile_overlap_in_pixels": null, + "vae_spatial_tile_size_in_pixels": null, + "vae_temporal_tile_overlap_in_frames": null, + "vae_temporal_tile_size_in_frames": null + } } ], [ @@ -289,10 +313,10 @@ [ "copy_refine_preset_overrides", { - "pipeline.ltx2.refine.add_noise": true, - "pipeline.ltx2.refine.enabled": true, - "pipeline.ltx2.refine.guidance_scale": 1.0, - "pipeline.ltx2.refine.num_inference_steps": 3 + "pipeline.model.refine.add_noise": true, + "pipeline.model.refine.enabled": true, + "pipeline.model.refine.guidance_scale": 1.0, + "pipeline.model.refine.num_inference_steps": 3 } ], [ @@ -319,12 +343,8 @@ "engine.compile.regional": false, "engine.compile.text_encoder_enabled": false, "engine.compile.vae_enabled": false, - "pipeline.ltx2.legacy_native_noise_order": false, - "pipeline.ltx2.use_distilled_sigmas": true, - "pipeline.minimax_h3.taeh3_chunk_size": 5, - "pipeline.minimax_h3.vae_parallel_decode": false, - "pipeline.minimax_h3.vae_parallel_encode": false, - "pipeline.minimax_h3.video_decode_backend": "h3-vae" + "pipeline.model.legacy_native_noise_order": false, + "pipeline.model.use_distilled_sigmas": true } ] ], @@ -406,20 +426,14 @@ "upsampler_weights": null, "vae_weights": null }, - "dit": {}, "dmd_denoising_steps": null, "embedded_cfg_scale": 6.0, "experimental": {}, "flow_shift": null, - "longcat": { - "bsa_cdf_threshold": null, - "bsa_chunk_k": null, - "bsa_chunk_q": null, - "bsa_sparsity": null, - "enable_bsa": null - }, - "ltx2": { + "model": { "audio_latent_path": null, + "dit": {}, + "family": "ltx2", "initial_latent_path": null, "legacy_native_noise_order": false, "refine": { @@ -435,20 +449,12 @@ "video_position_offset_sec": null }, "use_distilled_sigmas": true, + "vae": {}, "vae_spatial_tile_overlap_in_pixels": null, "vae_spatial_tile_size_in_pixels": null, "vae_temporal_tile_overlap_in_frames": null, "vae_temporal_tile_size_in_frames": null }, - "minimax_h3": { - "sequential_load": null, - "taeh3_checkpoint": null, - "taeh3_chunk_size": 5, - "vae_parallel_decode": false, - "vae_parallel_decode_strategy": "gather", - "vae_parallel_encode": false, - "video_decode_backend": "h3-vae" - }, "output_type": "pil", "preset": null, "preset_overrides": { @@ -460,7 +466,6 @@ } }, "preset_version": null, - "vae": {}, "vae_sp": false, "vae_tiling": true, "workload_type": "t2v" diff --git a/fastvideo/tests/api/config_snapshot_goldens/yaml/examples__serving__openai_fasth3.yaml.json b/fastvideo/tests/api/config_snapshot_goldens/yaml/examples__serving__openai_fasth3.yaml.json index e0bcba996..3a430d8cf 100644 --- a/fastvideo/tests/api/config_snapshot_goldens/yaml/examples__serving__openai_fasth3.yaml.json +++ b/fastvideo/tests/api/config_snapshot_goldens/yaml/examples__serving__openai_fasth3.yaml.json @@ -426,15 +426,9 @@ "engine.attention.moba_config": {}, "engine.compile.audio_vae_enabled": false, "engine.compile.text_encoder_enabled": false, - "pipeline.ltx2.legacy_native_noise_order": false, - "pipeline.ltx2.refine.add_noise": true, - "pipeline.ltx2.refine.enabled": false, - "pipeline.ltx2.refine.guidance_scale": 1.0, - "pipeline.ltx2.refine.num_inference_steps": 3, - "pipeline.ltx2.use_distilled_sigmas": true, - "pipeline.minimax_h3.taeh3_chunk_size": 5, - "pipeline.minimax_h3.vae_parallel_encode": false, - "pipeline.minimax_h3.video_decode_backend": "h3-vae" + "pipeline.model.taeh3_chunk_size": 5, + "pipeline.model.vae_parallel_encode": false, + "pipeline.model.video_decode_backend": "h3-vae" } ] ], @@ -516,44 +510,17 @@ "upsampler_weights": null, "vae_weights": null }, - "dit": {}, "dmd_denoising_steps": null, "embedded_cfg_scale": null, "experimental": {}, "flow_shift": null, - "longcat": { - "bsa_cdf_threshold": null, - "bsa_chunk_k": null, - "bsa_chunk_q": null, - "bsa_sparsity": null, - "enable_bsa": null - }, - "ltx2": { - "audio_latent_path": null, - "initial_latent_path": null, - "legacy_native_noise_order": false, - "refine": { - "add_noise": true, - "audio_noise_path": null, - "enabled": false, - "guidance_scale": 1.0, - "image_crf": null, - "lora_path": null, - "noise_path": null, - "num_inference_steps": 3, - "transformer_path": null, - "video_position_offset_sec": null - }, - "use_distilled_sigmas": true, - "vae_spatial_tile_overlap_in_pixels": null, - "vae_spatial_tile_size_in_pixels": null, - "vae_temporal_tile_overlap_in_frames": null, - "vae_temporal_tile_size_in_frames": null - }, - "minimax_h3": { + "model": { + "dit": {}, + "family": "minimax_h3", "sequential_load": null, "taeh3_checkpoint": null, "taeh3_chunk_size": 5, + "vae": {}, "vae_parallel_decode": true, "vae_parallel_decode_strategy": "gather", "vae_parallel_encode": false, @@ -563,7 +530,6 @@ "preset": null, "preset_overrides": {}, "preset_version": null, - "vae": {}, "vae_sp": false, "vae_tiling": true, "workload_type": "t2v" diff --git a/fastvideo/tests/api/config_snapshot_goldens/yaml/examples__serving__openai_fasth3_8step.yaml.json b/fastvideo/tests/api/config_snapshot_goldens/yaml/examples__serving__openai_fasth3_8step.yaml.json index 8aa74e152..b898408b8 100644 --- a/fastvideo/tests/api/config_snapshot_goldens/yaml/examples__serving__openai_fasth3_8step.yaml.json +++ b/fastvideo/tests/api/config_snapshot_goldens/yaml/examples__serving__openai_fasth3_8step.yaml.json @@ -426,15 +426,9 @@ "engine.attention.moba_config": {}, "engine.compile.audio_vae_enabled": false, "engine.compile.text_encoder_enabled": false, - "pipeline.ltx2.legacy_native_noise_order": false, - "pipeline.ltx2.refine.add_noise": true, - "pipeline.ltx2.refine.enabled": false, - "pipeline.ltx2.refine.guidance_scale": 1.0, - "pipeline.ltx2.refine.num_inference_steps": 3, - "pipeline.ltx2.use_distilled_sigmas": true, - "pipeline.minimax_h3.taeh3_chunk_size": 5, - "pipeline.minimax_h3.vae_parallel_encode": false, - "pipeline.minimax_h3.video_decode_backend": "h3-vae" + "pipeline.model.taeh3_chunk_size": 5, + "pipeline.model.vae_parallel_encode": false, + "pipeline.model.video_decode_backend": "h3-vae" } ] ], @@ -516,44 +510,17 @@ "upsampler_weights": null, "vae_weights": null }, - "dit": {}, "dmd_denoising_steps": null, "embedded_cfg_scale": null, "experimental": {}, "flow_shift": null, - "longcat": { - "bsa_cdf_threshold": null, - "bsa_chunk_k": null, - "bsa_chunk_q": null, - "bsa_sparsity": null, - "enable_bsa": null - }, - "ltx2": { - "audio_latent_path": null, - "initial_latent_path": null, - "legacy_native_noise_order": false, - "refine": { - "add_noise": true, - "audio_noise_path": null, - "enabled": false, - "guidance_scale": 1.0, - "image_crf": null, - "lora_path": null, - "noise_path": null, - "num_inference_steps": 3, - "transformer_path": null, - "video_position_offset_sec": null - }, - "use_distilled_sigmas": true, - "vae_spatial_tile_overlap_in_pixels": null, - "vae_spatial_tile_size_in_pixels": null, - "vae_temporal_tile_overlap_in_frames": null, - "vae_temporal_tile_size_in_frames": null - }, - "minimax_h3": { + "model": { + "dit": {}, + "family": "minimax_h3", "sequential_load": null, "taeh3_checkpoint": null, "taeh3_chunk_size": 5, + "vae": {}, "vae_parallel_decode": true, "vae_parallel_decode_strategy": "gather", "vae_parallel_encode": false, @@ -563,7 +530,6 @@ "preset": null, "preset_overrides": {}, "preset_version": null, - "vae": {}, "vae_sp": false, "vae_tiling": true, "workload_type": "t2v" diff --git a/fastvideo/tests/api/config_snapshot_goldens/yaml/examples__serving__openai_fasth3_lora.yaml.json b/fastvideo/tests/api/config_snapshot_goldens/yaml/examples__serving__openai_fasth3_lora.yaml.json index dc4b42289..bff6974da 100644 --- a/fastvideo/tests/api/config_snapshot_goldens/yaml/examples__serving__openai_fasth3_lora.yaml.json +++ b/fastvideo/tests/api/config_snapshot_goldens/yaml/examples__serving__openai_fasth3_lora.yaml.json @@ -428,15 +428,9 @@ "engine.attention.vsa_tile_size": 256, "engine.compile.audio_vae_enabled": false, "engine.compile.text_encoder_enabled": false, - "pipeline.ltx2.legacy_native_noise_order": false, - "pipeline.ltx2.refine.add_noise": true, - "pipeline.ltx2.refine.enabled": false, - "pipeline.ltx2.refine.guidance_scale": 1.0, - "pipeline.ltx2.refine.num_inference_steps": 3, - "pipeline.ltx2.use_distilled_sigmas": true, - "pipeline.minimax_h3.taeh3_chunk_size": 5, - "pipeline.minimax_h3.vae_parallel_encode": false, - "pipeline.minimax_h3.video_decode_backend": "h3-vae" + "pipeline.model.taeh3_chunk_size": 5, + "pipeline.model.vae_parallel_encode": false, + "pipeline.model.video_decode_backend": "h3-vae" } ] ], @@ -518,44 +512,17 @@ "upsampler_weights": null, "vae_weights": null }, - "dit": {}, "dmd_denoising_steps": null, "embedded_cfg_scale": null, "experimental": {}, "flow_shift": null, - "longcat": { - "bsa_cdf_threshold": null, - "bsa_chunk_k": null, - "bsa_chunk_q": null, - "bsa_sparsity": null, - "enable_bsa": null - }, - "ltx2": { - "audio_latent_path": null, - "initial_latent_path": null, - "legacy_native_noise_order": false, - "refine": { - "add_noise": true, - "audio_noise_path": null, - "enabled": false, - "guidance_scale": 1.0, - "image_crf": null, - "lora_path": null, - "noise_path": null, - "num_inference_steps": 3, - "transformer_path": null, - "video_position_offset_sec": null - }, - "use_distilled_sigmas": true, - "vae_spatial_tile_overlap_in_pixels": null, - "vae_spatial_tile_size_in_pixels": null, - "vae_temporal_tile_overlap_in_frames": null, - "vae_temporal_tile_size_in_frames": null - }, - "minimax_h3": { + "model": { + "dit": {}, + "family": "minimax_h3", "sequential_load": null, "taeh3_checkpoint": null, "taeh3_chunk_size": 5, + "vae": {}, "vae_parallel_decode": true, "vae_parallel_decode_strategy": "gather", "vae_parallel_encode": false, @@ -565,7 +532,6 @@ "preset": null, "preset_overrides": {}, "preset_version": null, - "vae": {}, "vae_sp": false, "vae_tiling": true, "workload_type": "t2v" diff --git a/fastvideo/tests/api/config_snapshot_goldens/yaml/examples__serving__openai_fastwan21_1_3b.yaml.json b/fastvideo/tests/api/config_snapshot_goldens/yaml/examples__serving__openai_fastwan21_1_3b.yaml.json index fca1fb729..27c114255 100644 --- a/fastvideo/tests/api/config_snapshot_goldens/yaml/examples__serving__openai_fastwan21_1_3b.yaml.json +++ b/fastvideo/tests/api/config_snapshot_goldens/yaml/examples__serving__openai_fastwan21_1_3b.yaml.json @@ -291,9 +291,13 @@ ], "resolution_decisions": [ [ - "fill_vae_parallel_from_env", + "fill_model_family[generic]", { - "pipeline.minimax_h3.vae_parallel_decode_strategy": "gather" + "pipeline.model": { + "dit": {}, + "family": "generic", + "vae": {} + } } ], [ @@ -332,16 +336,6 @@ "engine.compile.regional": false, "engine.compile.text_encoder_enabled": false, "engine.compile.vae_enabled": false, - "pipeline.ltx2.legacy_native_noise_order": false, - "pipeline.ltx2.refine.add_noise": true, - "pipeline.ltx2.refine.enabled": false, - "pipeline.ltx2.refine.guidance_scale": 1.0, - "pipeline.ltx2.refine.num_inference_steps": 3, - "pipeline.ltx2.use_distilled_sigmas": true, - "pipeline.minimax_h3.taeh3_chunk_size": 5, - "pipeline.minimax_h3.vae_parallel_decode": false, - "pipeline.minimax_h3.vae_parallel_encode": false, - "pipeline.minimax_h3.video_decode_backend": "h3-vae", "pipeline.workload_type": "t2v" } ] @@ -424,7 +418,6 @@ "upsampler_weights": null, "vae_weights": null }, - "dit": {}, "dmd_denoising_steps": [ 1000, 757, @@ -433,49 +426,15 @@ "embedded_cfg_scale": 6.0, "experimental": {}, "flow_shift": 8.0, - "longcat": { - "bsa_cdf_threshold": null, - "bsa_chunk_k": null, - "bsa_chunk_q": null, - "bsa_sparsity": null, - "enable_bsa": null - }, - "ltx2": { - "audio_latent_path": null, - "initial_latent_path": null, - "legacy_native_noise_order": false, - "refine": { - "add_noise": true, - "audio_noise_path": null, - "enabled": false, - "guidance_scale": 1.0, - "image_crf": null, - "lora_path": null, - "noise_path": null, - "num_inference_steps": 3, - "transformer_path": null, - "video_position_offset_sec": null - }, - "use_distilled_sigmas": true, - "vae_spatial_tile_overlap_in_pixels": null, - "vae_spatial_tile_size_in_pixels": null, - "vae_temporal_tile_overlap_in_frames": null, - "vae_temporal_tile_size_in_frames": null - }, - "minimax_h3": { - "sequential_load": null, - "taeh3_checkpoint": null, - "taeh3_chunk_size": 5, - "vae_parallel_decode": false, - "vae_parallel_decode_strategy": "gather", - "vae_parallel_encode": false, - "video_decode_backend": "h3-vae" + "model": { + "dit": {}, + "family": "generic", + "vae": {} }, "output_type": "pil", "preset": null, "preset_overrides": {}, "preset_version": null, - "vae": {}, "vae_sp": false, "vae_tiling": false, "workload_type": "t2v" diff --git a/fastvideo/tests/api/config_snapshot_goldens/yaml/examples__serving__openai_wan21_i2v_14b.yaml.json b/fastvideo/tests/api/config_snapshot_goldens/yaml/examples__serving__openai_wan21_i2v_14b.yaml.json index 677d029cb..6e83fdb99 100644 --- a/fastvideo/tests/api/config_snapshot_goldens/yaml/examples__serving__openai_wan21_i2v_14b.yaml.json +++ b/fastvideo/tests/api/config_snapshot_goldens/yaml/examples__serving__openai_wan21_i2v_14b.yaml.json @@ -320,9 +320,13 @@ ], "resolution_decisions": [ [ - "fill_vae_parallel_from_env", + "fill_model_family[generic]", { - "pipeline.minimax_h3.vae_parallel_decode_strategy": "gather" + "pipeline.model": { + "dit": {}, + "family": "generic", + "vae": {} + } } ], [ @@ -360,17 +364,7 @@ "engine.compile.audio_vae_enabled": false, "engine.compile.regional": false, "engine.compile.text_encoder_enabled": false, - "engine.compile.vae_enabled": false, - "pipeline.ltx2.legacy_native_noise_order": false, - "pipeline.ltx2.refine.add_noise": true, - "pipeline.ltx2.refine.enabled": false, - "pipeline.ltx2.refine.guidance_scale": 1.0, - "pipeline.ltx2.refine.num_inference_steps": 3, - "pipeline.ltx2.use_distilled_sigmas": true, - "pipeline.minimax_h3.taeh3_chunk_size": 5, - "pipeline.minimax_h3.vae_parallel_decode": false, - "pipeline.minimax_h3.vae_parallel_encode": false, - "pipeline.minimax_h3.video_decode_backend": "h3-vae" + "engine.compile.vae_enabled": false } ] ], @@ -452,54 +446,19 @@ "upsampler_weights": null, "vae_weights": null }, - "dit": {}, "dmd_denoising_steps": null, "embedded_cfg_scale": 6.0, "experimental": {}, "flow_shift": 3.0, - "longcat": { - "bsa_cdf_threshold": null, - "bsa_chunk_k": null, - "bsa_chunk_q": null, - "bsa_sparsity": null, - "enable_bsa": null - }, - "ltx2": { - "audio_latent_path": null, - "initial_latent_path": null, - "legacy_native_noise_order": false, - "refine": { - "add_noise": true, - "audio_noise_path": null, - "enabled": false, - "guidance_scale": 1.0, - "image_crf": null, - "lora_path": null, - "noise_path": null, - "num_inference_steps": 3, - "transformer_path": null, - "video_position_offset_sec": null - }, - "use_distilled_sigmas": true, - "vae_spatial_tile_overlap_in_pixels": null, - "vae_spatial_tile_size_in_pixels": null, - "vae_temporal_tile_overlap_in_frames": null, - "vae_temporal_tile_size_in_frames": null - }, - "minimax_h3": { - "sequential_load": null, - "taeh3_checkpoint": null, - "taeh3_chunk_size": 5, - "vae_parallel_decode": false, - "vae_parallel_decode_strategy": "gather", - "vae_parallel_encode": false, - "video_decode_backend": "h3-vae" + "model": { + "dit": {}, + "family": "generic", + "vae": {} }, "output_type": "pil", "preset": null, "preset_overrides": {}, "preset_version": null, - "vae": {}, "vae_sp": false, "vae_tiling": false, "workload_type": "i2v" diff --git a/fastvideo/tests/api/config_snapshot_goldens/yaml/examples__serving__openai_wan22_t2v_a14b.yaml.json b/fastvideo/tests/api/config_snapshot_goldens/yaml/examples__serving__openai_wan22_t2v_a14b.yaml.json index 5b9e0ddc7..e3f26fcf2 100644 --- a/fastvideo/tests/api/config_snapshot_goldens/yaml/examples__serving__openai_wan22_t2v_a14b.yaml.json +++ b/fastvideo/tests/api/config_snapshot_goldens/yaml/examples__serving__openai_wan22_t2v_a14b.yaml.json @@ -295,9 +295,13 @@ ], "resolution_decisions": [ [ - "fill_vae_parallel_from_env", + "fill_model_family[generic]", { - "pipeline.minimax_h3.vae_parallel_decode_strategy": "gather" + "pipeline.model": { + "dit": {}, + "family": "generic", + "vae": {} + } } ], [ @@ -344,16 +348,6 @@ "engine.compile.regional": false, "engine.compile.text_encoder_enabled": false, "engine.compile.vae_enabled": false, - "pipeline.ltx2.legacy_native_noise_order": false, - "pipeline.ltx2.refine.add_noise": true, - "pipeline.ltx2.refine.enabled": false, - "pipeline.ltx2.refine.guidance_scale": 1.0, - "pipeline.ltx2.refine.num_inference_steps": 3, - "pipeline.ltx2.use_distilled_sigmas": true, - "pipeline.minimax_h3.taeh3_chunk_size": 5, - "pipeline.minimax_h3.vae_parallel_decode": false, - "pipeline.minimax_h3.vae_parallel_encode": false, - "pipeline.minimax_h3.video_decode_backend": "h3-vae", "pipeline.workload_type": "t2v" } ] @@ -436,7 +430,6 @@ "upsampler_weights": null, "vae_weights": null }, - "dit": {}, "dmd_denoising_steps": [ 1000, 750, @@ -446,49 +439,15 @@ "embedded_cfg_scale": 6.0, "experimental": {}, "flow_shift": 12.0, - "longcat": { - "bsa_cdf_threshold": null, - "bsa_chunk_k": null, - "bsa_chunk_q": null, - "bsa_sparsity": null, - "enable_bsa": null - }, - "ltx2": { - "audio_latent_path": null, - "initial_latent_path": null, - "legacy_native_noise_order": false, - "refine": { - "add_noise": true, - "audio_noise_path": null, - "enabled": false, - "guidance_scale": 1.0, - "image_crf": null, - "lora_path": null, - "noise_path": null, - "num_inference_steps": 3, - "transformer_path": null, - "video_position_offset_sec": null - }, - "use_distilled_sigmas": true, - "vae_spatial_tile_overlap_in_pixels": null, - "vae_spatial_tile_size_in_pixels": null, - "vae_temporal_tile_overlap_in_frames": null, - "vae_temporal_tile_size_in_frames": null - }, - "minimax_h3": { - "sequential_load": null, - "taeh3_checkpoint": null, - "taeh3_chunk_size": 5, - "vae_parallel_decode": false, - "vae_parallel_decode_strategy": "gather", - "vae_parallel_encode": false, - "video_decode_backend": "h3-vae" + "model": { + "dit": {}, + "family": "generic", + "vae": {} }, "output_type": "pil", "preset": null, "preset_overrides": {}, "preset_version": null, - "vae": {}, "vae_sp": false, "vae_tiling": false, "workload_type": "t2v" diff --git a/fastvideo/tests/api/config_snapshot_goldens/yaml/examples__serving__openai_wan22_ti2v_5b.yaml.json b/fastvideo/tests/api/config_snapshot_goldens/yaml/examples__serving__openai_wan22_ti2v_5b.yaml.json index ae324b2ec..047266214 100644 --- a/fastvideo/tests/api/config_snapshot_goldens/yaml/examples__serving__openai_wan22_ti2v_5b.yaml.json +++ b/fastvideo/tests/api/config_snapshot_goldens/yaml/examples__serving__openai_wan22_ti2v_5b.yaml.json @@ -290,9 +290,13 @@ ], "resolution_decisions": [ [ - "fill_vae_parallel_from_env", + "fill_model_family[generic]", { - "pipeline.minimax_h3.vae_parallel_decode_strategy": "gather" + "pipeline.model": { + "dit": {}, + "family": "generic", + "vae": {} + } } ], [ @@ -332,16 +336,6 @@ "engine.compile.regional": false, "engine.compile.text_encoder_enabled": false, "engine.compile.vae_enabled": false, - "pipeline.ltx2.legacy_native_noise_order": false, - "pipeline.ltx2.refine.add_noise": true, - "pipeline.ltx2.refine.enabled": false, - "pipeline.ltx2.refine.guidance_scale": 1.0, - "pipeline.ltx2.refine.num_inference_steps": 3, - "pipeline.ltx2.use_distilled_sigmas": true, - "pipeline.minimax_h3.taeh3_chunk_size": 5, - "pipeline.minimax_h3.vae_parallel_decode": false, - "pipeline.minimax_h3.vae_parallel_encode": false, - "pipeline.minimax_h3.video_decode_backend": "h3-vae", "pipeline.workload_type": "t2v" } ] @@ -424,54 +418,19 @@ "upsampler_weights": null, "vae_weights": null }, - "dit": {}, "dmd_denoising_steps": null, "embedded_cfg_scale": 6.0, "experimental": {}, "flow_shift": 5.0, - "longcat": { - "bsa_cdf_threshold": null, - "bsa_chunk_k": null, - "bsa_chunk_q": null, - "bsa_sparsity": null, - "enable_bsa": null - }, - "ltx2": { - "audio_latent_path": null, - "initial_latent_path": null, - "legacy_native_noise_order": false, - "refine": { - "add_noise": true, - "audio_noise_path": null, - "enabled": false, - "guidance_scale": 1.0, - "image_crf": null, - "lora_path": null, - "noise_path": null, - "num_inference_steps": 3, - "transformer_path": null, - "video_position_offset_sec": null - }, - "use_distilled_sigmas": true, - "vae_spatial_tile_overlap_in_pixels": null, - "vae_spatial_tile_size_in_pixels": null, - "vae_temporal_tile_overlap_in_frames": null, - "vae_temporal_tile_size_in_frames": null - }, - "minimax_h3": { - "sequential_load": null, - "taeh3_checkpoint": null, - "taeh3_chunk_size": 5, - "vae_parallel_decode": false, - "vae_parallel_decode_strategy": "gather", - "vae_parallel_encode": false, - "video_decode_backend": "h3-vae" + "model": { + "dit": {}, + "family": "generic", + "vae": {} }, "output_type": "pil", "preset": null, "preset_overrides": {}, "preset_version": null, - "vae": {}, "vae_sp": false, "vae_tiling": false, "workload_type": "t2v" diff --git a/fastvideo/tests/api/config_snapshot_goldens/yaml/examples__serving__streaming_demo.yaml.json b/fastvideo/tests/api/config_snapshot_goldens/yaml/examples__serving__streaming_demo.yaml.json index ffcc68dcf..52672a6b7 100644 --- a/fastvideo/tests/api/config_snapshot_goldens/yaml/examples__serving__streaming_demo.yaml.json +++ b/fastvideo/tests/api/config_snapshot_goldens/yaml/examples__serving__streaming_demo.yaml.json @@ -273,9 +273,33 @@ ], "resolution_decisions": [ [ - "fill_vae_parallel_from_env", + "fill_model_family[ltx2]", { - "pipeline.minimax_h3.vae_parallel_decode_strategy": "gather" + "pipeline.model": { + "audio_latent_path": null, + "dit": {}, + "family": "ltx2", + "initial_latent_path": null, + "legacy_native_noise_order": null, + "refine": { + "add_noise": null, + "audio_noise_path": null, + "enabled": null, + "guidance_scale": null, + "image_crf": null, + "lora_path": null, + "noise_path": null, + "num_inference_steps": null, + "transformer_path": null, + "video_position_offset_sec": null + }, + "use_distilled_sigmas": null, + "vae": {}, + "vae_spatial_tile_overlap_in_pixels": null, + "vae_spatial_tile_size_in_pixels": null, + "vae_temporal_tile_overlap_in_frames": null, + "vae_temporal_tile_size_in_frames": null + } } ], [ @@ -294,10 +318,10 @@ [ "copy_refine_preset_overrides", { - "pipeline.ltx2.refine.add_noise": true, - "pipeline.ltx2.refine.enabled": true, - "pipeline.ltx2.refine.guidance_scale": 1.0, - "pipeline.ltx2.refine.num_inference_steps": 2 + "pipeline.model.refine.add_noise": true, + "pipeline.model.refine.enabled": true, + "pipeline.model.refine.guidance_scale": 1.0, + "pipeline.model.refine.num_inference_steps": 2 } ], [ @@ -317,12 +341,8 @@ "engine.compile.audio_vae_enabled": false, "engine.compile.regional": false, "engine.compile.vae_enabled": false, - "pipeline.ltx2.legacy_native_noise_order": false, - "pipeline.ltx2.use_distilled_sigmas": true, - "pipeline.minimax_h3.taeh3_chunk_size": 5, - "pipeline.minimax_h3.vae_parallel_decode": false, - "pipeline.minimax_h3.vae_parallel_encode": false, - "pipeline.minimax_h3.video_decode_backend": "h3-vae" + "pipeline.model.legacy_native_noise_order": false, + "pipeline.model.use_distilled_sigmas": true } ] ], @@ -407,20 +427,14 @@ "upsampler_weights": null, "vae_weights": null }, - "dit": {}, "dmd_denoising_steps": null, "embedded_cfg_scale": 6.0, "experimental": {}, "flow_shift": null, - "longcat": { - "bsa_cdf_threshold": null, - "bsa_chunk_k": null, - "bsa_chunk_q": null, - "bsa_sparsity": null, - "enable_bsa": null - }, - "ltx2": { + "model": { "audio_latent_path": null, + "dit": {}, + "family": "ltx2", "initial_latent_path": null, "legacy_native_noise_order": false, "refine": { @@ -436,20 +450,12 @@ "video_position_offset_sec": null }, "use_distilled_sigmas": true, + "vae": {}, "vae_spatial_tile_overlap_in_pixels": null, "vae_spatial_tile_size_in_pixels": null, "vae_temporal_tile_overlap_in_frames": null, "vae_temporal_tile_size_in_frames": null }, - "minimax_h3": { - "sequential_load": null, - "taeh3_checkpoint": null, - "taeh3_chunk_size": 5, - "vae_parallel_decode": false, - "vae_parallel_decode_strategy": "gather", - "vae_parallel_encode": false, - "video_decode_backend": "h3-vae" - }, "output_type": "pil", "preset": null, "preset_overrides": { @@ -461,7 +467,6 @@ } }, "preset_version": null, - "vae": {}, "vae_sp": false, "vae_tiling": false, "workload_type": "t2v" diff --git a/fastvideo/tests/api/config_snapshot_goldens/yaml/scripts__inference__inference_fasthunyuan.yaml.json b/fastvideo/tests/api/config_snapshot_goldens/yaml/scripts__inference__inference_fasthunyuan.yaml.json index d7a95be4f..9b74084a7 100644 --- a/fastvideo/tests/api/config_snapshot_goldens/yaml/scripts__inference__inference_fasthunyuan.yaml.json +++ b/fastvideo/tests/api/config_snapshot_goldens/yaml/scripts__inference__inference_fasthunyuan.yaml.json @@ -314,9 +314,13 @@ ], "resolution_decisions": [ [ - "fill_vae_parallel_from_env", + "fill_model_family[generic]", { - "pipeline.minimax_h3.vae_parallel_decode_strategy": "gather" + "pipeline.model": { + "dit": {}, + "family": "generic", + "vae": {} + } } ], [ @@ -354,16 +358,6 @@ "engine.compile.regional": false, "engine.compile.text_encoder_enabled": false, "engine.compile.vae_enabled": false, - "pipeline.ltx2.legacy_native_noise_order": false, - "pipeline.ltx2.refine.add_noise": true, - "pipeline.ltx2.refine.enabled": false, - "pipeline.ltx2.refine.guidance_scale": 1.0, - "pipeline.ltx2.refine.num_inference_steps": 3, - "pipeline.ltx2.use_distilled_sigmas": true, - "pipeline.minimax_h3.taeh3_chunk_size": 5, - "pipeline.minimax_h3.vae_parallel_decode": false, - "pipeline.minimax_h3.vae_parallel_encode": false, - "pipeline.minimax_h3.video_decode_backend": "h3-vae", "pipeline.workload_type": "t2v" } ] @@ -447,54 +441,19 @@ "upsampler_weights": null, "vae_weights": null }, - "dit": {}, "dmd_denoising_steps": null, "embedded_cfg_scale": 6.0, "experimental": {}, "flow_shift": 17.0, - "longcat": { - "bsa_cdf_threshold": null, - "bsa_chunk_k": null, - "bsa_chunk_q": null, - "bsa_sparsity": null, - "enable_bsa": null - }, - "ltx2": { - "audio_latent_path": null, - "initial_latent_path": null, - "legacy_native_noise_order": false, - "refine": { - "add_noise": true, - "audio_noise_path": null, - "enabled": false, - "guidance_scale": 1.0, - "image_crf": null, - "lora_path": null, - "noise_path": null, - "num_inference_steps": 3, - "transformer_path": null, - "video_position_offset_sec": null - }, - "use_distilled_sigmas": true, - "vae_spatial_tile_overlap_in_pixels": null, - "vae_spatial_tile_size_in_pixels": null, - "vae_temporal_tile_overlap_in_frames": null, - "vae_temporal_tile_size_in_frames": null - }, - "minimax_h3": { - "sequential_load": null, - "taeh3_checkpoint": null, - "taeh3_chunk_size": 5, - "vae_parallel_decode": false, - "vae_parallel_decode_strategy": "gather", - "vae_parallel_encode": false, - "video_decode_backend": "h3-vae" + "model": { + "dit": {}, + "family": "generic", + "vae": {} }, "output_type": "pil", "preset": null, "preset_overrides": {}, "preset_version": null, - "vae": {}, "vae_sp": true, "vae_tiling": true, "workload_type": "t2v" diff --git a/fastvideo/tests/api/config_snapshot_goldens/yaml/scripts__inference__inference_flux2_klein.yaml.json b/fastvideo/tests/api/config_snapshot_goldens/yaml/scripts__inference__inference_flux2_klein.yaml.json index 02e9c04d8..cde585dd3 100644 --- a/fastvideo/tests/api/config_snapshot_goldens/yaml/scripts__inference__inference_flux2_klein.yaml.json +++ b/fastvideo/tests/api/config_snapshot_goldens/yaml/scripts__inference__inference_flux2_klein.yaml.json @@ -255,9 +255,13 @@ ], "resolution_decisions": [ [ - "fill_vae_parallel_from_env", + "fill_model_family[generic]", { - "pipeline.minimax_h3.vae_parallel_decode_strategy": "gather" + "pipeline.model": { + "dit": {}, + "family": "generic", + "vae": {} + } } ], [ @@ -295,17 +299,7 @@ "engine.compile.audio_vae_enabled": false, "engine.compile.regional": false, "engine.compile.text_encoder_enabled": false, - "engine.compile.vae_enabled": false, - "pipeline.ltx2.legacy_native_noise_order": false, - "pipeline.ltx2.refine.add_noise": true, - "pipeline.ltx2.refine.enabled": false, - "pipeline.ltx2.refine.guidance_scale": 1.0, - "pipeline.ltx2.refine.num_inference_steps": 3, - "pipeline.ltx2.use_distilled_sigmas": true, - "pipeline.minimax_h3.taeh3_chunk_size": 5, - "pipeline.minimax_h3.vae_parallel_decode": false, - "pipeline.minimax_h3.vae_parallel_encode": false, - "pipeline.minimax_h3.video_decode_backend": "h3-vae" + "engine.compile.vae_enabled": false } ] ], @@ -387,54 +381,19 @@ "upsampler_weights": null, "vae_weights": null }, - "dit": {}, "dmd_denoising_steps": null, "embedded_cfg_scale": null, "experimental": {}, "flow_shift": null, - "longcat": { - "bsa_cdf_threshold": null, - "bsa_chunk_k": null, - "bsa_chunk_q": null, - "bsa_sparsity": null, - "enable_bsa": null - }, - "ltx2": { - "audio_latent_path": null, - "initial_latent_path": null, - "legacy_native_noise_order": false, - "refine": { - "add_noise": true, - "audio_noise_path": null, - "enabled": false, - "guidance_scale": 1.0, - "image_crf": null, - "lora_path": null, - "noise_path": null, - "num_inference_steps": 3, - "transformer_path": null, - "video_position_offset_sec": null - }, - "use_distilled_sigmas": true, - "vae_spatial_tile_overlap_in_pixels": null, - "vae_spatial_tile_size_in_pixels": null, - "vae_temporal_tile_overlap_in_frames": null, - "vae_temporal_tile_size_in_frames": null - }, - "minimax_h3": { - "sequential_load": null, - "taeh3_checkpoint": null, - "taeh3_chunk_size": 5, - "vae_parallel_decode": false, - "vae_parallel_decode_strategy": "gather", - "vae_parallel_encode": false, - "video_decode_backend": "h3-vae" + "model": { + "dit": {}, + "family": "generic", + "vae": {} }, "output_type": "pil", "preset": null, "preset_overrides": {}, "preset_version": null, - "vae": {}, "vae_sp": false, "vae_tiling": false, "workload_type": "t2i" diff --git a/fastvideo/tests/api/config_snapshot_goldens/yaml/scripts__inference__inference_hunyuan.yaml.json b/fastvideo/tests/api/config_snapshot_goldens/yaml/scripts__inference__inference_hunyuan.yaml.json index 89dbe1d70..1d2a218bf 100644 --- a/fastvideo/tests/api/config_snapshot_goldens/yaml/scripts__inference__inference_hunyuan.yaml.json +++ b/fastvideo/tests/api/config_snapshot_goldens/yaml/scripts__inference__inference_hunyuan.yaml.json @@ -314,9 +314,13 @@ ], "resolution_decisions": [ [ - "fill_vae_parallel_from_env", + "fill_model_family[generic]", { - "pipeline.minimax_h3.vae_parallel_decode_strategy": "gather" + "pipeline.model": { + "dit": {}, + "family": "generic", + "vae": {} + } } ], [ @@ -354,16 +358,6 @@ "engine.compile.regional": false, "engine.compile.text_encoder_enabled": false, "engine.compile.vae_enabled": false, - "pipeline.ltx2.legacy_native_noise_order": false, - "pipeline.ltx2.refine.add_noise": true, - "pipeline.ltx2.refine.enabled": false, - "pipeline.ltx2.refine.guidance_scale": 1.0, - "pipeline.ltx2.refine.num_inference_steps": 3, - "pipeline.ltx2.use_distilled_sigmas": true, - "pipeline.minimax_h3.taeh3_chunk_size": 5, - "pipeline.minimax_h3.vae_parallel_decode": false, - "pipeline.minimax_h3.vae_parallel_encode": false, - "pipeline.minimax_h3.video_decode_backend": "h3-vae", "pipeline.workload_type": "t2v" } ] @@ -447,54 +441,19 @@ "upsampler_weights": null, "vae_weights": null }, - "dit": {}, "dmd_denoising_steps": null, "embedded_cfg_scale": 6.0, "experimental": {}, "flow_shift": 7.0, - "longcat": { - "bsa_cdf_threshold": null, - "bsa_chunk_k": null, - "bsa_chunk_q": null, - "bsa_sparsity": null, - "enable_bsa": null - }, - "ltx2": { - "audio_latent_path": null, - "initial_latent_path": null, - "legacy_native_noise_order": false, - "refine": { - "add_noise": true, - "audio_noise_path": null, - "enabled": false, - "guidance_scale": 1.0, - "image_crf": null, - "lora_path": null, - "noise_path": null, - "num_inference_steps": 3, - "transformer_path": null, - "video_position_offset_sec": null - }, - "use_distilled_sigmas": true, - "vae_spatial_tile_overlap_in_pixels": null, - "vae_spatial_tile_size_in_pixels": null, - "vae_temporal_tile_overlap_in_frames": null, - "vae_temporal_tile_size_in_frames": null - }, - "minimax_h3": { - "sequential_load": null, - "taeh3_checkpoint": null, - "taeh3_chunk_size": 5, - "vae_parallel_decode": false, - "vae_parallel_decode_strategy": "gather", - "vae_parallel_encode": false, - "video_decode_backend": "h3-vae" + "model": { + "dit": {}, + "family": "generic", + "vae": {} }, "output_type": "pil", "preset": null, "preset_overrides": {}, "preset_version": null, - "vae": {}, "vae_sp": true, "vae_tiling": true, "workload_type": "t2v" diff --git a/fastvideo/tests/api/config_snapshot_goldens/yaml/scripts__inference__inference_longcat.yaml.json b/fastvideo/tests/api/config_snapshot_goldens/yaml/scripts__inference__inference_longcat.yaml.json index 2a379d447..e4d997a68 100644 --- a/fastvideo/tests/api/config_snapshot_goldens/yaml/scripts__inference__inference_longcat.yaml.json +++ b/fastvideo/tests/api/config_snapshot_goldens/yaml/scripts__inference__inference_longcat.yaml.json @@ -285,12 +285,6 @@ ] ], "resolution_decisions": [ - [ - "fill_vae_parallel_from_env", - { - "pipeline.minimax_h3.vae_parallel_decode_strategy": "gather" - } - ], [ "fill_pipeline_config_defaults[LongCatT2V480PConfig]", { @@ -326,16 +320,6 @@ "engine.compile.regional": false, "engine.compile.text_encoder_enabled": false, "engine.compile.vae_enabled": false, - "pipeline.ltx2.legacy_native_noise_order": false, - "pipeline.ltx2.refine.add_noise": true, - "pipeline.ltx2.refine.enabled": false, - "pipeline.ltx2.refine.guidance_scale": 1.0, - "pipeline.ltx2.refine.num_inference_steps": 3, - "pipeline.ltx2.use_distilled_sigmas": true, - "pipeline.minimax_h3.taeh3_chunk_size": 5, - "pipeline.minimax_h3.vae_parallel_decode": false, - "pipeline.minimax_h3.vae_parallel_encode": false, - "pipeline.minimax_h3.video_decode_backend": "h3-vae", "pipeline.workload_type": "t2v" } ] @@ -418,54 +402,24 @@ "upsampler_weights": null, "vae_weights": null }, - "dit": {}, "dmd_denoising_steps": null, "embedded_cfg_scale": 6.0, "experimental": {}, "flow_shift": null, - "longcat": { + "model": { "bsa_cdf_threshold": null, "bsa_chunk_k": null, "bsa_chunk_q": null, "bsa_sparsity": null, - "enable_bsa": false - }, - "ltx2": { - "audio_latent_path": null, - "initial_latent_path": null, - "legacy_native_noise_order": false, - "refine": { - "add_noise": true, - "audio_noise_path": null, - "enabled": false, - "guidance_scale": 1.0, - "image_crf": null, - "lora_path": null, - "noise_path": null, - "num_inference_steps": 3, - "transformer_path": null, - "video_position_offset_sec": null - }, - "use_distilled_sigmas": true, - "vae_spatial_tile_overlap_in_pixels": null, - "vae_spatial_tile_size_in_pixels": null, - "vae_temporal_tile_overlap_in_frames": null, - "vae_temporal_tile_size_in_frames": null - }, - "minimax_h3": { - "sequential_load": null, - "taeh3_checkpoint": null, - "taeh3_chunk_size": 5, - "vae_parallel_decode": false, - "vae_parallel_decode_strategy": "gather", - "vae_parallel_encode": false, - "video_decode_backend": "h3-vae" + "dit": {}, + "enable_bsa": false, + "family": "longcat", + "vae": {} }, "output_type": "pil", "preset": null, "preset_overrides": {}, "preset_version": null, - "vae": {}, "vae_sp": false, "vae_tiling": false, "workload_type": "t2v" diff --git a/fastvideo/tests/api/config_snapshot_goldens/yaml/scripts__inference__inference_longcat_distill.yaml.json b/fastvideo/tests/api/config_snapshot_goldens/yaml/scripts__inference__inference_longcat_distill.yaml.json index e037ff0da..543de0d63 100644 --- a/fastvideo/tests/api/config_snapshot_goldens/yaml/scripts__inference__inference_longcat_distill.yaml.json +++ b/fastvideo/tests/api/config_snapshot_goldens/yaml/scripts__inference__inference_longcat_distill.yaml.json @@ -285,12 +285,6 @@ ] ], "resolution_decisions": [ - [ - "fill_vae_parallel_from_env", - { - "pipeline.minimax_h3.vae_parallel_decode_strategy": "gather" - } - ], [ "fill_pipeline_config_defaults[LongCatT2V480PConfig]", { @@ -326,16 +320,6 @@ "engine.compile.regional": false, "engine.compile.text_encoder_enabled": false, "engine.compile.vae_enabled": false, - "pipeline.ltx2.legacy_native_noise_order": false, - "pipeline.ltx2.refine.add_noise": true, - "pipeline.ltx2.refine.enabled": false, - "pipeline.ltx2.refine.guidance_scale": 1.0, - "pipeline.ltx2.refine.num_inference_steps": 3, - "pipeline.ltx2.use_distilled_sigmas": true, - "pipeline.minimax_h3.taeh3_chunk_size": 5, - "pipeline.minimax_h3.vae_parallel_decode": false, - "pipeline.minimax_h3.vae_parallel_encode": false, - "pipeline.minimax_h3.video_decode_backend": "h3-vae", "pipeline.workload_type": "t2v" } ] @@ -418,54 +402,24 @@ "upsampler_weights": null, "vae_weights": null }, - "dit": {}, "dmd_denoising_steps": null, "embedded_cfg_scale": 6.0, "experimental": {}, "flow_shift": null, - "longcat": { + "model": { "bsa_cdf_threshold": null, "bsa_chunk_k": null, "bsa_chunk_q": null, "bsa_sparsity": null, - "enable_bsa": false - }, - "ltx2": { - "audio_latent_path": null, - "initial_latent_path": null, - "legacy_native_noise_order": false, - "refine": { - "add_noise": true, - "audio_noise_path": null, - "enabled": false, - "guidance_scale": 1.0, - "image_crf": null, - "lora_path": null, - "noise_path": null, - "num_inference_steps": 3, - "transformer_path": null, - "video_position_offset_sec": null - }, - "use_distilled_sigmas": true, - "vae_spatial_tile_overlap_in_pixels": null, - "vae_spatial_tile_size_in_pixels": null, - "vae_temporal_tile_overlap_in_frames": null, - "vae_temporal_tile_size_in_frames": null - }, - "minimax_h3": { - "sequential_load": null, - "taeh3_checkpoint": null, - "taeh3_chunk_size": 5, - "vae_parallel_decode": false, - "vae_parallel_decode_strategy": "gather", - "vae_parallel_encode": false, - "video_decode_backend": "h3-vae" + "dit": {}, + "enable_bsa": false, + "family": "longcat", + "vae": {} }, "output_type": "pil", "preset": null, "preset_overrides": {}, "preset_version": null, - "vae": {}, "vae_sp": false, "vae_tiling": false, "workload_type": "t2v" diff --git a/fastvideo/tests/api/config_snapshot_goldens/yaml/scripts__inference__inference_longcat_i2v.yaml.json b/fastvideo/tests/api/config_snapshot_goldens/yaml/scripts__inference__inference_longcat_i2v.yaml.json index 48a585a33..8b191425c 100644 --- a/fastvideo/tests/api/config_snapshot_goldens/yaml/scripts__inference__inference_longcat_i2v.yaml.json +++ b/fastvideo/tests/api/config_snapshot_goldens/yaml/scripts__inference__inference_longcat_i2v.yaml.json @@ -285,12 +285,6 @@ ] ], "resolution_decisions": [ - [ - "fill_vae_parallel_from_env", - { - "pipeline.minimax_h3.vae_parallel_decode_strategy": "gather" - } - ], [ "fill_pipeline_config_defaults[LongCatT2V480PConfig]", { @@ -325,17 +319,7 @@ "engine.compile.audio_vae_enabled": false, "engine.compile.regional": false, "engine.compile.text_encoder_enabled": false, - "engine.compile.vae_enabled": false, - "pipeline.ltx2.legacy_native_noise_order": false, - "pipeline.ltx2.refine.add_noise": true, - "pipeline.ltx2.refine.enabled": false, - "pipeline.ltx2.refine.guidance_scale": 1.0, - "pipeline.ltx2.refine.num_inference_steps": 3, - "pipeline.ltx2.use_distilled_sigmas": true, - "pipeline.minimax_h3.taeh3_chunk_size": 5, - "pipeline.minimax_h3.vae_parallel_decode": false, - "pipeline.minimax_h3.vae_parallel_encode": false, - "pipeline.minimax_h3.video_decode_backend": "h3-vae" + "engine.compile.vae_enabled": false } ] ], @@ -417,54 +401,24 @@ "upsampler_weights": null, "vae_weights": null }, - "dit": {}, "dmd_denoising_steps": null, "embedded_cfg_scale": 6.0, "experimental": {}, "flow_shift": null, - "longcat": { + "model": { "bsa_cdf_threshold": null, "bsa_chunk_k": null, "bsa_chunk_q": null, "bsa_sparsity": null, - "enable_bsa": false - }, - "ltx2": { - "audio_latent_path": null, - "initial_latent_path": null, - "legacy_native_noise_order": false, - "refine": { - "add_noise": true, - "audio_noise_path": null, - "enabled": false, - "guidance_scale": 1.0, - "image_crf": null, - "lora_path": null, - "noise_path": null, - "num_inference_steps": 3, - "transformer_path": null, - "video_position_offset_sec": null - }, - "use_distilled_sigmas": true, - "vae_spatial_tile_overlap_in_pixels": null, - "vae_spatial_tile_size_in_pixels": null, - "vae_temporal_tile_overlap_in_frames": null, - "vae_temporal_tile_size_in_frames": null - }, - "minimax_h3": { - "sequential_load": null, - "taeh3_checkpoint": null, - "taeh3_chunk_size": 5, - "vae_parallel_decode": false, - "vae_parallel_decode_strategy": "gather", - "vae_parallel_encode": false, - "video_decode_backend": "h3-vae" + "dit": {}, + "enable_bsa": false, + "family": "longcat", + "vae": {} }, "output_type": "pil", "preset": null, "preset_overrides": {}, "preset_version": null, - "vae": {}, "vae_sp": false, "vae_tiling": false, "workload_type": "i2v" diff --git a/fastvideo/tests/api/config_snapshot_goldens/yaml/scripts__inference__inference_longcat_refine_fromvideo.yaml.json b/fastvideo/tests/api/config_snapshot_goldens/yaml/scripts__inference__inference_longcat_refine_fromvideo.yaml.json index 58f2618db..dc50f8aad 100644 --- a/fastvideo/tests/api/config_snapshot_goldens/yaml/scripts__inference__inference_longcat_refine_fromvideo.yaml.json +++ b/fastvideo/tests/api/config_snapshot_goldens/yaml/scripts__inference__inference_longcat_refine_fromvideo.yaml.json @@ -294,12 +294,6 @@ ] ], "resolution_decisions": [ - [ - "fill_vae_parallel_from_env", - { - "pipeline.minimax_h3.vae_parallel_decode_strategy": "gather" - } - ], [ "fill_pipeline_config_defaults[LongCatT2V480PConfig]", { @@ -335,16 +329,6 @@ "engine.compile.regional": false, "engine.compile.text_encoder_enabled": false, "engine.compile.vae_enabled": false, - "pipeline.ltx2.legacy_native_noise_order": false, - "pipeline.ltx2.refine.add_noise": true, - "pipeline.ltx2.refine.enabled": false, - "pipeline.ltx2.refine.guidance_scale": 1.0, - "pipeline.ltx2.refine.num_inference_steps": 3, - "pipeline.ltx2.use_distilled_sigmas": true, - "pipeline.minimax_h3.taeh3_chunk_size": 5, - "pipeline.minimax_h3.vae_parallel_decode": false, - "pipeline.minimax_h3.vae_parallel_encode": false, - "pipeline.minimax_h3.video_decode_backend": "h3-vae", "pipeline.workload_type": "t2v" } ] @@ -427,12 +411,11 @@ "upsampler_weights": null, "vae_weights": null }, - "dit": {}, "dmd_denoising_steps": null, "embedded_cfg_scale": 6.0, "experimental": {}, "flow_shift": null, - "longcat": { + "model": { "bsa_cdf_threshold": null, "bsa_chunk_k": [ 4, @@ -445,44 +428,15 @@ 8 ], "bsa_sparsity": 0.875, - "enable_bsa": true - }, - "ltx2": { - "audio_latent_path": null, - "initial_latent_path": null, - "legacy_native_noise_order": false, - "refine": { - "add_noise": true, - "audio_noise_path": null, - "enabled": false, - "guidance_scale": 1.0, - "image_crf": null, - "lora_path": null, - "noise_path": null, - "num_inference_steps": 3, - "transformer_path": null, - "video_position_offset_sec": null - }, - "use_distilled_sigmas": true, - "vae_spatial_tile_overlap_in_pixels": null, - "vae_spatial_tile_size_in_pixels": null, - "vae_temporal_tile_overlap_in_frames": null, - "vae_temporal_tile_size_in_frames": null - }, - "minimax_h3": { - "sequential_load": null, - "taeh3_checkpoint": null, - "taeh3_chunk_size": 5, - "vae_parallel_decode": false, - "vae_parallel_decode_strategy": "gather", - "vae_parallel_encode": false, - "video_decode_backend": "h3-vae" + "dit": {}, + "enable_bsa": true, + "family": "longcat", + "vae": {} }, "output_type": "pil", "preset": null, "preset_overrides": {}, "preset_version": null, - "vae": {}, "vae_sp": false, "vae_tiling": false, "workload_type": "t2v" diff --git a/fastvideo/tests/api/config_snapshot_goldens/yaml/scripts__inference__inference_longcat_vc.yaml.json b/fastvideo/tests/api/config_snapshot_goldens/yaml/scripts__inference__inference_longcat_vc.yaml.json index c66037170..57741aed1 100644 --- a/fastvideo/tests/api/config_snapshot_goldens/yaml/scripts__inference__inference_longcat_vc.yaml.json +++ b/fastvideo/tests/api/config_snapshot_goldens/yaml/scripts__inference__inference_longcat_vc.yaml.json @@ -285,12 +285,6 @@ ] ], "resolution_decisions": [ - [ - "fill_vae_parallel_from_env", - { - "pipeline.minimax_h3.vae_parallel_decode_strategy": "gather" - } - ], [ "fill_pipeline_config_defaults[LongCatT2V480PConfig]", { @@ -326,16 +320,6 @@ "engine.compile.regional": false, "engine.compile.text_encoder_enabled": false, "engine.compile.vae_enabled": false, - "pipeline.ltx2.legacy_native_noise_order": false, - "pipeline.ltx2.refine.add_noise": true, - "pipeline.ltx2.refine.enabled": false, - "pipeline.ltx2.refine.guidance_scale": 1.0, - "pipeline.ltx2.refine.num_inference_steps": 3, - "pipeline.ltx2.use_distilled_sigmas": true, - "pipeline.minimax_h3.taeh3_chunk_size": 5, - "pipeline.minimax_h3.vae_parallel_decode": false, - "pipeline.minimax_h3.vae_parallel_encode": false, - "pipeline.minimax_h3.video_decode_backend": "h3-vae", "pipeline.workload_type": "t2v" } ] @@ -418,54 +402,24 @@ "upsampler_weights": null, "vae_weights": null }, - "dit": {}, "dmd_denoising_steps": null, "embedded_cfg_scale": 6.0, "experimental": {}, "flow_shift": null, - "longcat": { + "model": { "bsa_cdf_threshold": null, "bsa_chunk_k": null, "bsa_chunk_q": null, "bsa_sparsity": null, - "enable_bsa": false - }, - "ltx2": { - "audio_latent_path": null, - "initial_latent_path": null, - "legacy_native_noise_order": false, - "refine": { - "add_noise": true, - "audio_noise_path": null, - "enabled": false, - "guidance_scale": 1.0, - "image_crf": null, - "lora_path": null, - "noise_path": null, - "num_inference_steps": 3, - "transformer_path": null, - "video_position_offset_sec": null - }, - "use_distilled_sigmas": true, - "vae_spatial_tile_overlap_in_pixels": null, - "vae_spatial_tile_size_in_pixels": null, - "vae_temporal_tile_overlap_in_frames": null, - "vae_temporal_tile_size_in_frames": null - }, - "minimax_h3": { - "sequential_load": null, - "taeh3_checkpoint": null, - "taeh3_chunk_size": 5, - "vae_parallel_decode": false, - "vae_parallel_decode_strategy": "gather", - "vae_parallel_encode": false, - "video_decode_backend": "h3-vae" + "dit": {}, + "enable_bsa": false, + "family": "longcat", + "vae": {} }, "output_type": "pil", "preset": null, "preset_overrides": {}, "preset_version": null, - "vae": {}, "vae_sp": false, "vae_tiling": false, "workload_type": "t2v" diff --git a/fastvideo/tests/api/config_snapshot_goldens/yaml/scripts__inference__inference_wan.yaml.json b/fastvideo/tests/api/config_snapshot_goldens/yaml/scripts__inference__inference_wan.yaml.json index 9e680c3f8..679a49642 100644 --- a/fastvideo/tests/api/config_snapshot_goldens/yaml/scripts__inference__inference_wan.yaml.json +++ b/fastvideo/tests/api/config_snapshot_goldens/yaml/scripts__inference__inference_wan.yaml.json @@ -286,9 +286,13 @@ ], "resolution_decisions": [ [ - "fill_vae_parallel_from_env", + "fill_model_family[generic]", { - "pipeline.minimax_h3.vae_parallel_decode_strategy": "gather" + "pipeline.model": { + "dit": {}, + "family": "generic", + "vae": {} + } } ], [ @@ -327,16 +331,6 @@ "engine.compile.regional": false, "engine.compile.text_encoder_enabled": false, "engine.compile.vae_enabled": false, - "pipeline.ltx2.legacy_native_noise_order": false, - "pipeline.ltx2.refine.add_noise": true, - "pipeline.ltx2.refine.enabled": false, - "pipeline.ltx2.refine.guidance_scale": 1.0, - "pipeline.ltx2.refine.num_inference_steps": 3, - "pipeline.ltx2.use_distilled_sigmas": true, - "pipeline.minimax_h3.taeh3_chunk_size": 5, - "pipeline.minimax_h3.vae_parallel_decode": false, - "pipeline.minimax_h3.vae_parallel_encode": false, - "pipeline.minimax_h3.video_decode_backend": "h3-vae", "pipeline.workload_type": "t2v" } ] @@ -419,54 +413,19 @@ "upsampler_weights": null, "vae_weights": null }, - "dit": {}, "dmd_denoising_steps": null, "embedded_cfg_scale": 6.0, "experimental": {}, "flow_shift": 8.0, - "longcat": { - "bsa_cdf_threshold": null, - "bsa_chunk_k": null, - "bsa_chunk_q": null, - "bsa_sparsity": null, - "enable_bsa": null - }, - "ltx2": { - "audio_latent_path": null, - "initial_latent_path": null, - "legacy_native_noise_order": false, - "refine": { - "add_noise": true, - "audio_noise_path": null, - "enabled": false, - "guidance_scale": 1.0, - "image_crf": null, - "lora_path": null, - "noise_path": null, - "num_inference_steps": 3, - "transformer_path": null, - "video_position_offset_sec": null - }, - "use_distilled_sigmas": true, - "vae_spatial_tile_overlap_in_pixels": null, - "vae_spatial_tile_size_in_pixels": null, - "vae_temporal_tile_overlap_in_frames": null, - "vae_temporal_tile_size_in_frames": null - }, - "minimax_h3": { - "sequential_load": null, - "taeh3_checkpoint": null, - "taeh3_chunk_size": 5, - "vae_parallel_decode": false, - "vae_parallel_decode_strategy": "gather", - "vae_parallel_encode": false, - "video_decode_backend": "h3-vae" + "model": { + "dit": {}, + "family": "generic", + "vae": {} }, "output_type": "pil", "preset": null, "preset_overrides": {}, "preset_version": null, - "vae": {}, "vae_sp": false, "vae_tiling": false, "workload_type": "t2v" diff --git a/fastvideo/tests/api/config_snapshot_goldens/yaml/scripts__inference__inference_wan_1.3B_VMoba.yaml.json b/fastvideo/tests/api/config_snapshot_goldens/yaml/scripts__inference__inference_wan_1.3B_VMoba.yaml.json index ec8622dc4..9bf69ac23 100644 --- a/fastvideo/tests/api/config_snapshot_goldens/yaml/scripts__inference__inference_wan_1.3B_VMoba.yaml.json +++ b/fastvideo/tests/api/config_snapshot_goldens/yaml/scripts__inference__inference_wan_1.3B_VMoba.yaml.json @@ -286,9 +286,13 @@ ], "resolution_decisions": [ [ - "fill_vae_parallel_from_env", + "fill_model_family[generic]", { - "pipeline.minimax_h3.vae_parallel_decode_strategy": "gather" + "pipeline.model": { + "dit": {}, + "family": "generic", + "vae": {} + } } ], [ @@ -354,16 +358,6 @@ "engine.compile.regional": false, "engine.compile.text_encoder_enabled": false, "engine.compile.vae_enabled": false, - "pipeline.ltx2.legacy_native_noise_order": false, - "pipeline.ltx2.refine.add_noise": true, - "pipeline.ltx2.refine.enabled": false, - "pipeline.ltx2.refine.guidance_scale": 1.0, - "pipeline.ltx2.refine.num_inference_steps": 3, - "pipeline.ltx2.use_distilled_sigmas": true, - "pipeline.minimax_h3.taeh3_chunk_size": 5, - "pipeline.minimax_h3.vae_parallel_decode": false, - "pipeline.minimax_h3.vae_parallel_encode": false, - "pipeline.minimax_h3.video_decode_backend": "h3-vae", "pipeline.workload_type": "t2v" } ] @@ -468,54 +462,19 @@ "upsampler_weights": null, "vae_weights": null }, - "dit": {}, "dmd_denoising_steps": null, "embedded_cfg_scale": 6.0, "experimental": {}, "flow_shift": 8.0, - "longcat": { - "bsa_cdf_threshold": null, - "bsa_chunk_k": null, - "bsa_chunk_q": null, - "bsa_sparsity": null, - "enable_bsa": null - }, - "ltx2": { - "audio_latent_path": null, - "initial_latent_path": null, - "legacy_native_noise_order": false, - "refine": { - "add_noise": true, - "audio_noise_path": null, - "enabled": false, - "guidance_scale": 1.0, - "image_crf": null, - "lora_path": null, - "noise_path": null, - "num_inference_steps": 3, - "transformer_path": null, - "video_position_offset_sec": null - }, - "use_distilled_sigmas": true, - "vae_spatial_tile_overlap_in_pixels": null, - "vae_spatial_tile_size_in_pixels": null, - "vae_temporal_tile_overlap_in_frames": null, - "vae_temporal_tile_size_in_frames": null - }, - "minimax_h3": { - "sequential_load": null, - "taeh3_checkpoint": null, - "taeh3_chunk_size": 5, - "vae_parallel_decode": false, - "vae_parallel_decode_strategy": "gather", - "vae_parallel_encode": false, - "video_decode_backend": "h3-vae" + "model": { + "dit": {}, + "family": "generic", + "vae": {} }, "output_type": "pil", "preset": null, "preset_overrides": {}, "preset_version": null, - "vae": {}, "vae_sp": false, "vae_tiling": false, "workload_type": "t2v" diff --git a/fastvideo/tests/api/config_snapshot_goldens/yaml/scripts__inference__inference_wan_VSA.yaml.json b/fastvideo/tests/api/config_snapshot_goldens/yaml/scripts__inference__inference_wan_VSA.yaml.json index e7b302bba..c18c6f0d6 100644 --- a/fastvideo/tests/api/config_snapshot_goldens/yaml/scripts__inference__inference_wan_VSA.yaml.json +++ b/fastvideo/tests/api/config_snapshot_goldens/yaml/scripts__inference__inference_wan_VSA.yaml.json @@ -286,9 +286,13 @@ ], "resolution_decisions": [ [ - "fill_vae_parallel_from_env", + "fill_model_family[generic]", { - "pipeline.minimax_h3.vae_parallel_decode_strategy": "gather" + "pipeline.model": { + "dit": {}, + "family": "generic", + "vae": {} + } } ], [ @@ -326,16 +330,6 @@ "engine.compile.regional": false, "engine.compile.text_encoder_enabled": false, "engine.compile.vae_enabled": false, - "pipeline.ltx2.legacy_native_noise_order": false, - "pipeline.ltx2.refine.add_noise": true, - "pipeline.ltx2.refine.enabled": false, - "pipeline.ltx2.refine.guidance_scale": 1.0, - "pipeline.ltx2.refine.num_inference_steps": 3, - "pipeline.ltx2.use_distilled_sigmas": true, - "pipeline.minimax_h3.taeh3_chunk_size": 5, - "pipeline.minimax_h3.vae_parallel_decode": false, - "pipeline.minimax_h3.vae_parallel_encode": false, - "pipeline.minimax_h3.video_decode_backend": "h3-vae", "pipeline.workload_type": "t2v" } ] @@ -418,54 +412,19 @@ "upsampler_weights": null, "vae_weights": null }, - "dit": {}, "dmd_denoising_steps": null, "embedded_cfg_scale": 6.0, "experimental": {}, "flow_shift": 5.0, - "longcat": { - "bsa_cdf_threshold": null, - "bsa_chunk_k": null, - "bsa_chunk_q": null, - "bsa_sparsity": null, - "enable_bsa": null - }, - "ltx2": { - "audio_latent_path": null, - "initial_latent_path": null, - "legacy_native_noise_order": false, - "refine": { - "add_noise": true, - "audio_noise_path": null, - "enabled": false, - "guidance_scale": 1.0, - "image_crf": null, - "lora_path": null, - "noise_path": null, - "num_inference_steps": 3, - "transformer_path": null, - "video_position_offset_sec": null - }, - "use_distilled_sigmas": true, - "vae_spatial_tile_overlap_in_pixels": null, - "vae_spatial_tile_size_in_pixels": null, - "vae_temporal_tile_overlap_in_frames": null, - "vae_temporal_tile_size_in_frames": null - }, - "minimax_h3": { - "sequential_load": null, - "taeh3_checkpoint": null, - "taeh3_chunk_size": 5, - "vae_parallel_decode": false, - "vae_parallel_decode_strategy": "gather", - "vae_parallel_encode": false, - "video_decode_backend": "h3-vae" + "model": { + "dit": {}, + "family": "generic", + "vae": {} }, "output_type": "pil", "preset": null, "preset_overrides": {}, "preset_version": null, - "vae": {}, "vae_sp": false, "vae_tiling": false, "workload_type": "t2v" diff --git a/fastvideo/tests/api/config_snapshot_goldens/yaml/scripts__inference__inference_wan_VSA_DMD_14B_480P.yaml.json b/fastvideo/tests/api/config_snapshot_goldens/yaml/scripts__inference__inference_wan_VSA_DMD_14B_480P.yaml.json index 9d7bcbcf8..285d84843 100644 --- a/fastvideo/tests/api/config_snapshot_goldens/yaml/scripts__inference__inference_wan_VSA_DMD_14B_480P.yaml.json +++ b/fastvideo/tests/api/config_snapshot_goldens/yaml/scripts__inference__inference_wan_VSA_DMD_14B_480P.yaml.json @@ -291,9 +291,13 @@ ], "resolution_decisions": [ [ - "fill_vae_parallel_from_env", + "fill_model_family[generic]", { - "pipeline.minimax_h3.vae_parallel_decode_strategy": "gather" + "pipeline.model": { + "dit": {}, + "family": "generic", + "vae": {} + } } ], [ @@ -332,16 +336,6 @@ "engine.compile.regional": false, "engine.compile.text_encoder_enabled": false, "engine.compile.vae_enabled": false, - "pipeline.ltx2.legacy_native_noise_order": false, - "pipeline.ltx2.refine.add_noise": true, - "pipeline.ltx2.refine.enabled": false, - "pipeline.ltx2.refine.guidance_scale": 1.0, - "pipeline.ltx2.refine.num_inference_steps": 3, - "pipeline.ltx2.use_distilled_sigmas": true, - "pipeline.minimax_h3.taeh3_chunk_size": 5, - "pipeline.minimax_h3.vae_parallel_decode": false, - "pipeline.minimax_h3.vae_parallel_encode": false, - "pipeline.minimax_h3.video_decode_backend": "h3-vae", "pipeline.workload_type": "t2v" } ] @@ -424,7 +418,6 @@ "upsampler_weights": null, "vae_weights": null }, - "dit": {}, "dmd_denoising_steps": [ 1000, 757, @@ -433,49 +426,15 @@ "embedded_cfg_scale": 6.0, "experimental": {}, "flow_shift": 8.0, - "longcat": { - "bsa_cdf_threshold": null, - "bsa_chunk_k": null, - "bsa_chunk_q": null, - "bsa_sparsity": null, - "enable_bsa": null - }, - "ltx2": { - "audio_latent_path": null, - "initial_latent_path": null, - "legacy_native_noise_order": false, - "refine": { - "add_noise": true, - "audio_noise_path": null, - "enabled": false, - "guidance_scale": 1.0, - "image_crf": null, - "lora_path": null, - "noise_path": null, - "num_inference_steps": 3, - "transformer_path": null, - "video_position_offset_sec": null - }, - "use_distilled_sigmas": true, - "vae_spatial_tile_overlap_in_pixels": null, - "vae_spatial_tile_size_in_pixels": null, - "vae_temporal_tile_overlap_in_frames": null, - "vae_temporal_tile_size_in_frames": null - }, - "minimax_h3": { - "sequential_load": null, - "taeh3_checkpoint": null, - "taeh3_chunk_size": 5, - "vae_parallel_decode": false, - "vae_parallel_decode_strategy": "gather", - "vae_parallel_encode": false, - "video_decode_backend": "h3-vae" + "model": { + "dit": {}, + "family": "generic", + "vae": {} }, "output_type": "pil", "preset": null, "preset_overrides": {}, "preset_version": null, - "vae": {}, "vae_sp": false, "vae_tiling": false, "workload_type": "t2v" diff --git a/fastvideo/tests/api/config_snapshot_goldens/yaml/scripts__inference__inference_wan_VSA_DMD_14B_720P.yaml.json b/fastvideo/tests/api/config_snapshot_goldens/yaml/scripts__inference__inference_wan_VSA_DMD_14B_720P.yaml.json index b9d13e5ce..ea65f750c 100644 --- a/fastvideo/tests/api/config_snapshot_goldens/yaml/scripts__inference__inference_wan_VSA_DMD_14B_720P.yaml.json +++ b/fastvideo/tests/api/config_snapshot_goldens/yaml/scripts__inference__inference_wan_VSA_DMD_14B_720P.yaml.json @@ -291,9 +291,13 @@ ], "resolution_decisions": [ [ - "fill_vae_parallel_from_env", + "fill_model_family[generic]", { - "pipeline.minimax_h3.vae_parallel_decode_strategy": "gather" + "pipeline.model": { + "dit": {}, + "family": "generic", + "vae": {} + } } ], [ @@ -332,16 +336,6 @@ "engine.compile.regional": false, "engine.compile.text_encoder_enabled": false, "engine.compile.vae_enabled": false, - "pipeline.ltx2.legacy_native_noise_order": false, - "pipeline.ltx2.refine.add_noise": true, - "pipeline.ltx2.refine.enabled": false, - "pipeline.ltx2.refine.guidance_scale": 1.0, - "pipeline.ltx2.refine.num_inference_steps": 3, - "pipeline.ltx2.use_distilled_sigmas": true, - "pipeline.minimax_h3.taeh3_chunk_size": 5, - "pipeline.minimax_h3.vae_parallel_decode": false, - "pipeline.minimax_h3.vae_parallel_encode": false, - "pipeline.minimax_h3.video_decode_backend": "h3-vae", "pipeline.workload_type": "t2v" } ] @@ -424,7 +418,6 @@ "upsampler_weights": null, "vae_weights": null }, - "dit": {}, "dmd_denoising_steps": [ 1000, 757, @@ -433,49 +426,15 @@ "embedded_cfg_scale": 6.0, "experimental": {}, "flow_shift": 8.0, - "longcat": { - "bsa_cdf_threshold": null, - "bsa_chunk_k": null, - "bsa_chunk_q": null, - "bsa_sparsity": null, - "enable_bsa": null - }, - "ltx2": { - "audio_latent_path": null, - "initial_latent_path": null, - "legacy_native_noise_order": false, - "refine": { - "add_noise": true, - "audio_noise_path": null, - "enabled": false, - "guidance_scale": 1.0, - "image_crf": null, - "lora_path": null, - "noise_path": null, - "num_inference_steps": 3, - "transformer_path": null, - "video_position_offset_sec": null - }, - "use_distilled_sigmas": true, - "vae_spatial_tile_overlap_in_pixels": null, - "vae_spatial_tile_size_in_pixels": null, - "vae_temporal_tile_overlap_in_frames": null, - "vae_temporal_tile_size_in_frames": null - }, - "minimax_h3": { - "sequential_load": null, - "taeh3_checkpoint": null, - "taeh3_chunk_size": 5, - "vae_parallel_decode": false, - "vae_parallel_decode_strategy": "gather", - "vae_parallel_encode": false, - "video_decode_backend": "h3-vae" + "model": { + "dit": {}, + "family": "generic", + "vae": {} }, "output_type": "pil", "preset": null, "preset_overrides": {}, "preset_version": null, - "vae": {}, "vae_sp": false, "vae_tiling": false, "workload_type": "t2v" diff --git a/fastvideo/tests/api/config_snapshot_goldens/yaml/scripts__inference__inference_wan_VSA_DMD_1_3B.yaml.json b/fastvideo/tests/api/config_snapshot_goldens/yaml/scripts__inference__inference_wan_VSA_DMD_1_3B.yaml.json index 6edbb77a5..c44147877 100644 --- a/fastvideo/tests/api/config_snapshot_goldens/yaml/scripts__inference__inference_wan_VSA_DMD_1_3B.yaml.json +++ b/fastvideo/tests/api/config_snapshot_goldens/yaml/scripts__inference__inference_wan_VSA_DMD_1_3B.yaml.json @@ -291,9 +291,13 @@ ], "resolution_decisions": [ [ - "fill_vae_parallel_from_env", + "fill_model_family[generic]", { - "pipeline.minimax_h3.vae_parallel_decode_strategy": "gather" + "pipeline.model": { + "dit": {}, + "family": "generic", + "vae": {} + } } ], [ @@ -332,16 +336,6 @@ "engine.compile.regional": false, "engine.compile.text_encoder_enabled": false, "engine.compile.vae_enabled": false, - "pipeline.ltx2.legacy_native_noise_order": false, - "pipeline.ltx2.refine.add_noise": true, - "pipeline.ltx2.refine.enabled": false, - "pipeline.ltx2.refine.guidance_scale": 1.0, - "pipeline.ltx2.refine.num_inference_steps": 3, - "pipeline.ltx2.use_distilled_sigmas": true, - "pipeline.minimax_h3.taeh3_chunk_size": 5, - "pipeline.minimax_h3.vae_parallel_decode": false, - "pipeline.minimax_h3.vae_parallel_encode": false, - "pipeline.minimax_h3.video_decode_backend": "h3-vae", "pipeline.workload_type": "t2v" } ] @@ -424,7 +418,6 @@ "upsampler_weights": null, "vae_weights": null }, - "dit": {}, "dmd_denoising_steps": [ 1000, 757, @@ -433,49 +426,15 @@ "embedded_cfg_scale": 6.0, "experimental": {}, "flow_shift": 8.0, - "longcat": { - "bsa_cdf_threshold": null, - "bsa_chunk_k": null, - "bsa_chunk_q": null, - "bsa_sparsity": null, - "enable_bsa": null - }, - "ltx2": { - "audio_latent_path": null, - "initial_latent_path": null, - "legacy_native_noise_order": false, - "refine": { - "add_noise": true, - "audio_noise_path": null, - "enabled": false, - "guidance_scale": 1.0, - "image_crf": null, - "lora_path": null, - "noise_path": null, - "num_inference_steps": 3, - "transformer_path": null, - "video_position_offset_sec": null - }, - "use_distilled_sigmas": true, - "vae_spatial_tile_overlap_in_pixels": null, - "vae_spatial_tile_size_in_pixels": null, - "vae_temporal_tile_overlap_in_frames": null, - "vae_temporal_tile_size_in_frames": null - }, - "minimax_h3": { - "sequential_load": null, - "taeh3_checkpoint": null, - "taeh3_chunk_size": 5, - "vae_parallel_decode": false, - "vae_parallel_decode_strategy": "gather", - "vae_parallel_encode": false, - "video_decode_backend": "h3-vae" + "model": { + "dit": {}, + "family": "generic", + "vae": {} }, "output_type": "pil", "preset": null, "preset_overrides": {}, "preset_version": null, - "vae": {}, "vae_sp": false, "vae_tiling": false, "workload_type": "t2v" diff --git a/fastvideo/tests/api/config_snapshot_goldens/yaml/scripts__inference__inference_wan_VSA_DMD_5B_720P.yaml.json b/fastvideo/tests/api/config_snapshot_goldens/yaml/scripts__inference__inference_wan_VSA_DMD_5B_720P.yaml.json index 13974826e..0297e9f40 100644 --- a/fastvideo/tests/api/config_snapshot_goldens/yaml/scripts__inference__inference_wan_VSA_DMD_5B_720P.yaml.json +++ b/fastvideo/tests/api/config_snapshot_goldens/yaml/scripts__inference__inference_wan_VSA_DMD_5B_720P.yaml.json @@ -292,9 +292,13 @@ ], "resolution_decisions": [ [ - "fill_vae_parallel_from_env", + "fill_model_family[generic]", { - "pipeline.minimax_h3.vae_parallel_decode_strategy": "gather" + "pipeline.model": { + "dit": {}, + "family": "generic", + "vae": {} + } } ], [ @@ -334,16 +338,6 @@ "engine.compile.regional": false, "engine.compile.text_encoder_enabled": false, "engine.compile.vae_enabled": false, - "pipeline.ltx2.legacy_native_noise_order": false, - "pipeline.ltx2.refine.add_noise": true, - "pipeline.ltx2.refine.enabled": false, - "pipeline.ltx2.refine.guidance_scale": 1.0, - "pipeline.ltx2.refine.num_inference_steps": 3, - "pipeline.ltx2.use_distilled_sigmas": true, - "pipeline.minimax_h3.taeh3_chunk_size": 5, - "pipeline.minimax_h3.vae_parallel_decode": false, - "pipeline.minimax_h3.vae_parallel_encode": false, - "pipeline.minimax_h3.video_decode_backend": "h3-vae", "pipeline.workload_type": "t2v" } ] @@ -426,7 +420,6 @@ "upsampler_weights": null, "vae_weights": null }, - "dit": {}, "dmd_denoising_steps": [ 1000, 757, @@ -435,49 +428,15 @@ "embedded_cfg_scale": 6.0, "experimental": {}, "flow_shift": 5.0, - "longcat": { - "bsa_cdf_threshold": null, - "bsa_chunk_k": null, - "bsa_chunk_q": null, - "bsa_sparsity": null, - "enable_bsa": null - }, - "ltx2": { - "audio_latent_path": null, - "initial_latent_path": null, - "legacy_native_noise_order": false, - "refine": { - "add_noise": true, - "audio_noise_path": null, - "enabled": false, - "guidance_scale": 1.0, - "image_crf": null, - "lora_path": null, - "noise_path": null, - "num_inference_steps": 3, - "transformer_path": null, - "video_position_offset_sec": null - }, - "use_distilled_sigmas": true, - "vae_spatial_tile_overlap_in_pixels": null, - "vae_spatial_tile_size_in_pixels": null, - "vae_temporal_tile_overlap_in_frames": null, - "vae_temporal_tile_size_in_frames": null - }, - "minimax_h3": { - "sequential_load": null, - "taeh3_checkpoint": null, - "taeh3_chunk_size": 5, - "vae_parallel_decode": false, - "vae_parallel_decode_strategy": "gather", - "vae_parallel_encode": false, - "video_decode_backend": "h3-vae" + "model": { + "dit": {}, + "family": "generic", + "vae": {} }, "output_type": "pil", "preset": null, "preset_overrides": {}, "preset_version": null, - "vae": {}, "vae_sp": false, "vae_tiling": false, "workload_type": "t2v" diff --git a/fastvideo/tests/api/config_snapshot_goldens/yaml/scripts__inference__inference_wan_i2v.yaml.json b/fastvideo/tests/api/config_snapshot_goldens/yaml/scripts__inference__inference_wan_i2v.yaml.json index 97c5a1a32..5858c7c3a 100644 --- a/fastvideo/tests/api/config_snapshot_goldens/yaml/scripts__inference__inference_wan_i2v.yaml.json +++ b/fastvideo/tests/api/config_snapshot_goldens/yaml/scripts__inference__inference_wan_i2v.yaml.json @@ -320,9 +320,13 @@ ], "resolution_decisions": [ [ - "fill_vae_parallel_from_env", + "fill_model_family[generic]", { - "pipeline.minimax_h3.vae_parallel_decode_strategy": "gather" + "pipeline.model": { + "dit": {}, + "family": "generic", + "vae": {} + } } ], [ @@ -360,17 +364,7 @@ "engine.compile.audio_vae_enabled": false, "engine.compile.regional": false, "engine.compile.text_encoder_enabled": false, - "engine.compile.vae_enabled": false, - "pipeline.ltx2.legacy_native_noise_order": false, - "pipeline.ltx2.refine.add_noise": true, - "pipeline.ltx2.refine.enabled": false, - "pipeline.ltx2.refine.guidance_scale": 1.0, - "pipeline.ltx2.refine.num_inference_steps": 3, - "pipeline.ltx2.use_distilled_sigmas": true, - "pipeline.minimax_h3.taeh3_chunk_size": 5, - "pipeline.minimax_h3.vae_parallel_decode": false, - "pipeline.minimax_h3.vae_parallel_encode": false, - "pipeline.minimax_h3.video_decode_backend": "h3-vae" + "engine.compile.vae_enabled": false } ] ], @@ -452,54 +446,19 @@ "upsampler_weights": null, "vae_weights": null }, - "dit": {}, "dmd_denoising_steps": null, "embedded_cfg_scale": 6.0, "experimental": {}, "flow_shift": 3.0, - "longcat": { - "bsa_cdf_threshold": null, - "bsa_chunk_k": null, - "bsa_chunk_q": null, - "bsa_sparsity": null, - "enable_bsa": null - }, - "ltx2": { - "audio_latent_path": null, - "initial_latent_path": null, - "legacy_native_noise_order": false, - "refine": { - "add_noise": true, - "audio_noise_path": null, - "enabled": false, - "guidance_scale": 1.0, - "image_crf": null, - "lora_path": null, - "noise_path": null, - "num_inference_steps": 3, - "transformer_path": null, - "video_position_offset_sec": null - }, - "use_distilled_sigmas": true, - "vae_spatial_tile_overlap_in_pixels": null, - "vae_spatial_tile_size_in_pixels": null, - "vae_temporal_tile_overlap_in_frames": null, - "vae_temporal_tile_size_in_frames": null - }, - "minimax_h3": { - "sequential_load": null, - "taeh3_checkpoint": null, - "taeh3_chunk_size": 5, - "vae_parallel_decode": false, - "vae_parallel_decode_strategy": "gather", - "vae_parallel_encode": false, - "video_decode_backend": "h3-vae" + "model": { + "dit": {}, + "family": "generic", + "vae": {} }, "output_type": "pil", "preset": null, "preset_overrides": {}, "preset_version": null, - "vae": {}, "vae_sp": false, "vae_tiling": false, "workload_type": "i2v" diff --git a/fastvideo/tests/api/test_inference_resolution_steps.py b/fastvideo/tests/api/test_inference_resolution_steps.py index b7f6a7893..fc0fb24bb 100644 --- a/fastvideo/tests/api/test_inference_resolution_steps.py +++ b/fastvideo/tests/api/test_inference_resolution_steps.py @@ -7,6 +7,9 @@ from fastvideo.api.schema import AttentionConfig, EngineConfig, GeneratorConfig, from fastvideo.tests.api.config_snapshot import isolated_environment WAN_T2V = "Wan-AI/Wan2.1-T2V-1.3B-Diffusers" +LTX2 = "FastVideo/LTX2-Distilled-Diffusers" +MINIMAX_H3 = "FastVideo/FastVideo-FastH3-8-Step-V2" +LONGCAT = "FastVideo/LongCat-Video-T2V-Diffusers" def _resolve(raw, env_values=None): @@ -38,7 +41,7 @@ def test_unsupported_environment_attention_backend_raises(): def test_environment_turns_on_regional_compile_and_parallel_vae(): resolved = _resolve( - {"model_path": WAN_T2V}, + {"model_path": MINIMAX_H3}, { "FASTVIDEO_INFERENCE_TORCH_COMPILE": True, "FASTVIDEO_VAE_PARALLEL_DECODE": True, @@ -47,20 +50,69 @@ def test_environment_turns_on_regional_compile_and_parallel_vae(): ) assert resolved.engine.compile.regional is True - assert resolved.pipeline.minimax_h3.vae_parallel_decode is True - assert resolved.pipeline.minimax_h3.vae_parallel_encode is False - assert resolved.provenance("pipeline.minimax_h3.vae_parallel_encode").source == "fill_runtime_defaults" - assert resolved.pipeline.minimax_h3.vae_parallel_decode_strategy == "all_gather" + assert resolved.pipeline.model.vae_parallel_decode is True + assert resolved.pipeline.model.vae_parallel_encode is False + assert resolved.provenance("pipeline.model.vae_parallel_encode").source == "fill_runtime_defaults" + assert resolved.pipeline.model.vae_parallel_decode_strategy == "all_gather" assert resolved.provenance("engine.compile.regional").source == "fill_regional_compile_from_env" def test_decode_strategy_defaults_to_gather(): - resolved = _resolve({"model_path": WAN_T2V}) + resolved = _resolve({"model_path": MINIMAX_H3}) - provenance = resolved.provenance("pipeline.minimax_h3.vae_parallel_decode_strategy") + provenance = resolved.provenance("pipeline.model.vae_parallel_decode_strategy") assert (provenance.value, provenance.source) == ("gather", "fill_vae_parallel_from_env") +def test_parallel_vae_environment_decides_nothing_for_another_family(): + resolved = _resolve({"model_path": WAN_T2V}, {"FASTVIDEO_VAE_PARALLEL_DECODE": True}) + + assert resolved.pipeline.model.family == "generic" + assert [source for source, _ in resolved.decisions if source == "fill_vae_parallel_from_env"] == [] + + +@pytest.mark.parametrize(("model_path", "family", "options_type"), [ + (LTX2, "ltx2", "LTX2Options"), + (MINIMAX_H3, "minimax_h3", "MiniMaxH3Options"), + (LONGCAT, "longcat", "LongCatOptions"), + (WAN_T2V, "generic", "GenericModelOptions"), +]) +def test_fill_model_family_fills_the_family_block_of_the_model(model_path, family, options_type): + resolved = _resolve({"model_path": model_path}) + + model = resolved.pipeline.model + assert model.family == family + assert type(resolved.to_config().pipeline.model).__name__ == options_type + assert (model.dit, model.vae) == ({}, {}) + assert resolved.provenance("pipeline.model").source == f"fill_model_family[{family}]" + assert resolved.provenance("pipeline.model").explicit is False + + +def test_generic_block_on_a_family_model_becomes_the_family_block_with_its_overrides(): + resolved = _resolve({"model_path": LTX2, "pipeline": {"model": {"generic": {"dit": {"prefix": "dit"}}}}}) + + assert resolved.pipeline.model.family == "ltx2" + assert resolved.pipeline.model.dit == {"prefix": "dit"} + assert resolved.pipeline.model.refine.enabled is False + assert resolved.provenance("pipeline.model.dit.prefix").explicit is True + assert resolved.pipeline_config.dit_config.prefix == "dit" + + +def test_validate_model_family_names_the_registry_family(): + with pytest.raises(ValueError, match=r"pipeline\.model\.ltx2 does not apply to .*WanT2V480PConfig.*pipeline\.model\.generic"): + _resolve({"model_path": WAN_T2V, "pipeline": {"model": {"ltx2": {"refine": {"enabled": True}}}}}) + with pytest.raises(ValueError, match=r"pipeline\.model\.longcat does not apply to .*pipeline\.model\.minimax_h3"): + _resolve({"model_path": MINIMAX_H3, "pipeline": {"model": {"longcat": {"enable_bsa": True}}}}) + + +def test_written_family_block_is_explicit_without_its_tag(): + resolved = _resolve({"model_path": LTX2, "pipeline": {"model": {"ltx2": {"refine": {"lora_path": ""}}}}}) + + assert resolved.is_explicit("pipeline.model.refine.lora_path") is True + assert resolved.is_explicit("pipeline.model.refine.enabled") is False + assert resolved.provenance("pipeline.model.refine.lora_path").source == "input" + + @pytest.mark.parametrize(("parallelism", "expected"), [ ({}, {"tp_size": 1, "sp_size": 4, "hsdp_shard_dim": 4}), ({"tp_size": 2, "sp_size": 2}, {"tp_size": 2, "sp_size": 2, "hsdp_shard_dim": 4}), @@ -105,6 +157,8 @@ def test_environment_takes_precedence_over_model_defaults(): names = [step.__qualname__ for step in inference_resolution_steps(GeneratorConfig(model_path=WAN_T2V))] assert names == [ + "validate_model_family", + "fill_model_family[generic]", "fill_attention_backend_from_env", "fill_regional_compile_from_env", "fill_vae_parallel_from_env", @@ -152,8 +206,8 @@ def test_video_generator_keeps_the_resolved_config(monkeypatch): @pytest.mark.parametrize(("pipeline", "expected"), [ - ({"ltx2": {"vae_spatial_tile_size_in_pixels": 512}}, (True, "derive_vae_tiling_from_ltx2_tile_sizes")), - ({"ltx2": {"vae_spatial_tile_size_in_pixels": 512}, "vae_tiling": False}, (False, "input")), + ({"model": {"ltx2": {"vae_spatial_tile_size_in_pixels": 512}}}, (True, "derive_vae_tiling_from_ltx2_tile_sizes")), + ({"model": {"ltx2": {"vae_spatial_tile_size_in_pixels": 512}}, "vae_tiling": False}, (False, "input")), ({}, (True, "fill_vae_tiling_default[LTX2T2VConfig]")), ]) def test_ltx2_tile_sizes_turn_on_unset_vae_tiling(pipeline, expected): diff --git a/fastvideo/tests/api/test_ltx2_gpu_pool_translation.py b/fastvideo/tests/api/test_ltx2_gpu_pool_translation.py index 20ea7ee53..8123816aa 100644 --- a/fastvideo/tests/api/test_ltx2_gpu_pool_translation.py +++ b/fastvideo/tests/api/test_ltx2_gpu_pool_translation.py @@ -41,9 +41,11 @@ GPU_POOL_CONFIG = { }, "vae_tiling": False, # An empty refine LoRA path keeps the refine LoRA disabled; None would load the checkpoint default. - "ltx2": { - "refine": { - "lora_path": "" + "model": { + "ltx2": { + "refine": { + "lora_path": "" + } } }, "preset_overrides": { @@ -67,10 +69,10 @@ class TestGpuPoolResolution: return resolve_inference_config(GPU_POOL_CONFIG) def test_empty_refine_lora_path_kept(self, resolved) -> None: - assert resolved.pipeline.ltx2.refine.lora_path == "" + assert resolved.pipeline.model.refine.lora_path == "" def test_ltx2_refine_flags_copied_from_preset_overrides(self, resolved) -> None: - refine = resolved.pipeline.ltx2.refine + refine = resolved.pipeline.model.refine assert refine.enabled is True assert refine.add_noise is True assert refine.num_inference_steps == 2 @@ -99,7 +101,7 @@ class TestGpuPoolResolution: class TestRefinePresetOverridesCoverAllTypedFields: """Every field on LTX2Refine{Preset,Stage}Override must survive the - copy from preset_overrides.refine into ``pipeline.ltx2.refine``. + copy from preset_overrides.refine into ``pipeline.model.refine``. Guards against the hardcoded-key-tuple regression where image_crf / video_position_offset_sec silently dropped.""" @@ -110,9 +112,10 @@ class TestRefinePresetOverridesCoverAllTypedFields: refine_stage_override_fields, ) - # The model path is not a registered model, so skip the model definition. + # The model path is not a registered model: stand in an LTX-2 model definition and skip its defaults. from fastvideo.api import inference_resolution - monkeypatch.setattr(inference_resolution, "build_model_pipeline_config", lambda config: None) + from fastvideo.pipelines.basic.ltx2.pipeline_configs import LTX2T2VConfig + monkeypatch.setattr(inference_resolution, "build_model_pipeline_config", lambda config: LTX2T2VConfig()) monkeypatch.setattr(inference_resolution, "pipeline_config_defaults_step", lambda config, defaults=None: lambda view: {}) monkeypatch.setattr(inference_resolution, "materialize_pipeline_config", lambda resolved, pipeline_config: None) @@ -133,10 +136,11 @@ class TestRefinePresetOverridesCoverAllTypedFields: model_path="/models/ltx2", pipeline=PipelineSelection(preset_overrides={"refine": refine_payload}), ) - resolved = resolve_inference_config(config) + with isolated_environment(): + resolved = resolve_inference_config(config) for key, value in refine_payload.items(): - assert getattr(resolved.pipeline.ltx2.refine, key) == value + assert getattr(resolved.pipeline.model.refine, key) == value class TestCompileExtrasPreserved: diff --git a/fastvideo/tests/api/test_parser.py b/fastvideo/tests/api/test_parser.py index be34ae502..b443df035 100644 --- a/fastvideo/tests/api/test_parser.py +++ b/fastvideo/tests/api/test_parser.py @@ -1,6 +1,7 @@ # SPDX-License-Identifier: Apache-2.0 import json +import pytest import yaml from fastvideo.api import ( @@ -20,6 +21,7 @@ from fastvideo.api import ( StreamingConfig, WarmupConfig, ) +from fastvideo.api.errors import ConfigValidationError def test_parse_config_builds_nested_typed_config() -> None: @@ -180,46 +182,7 @@ def test_load_run_config_supports_yaml_roundtrip(tmp_path) -> None: "dmd_denoising_steps": None, "boundary_ratio": None, "output_type": "pil", - "dit": {}, - "vae": {}, - "ltx2": { - "vae_spatial_tile_size_in_pixels": None, - "vae_spatial_tile_overlap_in_pixels": None, - "vae_temporal_tile_size_in_frames": None, - "vae_temporal_tile_overlap_in_frames": None, - "initial_latent_path": None, - "audio_latent_path": None, - "legacy_native_noise_order": None, - "use_distilled_sigmas": None, - "refine": { - "enabled": None, - "num_inference_steps": None, - "guidance_scale": None, - "add_noise": None, - "image_crf": None, - "video_position_offset_sec": None, - "transformer_path": None, - "lora_path": None, - "noise_path": None, - "audio_noise_path": None, - }, - }, - "minimax_h3": { - "sequential_load": None, - "video_decode_backend": None, - "taeh3_checkpoint": None, - "taeh3_chunk_size": None, - "vae_parallel_decode": None, - "vae_parallel_encode": None, - "vae_parallel_decode_strategy": None, - }, - "longcat": { - "enable_bsa": None, - "bsa_sparsity": None, - "bsa_cdf_threshold": None, - "bsa_chunk_q": None, - "bsa_chunk_k": None, - }, + "model": None, "preset_overrides": {}, "experimental": {}, }, @@ -410,3 +373,51 @@ def test_load_serve_config_with_streaming_from_yaml(tmp_path) -> None: assert loaded.streaming is not None assert loaded.streaming.stream_mode == "av_fmp4" assert loaded.streaming.pool.num_workers == 4 + + +def test_tagged_union_parses_the_single_family_key() -> None: + from fastvideo.api import LTX2Options, LongCatOptions + + config = parse_config( + GeneratorConfig, { + "model_path": "/models/ltx2", + "pipeline": { + "model": { + "ltx2": { + "refine": { + "enabled": True + }, + "dit": { + "prefix": "transformer" + } + } + } + }, + }) + + assert isinstance(config.pipeline.model, LTX2Options) + assert config.pipeline.model.family == "ltx2" + assert config.pipeline.model.refine.enabled is True + assert config.pipeline.model.dit == {"prefix": "transformer"} + assert config_to_dict(config)["pipeline"]["model"]["ltx2"]["refine"]["enabled"] is True + assert "family" not in config_to_dict(config)["pipeline"]["model"]["ltx2"] + assert parse_config(GeneratorConfig, config_to_dict(config)) == config + + longcat = parse_config(GeneratorConfig, {"model_path": "/models/longcat", "pipeline": {"model": {"longcat": {}}}}) + assert isinstance(longcat.pipeline.model, LongCatOptions) + assert longcat.pipeline.model.family == "longcat" + + +@pytest.mark.parametrize(("model", "path", "message"), [ + ({}, "pipeline.model", "expected exactly one key"), + ({"ltx2": {}, "longcat": {}}, "pipeline.model", "expected exactly one key"), + ({"wan": {}}, "pipeline.model.wan", "unknown key"), + ({"ltx2": {"family": "ltx2"}}, "pipeline.model.ltx2.family", "set by the key"), + ({"ltx2": {"enable_bsa": True}}, "pipeline.model.ltx2.enable_bsa", "unknown field"), +]) +def test_tagged_union_rejects_malformed_blocks(model, path, message) -> None: + with pytest.raises(ConfigValidationError) as error: + parse_config(GeneratorConfig, {"model_path": "/models/x", "pipeline": {"model": model}}) + + assert error.value.path == path + assert message in error.value.message diff --git a/fastvideo/tests/api/test_resolved_runtime_config.py b/fastvideo/tests/api/test_resolved_runtime_config.py index 68d0438cf..59da30ec2 100644 --- a/fastvideo/tests/api/test_resolved_runtime_config.py +++ b/fastvideo/tests/api/test_resolved_runtime_config.py @@ -41,7 +41,19 @@ def test_resolution_builds_and_freezes_the_pipeline_config_once(monkeypatch): original = PipelineConfig.from_source.__func__ monkeypatch.setattr(PipelineConfig, "from_source", classmethod(lambda cls, *args: builds.append(args) or original(cls, *args))) - resolved = _resolve({"model_path": WAN_T2V, "pipeline": {"flow_shift": 5.0, "dit": {"prefix": "Probe"}}}) + resolved = _resolve({ + "model_path": WAN_T2V, + "pipeline": { + "flow_shift": 5.0, + "model": { + "generic": { + "dit": { + "prefix": "Probe" + } + } + } + } + }) assert len(builds) == 1 assert type(resolved.pipeline_config).__name__ == "WanT2V480PConfig" @@ -294,13 +306,13 @@ def test_ltx2_checkpoint_refine_defaults_are_resolved_from_a_local_checkpoint(tm refine_decisions = [values for source, values in resolved.decisions if source == "fill_ltx2_refine_from_checkpoint"] assert refine_decisions == [{ - "pipeline.ltx2.refine.lora_path": "FastVideo/LTX2-Distilled-LoRA", - "pipeline.ltx2.refine.num_inference_steps": 2, + "pipeline.model.refine.lora_path": "FastVideo/LTX2-Distilled-LoRA", + "pipeline.model.refine.num_inference_steps": 2, }] - refine = resolved.pipeline.ltx2.refine + refine = resolved.pipeline.model.refine assert (refine.lora_path, refine.num_inference_steps) == ("FastVideo/LTX2-Distilled-LoRA", 2) assert (refine.enabled, refine.add_noise, refine.guidance_scale) == (False, True, 1.0) - assert resolved.provenance("pipeline.ltx2.refine.enabled").source == "fill_runtime_defaults" + assert resolved.provenance("pipeline.model.refine.enabled").source == "fill_runtime_defaults" def test_minimax_h3_checkpoint_schedule_is_resolved_and_reaches_the_first_forward(tmp_path, monkeypatch): @@ -443,4 +455,5 @@ def test_decode_strategy_validation_matches_the_parallel_vae_module(): assert VAE_PARALLEL_DECODE_STRATEGIES == tuple(DECODE_GATHER_STRATEGIES) with pytest.raises(ValueError, match="vae_parallel_decode_strategy"): - _resolve({"model_path": WAN_T2V}, {"FASTVIDEO_VAE_PARALLEL_DECODE_STRATEGY": "scatter"}) + _resolve({"model_path": "FastVideo/FastVideo-FastH3-8-Step-V2"}, + {"FASTVIDEO_VAE_PARALLEL_DECODE_STRATEGY": "scatter"}) diff --git a/fastvideo/tests/api/test_schema_parity_inventory.py b/fastvideo/tests/api/test_schema_parity_inventory.py index 0b23ee24b..6560ffdc4 100644 --- a/fastvideo/tests/api/test_schema_parity_inventory.py +++ b/fastvideo/tests/api/test_schema_parity_inventory.py @@ -11,6 +11,7 @@ from typing import Any, Union, get_args, get_origin, get_type_hints import yaml from fastvideo.api import GeneratorConfig, RunConfig, ServeConfig +from fastvideo.api.parser import TAG_FIELD, tagged_union_tags from fastvideo.configs.pipelines.base import PipelineConfig from fastvideo.api.sampling_param import SamplingParam from fastvideo.entrypoints.cli.generate import GenerateSubcommand @@ -46,11 +47,12 @@ def _flatten_status_section(section: dict, valid_statuses: set[str]) -> set[str] def _get_dataclass_leaf_paths(cls: type, prefix: str = "") -> set[str]: - """Collect the dotted paths of the leaf fields of a nested config dataclass. + """Collect the dotted paths of the leaf fields of a nested config dataclass, as the input spells them. A field whose annotation is a dataclass, or ``X | None`` of a dataclass, is walked into; every other field, including a dict-valued field, is one - leaf. + leaf. A tagged-union field is walked into once per tag, ``..``, + without the tag field that the parser sets. """ paths: set[str] = set() hints = get_type_hints(cls) @@ -61,7 +63,12 @@ def _get_dataclass_leaf_paths(cls: type, prefix: str = "") -> set[str]: if len(non_none_args) == 1: annotation = non_none_args[0] path = f"{prefix}{config_field.name}" - if dataclasses.is_dataclass(annotation): + tags = tagged_union_tags(annotation) + if tags is not None: + for tag, member_type in tags.items(): + paths.update(leaf for leaf in _get_dataclass_leaf_paths(member_type, f"{path}.{tag}.") + if leaf != f"{path}.{tag}.{TAG_FIELD}") + elif dataclasses.is_dataclass(annotation): paths.update(_get_dataclass_leaf_paths(annotation, f"{path}.")) else: paths.add(path) @@ -151,6 +158,11 @@ def _walk_schema_target(root_type: type, target: str) -> None: assert dataclasses.is_dataclass(current_annotation), ( f"{target!r} diverges at {'.'.join(target.split('.')[:depth - 1]) or ''}: " f"{current_annotation!r} is not a dataclass or open dict boundary") + tags = tagged_union_tags(current_annotation) + if tags is not None: + assert segment in tags, f"{target!r} missing family tag {segment!r}" + current_annotation = tags[segment] + continue hints = get_type_hints(current_annotation) assert segment in hints, f"{target!r} missing segment {segment!r}" current_annotation = hints[segment] diff --git a/fastvideo/tests/inference/test_basic_fasth3_profile.py b/fastvideo/tests/inference/test_basic_fasth3_profile.py index 11d4c1998..1107ef650 100644 --- a/fastvideo/tests/inference/test_basic_fasth3_profile.py +++ b/fastvideo/tests/inference/test_basic_fasth3_profile.py @@ -62,8 +62,8 @@ def test_default_all_profile_matches_fastest_contract(tmp_path): assert config.engine.attention.vsa_sparsity == 0.9 assert config.engine.attention.vsa_tile_size == 64 assert config.engine.compile.regional is True - assert config.pipeline.minimax_h3.vae_parallel_decode is True - assert config.pipeline.minimax_h3.vae_parallel_decode_strategy == "gather" + assert config.pipeline.model.vae_parallel_decode is True + assert config.pipeline.model.vae_parallel_decode_strategy == "gather" assert environment["FASTVIDEO_VSA_SM100A"] == "1" assert environment["FASTVIDEO_VSA_CUTEDSL"] == "0" @@ -142,13 +142,13 @@ def test_strict_profile_changes_only_non_parity_fusions(): def test_h3_sequential_load_is_opt_in(): default = fasth3.build_generator_config(_args()) - assert default.pipeline.minimax_h3.sequential_load is None + assert default.pipeline.model.sequential_load is None enabled = fasth3.build_generator_config(_args("--h3-sequential-load")) - assert enabled.pipeline.minimax_h3.sequential_load is True + assert enabled.pipeline.model.sequential_load is True disabled = fasth3.build_generator_config(_args("--no-h3-sequential-load")) - assert disabled.pipeline.minimax_h3.sequential_load is False + assert disabled.pipeline.model.sequential_load is False def test_opt_outs_override_inherited_environment(monkeypatch): @@ -182,7 +182,7 @@ def test_opt_outs_override_inherited_environment(monkeypatch): assert fasth3.os.environ["FASTVIDEO_VAE_PARALLEL_DECODE"] == "0" assert fasth3.os.environ["FASTVIDEO_ULYSSES_A2A"] == "off" assert config.engine.compile.vae_enabled is False - assert config.pipeline.minimax_h3.vae_parallel_decode is False + assert config.pipeline.model.vae_parallel_decode is False assert config.engine.use_fsdp_inference is True assert config.engine.offload.pin_cpu_memory is False @@ -264,8 +264,8 @@ def test_taeh3_backend_is_opt_in(): default = fasth3.build_generator_config(_args()) taeh3 = fasth3.build_generator_config(_args("--video-decode-backend", "taeh3")) - assert default.pipeline.minimax_h3.video_decode_backend is None - assert taeh3.pipeline.minimax_h3.video_decode_backend == "taeh3" + assert default.pipeline.model.video_decode_backend is None + assert taeh3.pipeline.model.video_decode_backend == "taeh3" EIGHT_STEP_EXAMPLE_PATH = REPO_ROOT / "examples" / "inference" / "basic" / "basic_fasth3_8step.py" diff --git a/fastvideo/tests/pipelines/test_ltx2_refine_checkpoint_defaults.py b/fastvideo/tests/pipelines/test_ltx2_refine_checkpoint_defaults.py index a69871800..7fd573d46 100644 --- a/fastvideo/tests/pipelines/test_ltx2_refine_checkpoint_defaults.py +++ b/fastvideo/tests/pipelines/test_ltx2_refine_checkpoint_defaults.py @@ -5,7 +5,7 @@ from __future__ import annotations import json from fastvideo.api.checkpoint_defaults import ltx2_refine_checkpoint_step -from fastvideo.api.inference_resolution import fill_runtime_defaults, resolve_inference_config +from fastvideo.api.inference_resolution import fill_runtime_defaults, model_family_steps, resolve_inference_config from fastvideo.api.resolution import resolve_generator_config from fastvideo.pipelines.basic.ltx2.pipeline_configs import LTX2T2VConfig from fastvideo.tests.api.config_snapshot import isolated_environment @@ -19,10 +19,10 @@ CHECKPOINT_REFINE = { "fastvideo_refine_lora_path": "FastVideo/LTX2-Distilled-LoRA", } REFINE_SWITCHES = ( - "pipeline.ltx2.refine.enabled", - "pipeline.ltx2.refine.num_inference_steps", - "pipeline.ltx2.refine.guidance_scale", - "pipeline.ltx2.refine.add_noise", + "pipeline.model.refine.enabled", + "pipeline.model.refine.num_inference_steps", + "pipeline.model.refine.guidance_scale", + "pipeline.model.refine.add_noise", ) @@ -40,11 +40,13 @@ def _checkpoint(tmp_path, **manifest_entries) -> str: def _resolve_local(model_path: str, refine: dict | None = None, upsampler_weights: str | None = None): - """Resolve a local LTX-2 checkpoint through the checkpoint step and the runtime defaults only.""" + """Resolve a local LTX-2 checkpoint through the family, checkpoint, and runtime-default steps only.""" raw: dict = {"model_path": model_path, "pipeline": {"components": {"upsampler_weights": upsampler_weights}}} if refine is not None: - raw["pipeline"]["ltx2"] = {"refine": refine} - return resolve_generator_config(raw, (ltx2_refine_checkpoint_step(LTX2T2VConfig()), fill_runtime_defaults)) + raw["pipeline"]["model"] = {"ltx2": {"refine": refine}} + defaults = LTX2T2VConfig() + return resolve_generator_config( + raw, (*model_family_steps(defaults), ltx2_refine_checkpoint_step(defaults), fill_runtime_defaults)) def test_checkpoint_fills_unset_refine_settings_then_the_defaults_fill_the_rest(tmp_path): @@ -53,11 +55,11 @@ def test_checkpoint_fills_unset_refine_settings_then_the_defaults_fill_the_rest( resolved = _resolve_local(model_path) - refine = resolved.pipeline.ltx2.refine + refine = resolved.pipeline.model.refine switches = (refine.enabled, refine.num_inference_steps, refine.guidance_scale, refine.add_noise) assert switches == (False, 2, 1.0, True) - assert resolved.provenance("pipeline.ltx2.refine.num_inference_steps").source == "fill_ltx2_refine_from_checkpoint" - assert resolved.provenance("pipeline.ltx2.refine.add_noise").source == "fill_runtime_defaults" + assert resolved.provenance("pipeline.model.refine.num_inference_steps").source == "fill_ltx2_refine_from_checkpoint" + assert resolved.provenance("pipeline.model.refine.add_noise").source == "fill_runtime_defaults" assert resolved.pipeline.components.upsampler_weights == str(tmp_path / "spatial_upscaler") @@ -70,11 +72,11 @@ def test_input_refine_settings_win_over_the_checkpoint(tmp_path): values for source, values in resolved.decisions if source == "fill_ltx2_refine_from_checkpoint" ] assert checkpoint_decisions == [{ - "pipeline.ltx2.refine.add_noise": False, - "pipeline.ltx2.refine.lora_path": "FastVideo/LTX2-Distilled-LoRA", + "pipeline.model.refine.add_noise": False, + "pipeline.model.refine.lora_path": "FastVideo/LTX2-Distilled-LoRA", }] - assert resolved.pipeline.ltx2.refine.enabled is False - assert _resolve_local(model_path).pipeline.ltx2.refine.enabled is True + assert resolved.pipeline.model.refine.enabled is False + assert _resolve_local(model_path).pipeline.model.refine.enabled is True def test_relative_refine_paths_resolve_inside_the_checkpoint(tmp_path): @@ -87,21 +89,22 @@ def test_relative_refine_paths_resolve_inside_the_checkpoint(tmp_path): resolved = _resolve_local(model_path) - assert resolved.pipeline.ltx2.refine.transformer_path == str(tmp_path / "transformer_refine") - assert resolved.pipeline.ltx2.refine.noise_path == "/weights/noise.safetensors" + assert resolved.pipeline.model.refine.transformer_path == str(tmp_path / "transformer_refine") + assert resolved.pipeline.model.refine.noise_path == "/weights/noise.safetensors" assert resolved.pipeline.components.upsampler_weights == str(tmp_path / "spatial_upsampler") def test_step_skips_other_models_and_blocked_downloads(tmp_path): model_path = _checkpoint(tmp_path, **CHECKPOINT_REFINE) - other_model = resolve_generator_config({"model_path": model_path}, - (ltx2_refine_checkpoint_step(object()), fill_runtime_defaults)) - assert other_model.pipeline.ltx2.refine.enabled is False - assert other_model.pipeline.ltx2.refine.lora_path is None + other_model = resolve_generator_config( + {"model_path": model_path}, + (*model_family_steps(object()), ltx2_refine_checkpoint_step(object()), fill_runtime_defaults)) + assert other_model.pipeline.model.family == "generic" + assert [source for source, _ in other_model.decisions if source == "fill_ltx2_refine_from_checkpoint"] == [] with isolated_environment(): hub_model = resolve_inference_config({"model_path": LTX2}) assert [source for source, _ in hub_model.decisions if source == "fill_ltx2_refine_from_checkpoint"] == [] assert tuple(hub_model.provenance(path).value for path in REFINE_SWITCHES) == (False, 3, 1.0, True) - assert hub_model.provenance("pipeline.ltx2.refine.enabled").source == "fill_runtime_defaults" + assert hub_model.provenance("pipeline.model.refine.enabled").source == "fill_runtime_defaults" diff --git a/fastvideo/tests/ssim/inference_similarity_utils.py b/fastvideo/tests/ssim/inference_similarity_utils.py index ea924d560..2adf531ad 100644 --- a/fastvideo/tests/ssim/inference_similarity_utils.py +++ b/fastvideo/tests/ssim/inference_similarity_utils.py @@ -200,13 +200,13 @@ def build_init_kwargs(base_params: dict[str, object], ) -> dict[str, object]: init_kwargs["engine.precision.text_encoders"] = list(base_params["text-encoder-precision"]) if base_params.get("ltx2_vae_tiling"): init_kwargs["pipeline.vae_tiling"] = True - init_kwargs["pipeline.ltx2.vae_spatial_tile_size_in_pixels"] = base_params.get( + init_kwargs["pipeline.model.ltx2.vae_spatial_tile_size_in_pixels"] = base_params.get( "ltx2_vae_spatial_tile_size_in_pixels", 512) - init_kwargs["pipeline.ltx2.vae_spatial_tile_overlap_in_pixels"] = base_params.get( + init_kwargs["pipeline.model.ltx2.vae_spatial_tile_overlap_in_pixels"] = base_params.get( "ltx2_vae_spatial_tile_overlap_in_pixels", 64) - init_kwargs["pipeline.ltx2.vae_temporal_tile_size_in_frames"] = base_params.get( + init_kwargs["pipeline.model.ltx2.vae_temporal_tile_size_in_frames"] = base_params.get( "ltx2_vae_temporal_tile_size_in_frames", 64) - init_kwargs["pipeline.ltx2.vae_temporal_tile_overlap_in_frames"] = base_params.get( + init_kwargs["pipeline.model.ltx2.vae_temporal_tile_overlap_in_frames"] = base_params.get( "ltx2_vae_temporal_tile_overlap_in_frames", 24) return init_kwargs diff --git a/fastvideo/tests/ssim/test_longcat_similarity.py b/fastvideo/tests/ssim/test_longcat_similarity.py index faa389962..eaeb96b61 100644 --- a/fastvideo/tests/ssim/test_longcat_similarity.py +++ b/fastvideo/tests/ssim/test_longcat_similarity.py @@ -227,8 +227,10 @@ def test_longcat_t2v_similarity(prompt: str, ATTENTION_BACKEND: str, env_overrid }, }, "pipeline": { - "longcat": { - "enable_bsa": False, + "model": { + "longcat": { + "enable_bsa": False, + }, }, }, } @@ -333,8 +335,10 @@ def test_longcat_i2v_similarity(prompt: str, ATTENTION_BACKEND: str, env_overrid }, }, "pipeline": { - "longcat": { - "enable_bsa": False, + "model": { + "longcat": { + "enable_bsa": False, + }, }, }, } @@ -446,8 +450,10 @@ def test_longcat_vc_similarity(prompt: str, ATTENTION_BACKEND: str, env_override }, }, "pipeline": { - "longcat": { - "enable_bsa": False, + "model": { + "longcat": { + "enable_bsa": False, + }, }, }, } diff --git a/fastvideo/tests/ssim/test_ltx2_similarity.py b/fastvideo/tests/ssim/test_ltx2_similarity.py index ba843fd30..f9b7e5036 100644 --- a/fastvideo/tests/ssim/test_ltx2_similarity.py +++ b/fastvideo/tests/ssim/test_ltx2_similarity.py @@ -121,8 +121,8 @@ def test_ltx2_distilled_inference_similarity( full_cosine_threshold=FULL_COSINE_DISTANCE_THRESHOLD, init_kwargs_override={ "engine.offload.dit": True, - "pipeline.ltx2.legacy_native_noise_order": True, - "pipeline.ltx2.use_distilled_sigmas": False, + "pipeline.model.ltx2.legacy_native_noise_order": True, + "pipeline.model.ltx2.use_distilled_sigmas": False, }, generation_kwargs_override=LTX2_DISTILLED_REFERENCE_GUIDANCE_OVERRIDES, ) diff --git a/fastvideo/tests/stages/_resolved_config.py b/fastvideo/tests/stages/_resolved_config.py index 40fd101c1..414111bb5 100644 --- a/fastvideo/tests/stages/_resolved_config.py +++ b/fastvideo/tests/stages/_resolved_config.py @@ -5,13 +5,20 @@ from collections.abc import Mapping from typing import Any from fastvideo.api.inference_resolution import fill_runtime_defaults -from fastvideo.api.resolution import ResolvedGeneratorConfig, resolve_generator_config +from fastvideo.api.resolution import ResolutionView, ResolvedGeneratorConfig, resolve_generator_config +from fastvideo.api.schema import GenericModelOptions + + +def fill_generic_model_block(view: ResolutionView) -> dict[str, Any]: + """Set the ``generic`` block when ``raw`` writes no ``pipeline.model``; a written family block is kept as is.""" + return {} if view.get("pipeline.model") is not None else {"pipeline.model": GenericModelOptions()} def make_resolved_config(pipeline_config: Any = None, raw: Mapping[str, Any] | None = None) -> ResolvedGeneratorConfig: """Resolve ``raw``, a nested ``GeneratorConfig`` mapping, with ``pipeline_config`` as the model definition. - Only the runtime-defaults step runs, so no checkpoint or registry lookup happens. ``pipeline_config`` stands in + Only the ``pipeline.model`` fill and the runtime-defaults step run, so no checkpoint or registry lookup happens; + the family of a written ``pipeline.model`` block is not checked against a model. ``pipeline_config`` stands in for the ``PipelineConfig`` that materialization builds; a test passes a small stand-in that holds only the model definition data that the stage under test reads. """ @@ -20,6 +27,6 @@ def make_resolved_config(pipeline_config: Any = None, raw: Mapping[str, Any] | N "model_path": "unused/for-stage-tests", **(raw or {}) }, - (fill_runtime_defaults, ), + (fill_generic_model_block, fill_runtime_defaults), materialize=lambda _: pipeline_config, ) diff --git a/fastvideo/tests/stages/test_minimax_h3_distilled_schedule.py b/fastvideo/tests/stages/test_minimax_h3_distilled_schedule.py index 510b38e1c..0fa7a212b 100644 --- a/fastvideo/tests/stages/test_minimax_h3_distilled_schedule.py +++ b/fastvideo/tests/stages/test_minimax_h3_distilled_schedule.py @@ -10,7 +10,7 @@ import torch from torch.testing import assert_close from fastvideo.api.checkpoint_defaults import dmd_schedule_checkpoint_step -from fastvideo.api.inference_resolution import fill_runtime_defaults +from fastvideo.api.inference_resolution import fill_runtime_defaults, model_family_steps from fastvideo.api.resolution import resolve_generator_config from fastvideo.configs.pipelines.minimax_h3 import MiniMaxH3PipelineConfig from fastvideo.models.schedulers.scheduling_minimax_h3 import MiniMaxH3Scheduler @@ -42,10 +42,12 @@ def _pipeline(tmp_path, *, video_shift=10.0): def _resolve_checkpoint(tmp_path, raw=None): - """Resolve the local checkpoint ``tmp_path`` through the checkpoint schedule step and the runtime defaults.""" - return resolve_generator_config({"model_path": str(tmp_path), **(raw or {})}, - (dmd_schedule_checkpoint_step(MiniMaxH3PipelineConfig()), fill_runtime_defaults), - materialize=lambda _: MiniMaxH3PipelineConfig()) + """Resolve the local checkpoint ``tmp_path`` through the family, checkpoint schedule, and runtime-default steps.""" + defaults = MiniMaxH3PipelineConfig() + return resolve_generator_config( + {"model_path": str(tmp_path), **(raw or {})}, + (*model_family_steps(defaults), dmd_schedule_checkpoint_step(defaults), fill_runtime_defaults), + materialize=lambda _: MiniMaxH3PipelineConfig()) def _with_steps(steps): @@ -196,8 +198,9 @@ def test_resolution_fills_the_exported_ladder_and_the_pipeline_accepts_it(tmp_pa def test_checkpoint_step_skips_other_models_and_checkpoints_without_a_schedule(tmp_path): (tmp_path / "fastvideo_inference.json").write_text(json.dumps(CONTRACT)) - other_model = resolve_generator_config({"model_path": str(tmp_path)}, - (dmd_schedule_checkpoint_step(object()), fill_runtime_defaults)) + other_model = resolve_generator_config( + {"model_path": str(tmp_path)}, + (*model_family_steps(object()), dmd_schedule_checkpoint_step(object()), fill_runtime_defaults)) assert other_model.pipeline.dmd_denoising_steps is None (tmp_path / "fastvideo_inference.json").unlink() diff --git a/fastvideo/tests/stages/test_minimax_h3_encoding_offload.py b/fastvideo/tests/stages/test_minimax_h3_encoding_offload.py index 9d3832050..9afe9f3ae 100644 --- a/fastvideo/tests/stages/test_minimax_h3_encoding_offload.py +++ b/fastvideo/tests/stages/test_minimax_h3_encoding_offload.py @@ -84,7 +84,7 @@ def _args(pin: bool, offload: bool = True): ) return make_resolved_config(pipeline_config, raw={ "engine": {"offload": {"pin_cpu_memory": pin, "vae": offload}}, - "pipeline": {"minimax_h3": {"vae_parallel_encode": False}}, + "pipeline": {"model": {"minimax_h3": {"vae_parallel_encode": False}}}, }) diff --git a/fastvideo/tests/stages/test_minimax_h3_sequential_start.py b/fastvideo/tests/stages/test_minimax_h3_sequential_start.py index e7c7978b0..acbda4cbd 100644 --- a/fastvideo/tests/stages/test_minimax_h3_sequential_start.py +++ b/fastvideo/tests/stages/test_minimax_h3_sequential_start.py @@ -47,7 +47,7 @@ def _h3_config(*, enable_stage_verification: bool = True, lazy_module_load: bool "enable_stage_verification": enable_stage_verification, "offload": {"lazy_module_load": lazy_module_load}, }, - "pipeline": {"minimax_h3": minimax_h3}, + "pipeline": {"model": {"minimax_h3": minimax_h3}}, }) @@ -225,12 +225,12 @@ def test_auto_loads_together_without_unified_memory(monkeypatch) -> None: def test_cli_tri_state_h3_sequential_load() -> None: def sequential_load(argv: list[str]) -> bool | None: - raw = apply_overrides({}, parse_cli_overrides(argv)) - return make_resolved_config(raw=raw).pipeline.minimax_h3.sequential_load + raw = apply_overrides({"pipeline": {"model": {"minimax_h3": {}}}}, parse_cli_overrides(argv)) + return make_resolved_config(raw=raw).pipeline.model.sequential_load assert sequential_load([]) is None - assert sequential_load(["--pipeline.minimax_h3.sequential_load", "true"]) is True - assert sequential_load(["--pipeline.minimax_h3.sequential_load", "false"]) is False + assert sequential_load(["--pipeline.model.minimax_h3.sequential_load", "true"]) is True + assert sequential_load(["--pipeline.model.minimax_h3.sequential_load", "false"]) is False def test_taeh3_t2va_skips_video_vae_on_the_deferred_load(monkeypatch) -> None: diff --git a/fastvideo/tests/stages/test_minimax_h3_vae_streaming.py b/fastvideo/tests/stages/test_minimax_h3_vae_streaming.py index da22c6e4e..b5d3226c4 100644 --- a/fastvideo/tests/stages/test_minimax_h3_vae_streaming.py +++ b/fastvideo/tests/stages/test_minimax_h3_vae_streaming.py @@ -25,7 +25,7 @@ def _decode_config(*, pin: bool = False, vae_offload: bool = False, parallel_dec pipeline_config = SimpleNamespace(dit_config=SimpleNamespace(patch_size=(1, 1, 1))) return make_resolved_config(pipeline_config, raw={ "engine": {"offload": {"pin_cpu_memory": pin, "vae": vae_offload}}, - "pipeline": {"output_type": "pil", "minimax_h3": {"vae_parallel_decode": parallel_decode, **minimax_h3}}, + "pipeline": {"output_type": "pil", "model": {"minimax_h3": {"vae_parallel_decode": parallel_decode, **minimax_h3}}}, }) @@ -72,7 +72,7 @@ def test_reference_video_encode_keeps_pixels_on_cpu() -> None: ) resolved_config = make_resolved_config( SimpleNamespace(dit_config=SimpleNamespace(patch_size=(1, 1, 1))), - raw={"pipeline": {"minimax_h3": {"vae_parallel_encode": False}}}, + raw={"pipeline": {"model": {"minimax_h3": {"vae_parallel_encode": False}}}}, ) rows = stage._encode_visual_rows([reference], torch.device("cpu"), resolved_config) diff --git a/fastvideo/tests/vaes/test_minimax_h3_parallel_vae.py b/fastvideo/tests/vaes/test_minimax_h3_parallel_vae.py index a2e0a88bf..b1e0e6ad2 100644 --- a/fastvideo/tests/vaes/test_minimax_h3_parallel_vae.py +++ b/fastvideo/tests/vaes/test_minimax_h3_parallel_vae.py @@ -307,9 +307,9 @@ def test_resolved_strategy_literals_match_module() -> None: def resolve(minimax_h3): with isolated_environment(): - return resolve_inference_config({"model_path": model_path, "pipeline": {"minimax_h3": minimax_h3}}) + return resolve_inference_config({"model_path": model_path, "pipeline": {"model": {"minimax_h3": minimax_h3}}}) - options = resolve({}).pipeline.minimax_h3 + options = resolve({}).pipeline.model assert options.vae_parallel_decode is False assert options.vae_parallel_encode is False assert options.vae_parallel_decode_strategy == DEFAULT_DECODE_GATHER_STRATEGY @@ -317,6 +317,6 @@ def test_resolved_strategy_literals_match_module() -> None: for strategy in DECODE_GATHER_STRATEGIES: resolved = resolve({"vae_parallel_decode_strategy": strategy}) - assert resolved.pipeline.minimax_h3.vae_parallel_decode_strategy == strategy + assert resolved.pipeline.model.vae_parallel_decode_strategy == strategy with pytest.raises(ConfigValidationError, match="vae_parallel_decode_strategy"): resolve({"vae_parallel_decode_strategy": "scatter"}) diff --git a/scripts/inference/inference_longcat.yaml b/scripts/inference/inference_longcat.yaml index 50565e61e..4df031176 100644 --- a/scripts/inference/inference_longcat.yaml +++ b/scripts/inference/inference_longcat.yaml @@ -13,8 +13,9 @@ generator: vae: false pin_cpu_memory: false pipeline: - longcat: - enable_bsa: false + model: + longcat: + enable_bsa: false request: prompt: >- In a realistic photography style, a white boy around seven or eight years diff --git a/scripts/inference/inference_longcat_distill.yaml b/scripts/inference/inference_longcat_distill.yaml index c2c41df0a..e53a73f4c 100644 --- a/scripts/inference/inference_longcat_distill.yaml +++ b/scripts/inference/inference_longcat_distill.yaml @@ -14,8 +14,9 @@ generator: components: lora_path: FastVideo/LongCat-Video-T2V-Distilled-LoRA lora_nickname: distilled - longcat: - enable_bsa: false + model: + longcat: + enable_bsa: false request: prompt: >- In a realistic photography style, a white boy around seven or eight years diff --git a/scripts/inference/inference_longcat_i2v.yaml b/scripts/inference/inference_longcat_i2v.yaml index 7e6b79387..3dccdea22 100644 --- a/scripts/inference/inference_longcat_i2v.yaml +++ b/scripts/inference/inference_longcat_i2v.yaml @@ -12,8 +12,9 @@ generator: pin_cpu_memory: false pipeline: workload_type: i2v - longcat: - enable_bsa: false + model: + longcat: + enable_bsa: false request: prompt: >- A woman sits at a wooden table by the window in a cozy café. She reaches diff --git a/scripts/inference/inference_longcat_refine_fromvideo.yaml b/scripts/inference/inference_longcat_refine_fromvideo.yaml index 5b46d0821..2ddb60bfb 100644 --- a/scripts/inference/inference_longcat_refine_fromvideo.yaml +++ b/scripts/inference/inference_longcat_refine_fromvideo.yaml @@ -13,11 +13,12 @@ generator: components: lora_path: FastVideo/LongCat-Video-T2V-Refinement-LoRA lora_nickname: refinement - longcat: - enable_bsa: true - bsa_sparsity: 0.875 - bsa_chunk_q: [4, 4, 8] - bsa_chunk_k: [4, 4, 8] + model: + longcat: + enable_bsa: true + bsa_sparsity: 0.875 + bsa_chunk_q: [4, 4, 8] + bsa_chunk_k: [4, 4, 8] request: prompt: >- In a realistic photography style, a white boy around seven or eight years diff --git a/scripts/inference/inference_longcat_vc.yaml b/scripts/inference/inference_longcat_vc.yaml index 1a97e6020..6f5e5c284 100644 --- a/scripts/inference/inference_longcat_vc.yaml +++ b/scripts/inference/inference_longcat_vc.yaml @@ -11,8 +11,9 @@ generator: dit: false pin_cpu_memory: false pipeline: - longcat: - enable_bsa: false + model: + longcat: + enable_bsa: false request: prompt: >- A person rides a motorcycle along a long, straight road that stretches diff --git a/tests/local_tests/ltx2/test_ltx2_pipeline_smoke.py b/tests/local_tests/ltx2/test_ltx2_pipeline_smoke.py index 1da9a297c..c4de3be27 100644 --- a/tests/local_tests/ltx2/test_ltx2_pipeline_smoke.py +++ b/tests/local_tests/ltx2/test_ltx2_pipeline_smoke.py @@ -173,7 +173,7 @@ def test_ltx2_pipeline_smoke(): }, "pipeline": { "vae_tiling": False, - "ltx2": {"initial_latent_path": latent_path}, + "model": {"ltx2": {"initial_latent_path": latent_path}}, }, }) result = generator.generate({ diff --git a/tests/local_tests/pipelines/test_lingbot_video_refiner_stages.py b/tests/local_tests/pipelines/test_lingbot_video_refiner_stages.py index 27d06d16f..38af17bbf 100644 --- a/tests/local_tests/pipelines/test_lingbot_video_refiner_stages.py +++ b/tests/local_tests/pipelines/test_lingbot_video_refiner_stages.py @@ -225,7 +225,7 @@ def test_lingbot_video_pipeline_loads_refiner_and_vae_encoder(monkeypatch: pytes args = cast( Any, SimpleNamespace( - pipeline=SimpleNamespace(ltx2=SimpleNamespace(refine=SimpleNamespace(enabled=None))), + pipeline=SimpleNamespace(preset_overrides={"refine": {"enabled": None}}), pipeline_config=SimpleNamespace(vae_config=vae_config), ), ) @@ -249,6 +249,6 @@ def test_lingbot_video_pipeline_loads_refiner_and_vae_encoder(monkeypatch: pytes }, }) base_modules = base_pipe.load_modules(base_args) - assert base_args.pipeline.ltx2.refine.enabled is False + assert base_args.pipeline.preset_overrides["refine"]["enabled"] is False assert "transformer_2" not in base_modules assert base_args.pipeline_config.vae_config.load_encoder is False diff --git a/tests/local_tests/vaes/benchmark_minimax_h3_video_vae_memory.py b/tests/local_tests/vaes/benchmark_minimax_h3_video_vae_memory.py index 37611bcd1..8e5050f2e 100644 --- a/tests/local_tests/vaes/benchmark_minimax_h3_video_vae_memory.py +++ b/tests/local_tests/vaes/benchmark_minimax_h3_video_vae_memory.py @@ -98,7 +98,7 @@ def _build_operation(args, vae, device): runtime_args = SimpleNamespace( pipeline=SimpleNamespace( output_type="pil", - minimax_h3=SimpleNamespace( + model=SimpleNamespace( vae_parallel_encode=False, vae_parallel_decode=False, vae_parallel_decode_strategy=None,