add-model-06-port-generic
GitHub用于在FastVideo中添加非DiT、VAE或编码器的通用组件(如调度器、条件器等)。支持原型开发与 parity 调试,遵循共享规范,确保状态管理、配置桶选择及官方行为一致性。
Trigger Scenarios
Install
npx skills add hao-ai-lab/FastVideo --skill add-model-06-port-generic -g -y
SKILL.md
Frontmatter
{
"name": "add-model-06-port-generic",
"description": "Use during \/add-model Phase 4 or Phase 6 to prototype or parity-debug one non-DiT, non-VAE, non-encoder FastVideo component."
}
Add Model Port Generic
Goal
Prototype or parity-debug one scheduler, conditioner, upsampler, vocoder, adapter, preprocessor, or unknown component in FastVideo-native code.
Inputs
Follow ../add-model/shared/component_skill_common.md and require the complete
packet from ../add-model/contracts/component_context.md.
Generic-component packet fields:
component: component name.component_type: scheduler, conditioner, upsampler, vocoder, adapter, preprocessor, or unknown.parity_test:tests/local_tests/<bucket>/test_<family>_<component>_parity.py.weights: converted component dir, HF subfolder, or none.target_files: matchingfastvideo/models/andfastvideo/configs/models/bucket files when applicable.
Modes
Use the common prototype and parity-debug modes from
../add-model/shared/component_skill_common.md.
Generic-component prototype concerns include stateless/stateful ambiguity, missing loader buckets, source prefixes, mutable scheduler state, and output container shape.
Reuse Proof
Apply the shared reuse proof. Generic-component comparison must include mutable state, scaling constants, scheduler/conditioner semantics, output containers, and whether the component owns state or is stateless.
Existing FastVideo Patterns
- Schedulers live under
fastvideo/models/schedulers/and exposeEntryClass. - Upsamplers use
fastvideo/models/upsamplers/plus configs underfastvideo/configs/models/upsamplers/; seehunyuan15.py. - Vocoders and audio-specific modules can live under
fastvideo/models/audio/with configs underfastvideo/configs/models/audio/; seeltx2_audio_vae.py. - Compound conditioners may fit the encoder bucket when the pipeline loader uses
ConditionerLoader; seestable_audio_conditioner.py. - Registry discovery uses
EntryClass; config bucket exports are required when pipeline configs import them by bucket. - Use the narrowest matching config bucket. Wrong bucket inheritance can typecheck but fail during pipeline wiring.
- Layer guidance:
fastvideo/layers/AGENTS.md.
Bucket Decision
- If the component is a transformer/DiT, stop and use
add-model-03-port-dit. - If the component is a VAE/autoencoder, stop and use
add-model-04-port-vae. - If the component is a text/image/audio encoder or encoder-like conditioner,
stop and use
add-model-05-port-encoderunless the loader requires a different bucket. - Otherwise choose the narrowest existing bucket. Add a new bucket only when no existing loader/config shape can represent the component without misleading names or unsafe runtime behavior.
Implementation Rules
- Match official behavior, not just shapes: constructor args, default values, runtime flags, RNG use, dtype/autocast, scaling constants, masks, and output containers all matter.
- Keep the implementation minimal and native. Do not keep a runtime import of the official implementation as the production component.
- For schedulers, compare timesteps, sigmas/noise levels, step outputs, shift handling, prediction type, and any mutable internal state.
- For upsamplers, compare resize mode, align_corners, residual branches, causal padding, normalization, and exact target-shape behavior.
- For vocoders/audio components, compare waveform shape, sample-rate contract, channel order, hop length, normalization, and dtype.
- If private upstream deps are required only for tests, keep stubs under
tests/local_tests/helpers/and do not import them from production code.
Prototype Checks
Follow the shared prototype success criteria.
Parity-Debug Loop
Run the shared parity-debug loop. The component test command is:
pytest <parity_test> -v -s
For numerical drift, add targeted intermediate comparisons in the test to identify the first divergent operation.
Escape Hatches
Follow ../add-model/shared/common_rules.md and the component-specific guidance
in ../add-model/shared/component_skill_common.md. Generic-component ask cases
include creating a new loader bucket, accepting an unsupported private op,
choosing between incompatible official definitions, or dropping a required
component.
Handoff
Return ../add-model/contracts/component_skill_handoff.md following the common
handoff rules in ../add-model/shared/component_skill_common.md.
Version History
- 31aa115 Current 2026-07-05 20:11


