|
Download 1.3B/docs/assets.md from Elastic-forcing/Elastic-forcing-code: direct link, hf CLI and curl.
- Browser
- Download file 6.39 kB
-
https://huggingface.co/Elastic-forcing/Elastic-forcing-code/resolve/main/1.3B/docs/assets.md
- Command line
-
hf download hf://Elastic-forcing/Elastic-forcing-code/1.3B/docs/assets.md
-
curl -L -o assets.md https://huggingface.co/Elastic-forcing/Elastic-forcing-code/resolve/main/1.3B/docs/assets.md
6.39 kB
| # Asset Preparation | |
| The source release includes training and evaluation code, the training configuration, and example prompts. Model weights, training reference data, and generated videos are stored separately. | |
| ## Required assets | |
| | Use | Assets | | |
| |---|---| | |
| | Inference | Wan2.1-T2V-1.3B base weights, text encoder, tokenizer, VAE, and a trained Anonymous Video Generation checkpoint | | |
| | Training | Inference base assets, the Self-Forcing ODE initialization, three frozen feature encoders, reference features, and NystrΓΆm summaries | | |
| The trained Anonymous Video Generation checkpoint and reference collection are not distributed in this repository. Encoder weights alone are insufficient to reproduce training with the provided configuration. | |
| ## Model families (local files required) | |
| - Wan2.1-T2V-1.3B | |
| - Self-Forcing initialization | |
| - [DINOv3](https://github.com/facebookresearch/dinov3) | |
| - V-JEPA 2 ViT-L | |
| - VideoMAEv2-Large | |
| For the supplied configuration, DINOv3 uses ViT-L/16 features from its final layer; V-JEPA 2 and VideoMAEv2 use layer 15. VideoMAEv2 is pinned to revision `9981a9c8f77118c421e5228e1b219468a4b0238d`, and the DINOv3 source is pinned to commit `6876159a11b4df116f30f667f8c9888617df0751`. | |
| ## Directory layout | |
| Place assets under a common root. The following filenames are retained for compatibility with the supplied configuration: | |
| ```text | |
| ASSET_ROOT/ | |
| βββ checkpoints/ode_init.pt | |
| βββ models/ | |
| β βββ Wan2.1-T2V-1.3B/ | |
| β βββ dinov3-src/ | |
| β βββ dinov3_vitl16_lvd1689m.pth | |
| β βββ dinov3_vitl16_lvd1689m.pth.provenance.json | |
| β βββ vjepa2-vitl-fpc64-256/ | |
| β βββ VideoMAEv2-Large/ | |
| βββ teacher_banks/triple_video_new8682_824/ | |
| β βββ manifest.json | |
| β βββ ... # All feature shards referenced by the manifest | |
| βββ experiments/triple_video_new8682_824/ | |
| βββ source/new8682_824_matched.jsonl | |
| βββ references/ | |
| βββ dinov3_vitl16_f20mean5_k1024_m256_matched5k.pt | |
| βββ vjepa2_l15_last64_k1024_m1024_matched5k.pt | |
| βββ videomae_v2_l15_fixed5x16_k256_m256_matched5k.pt | |
| ``` | |
| The reference collection contains 8,682 videos stored in 272 feature shards. The `matched5k` suffix is a legacy filename; the manifest determines the actual collection size. | |
| Keep the feature shards, manifests, and summaries together without changing their contents or sample ordering. Preserve the DINOv3 provenance file and the VideoMAEv2 `download_manifest.json` alongside their weights. | |
| ## Configure asset paths | |
| From the `1.3B/` directory: | |
| ```bash | |
| export ASSET_ROOT=/path/to/video-generation-assets | |
| python scripts/prepare_config.py --asset-root "$ASSET_ROOT" | |
| ``` | |
| The setup script generates a local configuration with relocated asset paths. Generated configurations are excluded from version control. Asset and source-hash preflight checks are not run by the launchers. | |
| ## Reference feature preparation | |
| Preprocessing is performed once, before generator training. It requires the raw captioned reference videos, the frozen encoders, and a CUDA device. Training subsequently reads the saved features instead of decoding those reference videos again. | |
| 1. **Prepare the prompt/video manifest.** Each entry binds a caption to an MP4 basename in a fixed sample order. The loader in [`matched_video_manifest.py`](../code/utils/matched_video_manifest.py) expects a JSONL manifest and its `.meta.json` sidecar, including the source-data identity. A plain prompt text file is not a training manifest. | |
| 2. **Extract all three representations.** [`extract_triple_matched_teacher_bank.py`](../code/tools/extract_triple_matched_teacher_bank.py) reads the manifest and raw videos and writes feature shards plus a `manifest.json`. Supply the source manifest, video root, encoder paths, and model identities. For the released collection, set `--expected-count 8682` and `--shard-rows 32`; the default sample count in this lower-level tool is different. | |
| 3. **Build the fixed summaries.** [`build_triple_nystrom_references.py`](../code/tools/build_triple_nystrom_references.py) reads the extracted feature bank and writes one NystrΓΆm reference per encoder. Supply the bank and model identities and set `--expected-sample-count 8682`. Keep the reference files together with the feature bank from which they were built. | |
| Run the preprocessing tools from the `1.3B/` directory with `PYTHONPATH="$PWD/code"`. Their `--help` output lists the required manifests, encoder identities, and output paths. | |
| The feature protocol used by the training configuration is: | |
| | Encoder | Video sampling | Representation | NystrΓΆm landmarks | | |
| |---|---|---|---:| | |
| | DINOv3 ViT-L/16 | 20 frames across the 81-frame video, pooled in groups of 5 | Final-layer features, 1,024 tokens per video | 256 | | |
| | V-JEPA 2 ViT-L | Last 64 contiguous frames | Layer 15, 1,024 tokens per video | 1,024 | | |
| | VideoMAEv2-Large | Skip the first frame, then use five 16-frame clips | Layer 15, 256 tokens per clip | 256 | | |
| Encoder revisions, feature sampling, source ordering, and preprocessing metadata must agree between the reference assets and training configuration. Re-extraction can change serialized hashes; it should not be assumed to recreate the supplied assets byte for byte. | |
| ## Using another reference collection | |
| A new collection requires a new manifest, feature bank, NystrΓΆm summaries, and a training configuration with matching paths and identities. | |
| Update the local configuration for a new experiment. Changing the reference collection should not be expected to reproduce the reported VBench score. | |
| ## Local snapshot preparation | |
| All model loaders require existing local directories. Hosted model repository URLs, repository IDs and automatic downloads are omitted from this source release. The legacy-named `download_videomae_v2_large.py` stages an existing local snapshot using `--source-dir` and an empty `--output-dir`; it does not download files. If the source includes a valid pinned `download_manifest.json`, that manifest is preserved for compatibility with frozen reference banks. A snapshot without a manifest gets a new local manifest; rebuild matching reference assets and update their configuration identities before training. `prepare_config.py` reads model identities from an available local feature bank into private local configuration files. | |