Skip to main content
miles-diffusion is configured entirely through flags on train_diffusion.py, coming from three places: --custom-config-path <file.yaml> loads YAML keys into the namespace after parsing. A key that collides with an existing argument overrides it (with a logged warning) — the YAML wins over the command line. Reading the prefixes: The prefix does not tell you which argument group a flag lives in — groups follow concern, not name. python3 train_diffusion.py --help is always the ground truth.

Essentials

The one required flag

One value serves three readers: training loads components and scheduler from it, the sglang-d engine serves it, and the model family is matched from its name. Add --diffusion-model-family when the name carries no family hint — which local weights usually do not.

Cluster topology

Batch sizing

To check how these batch-related arguments interact and related to each other — see the batch-knob invariant.

Diffusion sampling

Precision

See Dtype Control.

Algorithm


Complete reference

Cluster

Training backend

Optimizer and schedule

Rollout

Data and batching

Evaluation

Algorithm and loss

Reward

Rollout customization hooks

Every one takes a dotted path.

LoRA

EMA

Checkpointing

Logging

Fault tolerance

Debugging

--debug-skip-optimizer-step + --diffusion-debug-mode is the standard train/rollout alignment probe: frozen weights, and the metrics report exactly how far the two forwards drift.

CI

--ci-test, --ci-metric-checker-key, --ci-metric-checker-threshold. Used by tests/e2e; not meant for manual runs.

SDE step backends

--diffusion-sde-type picks the train-side backend automatically: --sde-step-backend-path overrides the mapping with your own SdeStepBackend subclass.