en un clic
add-model-09-pipeline
// Use during /add-model Phase 7 after all required component parity tests pass to define FastVideo pipeline wiring, configs, presets, registry entries, examples, smoke tests, and pipeline parity tests.
// Use during /add-model Phase 7 after all required component parity tests pass to define FastVideo pipeline wiring, configs, presets, registry entries, examples, smoke tests, and pipeline parity tests.
Use during /add-model after reference/architecture study to scaffold and later activate local FastVideo component parity tests. Emphasizes early test creation, official-reference loading, standardized FastVideo loading, and non-skip handoff gates.
Use during /add-model Phase 4 or Phase 6 to prototype or parity-debug one FastVideo-native DiT/transformer component.
Use during /add-model Phase 6 when component parity has failed and root cause requires layer-by-layer divergence analysis. Uses FastVideo activation trace first, falling back to custom hooks only for boundaries or stats the utility cannot observe.
Manual /add-model workflow for implementing a FastVideo model or first-class component port after add-model-01-prep has staged reference code and weights. Organizes the port into numbered phases with conversion rules, component policies, parity gates, and handoff checks.
Use when redeploying the migrated Dreamverse app backend and frontend on a chosen local GPU; tears down existing ports, launches services, and waits for readiness checks.
Re-seed the HF performance-tracking baseline for an intentional runtime, dependency, or environment-caused benchmark shift using one or more reviewed normalized performance JSONs. Use when performance CI fails because metrics such as latency, throughput, component time, or peak memory changed for an accepted reason and the rolling median baseline in FastVideo/performance-tracking must be advanced from a consistent batch of reviewed source results. The workflow backs up existing history under /tmp, validates all source JSONs for the same (model_id, gpu_type), rejects internally inconsistent source batches, uploads one success=true reseed record per accepted source JSON, and offers to clean local temp state after a successful upload.
| name | add-model-09-pipeline |
| description | Use during /add-model Phase 7 after all required component parity tests pass to define FastVideo pipeline wiring, configs, presets, registry entries, examples, smoke tests, and pipeline parity tests. |
Implement and verify the end-to-end FastVideo pipeline after the native components and converted weights have passed non-skip component parity. This skill owns pipeline class/stage wiring, pipeline configs, presets, registry entries, examples, smoke tests, and pipeline parity-debug.
FastVideo has one pipeline architecture: stage-based composition through
ComposedPipelineBase. Add or specialize stages only when existing stages cannot
represent the official behavior safely.
Do not start pipeline work until every required component, including reused components, has a non-skip local parity PASS.
If any component row is missing, skipped, red, or blocked, return to /add-model
Phase 6. Pipeline parity cannot distinguish stage wiring mistakes from broken
component numerics when component parity is still unresolved.
Follow ../add-model/shared/common_rules.md for token/auth safety, state files,
escape hatches, production boundaries, and skip/pass semantics.
Require a complete packet matching
../add-model/contracts/pipeline_context.md.
The packet must include:
model_index.json path;non_skip_pass;local_tests_readme and port_state_file paths.fastvideo/pipelines/basic/<family>/.fastvideo/configs/pipelines/<family>.py or a documented
family-local config file when that matches existing project style.fastvideo/pipelines/basic/<family>/presets.py.fastvideo/registry.py.examples/inference/basic/basic_<family>*.py.tests/local_tests/pipelines/.tests/local_tests/<model_family>/README.md.tests/local_tests/<model_family>/PORT_STATUS.md.../add-model/contracts/pipeline_handoff.md.Use this mode first.
_required_config_modules matching
the emitted model_index.json and ComposedPipelineBase.load_modules.
Runtime pipeline resolution is exact: model_index.json["_class_name"] must
match a registered EntryClass.__name__, or a wrapper/alias class in
EntryClass. Registry detectors do not select the executable pipeline class.fastvideo/api/sampling_param.py before
examples or presets use them. SamplingParam.update() ignores unknown keys
except for logging, and preset defaults apply only to declared fields. Add CLI
args when the option should be available from command-line entrypoints.load_modules() or earlier, not
initialize_pipeline(). ComposedPipelineBase.__init__ loads modules before
post_init() calls initialize_pipeline(), so process-global flags, loader
path rewrites, dtype overrides, and tokenizer path changes needed for loading
cannot be introduced there.self.get_module("transformer_2", None) and similar optional accessors
for truly optional modules. Do not hard-require optional modules by accident._required_config_modules in custom code. If a
pipeline needs dynamic modules, copy the list to an instance-owned value or
pass required_config_modules explicitly so one pipeline instance cannot leak
module requirements into another.fastvideo/pipelines/basic/<family>/pipeline_configs.py are valid only when
fastvideo/registry.py imports and registers the classes explicitly.InferencePreset objects with model_family, name, version,
defaults, optional validation-only stage_schemas, and an ALL_PRESETS
tuple. stage_schemas validates user-facing stage_overrides names; it does
not drive create_pipeline_stages() execution.fastvideo/registry.py: add
register_configs(...), import the family's ALL_PRESETS, and append it to
_register_presets(). Detectors should cover HF paths and _class_name
strings for config/preset lookup, but not as a replacement for exact pipeline
class-name resolution.tests/local_tests/pipelines/test_<family>_pipeline_smoke.py that proves
imports, EntryClass, registry, presets, config defaults, and at least one
real load/generate path when weights are local. Older local tests sometimes
colocate smoke checks in parity files; new ports should use the separate file
convention.templates/pipeline_parity_test.py.local_tests_readme and port_state_file with commands, statuses,
default sources, decisions, and blockers.Production import boundaries are defined in
../add-model/shared/common_rules.md.
Run after pipeline definition and after smoke can execute far enough to load the pipeline. Loop until pipeline parity is a non-skip PASS or a precise blocker is returned.
Mandatory order:
pytest tests/local_tests/pipelines/test_<family>_pipeline_smoke.py -v -s
DISABLE_SP=1 pytest tests/local_tests/pipelines/test_<family>_pipeline_parity.py -v -s
python examples/inference/basic/basic_<family>.py
Pipeline parity must compare real outputs, not only successful generation:
Debug pipeline drift in this order:
+1 frame or crop/slice behavior.If stage diagnostics show the first bad stage is transformer/denoising or a
mid-DiT block, enable activation trace before adding ad hoc pipeline prints; see
docs/contributing/activation_trace.md and ../add-model-08-trace/SKILL.md.
Keep FASTVIDEO_TRACE_LAYERS, FASTVIDEO_TRACE_STATS, and
FASTVIDEO_TRACE_STEPS identical across reruns so pipeline parity traces diff
one-to-one.
If the first divergence belongs to component implementation, strict loading, or
conversion mapping, stop pipeline edits and return next_step=return_to_phase_6
with the exact failing evidence. Do not patch conversion from this skill.
InputValidationStage, TextEncodingStage,
ConditioningStage, TimestepPreparationStage, LatentPreparationStage,
DenoisingStage, DecodingStage.TextEncodingStage, ImageEncodingStage,
ConditioningStage, TimestepPreparationStage, LatentPreparationStage,
ImageVAEEncodingStage, DenoisingStage, DecodingStage.ConditioningStage as default-present for Wan-style pipelines, but still
follow the reference if another family truly skips or replaces it.WorkloadType currently has no T2A, A2A, or AV values. Until that enum
is extended, audio-only pipelines may register with WorkloadType.T2V and
preset workload_type="t2v" as a compatibility shim, but must document the
rationale in code and PORT_STATUS.md.height/width and
num_frames=1 only when shared VideoGenerator/validation paths require them,
and document that the real output is audio.height, width, num_frames, and fps; audio uses
audio_seconds and sampling_rate; joint AV records both plus whether output
is muxed or paired files.added_kv_proj_dim, document the T2V/I2V split.transformer_2, boundary_ratio, guidance_scale_2, or
DMD step lists, keep those on config, presets, or stages deliberately.PORT_STATUS.md.Pipeline verification order:
pytest tests/local_tests/pipelines/test_<family>_pipeline_smoke.py -v -s
DISABLE_SP=1 pytest -v -s tests/local_tests/pipelines/test_<family>_pipeline_parity.py
python examples/inference/basic/basic_<family>.py
Smoke tests prove loadability only. They are not a substitute for numerical component or pipeline parity.
Follow ../add-model/shared/common_rules.md. Pipeline-specific ask cases include
dropping a public mode, modality, or output head; adding a new workload enum;
changing official defaults for user-facing behavior; accepting a known pipeline
parity blocker; running GPU-heavy quality work outside the agreed scope; or
publishing/uploading generated references or converted weights.
Return ../add-model/contracts/pipeline_handoff.md and update the shared state
files before handoff.
Do not hand back a green pipeline if smoke or parity skipped locally. A skip is a setup gap, not a pass.
fastvideo/pipelines/composed_pipeline_base.py for module loading and stage
execution.fastvideo/pipelines/basic/wan/ for standard video T2V/I2V/DMD variants.fastvideo/pipelines/basic/stable_audio/ for audio-specific stage composition.fastvideo/configs/pipelines/stable_audio.py and
fastvideo/pipelines/basic/stable_audio/presets.py for config/preset shape.fastvideo/registry.py for register_configs(...) and preset registration.tests/local_tests/pipelines/test_gamecraft_pipeline_parity.py for latent
parity structure.tests/local_tests/pipelines/test_stable_audio_pipeline_parity.py for audio
parity structure.tests/local_tests/pipelines/test_stable_audio_pipeline_smoke.py for no-GPU
import/registry/preset preflight shape.