utils
¶
Distillation utilities shared across families/methods/entrypoints.
Modules¶
fastvideo.train.utils.builder
¶
Assembly: build method + dataloader from a _target_-based config.
Classes¶
Functions¶
fastvideo.train.utils.builder.build_from_config
¶
build_from_config(cfg: RunConfig) -> tuple[TrainingConfig, TrainingMethod, Any, int]
Build method + dataloader from a v3 run config.
- Instantiate each model in
cfg.modelsvia_target_. - Resolve the method class from
cfg.method["_target_"]and construct it with(cfg=cfg, role_models=...). - Return
(training_args, method, dataloader, start_step).
Source code in fastvideo/train/utils/builder.py
fastvideo.train.utils.checkpoint
¶
Classes¶
fastvideo.train.utils.checkpoint.CheckpointManager
¶
CheckpointManager(*, method: Any, dataloader: Any, output_dir: str, config: CheckpointConfig, callbacks: Any | None = None, raw_config: dict[str, Any] | None = None)
Role-based checkpoint manager for training runtime.
- Checkpoint policy lives in YAML (via TrainingArgs fields).
- Resume path is typically provided via CLI (
--resume-from-checkpoint).
Source code in fastvideo/train/utils/checkpoint.py
Functions¶
fastvideo.train.utils.checkpoint.CheckpointManager.load_metadata
staticmethod
¶Read metadata.json from a checkpoint dir.
Source code in fastvideo/train/utils/checkpoint.py
fastvideo.train.utils.checkpoint.CheckpointManager.load_rng_snapshot
¶load_rng_snapshot(checkpoint_path: str) -> None
Restore per-rank RNG state from the snapshot file.
Must be called AFTER dcp.load and after
iter(dataloader) so no later operation can
clobber the restored state.
Source code in fastvideo/train/utils/checkpoint.py
Functions¶
fastvideo.train.utils.config
¶
Training run config (_target_ based YAML).
Classes¶
fastvideo.train.utils.config.RunConfig
dataclass
¶
RunConfig(models: dict[str, dict[str, Any]], method: dict[str, Any], training: TrainingConfig, callbacks: dict[str, dict[str, Any]], raw: dict[str, Any])
Parsed run config loaded from YAML.
Functions¶
fastvideo.train.utils.config.RunConfig.resolved_config
¶Return a fully-resolved config dict with defaults.
Suitable for logging to W&B so that every parameter (including defaults) is visible.
Source code in fastvideo/train/utils/config.py
Functions¶
fastvideo.train.utils.config.load_run_config
¶
Load a run config from YAML.
Expected top-level keys: models, method,
training (nested), and optionally callbacks
and pipeline.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
path
|
str
|
Path to the YAML config file. |
required |
overrides
|
list[str] | None
|
Optional list of CLI override tokens,
e.g. |
None
|
Source code in fastvideo/train/utils/config.py
fastvideo.train.utils.config.require_bool
¶
require_bool(mapping: dict[str, Any], key: str, *, default: bool | None = None, where: str | None = None) -> bool
Read a bool value.
Source code in fastvideo/train/utils/config.py
fastvideo.train.utils.config.require_choice
¶
require_choice(mapping: dict[str, Any], key: str, choices: set[str] | frozenset[str], *, default: str | None = None, where: str | None = None) -> str
Read a string that must be one of choices.
Source code in fastvideo/train/utils/config.py
fastvideo.train.utils.config.require_non_negative_float
¶
require_non_negative_float(mapping: dict[str, Any], key: str, *, default: float | None = None, where: str | None = None) -> float
Read a float that must be >= 0.
Source code in fastvideo/train/utils/config.py
fastvideo.train.utils.config.require_non_negative_int
¶
require_non_negative_int(mapping: dict[str, Any], key: str, *, default: int | None = None, where: str | None = None) -> int
Read an int that must be >= 0.
Source code in fastvideo/train/utils/config.py
fastvideo.train.utils.config.require_positive_int
¶
require_positive_int(mapping: dict[str, Any], key: str, *, default: int | None = None, where: str | None = None) -> int
Read an int that must be > 0.
Source code in fastvideo/train/utils/config.py
fastvideo.train.utils.dataloader
¶
Functions¶
fastvideo.train.utils.dataloader.build_parquet_t2v_train_dataloader
¶
build_parquet_t2v_train_dataloader(data_config: DataConfig, *, text_len: int, parquet_schema: Any) -> Any
Build a parquet dataloader for T2V-style datasets.
Source code in fastvideo/train/utils/dataloader.py
fastvideo.train.utils.instantiate
¶
_target_-based instantiation utilities.
These helpers resolve a dotted Python path to a class and instantiate it,
filtering constructor kwargs through inspect.signature so that only
recognized parameters are forwarded. Unrecognized keys emit a warning
rather than raising — this keeps YAML configs forward-compatible when
a class drops a parameter in a later version.
Functions¶
fastvideo.train.utils.instantiate.instantiate
¶
Instantiate the class specified by cfg["_target_"].
All remaining keys in cfg (minus _target_) plus any extra
keyword arguments are forwarded to the constructor. Keys that do
not match an __init__ parameter are silently warned about and
dropped, so callers can safely pass a superset.
Source code in fastvideo/train/utils/instantiate.py
fastvideo.train.utils.instantiate.resolve_target
¶
Import and return the class (or callable) at target.
target must be a fully-qualified dotted path, e.g.
"fastvideo.train.models.wan.wan.WanModel".
Source code in fastvideo/train/utils/instantiate.py
fastvideo.train.utils.module_state
¶
fastvideo.train.utils.moduleloader
¶
Classes¶
Functions¶
fastvideo.train.utils.moduleloader.load_module_from_path
¶
load_module_from_path(*, model_path: str, module_type: str, training_config: TrainingConfig, disable_custom_init_weights: bool = False, override_transformer_cls_name: str | None = None, transformer_override_safetensor: str | None = None) -> Module
Load a single pipeline component module.
Accepts a TrainingConfig and internally builds the
TrainingArgs needed by PipelineComponentLoader.
Source code in fastvideo/train/utils/moduleloader.py
fastvideo.train.utils.moduleloader.make_inference_args
¶
make_inference_args(tc: TrainingConfig, *, model_path: str) -> TrainingArgs
Build a TrainingArgs for inference (validation / pipelines).
Source code in fastvideo/train/utils/moduleloader.py
fastvideo.train.utils.optimizer
¶
Functions¶
fastvideo.train.utils.optimizer.build_optimizer_and_scheduler
¶
build_optimizer_and_scheduler(*, params: list[Parameter], optimizer_config: OptimizerConfig, loop_config: TrainingLoopConfig, learning_rate: float, betas: tuple[float, float], scheduler_name: str) -> tuple[Optimizer, object]
Build an AdamW optimizer and LR scheduler.
Returns (optimizer, lr_scheduler) so the caller can store them
as method-level attributes.
Source code in fastvideo/train/utils/optimizer.py
fastvideo.train.utils.tracking
¶
Functions¶
fastvideo.train.utils.tracking.build_tracker
¶
build_tracker(tracker_config: TrackerConfig, checkpoint_config: CheckpointConfig, *, config: dict[str, Any] | None) -> Any
Build a tracker instance for a distillation run.