The pre-warmed torch.compile cache (diffusion_compile_cache.py: fingerprinted bundles over torch.compiler.save/load_cache_artifacts plus a persistent per-key TORCHINDUCTOR_CACHE_DIR) was wired into the image backend only, so every video load re-paid the full first-generation compile after every process restart (the stock inductor dir lives in /tmp). video.py now mirrors the image backend exactly: compile_cache.begin runs after the attention-backend set (the fingerprint keys on the engaged kernel) and before apply_speed_optims on a compile-eligible default/max tier, keyed on the same fullgraph decision as the compile itself (an engaged or still-toggleable step cache and a planned offload both drop it); the context is committed to _VideoLoadState and compile_cache.save persists the bundle after the first successful generation (env-gated distributor / first-run-warm mode); _teardown_state restores the inductor dir, and a token-scoped _rollback_precommit_compile_cache covers loads that die before the state commit, mirroring the globals and CFG-parallel rollbacks. Measured on HunyuanVideo-1.5-480p through the real VideoBackend (B200, 480x288/17f/30 steps): the first-generation extra drops from 107.5 s cold to 13.8 s when the 12.8 MB bundle loads into a fresh inductor dir (0.10 s load) and to 11.7 s from the persistent per-key dir alone; through the wired production path a restart lands at 10.5-10.8 s (bundle-only included) vs 86.5 s cold. Steady state is unchanged (2.4-2.6 s), and the loaded artifacts are the same bits a local compile would produce, so numerics are untouched. Tests: begin/save/restore lifecycle with the fullgraph keying, the Speed=off and compile-ineligible skips, and the token-scoped pre-commit rollback. |
||
|---|---|---|
| .. | ||
| assets | ||
| auth | ||
| core | ||
| hub | ||
| loggers | ||
| models | ||
| plugins | ||
| requirements | ||
| routes | ||
| state | ||
| storage | ||
| tests | ||
| utils | ||
| __init__.py | ||
| _platform_compat.py | ||
| cloudflare_tunnel.py | ||
| colab.py | ||
| main.py | ||
| run.py | ||
| startup_banner.py | ||