config#
Pydantic configuration classes for the fastgen distillation pipelines.
Configurations are layered so a method-specific config (e.g. DMDConfig) inherits
shared diffusion-distillation hyperparameters from DistillationConfig. All classes
inherit modelopt.torch.opt.config.ModeloptBaseConfig, which provides torch-safe
serialization and dict-like iteration.
The default values in DMDConfig mirror the FastGen Wan 2.2 5B experiment at
FastGen/fastgen/configs/experiments/WanT2V/config_dmd2_wan22_5b.py.
Classes
Hyperparameters for DMD / DMD2 distribution-matching distillation. |
|
Shared hyperparameters for diffusion step-distillation methods. |
|
Exponential moving average (EMA) hyperparameters for the student network. |
|
Timestep sampling distribution for diffusion training. |
- class DMDConfig#
Bases:
DistillationConfigHyperparameters for DMD / DMD2 distribution-matching distillation.
Default values are tuned for Wan 2.2 5B; callers fine-tune them per model. See
FastGen/fastgen/configs/experiments/WanT2V/config_dmd2_wan22_5b.py.- backward_simulation: bool#
- fake_score_pred_type: PredType | None#
- classmethod from_yaml(config_file)#
Construct a
DMDConfigfrom a YAML file.Thin wrapper around
modelopt.torch.fastgen.loader.load_dmd_config(). The resolver searches the built-inmodelopt_recipes/package first, then the filesystem. Suffixes (.yml/.yaml) may be omitted.- Parameters:
config_file (str | Path)
- Return type:
- gan_loss_weight_gen: float#
- gan_r1_reg_alpha: float#
- gan_r1_reg_weight: float#
- gan_use_same_t_noise: bool#
- model_config = {'extra': 'forbid', 'validate_assignment': True}#
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- student_update_freq: int#
- class DistillationConfig#
Bases:
ModeloptBaseConfigShared hyperparameters for diffusion step-distillation methods.
Concrete methods subclass this config to add method-specific fields (see
DMDConfig).- guidance_scale: float | None#
- model_config = {'extra': 'forbid', 'validate_assignment': True}#
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- num_train_timesteps: int | None#
- pred_type: PredType#
- sample_t_cfg: SampleTimestepConfig#
- student_sample_steps: int#
- student_sample_type: Literal['sde', 'ode']#
- class EMAConfig#
Bases:
ModeloptBaseConfigExponential moving average (EMA) hyperparameters for the student network.
- batch_size: int#
- decay: float#
- dtype: Literal['float32', 'bfloat16', 'float16'] | None#
- fsdp2: bool#
- gamma: float#
- halflife_kimg: float#
- mode: Literal['full_tensor', 'local_shard']#
- model_config = {'extra': 'forbid', 'validate_assignment': True}#
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- rampup_ratio: float | None#
- start_iter: int#
- type: Literal['constant', 'halflife', 'power']#
- class SampleTimestepConfig#
Bases:
ModeloptBaseConfigTimestep sampling distribution for diffusion training.
- max_t: float#
- min_t: float#
- model_config = {'extra': 'forbid', 'validate_assignment': True}#
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- p_mean: float#
- p_std: float#
- shift: float#
- t_list: list[float] | None#
- time_dist_type: TimeDistType#