Add files using upload-large-folder tool
Browse files- .gitattributes +4 -31
- README.md +136 -0
- manifest.json +25 -0
- models/dit/manifest.json +46 -0
- models/dit/t2av/t2av_recon/bridges/bridge_config.json +9 -0
- models/dit/t2av/t2av_recon/metadata.json +29 -0
- models/dit/t2av/t2av_recon/resolved_config.json +337 -0
- models/dit/t2av/t2av_recon/resolved_config.yaml +290 -0
- models/dit/t2av/t2av_recon/scheduler/scheduler_config.json +18 -0
- models/dit/t2av/t2av_recon/tokenizer/chat_template.jinja +154 -0
- models/dit/t2av/t2av_recon/tokenizer/tokenizer_config.json +31 -0
- models/dit/t2av/t2av_recon/transformer_audio/config.json +32 -0
- models/dit/t2av/t2av_recon/transformer_video/config.json +32 -0
- models/dit/t2av/t2av_recon_avclip/resolved_config.json +337 -0
- models/dit/t2av/t2av_recon_avclip/resolved_config.yaml +290 -0
- models/dit/t2av/t2av_recon_distill/bridges/bridge_config.json +9 -0
- models/dit/t2av/t2av_recon_distill/metadata.json +29 -0
- models/dit/t2av/t2av_recon_distill/resolved_config.json +337 -0
- models/dit/t2av/t2av_recon_distill/resolved_config.yaml +290 -0
- models/dit/t2av/t2av_recon_distill/scheduler/scheduler_config.json +18 -0
- models/dit/t2av/t2av_recon_distill/tokenizer/chat_template.jinja +154 -0
- models/dit/t2av/t2av_recon_distill/tokenizer/tokenizer_config.json +31 -0
- models/dit/t2av/t2av_recon_distill/transformer_audio/config.json +32 -0
- models/dit/t2av/t2av_recon_distill/transformer_video/config.json +32 -0
- models/dit/t2av/t2av_recon_distill_avclip/bridges/bridge_config.json +9 -0
- models/dit/t2av/t2av_recon_distill_avclip/metadata.json +29 -0
- models/dit/t2av/t2av_recon_distill_avclip/resolved_config.json +337 -0
- models/dit/t2av/t2av_recon_distill_avclip/resolved_config.yaml +290 -0
- models/dit/t2av/t2av_recon_distill_avclip/scheduler/scheduler_config.json +18 -0
- models/dit/t2av/t2av_recon_distill_avclip/tokenizer/chat_template.jinja +154 -0
- models/dit/t2av/t2av_recon_distill_avclip/tokenizer/tokenizer_config.json +31 -0
- models/dit/t2av/t2av_recon_distill_avclip/transformer_audio/config.json +32 -0
- models/dit/t2av/t2av_recon_distill_avclip/transformer_video/config.json +32 -0
- models/vae/audio_only/recon/config.yaml +254 -0
- models/vae/audio_only/recon/metadata.json +8 -0
- models/vae/audio_only/recon_avclip_ft_decoder/config.yaml +259 -0
- models/vae/audio_only/recon_avclip_ft_decoder/metadata.json +8 -0
- models/vae/audio_only/recon_distill/config.yaml +259 -0
- models/vae/audio_only/recon_distill/metadata.json +8 -0
- models/vae/audio_only/recon_distill_avclip_ft_decoder/config.yaml +261 -0
- models/vae/audio_only/recon_distill_avclip_ft_decoder/metadata.json +8 -0
- models/vae/audio_video/recon_avclip/config.yaml +364 -0
- models/vae/audio_video/recon_avclip/metadata.json +8 -0
- models/vae/audio_video/recon_distill_avclip/config.yaml +367 -0
- models/vae/audio_video/recon_distill_avclip/metadata.json +8 -0
- models/vae/manifest.json +66 -0
- models/vae/video_only/recon/config.yaml +260 -0
- models/vae/video_only/recon/metadata.json +8 -0
- models/vae/video_only/recon_distill/config.yaml +262 -0
- models/vae/video_only/recon_distill/metadata.json +8 -0
.gitattributes
CHANGED
|
@@ -1,35 +1,8 @@
|
|
| 1 |
-
*.7z filter=lfs diff=lfs merge=lfs -text
|
| 2 |
-
*.arrow filter=lfs diff=lfs merge=lfs -text
|
| 3 |
*.bin filter=lfs diff=lfs merge=lfs -text
|
| 4 |
-
*.bz2 filter=lfs diff=lfs merge=lfs -text
|
| 5 |
-
*.ckpt filter=lfs diff=lfs merge=lfs -text
|
| 6 |
-
*.ftz filter=lfs diff=lfs merge=lfs -text
|
| 7 |
-
*.gz filter=lfs diff=lfs merge=lfs -text
|
| 8 |
-
*.h5 filter=lfs diff=lfs merge=lfs -text
|
| 9 |
-
*.joblib filter=lfs diff=lfs merge=lfs -text
|
| 10 |
-
*.lfs.* filter=lfs diff=lfs merge=lfs -text
|
| 11 |
-
*.mlmodel filter=lfs diff=lfs merge=lfs -text
|
| 12 |
-
*.model filter=lfs diff=lfs merge=lfs -text
|
| 13 |
-
*.msgpack filter=lfs diff=lfs merge=lfs -text
|
| 14 |
-
*.npy filter=lfs diff=lfs merge=lfs -text
|
| 15 |
-
*.npz filter=lfs diff=lfs merge=lfs -text
|
| 16 |
-
*.onnx filter=lfs diff=lfs merge=lfs -text
|
| 17 |
-
*.ot filter=lfs diff=lfs merge=lfs -text
|
| 18 |
-
*.parquet filter=lfs diff=lfs merge=lfs -text
|
| 19 |
-
*.pb filter=lfs diff=lfs merge=lfs -text
|
| 20 |
-
*.pickle filter=lfs diff=lfs merge=lfs -text
|
| 21 |
-
*.pkl filter=lfs diff=lfs merge=lfs -text
|
| 22 |
*.pt filter=lfs diff=lfs merge=lfs -text
|
| 23 |
*.pth filter=lfs diff=lfs merge=lfs -text
|
| 24 |
-
*.rar filter=lfs diff=lfs merge=lfs -text
|
| 25 |
*.safetensors filter=lfs diff=lfs merge=lfs -text
|
| 26 |
-
|
| 27 |
-
*.
|
| 28 |
-
*.
|
| 29 |
-
*.
|
| 30 |
-
*.tgz filter=lfs diff=lfs merge=lfs -text
|
| 31 |
-
*.wasm filter=lfs diff=lfs merge=lfs -text
|
| 32 |
-
*.xz filter=lfs diff=lfs merge=lfs -text
|
| 33 |
-
*.zip filter=lfs diff=lfs merge=lfs -text
|
| 34 |
-
*.zst filter=lfs diff=lfs merge=lfs -text
|
| 35 |
-
*tfevents* filter=lfs diff=lfs merge=lfs -text
|
|
|
|
|
|
|
|
|
|
| 1 |
*.bin filter=lfs diff=lfs merge=lfs -text
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 2 |
*.pt filter=lfs diff=lfs merge=lfs -text
|
| 3 |
*.pth filter=lfs diff=lfs merge=lfs -text
|
|
|
|
| 4 |
*.safetensors filter=lfs diff=lfs merge=lfs -text
|
| 5 |
+
*.onnx filter=lfs diff=lfs merge=lfs -text
|
| 6 |
+
*.model filter=lfs diff=lfs merge=lfs -text
|
| 7 |
+
*.flac filter=lfs diff=lfs merge=lfs -text
|
| 8 |
+
*.wav filter=lfs diff=lfs merge=lfs -text
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
README.md
CHANGED
|
@@ -1,3 +1,139 @@
|
|
| 1 |
---
|
| 2 |
license: apache-2.0
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 3 |
---
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
---
|
| 2 |
license: apache-2.0
|
| 3 |
+
library_name: pytorch
|
| 4 |
+
tags:
|
| 5 |
+
- omnivae
|
| 6 |
+
- audio-video
|
| 7 |
+
- vae
|
| 8 |
+
- t2av
|
| 9 |
+
- diffusion
|
| 10 |
+
- synchronization
|
| 11 |
+
- multimodal-generation
|
| 12 |
---
|
| 13 |
+
|
| 14 |
+
# OmniVAE Release Assets
|
| 15 |
+
|
| 16 |
+
This Hugging Face repository contains the release checkpoints, text encoders,
|
| 17 |
+
evaluation data, and metric weights for the
|
| 18 |
+
[OmniVAE GitHub repository](https://github.com/OpenMOSS/OmniVAE).
|
| 19 |
+
|
| 20 |
+
The public generation weights in this release are T2AV-only. VAE weights are
|
| 21 |
+
included because they are required by the T2AV pipeline.
|
| 22 |
+
|
| 23 |
+
The source code is intentionally kept out of this repository. Use this bundle
|
| 24 |
+
with the GitHub code by setting `OMNIVAE_RELEASE_ROOT` to the local download
|
| 25 |
+
path.
|
| 26 |
+
|
| 27 |
+
## Download
|
| 28 |
+
|
| 29 |
+
```bash
|
| 30 |
+
pip install -U huggingface_hub
|
| 31 |
+
huggingface-cli download OpenMOSS-Team/OmniVAE \
|
| 32 |
+
--repo-type model \
|
| 33 |
+
--local-dir /path/to/omnivae_release \
|
| 34 |
+
--local-dir-use-symlinks False
|
| 35 |
+
|
| 36 |
+
git clone https://github.com/OpenMOSS/OmniVAE.git
|
| 37 |
+
cd OmniVAE
|
| 38 |
+
export OMNIVAE_RELEASE_ROOT=/path/to/omnivae_release
|
| 39 |
+
export OPEN_SOURCE_ROOT="${OMNIVAE_RELEASE_ROOT}"
|
| 40 |
+
```
|
| 41 |
+
|
| 42 |
+
Equivalently:
|
| 43 |
+
|
| 44 |
+
```bash
|
| 45 |
+
source scripts/setup_release_root.sh /path/to/omnivae_release
|
| 46 |
+
```
|
| 47 |
+
|
| 48 |
+
## Layout
|
| 49 |
+
|
| 50 |
+
```text
|
| 51 |
+
omnivae_release/
|
| 52 |
+
manifest.json
|
| 53 |
+
models/
|
| 54 |
+
text_encoder/ frozen Qwen3.5 text encoder used by T2AV inference
|
| 55 |
+
vae/ OmniVAE checkpoints
|
| 56 |
+
dit/t2av/ T2AV generation checkpoints
|
| 57 |
+
eval/
|
| 58 |
+
data/t2av/ validation manifests and small reference data
|
| 59 |
+
models/t2av/ metric weights for T2AV evaluation
|
| 60 |
+
```
|
| 61 |
+
|
| 62 |
+
All config and metadata paths are relative to the repository root, so the code
|
| 63 |
+
can load this directory from any local path.
|
| 64 |
+
|
| 65 |
+
## Text Encoders
|
| 66 |
+
|
| 67 |
+
The release includes the frozen Qwen3.5 text encoder directory used by the
|
| 68 |
+
validated T2AV configs:
|
| 69 |
+
|
| 70 |
+
- `models/text_encoder/Qwen3.5-0.8B-Base`
|
| 71 |
+
|
| 72 |
+
It is a third-party dependency weight, not an additional OmniVAE checkpoint.
|
| 73 |
+
Keeping it preserves the exact inference/evaluation settings used for the
|
| 74 |
+
released results.
|
| 75 |
+
|
| 76 |
+
## Checkpoints
|
| 77 |
+
|
| 78 |
+
### VAE
|
| 79 |
+
|
| 80 |
+
- `models/vae/video_only/recon`
|
| 81 |
+
- `models/vae/video_only/recon_distill`
|
| 82 |
+
- `models/vae/audio_only/recon`
|
| 83 |
+
- `models/vae/audio_only/recon_distill`
|
| 84 |
+
- `models/vae/audio_video/recon_avclip`
|
| 85 |
+
- `models/vae/audio_video/recon_distill_avclip`
|
| 86 |
+
- `models/vae/audio_only/recon_avclip_ft_decoder`
|
| 87 |
+
- `models/vae/audio_only/recon_distill_avclip_ft_decoder`
|
| 88 |
+
|
| 89 |
+
For T2AV AVCLIP experiment families, the audio branch uses the
|
| 90 |
+
`*_ft_decoder` checkpoint by default.
|
| 91 |
+
|
| 92 |
+
### Generation DiT
|
| 93 |
+
|
| 94 |
+
The public bundle contains T2AV generation packages only:
|
| 95 |
+
|
| 96 |
+
```text
|
| 97 |
+
t2av: t2av_recon, t2av_recon_distill, t2av_recon_avclip, t2av_recon_distill_avclip
|
| 98 |
+
```
|
| 99 |
+
|
| 100 |
+
Each package is inference-only and excludes optimizer, scheduler, dataloader,
|
| 101 |
+
random state, and trainer state snapshots.
|
| 102 |
+
|
| 103 |
+
## Evaluation Assets
|
| 104 |
+
|
| 105 |
+
- `eval/data/t2av/versebench_minimal`: VerseBench validation manifest used by
|
| 106 |
+
the release smoke and comparison scripts.
|
| 107 |
+
- `eval/models/t2av`: T2AV metric weights for the bundled `my_eval` pipeline.
|
| 108 |
+
|
| 109 |
+
### rFVD I3D Weight
|
| 110 |
+
|
| 111 |
+
The rFVD I3D TorchScript weight is not included in this Hugging Face bundle.
|
| 112 |
+
When it is not already present in the installed OmniVAE package, the rFVD
|
| 113 |
+
loader attempts to download it from the upstream Dropbox URL automatically.
|
| 114 |
+
For offline or reproducible evaluation, download the weight separately and
|
| 115 |
+
provide its path explicitly:
|
| 116 |
+
|
| 117 |
+
```bash
|
| 118 |
+
export I3D_TORCHSCRIPT_PT=/path/to/i3d_torchscript.pt
|
| 119 |
+
bash vae/scripts/eval/run_video_eval_rfvd_only.sh
|
| 120 |
+
```
|
| 121 |
+
|
| 122 |
+
## Quick Validation
|
| 123 |
+
|
| 124 |
+
```bash
|
| 125 |
+
cd /path/to/OmniVAE
|
| 126 |
+
export OMNIVAE_RELEASE_ROOT=/path/to/omnivae_release
|
| 127 |
+
|
| 128 |
+
# T2AV release validation on VerseBench set3-large.
|
| 129 |
+
bash scripts/release_launchers/run_t2av_release_compare_distributed.sh
|
| 130 |
+
```
|
| 131 |
+
|
| 132 |
+
See the GitHub repository `README.md` and `docs/` for full installation,
|
| 133 |
+
training, inference, and evaluation commands.
|
| 134 |
+
|
| 135 |
+
## License
|
| 136 |
+
|
| 137 |
+
The OmniVAE release assets are provided under the Apache-2.0 license. Some
|
| 138 |
+
metric packages and third-party components retain their original licenses; see
|
| 139 |
+
the corresponding source-code subdirectories in the GitHub repository.
|
manifest.json
ADDED
|
@@ -0,0 +1,25 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"export_format": "omnivae_t2av_open_source_manifest_v1",
|
| 3 |
+
"exported_at_utc": "2026-06-08T19:02:51+00:00",
|
| 4 |
+
"root": ".",
|
| 5 |
+
"sections": {
|
| 6 |
+
"vae": {
|
| 7 |
+
"path": "models/vae",
|
| 8 |
+
"manifest": "models/vae/manifest.json",
|
| 9 |
+
"description": "VAE checkpoints required by the released T2AV experiments"
|
| 10 |
+
},
|
| 11 |
+
"dit": {
|
| 12 |
+
"path": "models/dit/t2av",
|
| 13 |
+
"manifest": "models/dit/manifest.json",
|
| 14 |
+
"description": "T2AV DiT inference packages only"
|
| 15 |
+
},
|
| 16 |
+
"text_encoder": {
|
| 17 |
+
"path": "models/text_encoder/Qwen3.5-0.8B-Base",
|
| 18 |
+
"description": "Frozen Qwen3.5 text encoder used by the T2AV configs"
|
| 19 |
+
},
|
| 20 |
+
"eval": {
|
| 21 |
+
"path": "eval",
|
| 22 |
+
"description": "T2AV validation manifests and metric weights"
|
| 23 |
+
}
|
| 24 |
+
}
|
| 25 |
+
}
|
models/dit/manifest.json
ADDED
|
@@ -0,0 +1,46 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"export_format": "omnivae_t2av_open_source_dit_manifest_v1",
|
| 3 |
+
"package_format": "omnivae_generation_inference_package_v1",
|
| 4 |
+
"inference_only": true,
|
| 5 |
+
"exported_at_utc": "2026-06-08T19:02:51+00:00",
|
| 6 |
+
"output_root": "models/dit/t2av",
|
| 7 |
+
"num_packages": 4,
|
| 8 |
+
"packages": [
|
| 9 |
+
{
|
| 10 |
+
"task": "t2av",
|
| 11 |
+
"name": "t2av_recon",
|
| 12 |
+
"path": "models/dit/t2av/t2av_recon",
|
| 13 |
+
"relative_path": "models/dit/t2av/t2av_recon",
|
| 14 |
+
"source_experiment": "2_t2av_recon_lr2",
|
| 15 |
+
"release_experiment_family": "recon",
|
| 16 |
+
"metadata": "models/dit/t2av/t2av_recon/metadata.json"
|
| 17 |
+
},
|
| 18 |
+
{
|
| 19 |
+
"task": "t2av",
|
| 20 |
+
"name": "t2av_recon_avclip",
|
| 21 |
+
"path": "models/dit/t2av/t2av_recon_avclip",
|
| 22 |
+
"relative_path": "models/dit/t2av/t2av_recon_avclip",
|
| 23 |
+
"source_experiment": "2_t2av_recon_avclip_lr2",
|
| 24 |
+
"release_experiment_family": "recon_avclip",
|
| 25 |
+
"metadata": "models/dit/t2av/t2av_recon_avclip/metadata.json"
|
| 26 |
+
},
|
| 27 |
+
{
|
| 28 |
+
"task": "t2av",
|
| 29 |
+
"name": "t2av_recon_distill",
|
| 30 |
+
"path": "models/dit/t2av/t2av_recon_distill",
|
| 31 |
+
"relative_path": "models/dit/t2av/t2av_recon_distill",
|
| 32 |
+
"source_experiment": "2_t2av_recon_distill_lr2",
|
| 33 |
+
"release_experiment_family": "recon_distill",
|
| 34 |
+
"metadata": "models/dit/t2av/t2av_recon_distill/metadata.json"
|
| 35 |
+
},
|
| 36 |
+
{
|
| 37 |
+
"task": "t2av",
|
| 38 |
+
"name": "t2av_recon_distill_avclip",
|
| 39 |
+
"path": "models/dit/t2av/t2av_recon_distill_avclip",
|
| 40 |
+
"relative_path": "models/dit/t2av/t2av_recon_distill_avclip",
|
| 41 |
+
"source_experiment": "2_t2av_recon_distill_avclip_lr2",
|
| 42 |
+
"release_experiment_family": "recon_distill_avclip",
|
| 43 |
+
"metadata": "models/dit/t2av/t2av_recon_distill_avclip/metadata.json"
|
| 44 |
+
}
|
| 45 |
+
]
|
| 46 |
+
}
|
models/dit/t2av/t2av_recon/bridges/bridge_config.json
ADDED
|
@@ -0,0 +1,9 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"bridge_interval": 1,
|
| 3 |
+
"use_asymmetric_ati": false,
|
| 4 |
+
"a2v_window_size": 1,
|
| 5 |
+
"n_bridges": 18,
|
| 6 |
+
"dim": 1920,
|
| 7 |
+
"n_heads": 15,
|
| 8 |
+
"head_dim": 128
|
| 9 |
+
}
|
models/dit/t2av/t2av_recon/metadata.json
ADDED
|
@@ -0,0 +1,29 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"export_format": "omnivae_generation_inference_package_v1",
|
| 3 |
+
"inference_only": true,
|
| 4 |
+
"task": "t2av",
|
| 5 |
+
"name": "t2av_recon",
|
| 6 |
+
"source_experiment": "2_t2av_recon_lr2",
|
| 7 |
+
"exported_at_utc": "2026-06-07T21:30:31+00:00",
|
| 8 |
+
"text_encoder_model_name_or_path": "models/text_encoder/Qwen3.5-0.8B-Base",
|
| 9 |
+
"vae_model_name_or_path": "models/vae/video_only/recon",
|
| 10 |
+
"required_subdirs": [
|
| 11 |
+
"transformer_video",
|
| 12 |
+
"transformer_audio",
|
| 13 |
+
"bridges",
|
| 14 |
+
"tokenizer",
|
| 15 |
+
"scheduler"
|
| 16 |
+
],
|
| 17 |
+
"video_vae_model_name_or_path": "models/vae/video_only/recon",
|
| 18 |
+
"audio_vae_model_path": "models/vae/audio_only/recon",
|
| 19 |
+
"joint_av": true,
|
| 20 |
+
"release_vae_paths_rewritten": true,
|
| 21 |
+
"release_experiment_family": "recon",
|
| 22 |
+
"release_path_note": "VAE paths are relative to OMNIVAE_RELEASE_ROOT/models/vae. AVCLIP audio branches use ft_decoder checkpoints.",
|
| 23 |
+
"source_step": 200000,
|
| 24 |
+
"release_checkpoint_step": 200000,
|
| 25 |
+
"release_laion_checkpoint_name": "checkpoint-00200000",
|
| 26 |
+
"source_experiment_original_name": "2_t2av_recon_lr2",
|
| 27 |
+
"source_checkpoint_provenance": "internal training checkpoint path omitted; use release_checkpoint_step and this package directory.",
|
| 28 |
+
"release_package_path": "models/dit/t2av/t2av_recon"
|
| 29 |
+
}
|
models/dit/t2av/t2av_recon/resolved_config.json
ADDED
|
@@ -0,0 +1,337 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"experiment": {
|
| 3 |
+
"name": "t2av_recon",
|
| 4 |
+
"output_dir": "models/dit/t2av/t2av_recon"
|
| 5 |
+
},
|
| 6 |
+
"dataset": {
|
| 7 |
+
"type": "av_paired_jsonl",
|
| 8 |
+
"root": "omitted_public_release_path",
|
| 9 |
+
"meta_path": null,
|
| 10 |
+
"jsonl_index_path": null,
|
| 11 |
+
"jsonl_path_field": "video_path",
|
| 12 |
+
"jsonl_prompt_field": "prompt_v2",
|
| 13 |
+
"jsonl_prompt_index_path": null,
|
| 14 |
+
"slave_path": "",
|
| 15 |
+
"base_image_path": "",
|
| 16 |
+
"split": "train",
|
| 17 |
+
"image_size": 256,
|
| 18 |
+
"frame_size": [
|
| 19 |
+
256,
|
| 20 |
+
256
|
| 21 |
+
],
|
| 22 |
+
"num_frames": 121,
|
| 23 |
+
"target_fps": 24.0,
|
| 24 |
+
"decode_backend": "torchcodec",
|
| 25 |
+
"return_uint8": true,
|
| 26 |
+
"center_crop": true,
|
| 27 |
+
"random_flip": false,
|
| 28 |
+
"num_workers": 6,
|
| 29 |
+
"prefetch_factor": 2,
|
| 30 |
+
"pin_memory": true,
|
| 31 |
+
"drop_last": true,
|
| 32 |
+
"max_samples": null,
|
| 33 |
+
"cache_dir": ".cache/omnivae",
|
| 34 |
+
"repeat": 1,
|
| 35 |
+
"recaption_prob": 0.0,
|
| 36 |
+
"captions_file": null,
|
| 37 |
+
"prompt_templates": [
|
| 38 |
+
"a high-quality photo of {label}"
|
| 39 |
+
],
|
| 40 |
+
"use_full_label": false,
|
| 41 |
+
"metadata_paths": [],
|
| 42 |
+
"dataset_base_path": "/",
|
| 43 |
+
"sample_rate": 48000,
|
| 44 |
+
"num_audio_samples": 242000,
|
| 45 |
+
"max_num_audio_samples": 1440000,
|
| 46 |
+
"mono": true,
|
| 47 |
+
"append_duration_suffix": false,
|
| 48 |
+
"duration_precision": 1,
|
| 49 |
+
"path_field": "video_path",
|
| 50 |
+
"prompt_field": "av_caption",
|
| 51 |
+
"sources": [
|
| 52 |
+
{
|
| 53 |
+
"name": "nonspeech_1000w_g2",
|
| 54 |
+
"path": "data/train/nonspeech_1000w_group2_9376485.jsonl",
|
| 55 |
+
"weight": 0.5
|
| 56 |
+
},
|
| 57 |
+
{
|
| 58 |
+
"name": "speech_1000w_g2",
|
| 59 |
+
"path": "data/train/youtube_speech_10042814.jsonl",
|
| 60 |
+
"weight": 0.35
|
| 61 |
+
},
|
| 62 |
+
{
|
| 63 |
+
"name": "documentary",
|
| 64 |
+
"path": "data/train/documentary_2627844.jsonl",
|
| 65 |
+
"weight": 0.12
|
| 66 |
+
},
|
| 67 |
+
{
|
| 68 |
+
"name": "movies",
|
| 69 |
+
"path": "data/train/movies_8964574.jsonl",
|
| 70 |
+
"weight": 0.05
|
| 71 |
+
},
|
| 72 |
+
{
|
| 73 |
+
"name": "chinese_drama",
|
| 74 |
+
"path": "data/train/chinese_drama_3264550.jsonl",
|
| 75 |
+
"weight": 0.03
|
| 76 |
+
}
|
| 77 |
+
],
|
| 78 |
+
"task_prefix_enabled": true,
|
| 79 |
+
"min_clip_duration_ratio": 0.99
|
| 80 |
+
},
|
| 81 |
+
"text_encoder": {
|
| 82 |
+
"model_name_or_path": "models/text_encoder/Qwen3.5-0.8B-Base",
|
| 83 |
+
"trust_remote_code": false,
|
| 84 |
+
"torch_dtype": "bfloat16",
|
| 85 |
+
"attn_implementation": "sdpa",
|
| 86 |
+
"disable_qwen3_5_fast_path": true,
|
| 87 |
+
"cache_enabled": false,
|
| 88 |
+
"compile_model": true,
|
| 89 |
+
"max_sequence_length": 512,
|
| 90 |
+
"local_files_only": true
|
| 91 |
+
},
|
| 92 |
+
"scheduler": {
|
| 93 |
+
"model_name_or_path": "models/dit/t2av/t2av_recon",
|
| 94 |
+
"subfolder": "scheduler",
|
| 95 |
+
"local_files_only": true,
|
| 96 |
+
"use_dynamic_shifting": false
|
| 97 |
+
},
|
| 98 |
+
"transformer": {
|
| 99 |
+
"arch": "zimage",
|
| 100 |
+
"backbone_name_or_path": "Qwen/Qwen3-VL-2B-Instruct",
|
| 101 |
+
"backbone_torch_dtype": "bfloat16",
|
| 102 |
+
"init_from_pretrained_backbone": true,
|
| 103 |
+
"text_config": null,
|
| 104 |
+
"trust_remote_code": false,
|
| 105 |
+
"local_files_only": false,
|
| 106 |
+
"attn_implementation": "flex_attention",
|
| 107 |
+
"max_sequence_length": 512,
|
| 108 |
+
"all_patch_size": [
|
| 109 |
+
1
|
| 110 |
+
],
|
| 111 |
+
"all_f_patch_size": [
|
| 112 |
+
1
|
| 113 |
+
],
|
| 114 |
+
"in_channels": 16,
|
| 115 |
+
"dim": 2048,
|
| 116 |
+
"n_layers": 18,
|
| 117 |
+
"n_refiner_layers": 2,
|
| 118 |
+
"n_heads": 16,
|
| 119 |
+
"n_kv_heads": 16,
|
| 120 |
+
"norm_eps": 1e-05,
|
| 121 |
+
"qk_norm": true,
|
| 122 |
+
"rope_theta": 256.0,
|
| 123 |
+
"t_scale": 1000.0,
|
| 124 |
+
"use_timestep": true,
|
| 125 |
+
"predict_target": "v",
|
| 126 |
+
"axes_dims": [
|
| 127 |
+
16,
|
| 128 |
+
56,
|
| 129 |
+
56
|
| 130 |
+
],
|
| 131 |
+
"axes_lens": [
|
| 132 |
+
1024,
|
| 133 |
+
512,
|
| 134 |
+
512
|
| 135 |
+
],
|
| 136 |
+
"compile_model": true,
|
| 137 |
+
"attention_backend": null,
|
| 138 |
+
"bridge_interval": 1,
|
| 139 |
+
"bridge_enabled": true,
|
| 140 |
+
"use_asymmetric_ati": false,
|
| 141 |
+
"a2v_window_size": 1,
|
| 142 |
+
"compile_bridges": true,
|
| 143 |
+
"compile_mode": "default",
|
| 144 |
+
"compile_fullgraph": false,
|
| 145 |
+
"compile_dynamic": null
|
| 146 |
+
},
|
| 147 |
+
"validation": {
|
| 148 |
+
"modes": [
|
| 149 |
+
"audio_only",
|
| 150 |
+
"video_only",
|
| 151 |
+
"joint_av"
|
| 152 |
+
],
|
| 153 |
+
"joint_av_prompts": {
|
| 154 |
+
"name": "versebench",
|
| 155 |
+
"jsonl_path": "eval/data/t2av/versebench_minimal/versebench_t2av_infer_minimal.jsonl",
|
| 156 |
+
"text_field": "av_caption",
|
| 157 |
+
"type_field": "type",
|
| 158 |
+
"index_field": "index",
|
| 159 |
+
"task_kind": "t2av",
|
| 160 |
+
"append_duration_suffix": false,
|
| 161 |
+
"max_examples": null
|
| 162 |
+
},
|
| 163 |
+
"video_only_prompts": {
|
| 164 |
+
"name": "t2v_inline",
|
| 165 |
+
"max_examples": null,
|
| 166 |
+
"prompts": [
|
| 167 |
+
"A cinematic documentary shot of a three-dimensional topographical map, clouds drifting over islands, somber historical lighting.",
|
| 168 |
+
"A tense cinematic scene inside a dimly lit historical palace hall, guards rushing through a wooden corridor, dramatic torchlight.",
|
| 169 |
+
"A close-up cinematic drama shot of a young woman lit by cool blue light, anxious expression, soft early 2000s television style.",
|
| 170 |
+
"A cinematic wide shot of ocean waves rolling onto a sandy beach at sunset, realistic lighting, gentle camera movement.",
|
| 171 |
+
"A young woman laughing while chatting with a friend at a sunny outdoor cafe.",
|
| 172 |
+
"An old man telling a story to a group of children sitting around him in a park.",
|
| 173 |
+
"A street musician playing guitar and singing on a busy city sidewalk.",
|
| 174 |
+
"A golden retriever running across a grassy field on a bright afternoon.",
|
| 175 |
+
"Cherry blossoms gently falling along a quiet path in spring.",
|
| 176 |
+
"A bowl of steaming noodles on a wooden table in a cozy small restaurant."
|
| 177 |
+
]
|
| 178 |
+
},
|
| 179 |
+
"audio_only_prompt_sets": [
|
| 180 |
+
{
|
| 181 |
+
"name": "basetts_valid",
|
| 182 |
+
"task_kind": "tts",
|
| 183 |
+
"jsonl_path": "examples/eval/t2a_tts_basetts_sample.jsonl",
|
| 184 |
+
"text_field": "text",
|
| 185 |
+
"type_field": "type",
|
| 186 |
+
"index_field": "index",
|
| 187 |
+
"append_duration_suffix": true,
|
| 188 |
+
"duration_precision": 1,
|
| 189 |
+
"max_examples": 8
|
| 190 |
+
},
|
| 191 |
+
{
|
| 192 |
+
"name": "tta_general_en",
|
| 193 |
+
"task_kind": "tta",
|
| 194 |
+
"jsonl_path": "examples/eval/t2a_tta_general_en.jsonl",
|
| 195 |
+
"text_field": "text",
|
| 196 |
+
"type_field": "type",
|
| 197 |
+
"index_field": "index",
|
| 198 |
+
"append_duration_suffix": true,
|
| 199 |
+
"duration_precision": 1,
|
| 200 |
+
"max_examples": null
|
| 201 |
+
}
|
| 202 |
+
],
|
| 203 |
+
"num_inference_steps": 50,
|
| 204 |
+
"video_guidance_scale": 4.0,
|
| 205 |
+
"audio_guidance_scale": 4.0,
|
| 206 |
+
"cfg_normalization": false,
|
| 207 |
+
"max_wandb_samples_per_source": 10,
|
| 208 |
+
"cfg_modes": [
|
| 209 |
+
"simple",
|
| 210 |
+
"dual"
|
| 211 |
+
],
|
| 212 |
+
"video_text_guidance": 4.0,
|
| 213 |
+
"video_modality_guidance": 4.0,
|
| 214 |
+
"audio_text_guidance": 4.0,
|
| 215 |
+
"audio_modality_guidance": 4.0,
|
| 216 |
+
"video_frame_size": [
|
| 217 |
+
256,
|
| 218 |
+
256
|
| 219 |
+
],
|
| 220 |
+
"video_num_frames": 121,
|
| 221 |
+
"video_fps": 24.0,
|
| 222 |
+
"audio_duration_seconds": 5.0417
|
| 223 |
+
},
|
| 224 |
+
"vae": {
|
| 225 |
+
"type": "univae",
|
| 226 |
+
"model_name_or_path": "models/vae/video_only/recon",
|
| 227 |
+
"torch_dtype": "bfloat16",
|
| 228 |
+
"local_files_only": true,
|
| 229 |
+
"wan_chunk_mode": "parallel",
|
| 230 |
+
"compile_encode": true,
|
| 231 |
+
"compile_encode_mode": "reduce-overhead",
|
| 232 |
+
"compile_encode_fullgraph": false,
|
| 233 |
+
"branch": "video",
|
| 234 |
+
"use_ema": false
|
| 235 |
+
},
|
| 236 |
+
"audio_vae": {
|
| 237 |
+
"type": "univae",
|
| 238 |
+
"model_path": "models/vae/audio_only/recon",
|
| 239 |
+
"hop_length": 960,
|
| 240 |
+
"latent_channels": 128,
|
| 241 |
+
"torch_dtype": "float32",
|
| 242 |
+
"compile_encode": true,
|
| 243 |
+
"compile_encode_fullgraph": false,
|
| 244 |
+
"compile_encode_mode": "reduce-overhead",
|
| 245 |
+
"branch": "audio",
|
| 246 |
+
"use_ema": false
|
| 247 |
+
},
|
| 248 |
+
"transformer_video": {
|
| 249 |
+
"arch": "zimage",
|
| 250 |
+
"all_patch_size": [
|
| 251 |
+
1
|
| 252 |
+
],
|
| 253 |
+
"all_f_patch_size": [
|
| 254 |
+
1
|
| 255 |
+
],
|
| 256 |
+
"in_channels": 48,
|
| 257 |
+
"dim": 1920,
|
| 258 |
+
"n_layers": 18,
|
| 259 |
+
"n_refiner_layers": 2,
|
| 260 |
+
"n_heads": 15,
|
| 261 |
+
"n_kv_heads": 15,
|
| 262 |
+
"norm_eps": 1e-05,
|
| 263 |
+
"qk_norm": true,
|
| 264 |
+
"rope_theta": 256.0,
|
| 265 |
+
"t_scale": 1000.0,
|
| 266 |
+
"use_timestep": true,
|
| 267 |
+
"predict_target": "v",
|
| 268 |
+
"axes_dims": [
|
| 269 |
+
16,
|
| 270 |
+
56,
|
| 271 |
+
56
|
| 272 |
+
],
|
| 273 |
+
"axes_lens": [
|
| 274 |
+
1024,
|
| 275 |
+
512,
|
| 276 |
+
512
|
| 277 |
+
],
|
| 278 |
+
"compile_model": true,
|
| 279 |
+
"attention_backend": null
|
| 280 |
+
},
|
| 281 |
+
"transformer_audio": {
|
| 282 |
+
"arch": "zimage",
|
| 283 |
+
"all_patch_size": [
|
| 284 |
+
1
|
| 285 |
+
],
|
| 286 |
+
"all_f_patch_size": [
|
| 287 |
+
1
|
| 288 |
+
],
|
| 289 |
+
"in_channels": 128,
|
| 290 |
+
"dim": 1920,
|
| 291 |
+
"n_layers": 18,
|
| 292 |
+
"n_refiner_layers": 2,
|
| 293 |
+
"n_heads": 15,
|
| 294 |
+
"n_kv_heads": 15,
|
| 295 |
+
"norm_eps": 1e-05,
|
| 296 |
+
"qk_norm": true,
|
| 297 |
+
"rope_theta": 256.0,
|
| 298 |
+
"t_scale": 1000.0,
|
| 299 |
+
"use_timestep": true,
|
| 300 |
+
"predict_target": "v",
|
| 301 |
+
"axes_dims": [
|
| 302 |
+
16,
|
| 303 |
+
56,
|
| 304 |
+
56
|
| 305 |
+
],
|
| 306 |
+
"axes_lens": [
|
| 307 |
+
2048,
|
| 308 |
+
16,
|
| 309 |
+
16
|
| 310 |
+
],
|
| 311 |
+
"compile_model": true,
|
| 312 |
+
"attention_backend": null
|
| 313 |
+
},
|
| 314 |
+
"train": {
|
| 315 |
+
"seed": 42,
|
| 316 |
+
"validation_steps": 5000,
|
| 317 |
+
"validation_prompts": [
|
| 318 |
+
"a high-quality photo of a goldfish",
|
| 319 |
+
"a high-quality photo of a tiger shark",
|
| 320 |
+
"a high-quality photo of an ostrich",
|
| 321 |
+
"a high-quality photo of a tabby cat"
|
| 322 |
+
],
|
| 323 |
+
"validation_num_inference_steps": 20,
|
| 324 |
+
"validation_guidance_scale": 4.0,
|
| 325 |
+
"validation_cfg_normalization": false,
|
| 326 |
+
"validation_cfg_truncation": 1.0,
|
| 327 |
+
"validation_num_frames": null,
|
| 328 |
+
"validation_frame_size": null,
|
| 329 |
+
"validation_fps": null,
|
| 330 |
+
"validation_negative_prompts": null,
|
| 331 |
+
"shift_v": 5.0,
|
| 332 |
+
"shift_a": 3.0,
|
| 333 |
+
"validation_force_steps": [
|
| 334 |
+
0
|
| 335 |
+
]
|
| 336 |
+
}
|
| 337 |
+
}
|
models/dit/t2av/t2av_recon/resolved_config.yaml
ADDED
|
@@ -0,0 +1,290 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
experiment:
|
| 2 |
+
name: t2av_recon
|
| 3 |
+
output_dir: models/dit/t2av/t2av_recon
|
| 4 |
+
dataset:
|
| 5 |
+
type: av_paired_jsonl
|
| 6 |
+
root: omitted_public_release_path
|
| 7 |
+
meta_path: null
|
| 8 |
+
jsonl_index_path: null
|
| 9 |
+
jsonl_path_field: video_path
|
| 10 |
+
jsonl_prompt_field: prompt_v2
|
| 11 |
+
jsonl_prompt_index_path: null
|
| 12 |
+
slave_path: ''
|
| 13 |
+
base_image_path: ''
|
| 14 |
+
split: train
|
| 15 |
+
image_size: 256
|
| 16 |
+
frame_size:
|
| 17 |
+
- 256
|
| 18 |
+
- 256
|
| 19 |
+
num_frames: 121
|
| 20 |
+
target_fps: 24.0
|
| 21 |
+
decode_backend: torchcodec
|
| 22 |
+
return_uint8: true
|
| 23 |
+
center_crop: true
|
| 24 |
+
random_flip: false
|
| 25 |
+
num_workers: 6
|
| 26 |
+
prefetch_factor: 2
|
| 27 |
+
pin_memory: true
|
| 28 |
+
drop_last: true
|
| 29 |
+
max_samples: null
|
| 30 |
+
cache_dir: .cache/omnivae
|
| 31 |
+
repeat: 1
|
| 32 |
+
recaption_prob: 0.0
|
| 33 |
+
captions_file: null
|
| 34 |
+
prompt_templates:
|
| 35 |
+
- a high-quality photo of {label}
|
| 36 |
+
use_full_label: false
|
| 37 |
+
metadata_paths: []
|
| 38 |
+
dataset_base_path: /
|
| 39 |
+
sample_rate: 48000
|
| 40 |
+
num_audio_samples: 242000
|
| 41 |
+
max_num_audio_samples: 1440000
|
| 42 |
+
mono: true
|
| 43 |
+
append_duration_suffix: false
|
| 44 |
+
duration_precision: 1
|
| 45 |
+
path_field: video_path
|
| 46 |
+
prompt_field: av_caption
|
| 47 |
+
sources:
|
| 48 |
+
- name: nonspeech_1000w_g2
|
| 49 |
+
path: data/train/nonspeech_1000w_group2_9376485.jsonl
|
| 50 |
+
weight: 0.5
|
| 51 |
+
- name: speech_1000w_g2
|
| 52 |
+
path: data/train/youtube_speech_10042814.jsonl
|
| 53 |
+
weight: 0.35
|
| 54 |
+
- name: documentary
|
| 55 |
+
path: data/train/documentary_2627844.jsonl
|
| 56 |
+
weight: 0.12
|
| 57 |
+
- name: movies
|
| 58 |
+
path: data/train/movies_8964574.jsonl
|
| 59 |
+
weight: 0.05
|
| 60 |
+
- name: chinese_drama
|
| 61 |
+
path: data/train/chinese_drama_3264550.jsonl
|
| 62 |
+
weight: 0.03
|
| 63 |
+
task_prefix_enabled: true
|
| 64 |
+
min_clip_duration_ratio: 0.99
|
| 65 |
+
text_encoder:
|
| 66 |
+
model_name_or_path: models/text_encoder/Qwen3.5-0.8B-Base
|
| 67 |
+
trust_remote_code: false
|
| 68 |
+
torch_dtype: bfloat16
|
| 69 |
+
attn_implementation: sdpa
|
| 70 |
+
disable_qwen3_5_fast_path: true
|
| 71 |
+
cache_enabled: false
|
| 72 |
+
compile_model: true
|
| 73 |
+
max_sequence_length: 512
|
| 74 |
+
local_files_only: true
|
| 75 |
+
scheduler:
|
| 76 |
+
model_name_or_path: models/dit/t2av/t2av_recon
|
| 77 |
+
subfolder: scheduler
|
| 78 |
+
local_files_only: true
|
| 79 |
+
use_dynamic_shifting: false
|
| 80 |
+
transformer:
|
| 81 |
+
arch: zimage
|
| 82 |
+
backbone_name_or_path: Qwen/Qwen3-VL-2B-Instruct
|
| 83 |
+
backbone_torch_dtype: bfloat16
|
| 84 |
+
init_from_pretrained_backbone: true
|
| 85 |
+
text_config: null
|
| 86 |
+
trust_remote_code: false
|
| 87 |
+
local_files_only: false
|
| 88 |
+
attn_implementation: flex_attention
|
| 89 |
+
max_sequence_length: 512
|
| 90 |
+
all_patch_size:
|
| 91 |
+
- 1
|
| 92 |
+
all_f_patch_size:
|
| 93 |
+
- 1
|
| 94 |
+
in_channels: 16
|
| 95 |
+
dim: 2048
|
| 96 |
+
n_layers: 18
|
| 97 |
+
n_refiner_layers: 2
|
| 98 |
+
n_heads: 16
|
| 99 |
+
n_kv_heads: 16
|
| 100 |
+
norm_eps: 1.0e-05
|
| 101 |
+
qk_norm: true
|
| 102 |
+
rope_theta: 256.0
|
| 103 |
+
t_scale: 1000.0
|
| 104 |
+
use_timestep: true
|
| 105 |
+
predict_target: v
|
| 106 |
+
axes_dims:
|
| 107 |
+
- 16
|
| 108 |
+
- 56
|
| 109 |
+
- 56
|
| 110 |
+
axes_lens:
|
| 111 |
+
- 1024
|
| 112 |
+
- 512
|
| 113 |
+
- 512
|
| 114 |
+
compile_model: true
|
| 115 |
+
attention_backend: null
|
| 116 |
+
bridge_interval: 1
|
| 117 |
+
bridge_enabled: true
|
| 118 |
+
use_asymmetric_ati: false
|
| 119 |
+
a2v_window_size: 1
|
| 120 |
+
compile_bridges: true
|
| 121 |
+
compile_mode: default
|
| 122 |
+
compile_fullgraph: false
|
| 123 |
+
compile_dynamic: null
|
| 124 |
+
validation:
|
| 125 |
+
modes:
|
| 126 |
+
- audio_only
|
| 127 |
+
- video_only
|
| 128 |
+
- joint_av
|
| 129 |
+
joint_av_prompts:
|
| 130 |
+
name: versebench
|
| 131 |
+
jsonl_path: eval/data/t2av/versebench_minimal/versebench_t2av_infer_minimal.jsonl
|
| 132 |
+
text_field: av_caption
|
| 133 |
+
type_field: type
|
| 134 |
+
index_field: index
|
| 135 |
+
task_kind: t2av
|
| 136 |
+
append_duration_suffix: false
|
| 137 |
+
max_examples: null
|
| 138 |
+
video_only_prompts:
|
| 139 |
+
name: t2v_inline
|
| 140 |
+
max_examples: null
|
| 141 |
+
prompts:
|
| 142 |
+
- A cinematic documentary shot of a three-dimensional topographical map, clouds
|
| 143 |
+
drifting over islands, somber historical lighting.
|
| 144 |
+
- A tense cinematic scene inside a dimly lit historical palace hall, guards rushing
|
| 145 |
+
through a wooden corridor, dramatic torchlight.
|
| 146 |
+
- A close-up cinematic drama shot of a young woman lit by cool blue light, anxious
|
| 147 |
+
expression, soft early 2000s television style.
|
| 148 |
+
- A cinematic wide shot of ocean waves rolling onto a sandy beach at sunset, realistic
|
| 149 |
+
lighting, gentle camera movement.
|
| 150 |
+
- A young woman laughing while chatting with a friend at a sunny outdoor cafe.
|
| 151 |
+
- An old man telling a story to a group of children sitting around him in a park.
|
| 152 |
+
- A street musician playing guitar and singing on a busy city sidewalk.
|
| 153 |
+
- A golden retriever running across a grassy field on a bright afternoon.
|
| 154 |
+
- Cherry blossoms gently falling along a quiet path in spring.
|
| 155 |
+
- A bowl of steaming noodles on a wooden table in a cozy small restaurant.
|
| 156 |
+
audio_only_prompt_sets:
|
| 157 |
+
- name: basetts_valid
|
| 158 |
+
task_kind: tts
|
| 159 |
+
jsonl_path: examples/eval/t2a_tts_basetts_sample.jsonl
|
| 160 |
+
text_field: text
|
| 161 |
+
type_field: type
|
| 162 |
+
index_field: index
|
| 163 |
+
append_duration_suffix: true
|
| 164 |
+
duration_precision: 1
|
| 165 |
+
max_examples: 8
|
| 166 |
+
- name: tta_general_en
|
| 167 |
+
task_kind: tta
|
| 168 |
+
jsonl_path: examples/eval/t2a_tta_general_en.jsonl
|
| 169 |
+
text_field: text
|
| 170 |
+
type_field: type
|
| 171 |
+
index_field: index
|
| 172 |
+
append_duration_suffix: true
|
| 173 |
+
duration_precision: 1
|
| 174 |
+
max_examples: null
|
| 175 |
+
num_inference_steps: 50
|
| 176 |
+
video_guidance_scale: 4.0
|
| 177 |
+
audio_guidance_scale: 4.0
|
| 178 |
+
cfg_normalization: false
|
| 179 |
+
max_wandb_samples_per_source: 10
|
| 180 |
+
cfg_modes:
|
| 181 |
+
- simple
|
| 182 |
+
- dual
|
| 183 |
+
video_text_guidance: 4.0
|
| 184 |
+
video_modality_guidance: 4.0
|
| 185 |
+
audio_text_guidance: 4.0
|
| 186 |
+
audio_modality_guidance: 4.0
|
| 187 |
+
video_frame_size:
|
| 188 |
+
- 256
|
| 189 |
+
- 256
|
| 190 |
+
video_num_frames: 121
|
| 191 |
+
video_fps: 24.0
|
| 192 |
+
audio_duration_seconds: 5.0417
|
| 193 |
+
vae:
|
| 194 |
+
type: univae
|
| 195 |
+
model_name_or_path: models/vae/video_only/recon
|
| 196 |
+
torch_dtype: bfloat16
|
| 197 |
+
local_files_only: true
|
| 198 |
+
wan_chunk_mode: parallel
|
| 199 |
+
compile_encode: true
|
| 200 |
+
compile_encode_mode: reduce-overhead
|
| 201 |
+
compile_encode_fullgraph: false
|
| 202 |
+
branch: video
|
| 203 |
+
use_ema: false
|
| 204 |
+
audio_vae:
|
| 205 |
+
type: univae
|
| 206 |
+
model_path: models/vae/audio_only/recon
|
| 207 |
+
hop_length: 960
|
| 208 |
+
latent_channels: 128
|
| 209 |
+
torch_dtype: float32
|
| 210 |
+
compile_encode: true
|
| 211 |
+
compile_encode_fullgraph: false
|
| 212 |
+
compile_encode_mode: reduce-overhead
|
| 213 |
+
branch: audio
|
| 214 |
+
use_ema: false
|
| 215 |
+
transformer_video:
|
| 216 |
+
arch: zimage
|
| 217 |
+
all_patch_size:
|
| 218 |
+
- 1
|
| 219 |
+
all_f_patch_size:
|
| 220 |
+
- 1
|
| 221 |
+
in_channels: 48
|
| 222 |
+
dim: 1920
|
| 223 |
+
n_layers: 18
|
| 224 |
+
n_refiner_layers: 2
|
| 225 |
+
n_heads: 15
|
| 226 |
+
n_kv_heads: 15
|
| 227 |
+
norm_eps: 1.0e-05
|
| 228 |
+
qk_norm: true
|
| 229 |
+
rope_theta: 256.0
|
| 230 |
+
t_scale: 1000.0
|
| 231 |
+
use_timestep: true
|
| 232 |
+
predict_target: v
|
| 233 |
+
axes_dims:
|
| 234 |
+
- 16
|
| 235 |
+
- 56
|
| 236 |
+
- 56
|
| 237 |
+
axes_lens:
|
| 238 |
+
- 1024
|
| 239 |
+
- 512
|
| 240 |
+
- 512
|
| 241 |
+
compile_model: true
|
| 242 |
+
attention_backend: null
|
| 243 |
+
transformer_audio:
|
| 244 |
+
arch: zimage
|
| 245 |
+
all_patch_size:
|
| 246 |
+
- 1
|
| 247 |
+
all_f_patch_size:
|
| 248 |
+
- 1
|
| 249 |
+
in_channels: 128
|
| 250 |
+
dim: 1920
|
| 251 |
+
n_layers: 18
|
| 252 |
+
n_refiner_layers: 2
|
| 253 |
+
n_heads: 15
|
| 254 |
+
n_kv_heads: 15
|
| 255 |
+
norm_eps: 1.0e-05
|
| 256 |
+
qk_norm: true
|
| 257 |
+
rope_theta: 256.0
|
| 258 |
+
t_scale: 1000.0
|
| 259 |
+
use_timestep: true
|
| 260 |
+
predict_target: v
|
| 261 |
+
axes_dims:
|
| 262 |
+
- 16
|
| 263 |
+
- 56
|
| 264 |
+
- 56
|
| 265 |
+
axes_lens:
|
| 266 |
+
- 2048
|
| 267 |
+
- 16
|
| 268 |
+
- 16
|
| 269 |
+
compile_model: true
|
| 270 |
+
attention_backend: null
|
| 271 |
+
train:
|
| 272 |
+
seed: 42
|
| 273 |
+
validation_steps: 5000
|
| 274 |
+
validation_prompts:
|
| 275 |
+
- a high-quality photo of a goldfish
|
| 276 |
+
- a high-quality photo of a tiger shark
|
| 277 |
+
- a high-quality photo of an ostrich
|
| 278 |
+
- a high-quality photo of a tabby cat
|
| 279 |
+
validation_num_inference_steps: 20
|
| 280 |
+
validation_guidance_scale: 4.0
|
| 281 |
+
validation_cfg_normalization: false
|
| 282 |
+
validation_cfg_truncation: 1.0
|
| 283 |
+
validation_num_frames: null
|
| 284 |
+
validation_frame_size: null
|
| 285 |
+
validation_fps: null
|
| 286 |
+
validation_negative_prompts: null
|
| 287 |
+
shift_v: 5.0
|
| 288 |
+
shift_a: 3.0
|
| 289 |
+
validation_force_steps:
|
| 290 |
+
- 0
|
models/dit/t2av/t2av_recon/scheduler/scheduler_config.json
ADDED
|
@@ -0,0 +1,18 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"_class_name": "FlowMatchEulerDiscreteScheduler",
|
| 3 |
+
"_diffusers_version": "0.37.1",
|
| 4 |
+
"base_image_seq_len": 256,
|
| 5 |
+
"base_shift": 0.5,
|
| 6 |
+
"invert_sigmas": false,
|
| 7 |
+
"max_image_seq_len": 4096,
|
| 8 |
+
"max_shift": 1.15,
|
| 9 |
+
"num_train_timesteps": 1000,
|
| 10 |
+
"shift": 3.0,
|
| 11 |
+
"shift_terminal": null,
|
| 12 |
+
"stochastic_sampling": false,
|
| 13 |
+
"time_shift_type": "exponential",
|
| 14 |
+
"use_beta_sigmas": false,
|
| 15 |
+
"use_dynamic_shifting": false,
|
| 16 |
+
"use_exponential_sigmas": false,
|
| 17 |
+
"use_karras_sigmas": false
|
| 18 |
+
}
|
models/dit/t2av/t2av_recon/tokenizer/chat_template.jinja
ADDED
|
@@ -0,0 +1,154 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{%- set image_count = namespace(value=0) %}
|
| 2 |
+
{%- set video_count = namespace(value=0) %}
|
| 3 |
+
{%- macro render_content(content, do_vision_count, is_system_content=false) %}
|
| 4 |
+
{%- if content is string %}
|
| 5 |
+
{{- content }}
|
| 6 |
+
{%- elif content is iterable and content is not mapping %}
|
| 7 |
+
{%- for item in content %}
|
| 8 |
+
{%- if 'image' in item or 'image_url' in item or item.type == 'image' %}
|
| 9 |
+
{%- if is_system_content %}
|
| 10 |
+
{{- raise_exception('System message cannot contain images.') }}
|
| 11 |
+
{%- endif %}
|
| 12 |
+
{%- if do_vision_count %}
|
| 13 |
+
{%- set image_count.value = image_count.value + 1 %}
|
| 14 |
+
{%- endif %}
|
| 15 |
+
{%- if add_vision_id %}
|
| 16 |
+
{{- 'Picture ' ~ image_count.value ~ ': ' }}
|
| 17 |
+
{%- endif %}
|
| 18 |
+
{{- '<|vision_start|><|image_pad|><|vision_end|>' }}
|
| 19 |
+
{%- elif 'video' in item or item.type == 'video' %}
|
| 20 |
+
{%- if is_system_content %}
|
| 21 |
+
{{- raise_exception('System message cannot contain videos.') }}
|
| 22 |
+
{%- endif %}
|
| 23 |
+
{%- if do_vision_count %}
|
| 24 |
+
{%- set video_count.value = video_count.value + 1 %}
|
| 25 |
+
{%- endif %}
|
| 26 |
+
{%- if add_vision_id %}
|
| 27 |
+
{{- 'Video ' ~ video_count.value ~ ': ' }}
|
| 28 |
+
{%- endif %}
|
| 29 |
+
{{- '<|vision_start|><|video_pad|><|vision_end|>' }}
|
| 30 |
+
{%- elif 'text' in item %}
|
| 31 |
+
{{- item.text }}
|
| 32 |
+
{%- else %}
|
| 33 |
+
{{- raise_exception('Unexpected item type in content.') }}
|
| 34 |
+
{%- endif %}
|
| 35 |
+
{%- endfor %}
|
| 36 |
+
{%- elif content is none or content is undefined %}
|
| 37 |
+
{{- '' }}
|
| 38 |
+
{%- else %}
|
| 39 |
+
{{- raise_exception('Unexpected content type.') }}
|
| 40 |
+
{%- endif %}
|
| 41 |
+
{%- endmacro %}
|
| 42 |
+
{%- if not messages %}
|
| 43 |
+
{{- raise_exception('No messages provided.') }}
|
| 44 |
+
{%- endif %}
|
| 45 |
+
{%- if tools and tools is iterable and tools is not mapping %}
|
| 46 |
+
{{- '<|im_start|>system\n' }}
|
| 47 |
+
{{- "# Tools\n\nYou have access to the following functions:\n\n<tools>" }}
|
| 48 |
+
{%- for tool in tools %}
|
| 49 |
+
{{- "\n" }}
|
| 50 |
+
{{- tool | tojson }}
|
| 51 |
+
{%- endfor %}
|
| 52 |
+
{{- "\n</tools>" }}
|
| 53 |
+
{{- '\n\nIf you choose to call a function ONLY reply in the following format with NO suffix:\n\n<tool_call>\n<function=example_function_name>\n<parameter=example_parameter_1>\nvalue_1\n</parameter>\n<parameter=example_parameter_2>\nThis is the value for the second parameter\nthat can span\nmultiple lines\n</parameter>\n</function>\n</tool_call>\n\n<IMPORTANT>\nReminder:\n- Function calls MUST follow the specified format: an inner <function=...></function> block must be nested within <tool_call></tool_call> XML tags\n- Required parameters MUST be specified\n- You may provide optional reasoning for your function call in natural language BEFORE the function call, but NOT after\n- If there is no function call available, answer the question like normal with your current knowledge and do not tell the user about function calls\n</IMPORTANT>' }}
|
| 54 |
+
{%- if messages[0].role == 'system' %}
|
| 55 |
+
{%- set content = render_content(messages[0].content, false, true)|trim %}
|
| 56 |
+
{%- if content %}
|
| 57 |
+
{{- '\n\n' + content }}
|
| 58 |
+
{%- endif %}
|
| 59 |
+
{%- endif %}
|
| 60 |
+
{{- '<|im_end|>\n' }}
|
| 61 |
+
{%- else %}
|
| 62 |
+
{%- if messages[0].role == 'system' %}
|
| 63 |
+
{%- set content = render_content(messages[0].content, false, true)|trim %}
|
| 64 |
+
{{- '<|im_start|>system\n' + content + '<|im_end|>\n' }}
|
| 65 |
+
{%- endif %}
|
| 66 |
+
{%- endif %}
|
| 67 |
+
{%- set ns = namespace(multi_step_tool=true, last_query_index=messages|length - 1) %}
|
| 68 |
+
{%- for message in messages[::-1] %}
|
| 69 |
+
{%- set index = (messages|length - 1) - loop.index0 %}
|
| 70 |
+
{%- if ns.multi_step_tool and message.role == "user" %}
|
| 71 |
+
{%- set content = render_content(message.content, false)|trim %}
|
| 72 |
+
{%- if not(content.startswith('<tool_response>') and content.endswith('</tool_response>')) %}
|
| 73 |
+
{%- set ns.multi_step_tool = false %}
|
| 74 |
+
{%- set ns.last_query_index = index %}
|
| 75 |
+
{%- endif %}
|
| 76 |
+
{%- endif %}
|
| 77 |
+
{%- endfor %}
|
| 78 |
+
{%- if ns.multi_step_tool %}
|
| 79 |
+
{{- raise_exception('No user query found in messages.') }}
|
| 80 |
+
{%- endif %}
|
| 81 |
+
{%- for message in messages %}
|
| 82 |
+
{%- set content = render_content(message.content, true)|trim %}
|
| 83 |
+
{%- if message.role == "system" %}
|
| 84 |
+
{%- if not loop.first %}
|
| 85 |
+
{{- raise_exception('System message must be at the beginning.') }}
|
| 86 |
+
{%- endif %}
|
| 87 |
+
{%- elif message.role == "user" %}
|
| 88 |
+
{{- '<|im_start|>' + message.role + '\n' + content + '<|im_end|>' + '\n' }}
|
| 89 |
+
{%- elif message.role == "assistant" %}
|
| 90 |
+
{%- set reasoning_content = '' %}
|
| 91 |
+
{%- if message.reasoning_content is string %}
|
| 92 |
+
{%- set reasoning_content = message.reasoning_content %}
|
| 93 |
+
{%- else %}
|
| 94 |
+
{%- if '</think>' in content %}
|
| 95 |
+
{%- set reasoning_content = content.split('</think>')[0].rstrip('\n').split('<think>')[-1].lstrip('\n') %}
|
| 96 |
+
{%- set content = content.split('</think>')[-1].lstrip('\n') %}
|
| 97 |
+
{%- endif %}
|
| 98 |
+
{%- endif %}
|
| 99 |
+
{%- set reasoning_content = reasoning_content|trim %}
|
| 100 |
+
{%- if loop.index0 > ns.last_query_index %}
|
| 101 |
+
{{- '<|im_start|>' + message.role + '\n<think>\n' + reasoning_content + '\n</think>\n\n' + content }}
|
| 102 |
+
{%- else %}
|
| 103 |
+
{{- '<|im_start|>' + message.role + '\n' + content }}
|
| 104 |
+
{%- endif %}
|
| 105 |
+
{%- if message.tool_calls and message.tool_calls is iterable and message.tool_calls is not mapping %}
|
| 106 |
+
{%- for tool_call in message.tool_calls %}
|
| 107 |
+
{%- if tool_call.function is defined %}
|
| 108 |
+
{%- set tool_call = tool_call.function %}
|
| 109 |
+
{%- endif %}
|
| 110 |
+
{%- if loop.first %}
|
| 111 |
+
{%- if content|trim %}
|
| 112 |
+
{{- '\n\n<tool_call>\n<function=' + tool_call.name + '>\n' }}
|
| 113 |
+
{%- else %}
|
| 114 |
+
{{- '<tool_call>\n<function=' + tool_call.name + '>\n' }}
|
| 115 |
+
{%- endif %}
|
| 116 |
+
{%- else %}
|
| 117 |
+
{{- '\n<tool_call>\n<function=' + tool_call.name + '>\n' }}
|
| 118 |
+
{%- endif %}
|
| 119 |
+
{%- if tool_call.arguments is defined %}
|
| 120 |
+
{%- for args_name, args_value in tool_call.arguments|items %}
|
| 121 |
+
{{- '<parameter=' + args_name + '>\n' }}
|
| 122 |
+
{%- set args_value = args_value | tojson | safe if args_value is mapping or (args_value is sequence and args_value is not string) else args_value | string %}
|
| 123 |
+
{{- args_value }}
|
| 124 |
+
{{- '\n</parameter>\n' }}
|
| 125 |
+
{%- endfor %}
|
| 126 |
+
{%- endif %}
|
| 127 |
+
{{- '</function>\n</tool_call>' }}
|
| 128 |
+
{%- endfor %}
|
| 129 |
+
{%- endif %}
|
| 130 |
+
{{- '<|im_end|>\n' }}
|
| 131 |
+
{%- elif message.role == "tool" %}
|
| 132 |
+
{%- if loop.previtem and loop.previtem.role != "tool" %}
|
| 133 |
+
{{- '<|im_start|>user' }}
|
| 134 |
+
{%- endif %}
|
| 135 |
+
{{- '\n<tool_response>\n' }}
|
| 136 |
+
{{- content }}
|
| 137 |
+
{{- '\n</tool_response>' }}
|
| 138 |
+
{%- if not loop.last and loop.nextitem.role != "tool" %}
|
| 139 |
+
{{- '<|im_end|>\n' }}
|
| 140 |
+
{%- elif loop.last %}
|
| 141 |
+
{{- '<|im_end|>\n' }}
|
| 142 |
+
{%- endif %}
|
| 143 |
+
{%- else %}
|
| 144 |
+
{{- raise_exception('Unexpected message role.') }}
|
| 145 |
+
{%- endif %}
|
| 146 |
+
{%- endfor %}
|
| 147 |
+
{%- if add_generation_prompt %}
|
| 148 |
+
{{- '<|im_start|>assistant\n' }}
|
| 149 |
+
{%- if enable_thinking is defined and enable_thinking is true %}
|
| 150 |
+
{{- '<think>\n' }}
|
| 151 |
+
{%- else %}
|
| 152 |
+
{{- '<think>\n\n</think>\n\n' }}
|
| 153 |
+
{%- endif %}
|
| 154 |
+
{%- endif %}
|
models/dit/t2av/t2av_recon/tokenizer/tokenizer_config.json
ADDED
|
@@ -0,0 +1,31 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"add_prefix_space": false,
|
| 3 |
+
"audio_bos_token": "<|audio_start|>",
|
| 4 |
+
"audio_eos_token": "<|audio_end|>",
|
| 5 |
+
"audio_token": "<|audio_pad|>",
|
| 6 |
+
"backend": "tokenizers",
|
| 7 |
+
"bos_token": null,
|
| 8 |
+
"clean_up_tokenization_spaces": false,
|
| 9 |
+
"eos_token": "<|endoftext|>",
|
| 10 |
+
"errors": "replace",
|
| 11 |
+
"image_token": "<|image_pad|>",
|
| 12 |
+
"is_local": false,
|
| 13 |
+
"model_max_length": 262144,
|
| 14 |
+
"model_specific_special_tokens": {
|
| 15 |
+
"audio_bos_token": "<|audio_start|>",
|
| 16 |
+
"audio_eos_token": "<|audio_end|>",
|
| 17 |
+
"audio_token": "<|audio_pad|>",
|
| 18 |
+
"image_token": "<|image_pad|>",
|
| 19 |
+
"video_token": "<|video_pad|>",
|
| 20 |
+
"vision_bos_token": "<|vision_start|>",
|
| 21 |
+
"vision_eos_token": "<|vision_end|>"
|
| 22 |
+
},
|
| 23 |
+
"pad_token": "<|endoftext|>",
|
| 24 |
+
"pretokenize_regex": "(?i:'s|'t|'re|'ve|'m|'ll|'d)|[^\\r\\n\\p{L}\\p{N}]?[\\p{L}\\p{M}]+|\\p{N}| ?[^\\s\\p{L}\\p{M}\\p{N}]+[\\r\\n]*|\\s*[\\r\\n]+|\\s+(?!\\S)|\\s+",
|
| 25 |
+
"split_special_tokens": false,
|
| 26 |
+
"tokenizer_class": "TokenizersBackend",
|
| 27 |
+
"unk_token": null,
|
| 28 |
+
"video_token": "<|video_pad|>",
|
| 29 |
+
"vision_bos_token": "<|vision_start|>",
|
| 30 |
+
"vision_eos_token": "<|vision_end|>"
|
| 31 |
+
}
|
models/dit/t2av/t2av_recon/transformer_audio/config.json
ADDED
|
@@ -0,0 +1,32 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"_class_name": "ZImageTransformer2DModel",
|
| 3 |
+
"_diffusers_version": "0.37.1",
|
| 4 |
+
"all_f_patch_size": [
|
| 5 |
+
1
|
| 6 |
+
],
|
| 7 |
+
"all_patch_size": [
|
| 8 |
+
1
|
| 9 |
+
],
|
| 10 |
+
"axes_dims": [
|
| 11 |
+
16,
|
| 12 |
+
56,
|
| 13 |
+
56
|
| 14 |
+
],
|
| 15 |
+
"axes_lens": [
|
| 16 |
+
2048,
|
| 17 |
+
16,
|
| 18 |
+
16
|
| 19 |
+
],
|
| 20 |
+
"cap_feat_dim": 1024,
|
| 21 |
+
"dim": 1920,
|
| 22 |
+
"in_channels": 128,
|
| 23 |
+
"n_heads": 15,
|
| 24 |
+
"n_kv_heads": 15,
|
| 25 |
+
"n_layers": 18,
|
| 26 |
+
"n_refiner_layers": 2,
|
| 27 |
+
"norm_eps": 1e-05,
|
| 28 |
+
"qk_norm": true,
|
| 29 |
+
"rope_theta": 256.0,
|
| 30 |
+
"siglip_feat_dim": null,
|
| 31 |
+
"t_scale": 1000.0
|
| 32 |
+
}
|
models/dit/t2av/t2av_recon/transformer_video/config.json
ADDED
|
@@ -0,0 +1,32 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"_class_name": "ZImageTransformer2DModel",
|
| 3 |
+
"_diffusers_version": "0.37.1",
|
| 4 |
+
"all_f_patch_size": [
|
| 5 |
+
1
|
| 6 |
+
],
|
| 7 |
+
"all_patch_size": [
|
| 8 |
+
1
|
| 9 |
+
],
|
| 10 |
+
"axes_dims": [
|
| 11 |
+
16,
|
| 12 |
+
56,
|
| 13 |
+
56
|
| 14 |
+
],
|
| 15 |
+
"axes_lens": [
|
| 16 |
+
1024,
|
| 17 |
+
512,
|
| 18 |
+
512
|
| 19 |
+
],
|
| 20 |
+
"cap_feat_dim": 1024,
|
| 21 |
+
"dim": 1920,
|
| 22 |
+
"in_channels": 48,
|
| 23 |
+
"n_heads": 15,
|
| 24 |
+
"n_kv_heads": 15,
|
| 25 |
+
"n_layers": 18,
|
| 26 |
+
"n_refiner_layers": 2,
|
| 27 |
+
"norm_eps": 1e-05,
|
| 28 |
+
"qk_norm": true,
|
| 29 |
+
"rope_theta": 256.0,
|
| 30 |
+
"siglip_feat_dim": null,
|
| 31 |
+
"t_scale": 1000.0
|
| 32 |
+
}
|
models/dit/t2av/t2av_recon_avclip/resolved_config.json
ADDED
|
@@ -0,0 +1,337 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"experiment": {
|
| 3 |
+
"name": "t2av_recon_avclip",
|
| 4 |
+
"output_dir": "models/dit/t2av/t2av_recon_avclip"
|
| 5 |
+
},
|
| 6 |
+
"dataset": {
|
| 7 |
+
"type": "av_paired_jsonl",
|
| 8 |
+
"root": "omitted_public_release_path",
|
| 9 |
+
"meta_path": null,
|
| 10 |
+
"jsonl_index_path": null,
|
| 11 |
+
"jsonl_path_field": "video_path",
|
| 12 |
+
"jsonl_prompt_field": "prompt_v2",
|
| 13 |
+
"jsonl_prompt_index_path": null,
|
| 14 |
+
"slave_path": "",
|
| 15 |
+
"base_image_path": "",
|
| 16 |
+
"split": "train",
|
| 17 |
+
"image_size": 256,
|
| 18 |
+
"frame_size": [
|
| 19 |
+
256,
|
| 20 |
+
256
|
| 21 |
+
],
|
| 22 |
+
"num_frames": 121,
|
| 23 |
+
"target_fps": 24.0,
|
| 24 |
+
"decode_backend": "torchcodec",
|
| 25 |
+
"return_uint8": true,
|
| 26 |
+
"center_crop": true,
|
| 27 |
+
"random_flip": false,
|
| 28 |
+
"num_workers": 6,
|
| 29 |
+
"prefetch_factor": 2,
|
| 30 |
+
"pin_memory": true,
|
| 31 |
+
"drop_last": true,
|
| 32 |
+
"max_samples": null,
|
| 33 |
+
"cache_dir": ".cache/omnivae",
|
| 34 |
+
"repeat": 1,
|
| 35 |
+
"recaption_prob": 0.0,
|
| 36 |
+
"captions_file": null,
|
| 37 |
+
"prompt_templates": [
|
| 38 |
+
"a high-quality photo of {label}"
|
| 39 |
+
],
|
| 40 |
+
"use_full_label": false,
|
| 41 |
+
"metadata_paths": [],
|
| 42 |
+
"dataset_base_path": "/",
|
| 43 |
+
"sample_rate": 48000,
|
| 44 |
+
"num_audio_samples": 242000,
|
| 45 |
+
"max_num_audio_samples": 1440000,
|
| 46 |
+
"mono": true,
|
| 47 |
+
"append_duration_suffix": false,
|
| 48 |
+
"duration_precision": 1,
|
| 49 |
+
"path_field": "video_path",
|
| 50 |
+
"prompt_field": "av_caption",
|
| 51 |
+
"sources": [
|
| 52 |
+
{
|
| 53 |
+
"name": "nonspeech_1000w_g2",
|
| 54 |
+
"path": "data/train/nonspeech_1000w_group2_9376485.jsonl",
|
| 55 |
+
"weight": 0.5
|
| 56 |
+
},
|
| 57 |
+
{
|
| 58 |
+
"name": "speech_1000w_g2",
|
| 59 |
+
"path": "data/train/youtube_speech_10042814.jsonl",
|
| 60 |
+
"weight": 0.35
|
| 61 |
+
},
|
| 62 |
+
{
|
| 63 |
+
"name": "documentary",
|
| 64 |
+
"path": "data/train/documentary_2627844.jsonl",
|
| 65 |
+
"weight": 0.12
|
| 66 |
+
},
|
| 67 |
+
{
|
| 68 |
+
"name": "movies",
|
| 69 |
+
"path": "data/train/movies_8964574.jsonl",
|
| 70 |
+
"weight": 0.05
|
| 71 |
+
},
|
| 72 |
+
{
|
| 73 |
+
"name": "chinese_drama",
|
| 74 |
+
"path": "data/train/chinese_drama_3264550.jsonl",
|
| 75 |
+
"weight": 0.03
|
| 76 |
+
}
|
| 77 |
+
],
|
| 78 |
+
"task_prefix_enabled": true,
|
| 79 |
+
"min_clip_duration_ratio": 0.99
|
| 80 |
+
},
|
| 81 |
+
"text_encoder": {
|
| 82 |
+
"model_name_or_path": "models/text_encoder/Qwen3.5-0.8B-Base",
|
| 83 |
+
"trust_remote_code": false,
|
| 84 |
+
"torch_dtype": "bfloat16",
|
| 85 |
+
"attn_implementation": "sdpa",
|
| 86 |
+
"disable_qwen3_5_fast_path": true,
|
| 87 |
+
"cache_enabled": false,
|
| 88 |
+
"compile_model": true,
|
| 89 |
+
"max_sequence_length": 512,
|
| 90 |
+
"local_files_only": true
|
| 91 |
+
},
|
| 92 |
+
"scheduler": {
|
| 93 |
+
"model_name_or_path": "models/dit/t2av/t2av_recon_avclip",
|
| 94 |
+
"subfolder": "scheduler",
|
| 95 |
+
"local_files_only": true,
|
| 96 |
+
"use_dynamic_shifting": false
|
| 97 |
+
},
|
| 98 |
+
"transformer": {
|
| 99 |
+
"arch": "zimage",
|
| 100 |
+
"backbone_name_or_path": "Qwen/Qwen3-VL-2B-Instruct",
|
| 101 |
+
"backbone_torch_dtype": "bfloat16",
|
| 102 |
+
"init_from_pretrained_backbone": true,
|
| 103 |
+
"text_config": null,
|
| 104 |
+
"trust_remote_code": false,
|
| 105 |
+
"local_files_only": false,
|
| 106 |
+
"attn_implementation": "flex_attention",
|
| 107 |
+
"max_sequence_length": 512,
|
| 108 |
+
"all_patch_size": [
|
| 109 |
+
1
|
| 110 |
+
],
|
| 111 |
+
"all_f_patch_size": [
|
| 112 |
+
1
|
| 113 |
+
],
|
| 114 |
+
"in_channels": 16,
|
| 115 |
+
"dim": 2048,
|
| 116 |
+
"n_layers": 18,
|
| 117 |
+
"n_refiner_layers": 2,
|
| 118 |
+
"n_heads": 16,
|
| 119 |
+
"n_kv_heads": 16,
|
| 120 |
+
"norm_eps": 1e-05,
|
| 121 |
+
"qk_norm": true,
|
| 122 |
+
"rope_theta": 256.0,
|
| 123 |
+
"t_scale": 1000.0,
|
| 124 |
+
"use_timestep": true,
|
| 125 |
+
"predict_target": "v",
|
| 126 |
+
"axes_dims": [
|
| 127 |
+
16,
|
| 128 |
+
56,
|
| 129 |
+
56
|
| 130 |
+
],
|
| 131 |
+
"axes_lens": [
|
| 132 |
+
1024,
|
| 133 |
+
512,
|
| 134 |
+
512
|
| 135 |
+
],
|
| 136 |
+
"compile_model": true,
|
| 137 |
+
"attention_backend": null,
|
| 138 |
+
"bridge_interval": 1,
|
| 139 |
+
"bridge_enabled": true,
|
| 140 |
+
"use_asymmetric_ati": false,
|
| 141 |
+
"a2v_window_size": 1,
|
| 142 |
+
"compile_bridges": true,
|
| 143 |
+
"compile_mode": "default",
|
| 144 |
+
"compile_fullgraph": false,
|
| 145 |
+
"compile_dynamic": null
|
| 146 |
+
},
|
| 147 |
+
"validation": {
|
| 148 |
+
"modes": [
|
| 149 |
+
"audio_only",
|
| 150 |
+
"video_only",
|
| 151 |
+
"joint_av"
|
| 152 |
+
],
|
| 153 |
+
"joint_av_prompts": {
|
| 154 |
+
"name": "versebench",
|
| 155 |
+
"jsonl_path": "eval/data/t2av/versebench_minimal/versebench_t2av_infer_minimal.jsonl",
|
| 156 |
+
"text_field": "av_caption",
|
| 157 |
+
"type_field": "type",
|
| 158 |
+
"index_field": "index",
|
| 159 |
+
"task_kind": "t2av",
|
| 160 |
+
"append_duration_suffix": false,
|
| 161 |
+
"max_examples": null
|
| 162 |
+
},
|
| 163 |
+
"video_only_prompts": {
|
| 164 |
+
"name": "t2v_inline",
|
| 165 |
+
"max_examples": null,
|
| 166 |
+
"prompts": [
|
| 167 |
+
"A cinematic documentary shot of a three-dimensional topographical map, clouds drifting over islands, somber historical lighting.",
|
| 168 |
+
"A tense cinematic scene inside a dimly lit historical palace hall, guards rushing through a wooden corridor, dramatic torchlight.",
|
| 169 |
+
"A close-up cinematic drama shot of a young woman lit by cool blue light, anxious expression, soft early 2000s television style.",
|
| 170 |
+
"A cinematic wide shot of ocean waves rolling onto a sandy beach at sunset, realistic lighting, gentle camera movement.",
|
| 171 |
+
"A young woman laughing while chatting with a friend at a sunny outdoor cafe.",
|
| 172 |
+
"An old man telling a story to a group of children sitting around him in a park.",
|
| 173 |
+
"A street musician playing guitar and singing on a busy city sidewalk.",
|
| 174 |
+
"A golden retriever running across a grassy field on a bright afternoon.",
|
| 175 |
+
"Cherry blossoms gently falling along a quiet path in spring.",
|
| 176 |
+
"A bowl of steaming noodles on a wooden table in a cozy small restaurant."
|
| 177 |
+
]
|
| 178 |
+
},
|
| 179 |
+
"audio_only_prompt_sets": [
|
| 180 |
+
{
|
| 181 |
+
"name": "basetts_valid",
|
| 182 |
+
"task_kind": "tts",
|
| 183 |
+
"jsonl_path": "examples/eval/t2a_tts_basetts_sample.jsonl",
|
| 184 |
+
"text_field": "text",
|
| 185 |
+
"type_field": "type",
|
| 186 |
+
"index_field": "index",
|
| 187 |
+
"append_duration_suffix": true,
|
| 188 |
+
"duration_precision": 1,
|
| 189 |
+
"max_examples": 8
|
| 190 |
+
},
|
| 191 |
+
{
|
| 192 |
+
"name": "tta_general_en",
|
| 193 |
+
"task_kind": "tta",
|
| 194 |
+
"jsonl_path": "examples/eval/t2a_tta_general_en.jsonl",
|
| 195 |
+
"text_field": "text",
|
| 196 |
+
"type_field": "type",
|
| 197 |
+
"index_field": "index",
|
| 198 |
+
"append_duration_suffix": true,
|
| 199 |
+
"duration_precision": 1,
|
| 200 |
+
"max_examples": null
|
| 201 |
+
}
|
| 202 |
+
],
|
| 203 |
+
"num_inference_steps": 50,
|
| 204 |
+
"video_guidance_scale": 4.0,
|
| 205 |
+
"audio_guidance_scale": 4.0,
|
| 206 |
+
"cfg_normalization": false,
|
| 207 |
+
"max_wandb_samples_per_source": 10,
|
| 208 |
+
"cfg_modes": [
|
| 209 |
+
"simple",
|
| 210 |
+
"dual"
|
| 211 |
+
],
|
| 212 |
+
"video_text_guidance": 4.0,
|
| 213 |
+
"video_modality_guidance": 4.0,
|
| 214 |
+
"audio_text_guidance": 4.0,
|
| 215 |
+
"audio_modality_guidance": 4.0,
|
| 216 |
+
"video_frame_size": [
|
| 217 |
+
256,
|
| 218 |
+
256
|
| 219 |
+
],
|
| 220 |
+
"video_num_frames": 121,
|
| 221 |
+
"video_fps": 24.0,
|
| 222 |
+
"audio_duration_seconds": 5.0417
|
| 223 |
+
},
|
| 224 |
+
"vae": {
|
| 225 |
+
"type": "univae",
|
| 226 |
+
"model_name_or_path": "models/vae/audio_video/recon_avclip",
|
| 227 |
+
"torch_dtype": "bfloat16",
|
| 228 |
+
"local_files_only": true,
|
| 229 |
+
"wan_chunk_mode": "parallel",
|
| 230 |
+
"compile_encode": true,
|
| 231 |
+
"compile_encode_mode": "reduce-overhead",
|
| 232 |
+
"compile_encode_fullgraph": false,
|
| 233 |
+
"branch": "video",
|
| 234 |
+
"use_ema": false
|
| 235 |
+
},
|
| 236 |
+
"audio_vae": {
|
| 237 |
+
"type": "univae",
|
| 238 |
+
"model_path": "models/vae/audio_only/recon_avclip_ft_decoder",
|
| 239 |
+
"hop_length": 960,
|
| 240 |
+
"latent_channels": 128,
|
| 241 |
+
"torch_dtype": "float32",
|
| 242 |
+
"compile_encode": true,
|
| 243 |
+
"compile_encode_fullgraph": false,
|
| 244 |
+
"compile_encode_mode": "reduce-overhead",
|
| 245 |
+
"branch": "audio",
|
| 246 |
+
"use_ema": false
|
| 247 |
+
},
|
| 248 |
+
"transformer_video": {
|
| 249 |
+
"arch": "zimage",
|
| 250 |
+
"all_patch_size": [
|
| 251 |
+
1
|
| 252 |
+
],
|
| 253 |
+
"all_f_patch_size": [
|
| 254 |
+
1
|
| 255 |
+
],
|
| 256 |
+
"in_channels": 48,
|
| 257 |
+
"dim": 1920,
|
| 258 |
+
"n_layers": 18,
|
| 259 |
+
"n_refiner_layers": 2,
|
| 260 |
+
"n_heads": 15,
|
| 261 |
+
"n_kv_heads": 15,
|
| 262 |
+
"norm_eps": 1e-05,
|
| 263 |
+
"qk_norm": true,
|
| 264 |
+
"rope_theta": 256.0,
|
| 265 |
+
"t_scale": 1000.0,
|
| 266 |
+
"use_timestep": true,
|
| 267 |
+
"predict_target": "v",
|
| 268 |
+
"axes_dims": [
|
| 269 |
+
16,
|
| 270 |
+
56,
|
| 271 |
+
56
|
| 272 |
+
],
|
| 273 |
+
"axes_lens": [
|
| 274 |
+
1024,
|
| 275 |
+
512,
|
| 276 |
+
512
|
| 277 |
+
],
|
| 278 |
+
"compile_model": true,
|
| 279 |
+
"attention_backend": null
|
| 280 |
+
},
|
| 281 |
+
"transformer_audio": {
|
| 282 |
+
"arch": "zimage",
|
| 283 |
+
"all_patch_size": [
|
| 284 |
+
1
|
| 285 |
+
],
|
| 286 |
+
"all_f_patch_size": [
|
| 287 |
+
1
|
| 288 |
+
],
|
| 289 |
+
"in_channels": 128,
|
| 290 |
+
"dim": 1920,
|
| 291 |
+
"n_layers": 18,
|
| 292 |
+
"n_refiner_layers": 2,
|
| 293 |
+
"n_heads": 15,
|
| 294 |
+
"n_kv_heads": 15,
|
| 295 |
+
"norm_eps": 1e-05,
|
| 296 |
+
"qk_norm": true,
|
| 297 |
+
"rope_theta": 256.0,
|
| 298 |
+
"t_scale": 1000.0,
|
| 299 |
+
"use_timestep": true,
|
| 300 |
+
"predict_target": "v",
|
| 301 |
+
"axes_dims": [
|
| 302 |
+
16,
|
| 303 |
+
56,
|
| 304 |
+
56
|
| 305 |
+
],
|
| 306 |
+
"axes_lens": [
|
| 307 |
+
2048,
|
| 308 |
+
16,
|
| 309 |
+
16
|
| 310 |
+
],
|
| 311 |
+
"compile_model": true,
|
| 312 |
+
"attention_backend": null
|
| 313 |
+
},
|
| 314 |
+
"train": {
|
| 315 |
+
"seed": 42,
|
| 316 |
+
"validation_steps": 5000,
|
| 317 |
+
"validation_prompts": [
|
| 318 |
+
"a high-quality photo of a goldfish",
|
| 319 |
+
"a high-quality photo of a tiger shark",
|
| 320 |
+
"a high-quality photo of an ostrich",
|
| 321 |
+
"a high-quality photo of a tabby cat"
|
| 322 |
+
],
|
| 323 |
+
"validation_num_inference_steps": 20,
|
| 324 |
+
"validation_guidance_scale": 4.0,
|
| 325 |
+
"validation_cfg_normalization": false,
|
| 326 |
+
"validation_cfg_truncation": 1.0,
|
| 327 |
+
"validation_num_frames": null,
|
| 328 |
+
"validation_frame_size": null,
|
| 329 |
+
"validation_fps": null,
|
| 330 |
+
"validation_negative_prompts": null,
|
| 331 |
+
"shift_v": 5.0,
|
| 332 |
+
"shift_a": 3.0,
|
| 333 |
+
"validation_force_steps": [
|
| 334 |
+
0
|
| 335 |
+
]
|
| 336 |
+
}
|
| 337 |
+
}
|
models/dit/t2av/t2av_recon_avclip/resolved_config.yaml
ADDED
|
@@ -0,0 +1,290 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
experiment:
|
| 2 |
+
name: t2av_recon_avclip
|
| 3 |
+
output_dir: models/dit/t2av/t2av_recon_avclip
|
| 4 |
+
dataset:
|
| 5 |
+
type: av_paired_jsonl
|
| 6 |
+
root: omitted_public_release_path
|
| 7 |
+
meta_path: null
|
| 8 |
+
jsonl_index_path: null
|
| 9 |
+
jsonl_path_field: video_path
|
| 10 |
+
jsonl_prompt_field: prompt_v2
|
| 11 |
+
jsonl_prompt_index_path: null
|
| 12 |
+
slave_path: ''
|
| 13 |
+
base_image_path: ''
|
| 14 |
+
split: train
|
| 15 |
+
image_size: 256
|
| 16 |
+
frame_size:
|
| 17 |
+
- 256
|
| 18 |
+
- 256
|
| 19 |
+
num_frames: 121
|
| 20 |
+
target_fps: 24.0
|
| 21 |
+
decode_backend: torchcodec
|
| 22 |
+
return_uint8: true
|
| 23 |
+
center_crop: true
|
| 24 |
+
random_flip: false
|
| 25 |
+
num_workers: 6
|
| 26 |
+
prefetch_factor: 2
|
| 27 |
+
pin_memory: true
|
| 28 |
+
drop_last: true
|
| 29 |
+
max_samples: null
|
| 30 |
+
cache_dir: .cache/omnivae
|
| 31 |
+
repeat: 1
|
| 32 |
+
recaption_prob: 0.0
|
| 33 |
+
captions_file: null
|
| 34 |
+
prompt_templates:
|
| 35 |
+
- a high-quality photo of {label}
|
| 36 |
+
use_full_label: false
|
| 37 |
+
metadata_paths: []
|
| 38 |
+
dataset_base_path: /
|
| 39 |
+
sample_rate: 48000
|
| 40 |
+
num_audio_samples: 242000
|
| 41 |
+
max_num_audio_samples: 1440000
|
| 42 |
+
mono: true
|
| 43 |
+
append_duration_suffix: false
|
| 44 |
+
duration_precision: 1
|
| 45 |
+
path_field: video_path
|
| 46 |
+
prompt_field: av_caption
|
| 47 |
+
sources:
|
| 48 |
+
- name: nonspeech_1000w_g2
|
| 49 |
+
path: data/train/nonspeech_1000w_group2_9376485.jsonl
|
| 50 |
+
weight: 0.5
|
| 51 |
+
- name: speech_1000w_g2
|
| 52 |
+
path: data/train/youtube_speech_10042814.jsonl
|
| 53 |
+
weight: 0.35
|
| 54 |
+
- name: documentary
|
| 55 |
+
path: data/train/documentary_2627844.jsonl
|
| 56 |
+
weight: 0.12
|
| 57 |
+
- name: movies
|
| 58 |
+
path: data/train/movies_8964574.jsonl
|
| 59 |
+
weight: 0.05
|
| 60 |
+
- name: chinese_drama
|
| 61 |
+
path: data/train/chinese_drama_3264550.jsonl
|
| 62 |
+
weight: 0.03
|
| 63 |
+
task_prefix_enabled: true
|
| 64 |
+
min_clip_duration_ratio: 0.99
|
| 65 |
+
text_encoder:
|
| 66 |
+
model_name_or_path: models/text_encoder/Qwen3.5-0.8B-Base
|
| 67 |
+
trust_remote_code: false
|
| 68 |
+
torch_dtype: bfloat16
|
| 69 |
+
attn_implementation: sdpa
|
| 70 |
+
disable_qwen3_5_fast_path: true
|
| 71 |
+
cache_enabled: false
|
| 72 |
+
compile_model: true
|
| 73 |
+
max_sequence_length: 512
|
| 74 |
+
local_files_only: true
|
| 75 |
+
scheduler:
|
| 76 |
+
model_name_or_path: models/dit/t2av/t2av_recon_avclip
|
| 77 |
+
subfolder: scheduler
|
| 78 |
+
local_files_only: true
|
| 79 |
+
use_dynamic_shifting: false
|
| 80 |
+
transformer:
|
| 81 |
+
arch: zimage
|
| 82 |
+
backbone_name_or_path: Qwen/Qwen3-VL-2B-Instruct
|
| 83 |
+
backbone_torch_dtype: bfloat16
|
| 84 |
+
init_from_pretrained_backbone: true
|
| 85 |
+
text_config: null
|
| 86 |
+
trust_remote_code: false
|
| 87 |
+
local_files_only: false
|
| 88 |
+
attn_implementation: flex_attention
|
| 89 |
+
max_sequence_length: 512
|
| 90 |
+
all_patch_size:
|
| 91 |
+
- 1
|
| 92 |
+
all_f_patch_size:
|
| 93 |
+
- 1
|
| 94 |
+
in_channels: 16
|
| 95 |
+
dim: 2048
|
| 96 |
+
n_layers: 18
|
| 97 |
+
n_refiner_layers: 2
|
| 98 |
+
n_heads: 16
|
| 99 |
+
n_kv_heads: 16
|
| 100 |
+
norm_eps: 1.0e-05
|
| 101 |
+
qk_norm: true
|
| 102 |
+
rope_theta: 256.0
|
| 103 |
+
t_scale: 1000.0
|
| 104 |
+
use_timestep: true
|
| 105 |
+
predict_target: v
|
| 106 |
+
axes_dims:
|
| 107 |
+
- 16
|
| 108 |
+
- 56
|
| 109 |
+
- 56
|
| 110 |
+
axes_lens:
|
| 111 |
+
- 1024
|
| 112 |
+
- 512
|
| 113 |
+
- 512
|
| 114 |
+
compile_model: true
|
| 115 |
+
attention_backend: null
|
| 116 |
+
bridge_interval: 1
|
| 117 |
+
bridge_enabled: true
|
| 118 |
+
use_asymmetric_ati: false
|
| 119 |
+
a2v_window_size: 1
|
| 120 |
+
compile_bridges: true
|
| 121 |
+
compile_mode: default
|
| 122 |
+
compile_fullgraph: false
|
| 123 |
+
compile_dynamic: null
|
| 124 |
+
validation:
|
| 125 |
+
modes:
|
| 126 |
+
- audio_only
|
| 127 |
+
- video_only
|
| 128 |
+
- joint_av
|
| 129 |
+
joint_av_prompts:
|
| 130 |
+
name: versebench
|
| 131 |
+
jsonl_path: eval/data/t2av/versebench_minimal/versebench_t2av_infer_minimal.jsonl
|
| 132 |
+
text_field: av_caption
|
| 133 |
+
type_field: type
|
| 134 |
+
index_field: index
|
| 135 |
+
task_kind: t2av
|
| 136 |
+
append_duration_suffix: false
|
| 137 |
+
max_examples: null
|
| 138 |
+
video_only_prompts:
|
| 139 |
+
name: t2v_inline
|
| 140 |
+
max_examples: null
|
| 141 |
+
prompts:
|
| 142 |
+
- A cinematic documentary shot of a three-dimensional topographical map, clouds
|
| 143 |
+
drifting over islands, somber historical lighting.
|
| 144 |
+
- A tense cinematic scene inside a dimly lit historical palace hall, guards rushing
|
| 145 |
+
through a wooden corridor, dramatic torchlight.
|
| 146 |
+
- A close-up cinematic drama shot of a young woman lit by cool blue light, anxious
|
| 147 |
+
expression, soft early 2000s television style.
|
| 148 |
+
- A cinematic wide shot of ocean waves rolling onto a sandy beach at sunset, realistic
|
| 149 |
+
lighting, gentle camera movement.
|
| 150 |
+
- A young woman laughing while chatting with a friend at a sunny outdoor cafe.
|
| 151 |
+
- An old man telling a story to a group of children sitting around him in a park.
|
| 152 |
+
- A street musician playing guitar and singing on a busy city sidewalk.
|
| 153 |
+
- A golden retriever running across a grassy field on a bright afternoon.
|
| 154 |
+
- Cherry blossoms gently falling along a quiet path in spring.
|
| 155 |
+
- A bowl of steaming noodles on a wooden table in a cozy small restaurant.
|
| 156 |
+
audio_only_prompt_sets:
|
| 157 |
+
- name: basetts_valid
|
| 158 |
+
task_kind: tts
|
| 159 |
+
jsonl_path: examples/eval/t2a_tts_basetts_sample.jsonl
|
| 160 |
+
text_field: text
|
| 161 |
+
type_field: type
|
| 162 |
+
index_field: index
|
| 163 |
+
append_duration_suffix: true
|
| 164 |
+
duration_precision: 1
|
| 165 |
+
max_examples: 8
|
| 166 |
+
- name: tta_general_en
|
| 167 |
+
task_kind: tta
|
| 168 |
+
jsonl_path: examples/eval/t2a_tta_general_en.jsonl
|
| 169 |
+
text_field: text
|
| 170 |
+
type_field: type
|
| 171 |
+
index_field: index
|
| 172 |
+
append_duration_suffix: true
|
| 173 |
+
duration_precision: 1
|
| 174 |
+
max_examples: null
|
| 175 |
+
num_inference_steps: 50
|
| 176 |
+
video_guidance_scale: 4.0
|
| 177 |
+
audio_guidance_scale: 4.0
|
| 178 |
+
cfg_normalization: false
|
| 179 |
+
max_wandb_samples_per_source: 10
|
| 180 |
+
cfg_modes:
|
| 181 |
+
- simple
|
| 182 |
+
- dual
|
| 183 |
+
video_text_guidance: 4.0
|
| 184 |
+
video_modality_guidance: 4.0
|
| 185 |
+
audio_text_guidance: 4.0
|
| 186 |
+
audio_modality_guidance: 4.0
|
| 187 |
+
video_frame_size:
|
| 188 |
+
- 256
|
| 189 |
+
- 256
|
| 190 |
+
video_num_frames: 121
|
| 191 |
+
video_fps: 24.0
|
| 192 |
+
audio_duration_seconds: 5.0417
|
| 193 |
+
vae:
|
| 194 |
+
type: univae
|
| 195 |
+
model_name_or_path: models/vae/audio_video/recon_avclip
|
| 196 |
+
torch_dtype: bfloat16
|
| 197 |
+
local_files_only: true
|
| 198 |
+
wan_chunk_mode: parallel
|
| 199 |
+
compile_encode: true
|
| 200 |
+
compile_encode_mode: reduce-overhead
|
| 201 |
+
compile_encode_fullgraph: false
|
| 202 |
+
branch: video
|
| 203 |
+
use_ema: false
|
| 204 |
+
audio_vae:
|
| 205 |
+
type: univae
|
| 206 |
+
model_path: models/vae/audio_only/recon_avclip_ft_decoder
|
| 207 |
+
hop_length: 960
|
| 208 |
+
latent_channels: 128
|
| 209 |
+
torch_dtype: float32
|
| 210 |
+
compile_encode: true
|
| 211 |
+
compile_encode_fullgraph: false
|
| 212 |
+
compile_encode_mode: reduce-overhead
|
| 213 |
+
branch: audio
|
| 214 |
+
use_ema: false
|
| 215 |
+
transformer_video:
|
| 216 |
+
arch: zimage
|
| 217 |
+
all_patch_size:
|
| 218 |
+
- 1
|
| 219 |
+
all_f_patch_size:
|
| 220 |
+
- 1
|
| 221 |
+
in_channels: 48
|
| 222 |
+
dim: 1920
|
| 223 |
+
n_layers: 18
|
| 224 |
+
n_refiner_layers: 2
|
| 225 |
+
n_heads: 15
|
| 226 |
+
n_kv_heads: 15
|
| 227 |
+
norm_eps: 1.0e-05
|
| 228 |
+
qk_norm: true
|
| 229 |
+
rope_theta: 256.0
|
| 230 |
+
t_scale: 1000.0
|
| 231 |
+
use_timestep: true
|
| 232 |
+
predict_target: v
|
| 233 |
+
axes_dims:
|
| 234 |
+
- 16
|
| 235 |
+
- 56
|
| 236 |
+
- 56
|
| 237 |
+
axes_lens:
|
| 238 |
+
- 1024
|
| 239 |
+
- 512
|
| 240 |
+
- 512
|
| 241 |
+
compile_model: true
|
| 242 |
+
attention_backend: null
|
| 243 |
+
transformer_audio:
|
| 244 |
+
arch: zimage
|
| 245 |
+
all_patch_size:
|
| 246 |
+
- 1
|
| 247 |
+
all_f_patch_size:
|
| 248 |
+
- 1
|
| 249 |
+
in_channels: 128
|
| 250 |
+
dim: 1920
|
| 251 |
+
n_layers: 18
|
| 252 |
+
n_refiner_layers: 2
|
| 253 |
+
n_heads: 15
|
| 254 |
+
n_kv_heads: 15
|
| 255 |
+
norm_eps: 1.0e-05
|
| 256 |
+
qk_norm: true
|
| 257 |
+
rope_theta: 256.0
|
| 258 |
+
t_scale: 1000.0
|
| 259 |
+
use_timestep: true
|
| 260 |
+
predict_target: v
|
| 261 |
+
axes_dims:
|
| 262 |
+
- 16
|
| 263 |
+
- 56
|
| 264 |
+
- 56
|
| 265 |
+
axes_lens:
|
| 266 |
+
- 2048
|
| 267 |
+
- 16
|
| 268 |
+
- 16
|
| 269 |
+
compile_model: true
|
| 270 |
+
attention_backend: null
|
| 271 |
+
train:
|
| 272 |
+
seed: 42
|
| 273 |
+
validation_steps: 5000
|
| 274 |
+
validation_prompts:
|
| 275 |
+
- a high-quality photo of a goldfish
|
| 276 |
+
- a high-quality photo of a tiger shark
|
| 277 |
+
- a high-quality photo of an ostrich
|
| 278 |
+
- a high-quality photo of a tabby cat
|
| 279 |
+
validation_num_inference_steps: 20
|
| 280 |
+
validation_guidance_scale: 4.0
|
| 281 |
+
validation_cfg_normalization: false
|
| 282 |
+
validation_cfg_truncation: 1.0
|
| 283 |
+
validation_num_frames: null
|
| 284 |
+
validation_frame_size: null
|
| 285 |
+
validation_fps: null
|
| 286 |
+
validation_negative_prompts: null
|
| 287 |
+
shift_v: 5.0
|
| 288 |
+
shift_a: 3.0
|
| 289 |
+
validation_force_steps:
|
| 290 |
+
- 0
|
models/dit/t2av/t2av_recon_distill/bridges/bridge_config.json
ADDED
|
@@ -0,0 +1,9 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"bridge_interval": 1,
|
| 3 |
+
"use_asymmetric_ati": false,
|
| 4 |
+
"a2v_window_size": 1,
|
| 5 |
+
"n_bridges": 18,
|
| 6 |
+
"dim": 1920,
|
| 7 |
+
"n_heads": 15,
|
| 8 |
+
"head_dim": 128
|
| 9 |
+
}
|
models/dit/t2av/t2av_recon_distill/metadata.json
ADDED
|
@@ -0,0 +1,29 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"export_format": "omnivae_generation_inference_package_v1",
|
| 3 |
+
"inference_only": true,
|
| 4 |
+
"task": "t2av",
|
| 5 |
+
"name": "t2av_recon_distill",
|
| 6 |
+
"source_experiment": "2_t2av_recon_distill_lr2",
|
| 7 |
+
"exported_at_utc": "2026-06-07T21:30:31+00:00",
|
| 8 |
+
"text_encoder_model_name_or_path": "models/text_encoder/Qwen3.5-0.8B-Base",
|
| 9 |
+
"vae_model_name_or_path": "models/vae/video_only/recon_distill",
|
| 10 |
+
"required_subdirs": [
|
| 11 |
+
"transformer_video",
|
| 12 |
+
"transformer_audio",
|
| 13 |
+
"bridges",
|
| 14 |
+
"tokenizer",
|
| 15 |
+
"scheduler"
|
| 16 |
+
],
|
| 17 |
+
"video_vae_model_name_or_path": "models/vae/video_only/recon_distill",
|
| 18 |
+
"audio_vae_model_path": "models/vae/audio_only/recon_distill",
|
| 19 |
+
"joint_av": true,
|
| 20 |
+
"release_vae_paths_rewritten": true,
|
| 21 |
+
"release_experiment_family": "recon_distill",
|
| 22 |
+
"release_path_note": "VAE paths are relative to OMNIVAE_RELEASE_ROOT/models/vae. AVCLIP audio branches use ft_decoder checkpoints.",
|
| 23 |
+
"source_step": 200000,
|
| 24 |
+
"release_checkpoint_step": 200000,
|
| 25 |
+
"release_laion_checkpoint_name": "checkpoint-00200000",
|
| 26 |
+
"source_experiment_original_name": "2_t2av_recon_distill_lr2",
|
| 27 |
+
"source_checkpoint_provenance": "internal training checkpoint path omitted; use release_checkpoint_step and this package directory.",
|
| 28 |
+
"release_package_path": "models/dit/t2av/t2av_recon_distill"
|
| 29 |
+
}
|
models/dit/t2av/t2av_recon_distill/resolved_config.json
ADDED
|
@@ -0,0 +1,337 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"experiment": {
|
| 3 |
+
"name": "t2av_recon_distill",
|
| 4 |
+
"output_dir": "models/dit/t2av/t2av_recon_distill"
|
| 5 |
+
},
|
| 6 |
+
"dataset": {
|
| 7 |
+
"type": "av_paired_jsonl",
|
| 8 |
+
"root": "omitted_public_release_path",
|
| 9 |
+
"meta_path": null,
|
| 10 |
+
"jsonl_index_path": null,
|
| 11 |
+
"jsonl_path_field": "video_path",
|
| 12 |
+
"jsonl_prompt_field": "prompt_v2",
|
| 13 |
+
"jsonl_prompt_index_path": null,
|
| 14 |
+
"slave_path": "",
|
| 15 |
+
"base_image_path": "",
|
| 16 |
+
"split": "train",
|
| 17 |
+
"image_size": 256,
|
| 18 |
+
"frame_size": [
|
| 19 |
+
256,
|
| 20 |
+
256
|
| 21 |
+
],
|
| 22 |
+
"num_frames": 121,
|
| 23 |
+
"target_fps": 24.0,
|
| 24 |
+
"decode_backend": "torchcodec",
|
| 25 |
+
"return_uint8": true,
|
| 26 |
+
"center_crop": true,
|
| 27 |
+
"random_flip": false,
|
| 28 |
+
"num_workers": 6,
|
| 29 |
+
"prefetch_factor": 2,
|
| 30 |
+
"pin_memory": true,
|
| 31 |
+
"drop_last": true,
|
| 32 |
+
"max_samples": null,
|
| 33 |
+
"cache_dir": ".cache/omnivae",
|
| 34 |
+
"repeat": 1,
|
| 35 |
+
"recaption_prob": 0.0,
|
| 36 |
+
"captions_file": null,
|
| 37 |
+
"prompt_templates": [
|
| 38 |
+
"a high-quality photo of {label}"
|
| 39 |
+
],
|
| 40 |
+
"use_full_label": false,
|
| 41 |
+
"metadata_paths": [],
|
| 42 |
+
"dataset_base_path": "/",
|
| 43 |
+
"sample_rate": 48000,
|
| 44 |
+
"num_audio_samples": 242000,
|
| 45 |
+
"max_num_audio_samples": 1440000,
|
| 46 |
+
"mono": true,
|
| 47 |
+
"append_duration_suffix": false,
|
| 48 |
+
"duration_precision": 1,
|
| 49 |
+
"path_field": "video_path",
|
| 50 |
+
"prompt_field": "av_caption",
|
| 51 |
+
"sources": [
|
| 52 |
+
{
|
| 53 |
+
"name": "nonspeech_1000w_g2",
|
| 54 |
+
"path": "data/train/nonspeech_1000w_group2_9376485.jsonl",
|
| 55 |
+
"weight": 0.5
|
| 56 |
+
},
|
| 57 |
+
{
|
| 58 |
+
"name": "speech_1000w_g2",
|
| 59 |
+
"path": "data/train/youtube_speech_10042814.jsonl",
|
| 60 |
+
"weight": 0.35
|
| 61 |
+
},
|
| 62 |
+
{
|
| 63 |
+
"name": "documentary",
|
| 64 |
+
"path": "data/train/documentary_2627844.jsonl",
|
| 65 |
+
"weight": 0.12
|
| 66 |
+
},
|
| 67 |
+
{
|
| 68 |
+
"name": "movies",
|
| 69 |
+
"path": "data/train/movies_8964574.jsonl",
|
| 70 |
+
"weight": 0.05
|
| 71 |
+
},
|
| 72 |
+
{
|
| 73 |
+
"name": "chinese_drama",
|
| 74 |
+
"path": "data/train/chinese_drama_3264550.jsonl",
|
| 75 |
+
"weight": 0.03
|
| 76 |
+
}
|
| 77 |
+
],
|
| 78 |
+
"task_prefix_enabled": true,
|
| 79 |
+
"min_clip_duration_ratio": 0.99
|
| 80 |
+
},
|
| 81 |
+
"text_encoder": {
|
| 82 |
+
"model_name_or_path": "models/text_encoder/Qwen3.5-0.8B-Base",
|
| 83 |
+
"trust_remote_code": false,
|
| 84 |
+
"torch_dtype": "bfloat16",
|
| 85 |
+
"attn_implementation": "sdpa",
|
| 86 |
+
"disable_qwen3_5_fast_path": true,
|
| 87 |
+
"cache_enabled": false,
|
| 88 |
+
"compile_model": true,
|
| 89 |
+
"max_sequence_length": 512,
|
| 90 |
+
"local_files_only": true
|
| 91 |
+
},
|
| 92 |
+
"scheduler": {
|
| 93 |
+
"model_name_or_path": "models/dit/t2av/t2av_recon_distill",
|
| 94 |
+
"subfolder": "scheduler",
|
| 95 |
+
"local_files_only": true,
|
| 96 |
+
"use_dynamic_shifting": false
|
| 97 |
+
},
|
| 98 |
+
"transformer": {
|
| 99 |
+
"arch": "zimage",
|
| 100 |
+
"backbone_name_or_path": "Qwen/Qwen3-VL-2B-Instruct",
|
| 101 |
+
"backbone_torch_dtype": "bfloat16",
|
| 102 |
+
"init_from_pretrained_backbone": true,
|
| 103 |
+
"text_config": null,
|
| 104 |
+
"trust_remote_code": false,
|
| 105 |
+
"local_files_only": false,
|
| 106 |
+
"attn_implementation": "flex_attention",
|
| 107 |
+
"max_sequence_length": 512,
|
| 108 |
+
"all_patch_size": [
|
| 109 |
+
1
|
| 110 |
+
],
|
| 111 |
+
"all_f_patch_size": [
|
| 112 |
+
1
|
| 113 |
+
],
|
| 114 |
+
"in_channels": 16,
|
| 115 |
+
"dim": 2048,
|
| 116 |
+
"n_layers": 18,
|
| 117 |
+
"n_refiner_layers": 2,
|
| 118 |
+
"n_heads": 16,
|
| 119 |
+
"n_kv_heads": 16,
|
| 120 |
+
"norm_eps": 1e-05,
|
| 121 |
+
"qk_norm": true,
|
| 122 |
+
"rope_theta": 256.0,
|
| 123 |
+
"t_scale": 1000.0,
|
| 124 |
+
"use_timestep": true,
|
| 125 |
+
"predict_target": "v",
|
| 126 |
+
"axes_dims": [
|
| 127 |
+
16,
|
| 128 |
+
56,
|
| 129 |
+
56
|
| 130 |
+
],
|
| 131 |
+
"axes_lens": [
|
| 132 |
+
1024,
|
| 133 |
+
512,
|
| 134 |
+
512
|
| 135 |
+
],
|
| 136 |
+
"compile_model": true,
|
| 137 |
+
"attention_backend": null,
|
| 138 |
+
"bridge_interval": 1,
|
| 139 |
+
"bridge_enabled": true,
|
| 140 |
+
"use_asymmetric_ati": false,
|
| 141 |
+
"a2v_window_size": 1,
|
| 142 |
+
"compile_bridges": true,
|
| 143 |
+
"compile_mode": "default",
|
| 144 |
+
"compile_fullgraph": false,
|
| 145 |
+
"compile_dynamic": null
|
| 146 |
+
},
|
| 147 |
+
"validation": {
|
| 148 |
+
"modes": [
|
| 149 |
+
"audio_only",
|
| 150 |
+
"video_only",
|
| 151 |
+
"joint_av"
|
| 152 |
+
],
|
| 153 |
+
"joint_av_prompts": {
|
| 154 |
+
"name": "versebench",
|
| 155 |
+
"jsonl_path": "eval/data/t2av/versebench_minimal/versebench_t2av_infer_minimal.jsonl",
|
| 156 |
+
"text_field": "av_caption",
|
| 157 |
+
"type_field": "type",
|
| 158 |
+
"index_field": "index",
|
| 159 |
+
"task_kind": "t2av",
|
| 160 |
+
"append_duration_suffix": false,
|
| 161 |
+
"max_examples": null
|
| 162 |
+
},
|
| 163 |
+
"video_only_prompts": {
|
| 164 |
+
"name": "t2v_inline",
|
| 165 |
+
"max_examples": null,
|
| 166 |
+
"prompts": [
|
| 167 |
+
"A cinematic documentary shot of a three-dimensional topographical map, clouds drifting over islands, somber historical lighting.",
|
| 168 |
+
"A tense cinematic scene inside a dimly lit historical palace hall, guards rushing through a wooden corridor, dramatic torchlight.",
|
| 169 |
+
"A close-up cinematic drama shot of a young woman lit by cool blue light, anxious expression, soft early 2000s television style.",
|
| 170 |
+
"A cinematic wide shot of ocean waves rolling onto a sandy beach at sunset, realistic lighting, gentle camera movement.",
|
| 171 |
+
"A young woman laughing while chatting with a friend at a sunny outdoor cafe.",
|
| 172 |
+
"An old man telling a story to a group of children sitting around him in a park.",
|
| 173 |
+
"A street musician playing guitar and singing on a busy city sidewalk.",
|
| 174 |
+
"A golden retriever running across a grassy field on a bright afternoon.",
|
| 175 |
+
"Cherry blossoms gently falling along a quiet path in spring.",
|
| 176 |
+
"A bowl of steaming noodles on a wooden table in a cozy small restaurant."
|
| 177 |
+
]
|
| 178 |
+
},
|
| 179 |
+
"audio_only_prompt_sets": [
|
| 180 |
+
{
|
| 181 |
+
"name": "basetts_valid",
|
| 182 |
+
"task_kind": "tts",
|
| 183 |
+
"jsonl_path": "examples/eval/t2a_tts_basetts_sample.jsonl",
|
| 184 |
+
"text_field": "text",
|
| 185 |
+
"type_field": "type",
|
| 186 |
+
"index_field": "index",
|
| 187 |
+
"append_duration_suffix": true,
|
| 188 |
+
"duration_precision": 1,
|
| 189 |
+
"max_examples": 8
|
| 190 |
+
},
|
| 191 |
+
{
|
| 192 |
+
"name": "tta_general_en",
|
| 193 |
+
"task_kind": "tta",
|
| 194 |
+
"jsonl_path": "examples/eval/t2a_tta_general_en.jsonl",
|
| 195 |
+
"text_field": "text",
|
| 196 |
+
"type_field": "type",
|
| 197 |
+
"index_field": "index",
|
| 198 |
+
"append_duration_suffix": true,
|
| 199 |
+
"duration_precision": 1,
|
| 200 |
+
"max_examples": null
|
| 201 |
+
}
|
| 202 |
+
],
|
| 203 |
+
"num_inference_steps": 50,
|
| 204 |
+
"video_guidance_scale": 4.0,
|
| 205 |
+
"audio_guidance_scale": 4.0,
|
| 206 |
+
"cfg_normalization": false,
|
| 207 |
+
"max_wandb_samples_per_source": 10,
|
| 208 |
+
"cfg_modes": [
|
| 209 |
+
"simple",
|
| 210 |
+
"dual"
|
| 211 |
+
],
|
| 212 |
+
"video_text_guidance": 4.0,
|
| 213 |
+
"video_modality_guidance": 4.0,
|
| 214 |
+
"audio_text_guidance": 4.0,
|
| 215 |
+
"audio_modality_guidance": 4.0,
|
| 216 |
+
"video_frame_size": [
|
| 217 |
+
256,
|
| 218 |
+
256
|
| 219 |
+
],
|
| 220 |
+
"video_num_frames": 121,
|
| 221 |
+
"video_fps": 24.0,
|
| 222 |
+
"audio_duration_seconds": 5.0417
|
| 223 |
+
},
|
| 224 |
+
"vae": {
|
| 225 |
+
"type": "univae",
|
| 226 |
+
"model_name_or_path": "models/vae/video_only/recon_distill",
|
| 227 |
+
"torch_dtype": "bfloat16",
|
| 228 |
+
"local_files_only": true,
|
| 229 |
+
"wan_chunk_mode": "parallel",
|
| 230 |
+
"compile_encode": true,
|
| 231 |
+
"compile_encode_mode": "reduce-overhead",
|
| 232 |
+
"compile_encode_fullgraph": false,
|
| 233 |
+
"branch": "video",
|
| 234 |
+
"use_ema": false
|
| 235 |
+
},
|
| 236 |
+
"audio_vae": {
|
| 237 |
+
"type": "univae",
|
| 238 |
+
"model_path": "models/vae/audio_only/recon_distill",
|
| 239 |
+
"hop_length": 960,
|
| 240 |
+
"latent_channels": 128,
|
| 241 |
+
"torch_dtype": "float32",
|
| 242 |
+
"compile_encode": true,
|
| 243 |
+
"compile_encode_fullgraph": false,
|
| 244 |
+
"compile_encode_mode": "reduce-overhead",
|
| 245 |
+
"branch": "audio",
|
| 246 |
+
"use_ema": false
|
| 247 |
+
},
|
| 248 |
+
"transformer_video": {
|
| 249 |
+
"arch": "zimage",
|
| 250 |
+
"all_patch_size": [
|
| 251 |
+
1
|
| 252 |
+
],
|
| 253 |
+
"all_f_patch_size": [
|
| 254 |
+
1
|
| 255 |
+
],
|
| 256 |
+
"in_channels": 48,
|
| 257 |
+
"dim": 1920,
|
| 258 |
+
"n_layers": 18,
|
| 259 |
+
"n_refiner_layers": 2,
|
| 260 |
+
"n_heads": 15,
|
| 261 |
+
"n_kv_heads": 15,
|
| 262 |
+
"norm_eps": 1e-05,
|
| 263 |
+
"qk_norm": true,
|
| 264 |
+
"rope_theta": 256.0,
|
| 265 |
+
"t_scale": 1000.0,
|
| 266 |
+
"use_timestep": true,
|
| 267 |
+
"predict_target": "v",
|
| 268 |
+
"axes_dims": [
|
| 269 |
+
16,
|
| 270 |
+
56,
|
| 271 |
+
56
|
| 272 |
+
],
|
| 273 |
+
"axes_lens": [
|
| 274 |
+
1024,
|
| 275 |
+
512,
|
| 276 |
+
512
|
| 277 |
+
],
|
| 278 |
+
"compile_model": true,
|
| 279 |
+
"attention_backend": null
|
| 280 |
+
},
|
| 281 |
+
"transformer_audio": {
|
| 282 |
+
"arch": "zimage",
|
| 283 |
+
"all_patch_size": [
|
| 284 |
+
1
|
| 285 |
+
],
|
| 286 |
+
"all_f_patch_size": [
|
| 287 |
+
1
|
| 288 |
+
],
|
| 289 |
+
"in_channels": 128,
|
| 290 |
+
"dim": 1920,
|
| 291 |
+
"n_layers": 18,
|
| 292 |
+
"n_refiner_layers": 2,
|
| 293 |
+
"n_heads": 15,
|
| 294 |
+
"n_kv_heads": 15,
|
| 295 |
+
"norm_eps": 1e-05,
|
| 296 |
+
"qk_norm": true,
|
| 297 |
+
"rope_theta": 256.0,
|
| 298 |
+
"t_scale": 1000.0,
|
| 299 |
+
"use_timestep": true,
|
| 300 |
+
"predict_target": "v",
|
| 301 |
+
"axes_dims": [
|
| 302 |
+
16,
|
| 303 |
+
56,
|
| 304 |
+
56
|
| 305 |
+
],
|
| 306 |
+
"axes_lens": [
|
| 307 |
+
2048,
|
| 308 |
+
16,
|
| 309 |
+
16
|
| 310 |
+
],
|
| 311 |
+
"compile_model": true,
|
| 312 |
+
"attention_backend": null
|
| 313 |
+
},
|
| 314 |
+
"train": {
|
| 315 |
+
"seed": 42,
|
| 316 |
+
"validation_steps": 5000,
|
| 317 |
+
"validation_prompts": [
|
| 318 |
+
"a high-quality photo of a goldfish",
|
| 319 |
+
"a high-quality photo of a tiger shark",
|
| 320 |
+
"a high-quality photo of an ostrich",
|
| 321 |
+
"a high-quality photo of a tabby cat"
|
| 322 |
+
],
|
| 323 |
+
"validation_num_inference_steps": 20,
|
| 324 |
+
"validation_guidance_scale": 4.0,
|
| 325 |
+
"validation_cfg_normalization": false,
|
| 326 |
+
"validation_cfg_truncation": 1.0,
|
| 327 |
+
"validation_num_frames": null,
|
| 328 |
+
"validation_frame_size": null,
|
| 329 |
+
"validation_fps": null,
|
| 330 |
+
"validation_negative_prompts": null,
|
| 331 |
+
"shift_v": 5.0,
|
| 332 |
+
"shift_a": 3.0,
|
| 333 |
+
"validation_force_steps": [
|
| 334 |
+
0
|
| 335 |
+
]
|
| 336 |
+
}
|
| 337 |
+
}
|
models/dit/t2av/t2av_recon_distill/resolved_config.yaml
ADDED
|
@@ -0,0 +1,290 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
experiment:
|
| 2 |
+
name: t2av_recon_distill
|
| 3 |
+
output_dir: models/dit/t2av/t2av_recon_distill
|
| 4 |
+
dataset:
|
| 5 |
+
type: av_paired_jsonl
|
| 6 |
+
root: omitted_public_release_path
|
| 7 |
+
meta_path: null
|
| 8 |
+
jsonl_index_path: null
|
| 9 |
+
jsonl_path_field: video_path
|
| 10 |
+
jsonl_prompt_field: prompt_v2
|
| 11 |
+
jsonl_prompt_index_path: null
|
| 12 |
+
slave_path: ''
|
| 13 |
+
base_image_path: ''
|
| 14 |
+
split: train
|
| 15 |
+
image_size: 256
|
| 16 |
+
frame_size:
|
| 17 |
+
- 256
|
| 18 |
+
- 256
|
| 19 |
+
num_frames: 121
|
| 20 |
+
target_fps: 24.0
|
| 21 |
+
decode_backend: torchcodec
|
| 22 |
+
return_uint8: true
|
| 23 |
+
center_crop: true
|
| 24 |
+
random_flip: false
|
| 25 |
+
num_workers: 6
|
| 26 |
+
prefetch_factor: 2
|
| 27 |
+
pin_memory: true
|
| 28 |
+
drop_last: true
|
| 29 |
+
max_samples: null
|
| 30 |
+
cache_dir: .cache/omnivae
|
| 31 |
+
repeat: 1
|
| 32 |
+
recaption_prob: 0.0
|
| 33 |
+
captions_file: null
|
| 34 |
+
prompt_templates:
|
| 35 |
+
- a high-quality photo of {label}
|
| 36 |
+
use_full_label: false
|
| 37 |
+
metadata_paths: []
|
| 38 |
+
dataset_base_path: /
|
| 39 |
+
sample_rate: 48000
|
| 40 |
+
num_audio_samples: 242000
|
| 41 |
+
max_num_audio_samples: 1440000
|
| 42 |
+
mono: true
|
| 43 |
+
append_duration_suffix: false
|
| 44 |
+
duration_precision: 1
|
| 45 |
+
path_field: video_path
|
| 46 |
+
prompt_field: av_caption
|
| 47 |
+
sources:
|
| 48 |
+
- name: nonspeech_1000w_g2
|
| 49 |
+
path: data/train/nonspeech_1000w_group2_9376485.jsonl
|
| 50 |
+
weight: 0.5
|
| 51 |
+
- name: speech_1000w_g2
|
| 52 |
+
path: data/train/youtube_speech_10042814.jsonl
|
| 53 |
+
weight: 0.35
|
| 54 |
+
- name: documentary
|
| 55 |
+
path: data/train/documentary_2627844.jsonl
|
| 56 |
+
weight: 0.12
|
| 57 |
+
- name: movies
|
| 58 |
+
path: data/train/movies_8964574.jsonl
|
| 59 |
+
weight: 0.05
|
| 60 |
+
- name: chinese_drama
|
| 61 |
+
path: data/train/chinese_drama_3264550.jsonl
|
| 62 |
+
weight: 0.03
|
| 63 |
+
task_prefix_enabled: true
|
| 64 |
+
min_clip_duration_ratio: 0.99
|
| 65 |
+
text_encoder:
|
| 66 |
+
model_name_or_path: models/text_encoder/Qwen3.5-0.8B-Base
|
| 67 |
+
trust_remote_code: false
|
| 68 |
+
torch_dtype: bfloat16
|
| 69 |
+
attn_implementation: sdpa
|
| 70 |
+
disable_qwen3_5_fast_path: true
|
| 71 |
+
cache_enabled: false
|
| 72 |
+
compile_model: true
|
| 73 |
+
max_sequence_length: 512
|
| 74 |
+
local_files_only: true
|
| 75 |
+
scheduler:
|
| 76 |
+
model_name_or_path: models/dit/t2av/t2av_recon_distill
|
| 77 |
+
subfolder: scheduler
|
| 78 |
+
local_files_only: true
|
| 79 |
+
use_dynamic_shifting: false
|
| 80 |
+
transformer:
|
| 81 |
+
arch: zimage
|
| 82 |
+
backbone_name_or_path: Qwen/Qwen3-VL-2B-Instruct
|
| 83 |
+
backbone_torch_dtype: bfloat16
|
| 84 |
+
init_from_pretrained_backbone: true
|
| 85 |
+
text_config: null
|
| 86 |
+
trust_remote_code: false
|
| 87 |
+
local_files_only: false
|
| 88 |
+
attn_implementation: flex_attention
|
| 89 |
+
max_sequence_length: 512
|
| 90 |
+
all_patch_size:
|
| 91 |
+
- 1
|
| 92 |
+
all_f_patch_size:
|
| 93 |
+
- 1
|
| 94 |
+
in_channels: 16
|
| 95 |
+
dim: 2048
|
| 96 |
+
n_layers: 18
|
| 97 |
+
n_refiner_layers: 2
|
| 98 |
+
n_heads: 16
|
| 99 |
+
n_kv_heads: 16
|
| 100 |
+
norm_eps: 1.0e-05
|
| 101 |
+
qk_norm: true
|
| 102 |
+
rope_theta: 256.0
|
| 103 |
+
t_scale: 1000.0
|
| 104 |
+
use_timestep: true
|
| 105 |
+
predict_target: v
|
| 106 |
+
axes_dims:
|
| 107 |
+
- 16
|
| 108 |
+
- 56
|
| 109 |
+
- 56
|
| 110 |
+
axes_lens:
|
| 111 |
+
- 1024
|
| 112 |
+
- 512
|
| 113 |
+
- 512
|
| 114 |
+
compile_model: true
|
| 115 |
+
attention_backend: null
|
| 116 |
+
bridge_interval: 1
|
| 117 |
+
bridge_enabled: true
|
| 118 |
+
use_asymmetric_ati: false
|
| 119 |
+
a2v_window_size: 1
|
| 120 |
+
compile_bridges: true
|
| 121 |
+
compile_mode: default
|
| 122 |
+
compile_fullgraph: false
|
| 123 |
+
compile_dynamic: null
|
| 124 |
+
validation:
|
| 125 |
+
modes:
|
| 126 |
+
- audio_only
|
| 127 |
+
- video_only
|
| 128 |
+
- joint_av
|
| 129 |
+
joint_av_prompts:
|
| 130 |
+
name: versebench
|
| 131 |
+
jsonl_path: eval/data/t2av/versebench_minimal/versebench_t2av_infer_minimal.jsonl
|
| 132 |
+
text_field: av_caption
|
| 133 |
+
type_field: type
|
| 134 |
+
index_field: index
|
| 135 |
+
task_kind: t2av
|
| 136 |
+
append_duration_suffix: false
|
| 137 |
+
max_examples: null
|
| 138 |
+
video_only_prompts:
|
| 139 |
+
name: t2v_inline
|
| 140 |
+
max_examples: null
|
| 141 |
+
prompts:
|
| 142 |
+
- A cinematic documentary shot of a three-dimensional topographical map, clouds
|
| 143 |
+
drifting over islands, somber historical lighting.
|
| 144 |
+
- A tense cinematic scene inside a dimly lit historical palace hall, guards rushing
|
| 145 |
+
through a wooden corridor, dramatic torchlight.
|
| 146 |
+
- A close-up cinematic drama shot of a young woman lit by cool blue light, anxious
|
| 147 |
+
expression, soft early 2000s television style.
|
| 148 |
+
- A cinematic wide shot of ocean waves rolling onto a sandy beach at sunset, realistic
|
| 149 |
+
lighting, gentle camera movement.
|
| 150 |
+
- A young woman laughing while chatting with a friend at a sunny outdoor cafe.
|
| 151 |
+
- An old man telling a story to a group of children sitting around him in a park.
|
| 152 |
+
- A street musician playing guitar and singing on a busy city sidewalk.
|
| 153 |
+
- A golden retriever running across a grassy field on a bright afternoon.
|
| 154 |
+
- Cherry blossoms gently falling along a quiet path in spring.
|
| 155 |
+
- A bowl of steaming noodles on a wooden table in a cozy small restaurant.
|
| 156 |
+
audio_only_prompt_sets:
|
| 157 |
+
- name: basetts_valid
|
| 158 |
+
task_kind: tts
|
| 159 |
+
jsonl_path: examples/eval/t2a_tts_basetts_sample.jsonl
|
| 160 |
+
text_field: text
|
| 161 |
+
type_field: type
|
| 162 |
+
index_field: index
|
| 163 |
+
append_duration_suffix: true
|
| 164 |
+
duration_precision: 1
|
| 165 |
+
max_examples: 8
|
| 166 |
+
- name: tta_general_en
|
| 167 |
+
task_kind: tta
|
| 168 |
+
jsonl_path: examples/eval/t2a_tta_general_en.jsonl
|
| 169 |
+
text_field: text
|
| 170 |
+
type_field: type
|
| 171 |
+
index_field: index
|
| 172 |
+
append_duration_suffix: true
|
| 173 |
+
duration_precision: 1
|
| 174 |
+
max_examples: null
|
| 175 |
+
num_inference_steps: 50
|
| 176 |
+
video_guidance_scale: 4.0
|
| 177 |
+
audio_guidance_scale: 4.0
|
| 178 |
+
cfg_normalization: false
|
| 179 |
+
max_wandb_samples_per_source: 10
|
| 180 |
+
cfg_modes:
|
| 181 |
+
- simple
|
| 182 |
+
- dual
|
| 183 |
+
video_text_guidance: 4.0
|
| 184 |
+
video_modality_guidance: 4.0
|
| 185 |
+
audio_text_guidance: 4.0
|
| 186 |
+
audio_modality_guidance: 4.0
|
| 187 |
+
video_frame_size:
|
| 188 |
+
- 256
|
| 189 |
+
- 256
|
| 190 |
+
video_num_frames: 121
|
| 191 |
+
video_fps: 24.0
|
| 192 |
+
audio_duration_seconds: 5.0417
|
| 193 |
+
vae:
|
| 194 |
+
type: univae
|
| 195 |
+
model_name_or_path: models/vae/video_only/recon_distill
|
| 196 |
+
torch_dtype: bfloat16
|
| 197 |
+
local_files_only: true
|
| 198 |
+
wan_chunk_mode: parallel
|
| 199 |
+
compile_encode: true
|
| 200 |
+
compile_encode_mode: reduce-overhead
|
| 201 |
+
compile_encode_fullgraph: false
|
| 202 |
+
branch: video
|
| 203 |
+
use_ema: false
|
| 204 |
+
audio_vae:
|
| 205 |
+
type: univae
|
| 206 |
+
model_path: models/vae/audio_only/recon_distill
|
| 207 |
+
hop_length: 960
|
| 208 |
+
latent_channels: 128
|
| 209 |
+
torch_dtype: float32
|
| 210 |
+
compile_encode: true
|
| 211 |
+
compile_encode_fullgraph: false
|
| 212 |
+
compile_encode_mode: reduce-overhead
|
| 213 |
+
branch: audio
|
| 214 |
+
use_ema: false
|
| 215 |
+
transformer_video:
|
| 216 |
+
arch: zimage
|
| 217 |
+
all_patch_size:
|
| 218 |
+
- 1
|
| 219 |
+
all_f_patch_size:
|
| 220 |
+
- 1
|
| 221 |
+
in_channels: 48
|
| 222 |
+
dim: 1920
|
| 223 |
+
n_layers: 18
|
| 224 |
+
n_refiner_layers: 2
|
| 225 |
+
n_heads: 15
|
| 226 |
+
n_kv_heads: 15
|
| 227 |
+
norm_eps: 1.0e-05
|
| 228 |
+
qk_norm: true
|
| 229 |
+
rope_theta: 256.0
|
| 230 |
+
t_scale: 1000.0
|
| 231 |
+
use_timestep: true
|
| 232 |
+
predict_target: v
|
| 233 |
+
axes_dims:
|
| 234 |
+
- 16
|
| 235 |
+
- 56
|
| 236 |
+
- 56
|
| 237 |
+
axes_lens:
|
| 238 |
+
- 1024
|
| 239 |
+
- 512
|
| 240 |
+
- 512
|
| 241 |
+
compile_model: true
|
| 242 |
+
attention_backend: null
|
| 243 |
+
transformer_audio:
|
| 244 |
+
arch: zimage
|
| 245 |
+
all_patch_size:
|
| 246 |
+
- 1
|
| 247 |
+
all_f_patch_size:
|
| 248 |
+
- 1
|
| 249 |
+
in_channels: 128
|
| 250 |
+
dim: 1920
|
| 251 |
+
n_layers: 18
|
| 252 |
+
n_refiner_layers: 2
|
| 253 |
+
n_heads: 15
|
| 254 |
+
n_kv_heads: 15
|
| 255 |
+
norm_eps: 1.0e-05
|
| 256 |
+
qk_norm: true
|
| 257 |
+
rope_theta: 256.0
|
| 258 |
+
t_scale: 1000.0
|
| 259 |
+
use_timestep: true
|
| 260 |
+
predict_target: v
|
| 261 |
+
axes_dims:
|
| 262 |
+
- 16
|
| 263 |
+
- 56
|
| 264 |
+
- 56
|
| 265 |
+
axes_lens:
|
| 266 |
+
- 2048
|
| 267 |
+
- 16
|
| 268 |
+
- 16
|
| 269 |
+
compile_model: true
|
| 270 |
+
attention_backend: null
|
| 271 |
+
train:
|
| 272 |
+
seed: 42
|
| 273 |
+
validation_steps: 5000
|
| 274 |
+
validation_prompts:
|
| 275 |
+
- a high-quality photo of a goldfish
|
| 276 |
+
- a high-quality photo of a tiger shark
|
| 277 |
+
- a high-quality photo of an ostrich
|
| 278 |
+
- a high-quality photo of a tabby cat
|
| 279 |
+
validation_num_inference_steps: 20
|
| 280 |
+
validation_guidance_scale: 4.0
|
| 281 |
+
validation_cfg_normalization: false
|
| 282 |
+
validation_cfg_truncation: 1.0
|
| 283 |
+
validation_num_frames: null
|
| 284 |
+
validation_frame_size: null
|
| 285 |
+
validation_fps: null
|
| 286 |
+
validation_negative_prompts: null
|
| 287 |
+
shift_v: 5.0
|
| 288 |
+
shift_a: 3.0
|
| 289 |
+
validation_force_steps:
|
| 290 |
+
- 0
|
models/dit/t2av/t2av_recon_distill/scheduler/scheduler_config.json
ADDED
|
@@ -0,0 +1,18 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"_class_name": "FlowMatchEulerDiscreteScheduler",
|
| 3 |
+
"_diffusers_version": "0.37.1",
|
| 4 |
+
"base_image_seq_len": 256,
|
| 5 |
+
"base_shift": 0.5,
|
| 6 |
+
"invert_sigmas": false,
|
| 7 |
+
"max_image_seq_len": 4096,
|
| 8 |
+
"max_shift": 1.15,
|
| 9 |
+
"num_train_timesteps": 1000,
|
| 10 |
+
"shift": 3.0,
|
| 11 |
+
"shift_terminal": null,
|
| 12 |
+
"stochastic_sampling": false,
|
| 13 |
+
"time_shift_type": "exponential",
|
| 14 |
+
"use_beta_sigmas": false,
|
| 15 |
+
"use_dynamic_shifting": false,
|
| 16 |
+
"use_exponential_sigmas": false,
|
| 17 |
+
"use_karras_sigmas": false
|
| 18 |
+
}
|
models/dit/t2av/t2av_recon_distill/tokenizer/chat_template.jinja
ADDED
|
@@ -0,0 +1,154 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{%- set image_count = namespace(value=0) %}
|
| 2 |
+
{%- set video_count = namespace(value=0) %}
|
| 3 |
+
{%- macro render_content(content, do_vision_count, is_system_content=false) %}
|
| 4 |
+
{%- if content is string %}
|
| 5 |
+
{{- content }}
|
| 6 |
+
{%- elif content is iterable and content is not mapping %}
|
| 7 |
+
{%- for item in content %}
|
| 8 |
+
{%- if 'image' in item or 'image_url' in item or item.type == 'image' %}
|
| 9 |
+
{%- if is_system_content %}
|
| 10 |
+
{{- raise_exception('System message cannot contain images.') }}
|
| 11 |
+
{%- endif %}
|
| 12 |
+
{%- if do_vision_count %}
|
| 13 |
+
{%- set image_count.value = image_count.value + 1 %}
|
| 14 |
+
{%- endif %}
|
| 15 |
+
{%- if add_vision_id %}
|
| 16 |
+
{{- 'Picture ' ~ image_count.value ~ ': ' }}
|
| 17 |
+
{%- endif %}
|
| 18 |
+
{{- '<|vision_start|><|image_pad|><|vision_end|>' }}
|
| 19 |
+
{%- elif 'video' in item or item.type == 'video' %}
|
| 20 |
+
{%- if is_system_content %}
|
| 21 |
+
{{- raise_exception('System message cannot contain videos.') }}
|
| 22 |
+
{%- endif %}
|
| 23 |
+
{%- if do_vision_count %}
|
| 24 |
+
{%- set video_count.value = video_count.value + 1 %}
|
| 25 |
+
{%- endif %}
|
| 26 |
+
{%- if add_vision_id %}
|
| 27 |
+
{{- 'Video ' ~ video_count.value ~ ': ' }}
|
| 28 |
+
{%- endif %}
|
| 29 |
+
{{- '<|vision_start|><|video_pad|><|vision_end|>' }}
|
| 30 |
+
{%- elif 'text' in item %}
|
| 31 |
+
{{- item.text }}
|
| 32 |
+
{%- else %}
|
| 33 |
+
{{- raise_exception('Unexpected item type in content.') }}
|
| 34 |
+
{%- endif %}
|
| 35 |
+
{%- endfor %}
|
| 36 |
+
{%- elif content is none or content is undefined %}
|
| 37 |
+
{{- '' }}
|
| 38 |
+
{%- else %}
|
| 39 |
+
{{- raise_exception('Unexpected content type.') }}
|
| 40 |
+
{%- endif %}
|
| 41 |
+
{%- endmacro %}
|
| 42 |
+
{%- if not messages %}
|
| 43 |
+
{{- raise_exception('No messages provided.') }}
|
| 44 |
+
{%- endif %}
|
| 45 |
+
{%- if tools and tools is iterable and tools is not mapping %}
|
| 46 |
+
{{- '<|im_start|>system\n' }}
|
| 47 |
+
{{- "# Tools\n\nYou have access to the following functions:\n\n<tools>" }}
|
| 48 |
+
{%- for tool in tools %}
|
| 49 |
+
{{- "\n" }}
|
| 50 |
+
{{- tool | tojson }}
|
| 51 |
+
{%- endfor %}
|
| 52 |
+
{{- "\n</tools>" }}
|
| 53 |
+
{{- '\n\nIf you choose to call a function ONLY reply in the following format with NO suffix:\n\n<tool_call>\n<function=example_function_name>\n<parameter=example_parameter_1>\nvalue_1\n</parameter>\n<parameter=example_parameter_2>\nThis is the value for the second parameter\nthat can span\nmultiple lines\n</parameter>\n</function>\n</tool_call>\n\n<IMPORTANT>\nReminder:\n- Function calls MUST follow the specified format: an inner <function=...></function> block must be nested within <tool_call></tool_call> XML tags\n- Required parameters MUST be specified\n- You may provide optional reasoning for your function call in natural language BEFORE the function call, but NOT after\n- If there is no function call available, answer the question like normal with your current knowledge and do not tell the user about function calls\n</IMPORTANT>' }}
|
| 54 |
+
{%- if messages[0].role == 'system' %}
|
| 55 |
+
{%- set content = render_content(messages[0].content, false, true)|trim %}
|
| 56 |
+
{%- if content %}
|
| 57 |
+
{{- '\n\n' + content }}
|
| 58 |
+
{%- endif %}
|
| 59 |
+
{%- endif %}
|
| 60 |
+
{{- '<|im_end|>\n' }}
|
| 61 |
+
{%- else %}
|
| 62 |
+
{%- if messages[0].role == 'system' %}
|
| 63 |
+
{%- set content = render_content(messages[0].content, false, true)|trim %}
|
| 64 |
+
{{- '<|im_start|>system\n' + content + '<|im_end|>\n' }}
|
| 65 |
+
{%- endif %}
|
| 66 |
+
{%- endif %}
|
| 67 |
+
{%- set ns = namespace(multi_step_tool=true, last_query_index=messages|length - 1) %}
|
| 68 |
+
{%- for message in messages[::-1] %}
|
| 69 |
+
{%- set index = (messages|length - 1) - loop.index0 %}
|
| 70 |
+
{%- if ns.multi_step_tool and message.role == "user" %}
|
| 71 |
+
{%- set content = render_content(message.content, false)|trim %}
|
| 72 |
+
{%- if not(content.startswith('<tool_response>') and content.endswith('</tool_response>')) %}
|
| 73 |
+
{%- set ns.multi_step_tool = false %}
|
| 74 |
+
{%- set ns.last_query_index = index %}
|
| 75 |
+
{%- endif %}
|
| 76 |
+
{%- endif %}
|
| 77 |
+
{%- endfor %}
|
| 78 |
+
{%- if ns.multi_step_tool %}
|
| 79 |
+
{{- raise_exception('No user query found in messages.') }}
|
| 80 |
+
{%- endif %}
|
| 81 |
+
{%- for message in messages %}
|
| 82 |
+
{%- set content = render_content(message.content, true)|trim %}
|
| 83 |
+
{%- if message.role == "system" %}
|
| 84 |
+
{%- if not loop.first %}
|
| 85 |
+
{{- raise_exception('System message must be at the beginning.') }}
|
| 86 |
+
{%- endif %}
|
| 87 |
+
{%- elif message.role == "user" %}
|
| 88 |
+
{{- '<|im_start|>' + message.role + '\n' + content + '<|im_end|>' + '\n' }}
|
| 89 |
+
{%- elif message.role == "assistant" %}
|
| 90 |
+
{%- set reasoning_content = '' %}
|
| 91 |
+
{%- if message.reasoning_content is string %}
|
| 92 |
+
{%- set reasoning_content = message.reasoning_content %}
|
| 93 |
+
{%- else %}
|
| 94 |
+
{%- if '</think>' in content %}
|
| 95 |
+
{%- set reasoning_content = content.split('</think>')[0].rstrip('\n').split('<think>')[-1].lstrip('\n') %}
|
| 96 |
+
{%- set content = content.split('</think>')[-1].lstrip('\n') %}
|
| 97 |
+
{%- endif %}
|
| 98 |
+
{%- endif %}
|
| 99 |
+
{%- set reasoning_content = reasoning_content|trim %}
|
| 100 |
+
{%- if loop.index0 > ns.last_query_index %}
|
| 101 |
+
{{- '<|im_start|>' + message.role + '\n<think>\n' + reasoning_content + '\n</think>\n\n' + content }}
|
| 102 |
+
{%- else %}
|
| 103 |
+
{{- '<|im_start|>' + message.role + '\n' + content }}
|
| 104 |
+
{%- endif %}
|
| 105 |
+
{%- if message.tool_calls and message.tool_calls is iterable and message.tool_calls is not mapping %}
|
| 106 |
+
{%- for tool_call in message.tool_calls %}
|
| 107 |
+
{%- if tool_call.function is defined %}
|
| 108 |
+
{%- set tool_call = tool_call.function %}
|
| 109 |
+
{%- endif %}
|
| 110 |
+
{%- if loop.first %}
|
| 111 |
+
{%- if content|trim %}
|
| 112 |
+
{{- '\n\n<tool_call>\n<function=' + tool_call.name + '>\n' }}
|
| 113 |
+
{%- else %}
|
| 114 |
+
{{- '<tool_call>\n<function=' + tool_call.name + '>\n' }}
|
| 115 |
+
{%- endif %}
|
| 116 |
+
{%- else %}
|
| 117 |
+
{{- '\n<tool_call>\n<function=' + tool_call.name + '>\n' }}
|
| 118 |
+
{%- endif %}
|
| 119 |
+
{%- if tool_call.arguments is defined %}
|
| 120 |
+
{%- for args_name, args_value in tool_call.arguments|items %}
|
| 121 |
+
{{- '<parameter=' + args_name + '>\n' }}
|
| 122 |
+
{%- set args_value = args_value | tojson | safe if args_value is mapping or (args_value is sequence and args_value is not string) else args_value | string %}
|
| 123 |
+
{{- args_value }}
|
| 124 |
+
{{- '\n</parameter>\n' }}
|
| 125 |
+
{%- endfor %}
|
| 126 |
+
{%- endif %}
|
| 127 |
+
{{- '</function>\n</tool_call>' }}
|
| 128 |
+
{%- endfor %}
|
| 129 |
+
{%- endif %}
|
| 130 |
+
{{- '<|im_end|>\n' }}
|
| 131 |
+
{%- elif message.role == "tool" %}
|
| 132 |
+
{%- if loop.previtem and loop.previtem.role != "tool" %}
|
| 133 |
+
{{- '<|im_start|>user' }}
|
| 134 |
+
{%- endif %}
|
| 135 |
+
{{- '\n<tool_response>\n' }}
|
| 136 |
+
{{- content }}
|
| 137 |
+
{{- '\n</tool_response>' }}
|
| 138 |
+
{%- if not loop.last and loop.nextitem.role != "tool" %}
|
| 139 |
+
{{- '<|im_end|>\n' }}
|
| 140 |
+
{%- elif loop.last %}
|
| 141 |
+
{{- '<|im_end|>\n' }}
|
| 142 |
+
{%- endif %}
|
| 143 |
+
{%- else %}
|
| 144 |
+
{{- raise_exception('Unexpected message role.') }}
|
| 145 |
+
{%- endif %}
|
| 146 |
+
{%- endfor %}
|
| 147 |
+
{%- if add_generation_prompt %}
|
| 148 |
+
{{- '<|im_start|>assistant\n' }}
|
| 149 |
+
{%- if enable_thinking is defined and enable_thinking is true %}
|
| 150 |
+
{{- '<think>\n' }}
|
| 151 |
+
{%- else %}
|
| 152 |
+
{{- '<think>\n\n</think>\n\n' }}
|
| 153 |
+
{%- endif %}
|
| 154 |
+
{%- endif %}
|
models/dit/t2av/t2av_recon_distill/tokenizer/tokenizer_config.json
ADDED
|
@@ -0,0 +1,31 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"add_prefix_space": false,
|
| 3 |
+
"audio_bos_token": "<|audio_start|>",
|
| 4 |
+
"audio_eos_token": "<|audio_end|>",
|
| 5 |
+
"audio_token": "<|audio_pad|>",
|
| 6 |
+
"backend": "tokenizers",
|
| 7 |
+
"bos_token": null,
|
| 8 |
+
"clean_up_tokenization_spaces": false,
|
| 9 |
+
"eos_token": "<|endoftext|>",
|
| 10 |
+
"errors": "replace",
|
| 11 |
+
"image_token": "<|image_pad|>",
|
| 12 |
+
"is_local": false,
|
| 13 |
+
"model_max_length": 262144,
|
| 14 |
+
"model_specific_special_tokens": {
|
| 15 |
+
"audio_bos_token": "<|audio_start|>",
|
| 16 |
+
"audio_eos_token": "<|audio_end|>",
|
| 17 |
+
"audio_token": "<|audio_pad|>",
|
| 18 |
+
"image_token": "<|image_pad|>",
|
| 19 |
+
"video_token": "<|video_pad|>",
|
| 20 |
+
"vision_bos_token": "<|vision_start|>",
|
| 21 |
+
"vision_eos_token": "<|vision_end|>"
|
| 22 |
+
},
|
| 23 |
+
"pad_token": "<|endoftext|>",
|
| 24 |
+
"pretokenize_regex": "(?i:'s|'t|'re|'ve|'m|'ll|'d)|[^\\r\\n\\p{L}\\p{N}]?[\\p{L}\\p{M}]+|\\p{N}| ?[^\\s\\p{L}\\p{M}\\p{N}]+[\\r\\n]*|\\s*[\\r\\n]+|\\s+(?!\\S)|\\s+",
|
| 25 |
+
"split_special_tokens": false,
|
| 26 |
+
"tokenizer_class": "TokenizersBackend",
|
| 27 |
+
"unk_token": null,
|
| 28 |
+
"video_token": "<|video_pad|>",
|
| 29 |
+
"vision_bos_token": "<|vision_start|>",
|
| 30 |
+
"vision_eos_token": "<|vision_end|>"
|
| 31 |
+
}
|
models/dit/t2av/t2av_recon_distill/transformer_audio/config.json
ADDED
|
@@ -0,0 +1,32 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"_class_name": "ZImageTransformer2DModel",
|
| 3 |
+
"_diffusers_version": "0.37.1",
|
| 4 |
+
"all_f_patch_size": [
|
| 5 |
+
1
|
| 6 |
+
],
|
| 7 |
+
"all_patch_size": [
|
| 8 |
+
1
|
| 9 |
+
],
|
| 10 |
+
"axes_dims": [
|
| 11 |
+
16,
|
| 12 |
+
56,
|
| 13 |
+
56
|
| 14 |
+
],
|
| 15 |
+
"axes_lens": [
|
| 16 |
+
2048,
|
| 17 |
+
16,
|
| 18 |
+
16
|
| 19 |
+
],
|
| 20 |
+
"cap_feat_dim": 1024,
|
| 21 |
+
"dim": 1920,
|
| 22 |
+
"in_channels": 128,
|
| 23 |
+
"n_heads": 15,
|
| 24 |
+
"n_kv_heads": 15,
|
| 25 |
+
"n_layers": 18,
|
| 26 |
+
"n_refiner_layers": 2,
|
| 27 |
+
"norm_eps": 1e-05,
|
| 28 |
+
"qk_norm": true,
|
| 29 |
+
"rope_theta": 256.0,
|
| 30 |
+
"siglip_feat_dim": null,
|
| 31 |
+
"t_scale": 1000.0
|
| 32 |
+
}
|
models/dit/t2av/t2av_recon_distill/transformer_video/config.json
ADDED
|
@@ -0,0 +1,32 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"_class_name": "ZImageTransformer2DModel",
|
| 3 |
+
"_diffusers_version": "0.37.1",
|
| 4 |
+
"all_f_patch_size": [
|
| 5 |
+
1
|
| 6 |
+
],
|
| 7 |
+
"all_patch_size": [
|
| 8 |
+
1
|
| 9 |
+
],
|
| 10 |
+
"axes_dims": [
|
| 11 |
+
16,
|
| 12 |
+
56,
|
| 13 |
+
56
|
| 14 |
+
],
|
| 15 |
+
"axes_lens": [
|
| 16 |
+
1024,
|
| 17 |
+
512,
|
| 18 |
+
512
|
| 19 |
+
],
|
| 20 |
+
"cap_feat_dim": 1024,
|
| 21 |
+
"dim": 1920,
|
| 22 |
+
"in_channels": 48,
|
| 23 |
+
"n_heads": 15,
|
| 24 |
+
"n_kv_heads": 15,
|
| 25 |
+
"n_layers": 18,
|
| 26 |
+
"n_refiner_layers": 2,
|
| 27 |
+
"norm_eps": 1e-05,
|
| 28 |
+
"qk_norm": true,
|
| 29 |
+
"rope_theta": 256.0,
|
| 30 |
+
"siglip_feat_dim": null,
|
| 31 |
+
"t_scale": 1000.0
|
| 32 |
+
}
|
models/dit/t2av/t2av_recon_distill_avclip/bridges/bridge_config.json
ADDED
|
@@ -0,0 +1,9 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"bridge_interval": 1,
|
| 3 |
+
"use_asymmetric_ati": false,
|
| 4 |
+
"a2v_window_size": 1,
|
| 5 |
+
"n_bridges": 18,
|
| 6 |
+
"dim": 1920,
|
| 7 |
+
"n_heads": 15,
|
| 8 |
+
"head_dim": 128
|
| 9 |
+
}
|
models/dit/t2av/t2av_recon_distill_avclip/metadata.json
ADDED
|
@@ -0,0 +1,29 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"export_format": "omnivae_generation_inference_package_v1",
|
| 3 |
+
"inference_only": true,
|
| 4 |
+
"task": "t2av",
|
| 5 |
+
"name": "t2av_recon_distill_avclip",
|
| 6 |
+
"source_experiment": "2_t2av_recon_distill_avclip_lr2",
|
| 7 |
+
"exported_at_utc": "2026-06-07T21:30:31+00:00",
|
| 8 |
+
"text_encoder_model_name_or_path": "models/text_encoder/Qwen3.5-0.8B-Base",
|
| 9 |
+
"vae_model_name_or_path": "models/vae/audio_video/recon_distill_avclip",
|
| 10 |
+
"required_subdirs": [
|
| 11 |
+
"transformer_video",
|
| 12 |
+
"transformer_audio",
|
| 13 |
+
"bridges",
|
| 14 |
+
"tokenizer",
|
| 15 |
+
"scheduler"
|
| 16 |
+
],
|
| 17 |
+
"video_vae_model_name_or_path": "models/vae/audio_video/recon_distill_avclip",
|
| 18 |
+
"audio_vae_model_path": "models/vae/audio_only/recon_distill_avclip_ft_decoder",
|
| 19 |
+
"joint_av": true,
|
| 20 |
+
"release_vae_paths_rewritten": true,
|
| 21 |
+
"release_experiment_family": "recon_distill_avclip",
|
| 22 |
+
"release_path_note": "VAE paths are relative to OMNIVAE_RELEASE_ROOT/models/vae. AVCLIP audio branches use ft_decoder checkpoints.",
|
| 23 |
+
"source_step": 200000,
|
| 24 |
+
"release_checkpoint_step": 200000,
|
| 25 |
+
"release_laion_checkpoint_name": "checkpoint-00200000",
|
| 26 |
+
"source_experiment_original_name": "2_t2av_recon_distill_avclip_lr2",
|
| 27 |
+
"source_checkpoint_provenance": "internal training checkpoint path omitted; use release_checkpoint_step and this package directory.",
|
| 28 |
+
"release_package_path": "models/dit/t2av/t2av_recon_distill_avclip"
|
| 29 |
+
}
|
models/dit/t2av/t2av_recon_distill_avclip/resolved_config.json
ADDED
|
@@ -0,0 +1,337 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"experiment": {
|
| 3 |
+
"name": "t2av_recon_distill_avclip",
|
| 4 |
+
"output_dir": "models/dit/t2av/t2av_recon_distill_avclip"
|
| 5 |
+
},
|
| 6 |
+
"dataset": {
|
| 7 |
+
"type": "av_paired_jsonl",
|
| 8 |
+
"root": "omitted_public_release_path",
|
| 9 |
+
"meta_path": null,
|
| 10 |
+
"jsonl_index_path": null,
|
| 11 |
+
"jsonl_path_field": "video_path",
|
| 12 |
+
"jsonl_prompt_field": "prompt_v2",
|
| 13 |
+
"jsonl_prompt_index_path": null,
|
| 14 |
+
"slave_path": "",
|
| 15 |
+
"base_image_path": "",
|
| 16 |
+
"split": "train",
|
| 17 |
+
"image_size": 256,
|
| 18 |
+
"frame_size": [
|
| 19 |
+
256,
|
| 20 |
+
256
|
| 21 |
+
],
|
| 22 |
+
"num_frames": 121,
|
| 23 |
+
"target_fps": 24.0,
|
| 24 |
+
"decode_backend": "torchcodec",
|
| 25 |
+
"return_uint8": true,
|
| 26 |
+
"center_crop": true,
|
| 27 |
+
"random_flip": false,
|
| 28 |
+
"num_workers": 6,
|
| 29 |
+
"prefetch_factor": 2,
|
| 30 |
+
"pin_memory": true,
|
| 31 |
+
"drop_last": true,
|
| 32 |
+
"max_samples": null,
|
| 33 |
+
"cache_dir": ".cache/omnivae",
|
| 34 |
+
"repeat": 1,
|
| 35 |
+
"recaption_prob": 0.0,
|
| 36 |
+
"captions_file": null,
|
| 37 |
+
"prompt_templates": [
|
| 38 |
+
"a high-quality photo of {label}"
|
| 39 |
+
],
|
| 40 |
+
"use_full_label": false,
|
| 41 |
+
"metadata_paths": [],
|
| 42 |
+
"dataset_base_path": "/",
|
| 43 |
+
"sample_rate": 48000,
|
| 44 |
+
"num_audio_samples": 242000,
|
| 45 |
+
"max_num_audio_samples": 1440000,
|
| 46 |
+
"mono": true,
|
| 47 |
+
"append_duration_suffix": false,
|
| 48 |
+
"duration_precision": 1,
|
| 49 |
+
"path_field": "video_path",
|
| 50 |
+
"prompt_field": "av_caption",
|
| 51 |
+
"sources": [
|
| 52 |
+
{
|
| 53 |
+
"name": "nonspeech_1000w_g2",
|
| 54 |
+
"path": "data/train/nonspeech_1000w_group2_9376485.jsonl",
|
| 55 |
+
"weight": 0.5
|
| 56 |
+
},
|
| 57 |
+
{
|
| 58 |
+
"name": "speech_1000w_g2",
|
| 59 |
+
"path": "data/train/youtube_speech_10042814.jsonl",
|
| 60 |
+
"weight": 0.35
|
| 61 |
+
},
|
| 62 |
+
{
|
| 63 |
+
"name": "documentary",
|
| 64 |
+
"path": "data/train/documentary_2627844.jsonl",
|
| 65 |
+
"weight": 0.12
|
| 66 |
+
},
|
| 67 |
+
{
|
| 68 |
+
"name": "movies",
|
| 69 |
+
"path": "data/train/movies_8964574.jsonl",
|
| 70 |
+
"weight": 0.05
|
| 71 |
+
},
|
| 72 |
+
{
|
| 73 |
+
"name": "chinese_drama",
|
| 74 |
+
"path": "data/train/chinese_drama_3264550.jsonl",
|
| 75 |
+
"weight": 0.03
|
| 76 |
+
}
|
| 77 |
+
],
|
| 78 |
+
"task_prefix_enabled": true,
|
| 79 |
+
"min_clip_duration_ratio": 0.99
|
| 80 |
+
},
|
| 81 |
+
"text_encoder": {
|
| 82 |
+
"model_name_or_path": "models/text_encoder/Qwen3.5-0.8B-Base",
|
| 83 |
+
"trust_remote_code": false,
|
| 84 |
+
"torch_dtype": "bfloat16",
|
| 85 |
+
"attn_implementation": "sdpa",
|
| 86 |
+
"disable_qwen3_5_fast_path": true,
|
| 87 |
+
"cache_enabled": false,
|
| 88 |
+
"compile_model": true,
|
| 89 |
+
"max_sequence_length": 512,
|
| 90 |
+
"local_files_only": true
|
| 91 |
+
},
|
| 92 |
+
"scheduler": {
|
| 93 |
+
"model_name_or_path": "models/dit/t2av/t2av_recon_distill_avclip",
|
| 94 |
+
"subfolder": "scheduler",
|
| 95 |
+
"local_files_only": true,
|
| 96 |
+
"use_dynamic_shifting": false
|
| 97 |
+
},
|
| 98 |
+
"transformer": {
|
| 99 |
+
"arch": "zimage",
|
| 100 |
+
"backbone_name_or_path": "Qwen/Qwen3-VL-2B-Instruct",
|
| 101 |
+
"backbone_torch_dtype": "bfloat16",
|
| 102 |
+
"init_from_pretrained_backbone": true,
|
| 103 |
+
"text_config": null,
|
| 104 |
+
"trust_remote_code": false,
|
| 105 |
+
"local_files_only": false,
|
| 106 |
+
"attn_implementation": "flex_attention",
|
| 107 |
+
"max_sequence_length": 512,
|
| 108 |
+
"all_patch_size": [
|
| 109 |
+
1
|
| 110 |
+
],
|
| 111 |
+
"all_f_patch_size": [
|
| 112 |
+
1
|
| 113 |
+
],
|
| 114 |
+
"in_channels": 16,
|
| 115 |
+
"dim": 2048,
|
| 116 |
+
"n_layers": 18,
|
| 117 |
+
"n_refiner_layers": 2,
|
| 118 |
+
"n_heads": 16,
|
| 119 |
+
"n_kv_heads": 16,
|
| 120 |
+
"norm_eps": 1e-05,
|
| 121 |
+
"qk_norm": true,
|
| 122 |
+
"rope_theta": 256.0,
|
| 123 |
+
"t_scale": 1000.0,
|
| 124 |
+
"use_timestep": true,
|
| 125 |
+
"predict_target": "v",
|
| 126 |
+
"axes_dims": [
|
| 127 |
+
16,
|
| 128 |
+
56,
|
| 129 |
+
56
|
| 130 |
+
],
|
| 131 |
+
"axes_lens": [
|
| 132 |
+
1024,
|
| 133 |
+
512,
|
| 134 |
+
512
|
| 135 |
+
],
|
| 136 |
+
"compile_model": true,
|
| 137 |
+
"attention_backend": null,
|
| 138 |
+
"bridge_interval": 1,
|
| 139 |
+
"bridge_enabled": true,
|
| 140 |
+
"use_asymmetric_ati": false,
|
| 141 |
+
"a2v_window_size": 1,
|
| 142 |
+
"compile_bridges": true,
|
| 143 |
+
"compile_mode": "default",
|
| 144 |
+
"compile_fullgraph": false,
|
| 145 |
+
"compile_dynamic": null
|
| 146 |
+
},
|
| 147 |
+
"validation": {
|
| 148 |
+
"modes": [
|
| 149 |
+
"audio_only",
|
| 150 |
+
"video_only",
|
| 151 |
+
"joint_av"
|
| 152 |
+
],
|
| 153 |
+
"joint_av_prompts": {
|
| 154 |
+
"name": "versebench",
|
| 155 |
+
"jsonl_path": "eval/data/t2av/versebench_minimal/versebench_t2av_infer_minimal.jsonl",
|
| 156 |
+
"text_field": "av_caption",
|
| 157 |
+
"type_field": "type",
|
| 158 |
+
"index_field": "index",
|
| 159 |
+
"task_kind": "t2av",
|
| 160 |
+
"append_duration_suffix": false,
|
| 161 |
+
"max_examples": null
|
| 162 |
+
},
|
| 163 |
+
"video_only_prompts": {
|
| 164 |
+
"name": "t2v_inline",
|
| 165 |
+
"max_examples": null,
|
| 166 |
+
"prompts": [
|
| 167 |
+
"A cinematic documentary shot of a three-dimensional topographical map, clouds drifting over islands, somber historical lighting.",
|
| 168 |
+
"A tense cinematic scene inside a dimly lit historical palace hall, guards rushing through a wooden corridor, dramatic torchlight.",
|
| 169 |
+
"A close-up cinematic drama shot of a young woman lit by cool blue light, anxious expression, soft early 2000s television style.",
|
| 170 |
+
"A cinematic wide shot of ocean waves rolling onto a sandy beach at sunset, realistic lighting, gentle camera movement.",
|
| 171 |
+
"A young woman laughing while chatting with a friend at a sunny outdoor cafe.",
|
| 172 |
+
"An old man telling a story to a group of children sitting around him in a park.",
|
| 173 |
+
"A street musician playing guitar and singing on a busy city sidewalk.",
|
| 174 |
+
"A golden retriever running across a grassy field on a bright afternoon.",
|
| 175 |
+
"Cherry blossoms gently falling along a quiet path in spring.",
|
| 176 |
+
"A bowl of steaming noodles on a wooden table in a cozy small restaurant."
|
| 177 |
+
]
|
| 178 |
+
},
|
| 179 |
+
"audio_only_prompt_sets": [
|
| 180 |
+
{
|
| 181 |
+
"name": "basetts_valid",
|
| 182 |
+
"task_kind": "tts",
|
| 183 |
+
"jsonl_path": "examples/eval/t2a_tts_basetts_sample.jsonl",
|
| 184 |
+
"text_field": "text",
|
| 185 |
+
"type_field": "type",
|
| 186 |
+
"index_field": "index",
|
| 187 |
+
"append_duration_suffix": true,
|
| 188 |
+
"duration_precision": 1,
|
| 189 |
+
"max_examples": 8
|
| 190 |
+
},
|
| 191 |
+
{
|
| 192 |
+
"name": "tta_general_en",
|
| 193 |
+
"task_kind": "tta",
|
| 194 |
+
"jsonl_path": "examples/eval/t2a_tta_general_en.jsonl",
|
| 195 |
+
"text_field": "text",
|
| 196 |
+
"type_field": "type",
|
| 197 |
+
"index_field": "index",
|
| 198 |
+
"append_duration_suffix": true,
|
| 199 |
+
"duration_precision": 1,
|
| 200 |
+
"max_examples": null
|
| 201 |
+
}
|
| 202 |
+
],
|
| 203 |
+
"num_inference_steps": 50,
|
| 204 |
+
"video_guidance_scale": 4.0,
|
| 205 |
+
"audio_guidance_scale": 4.0,
|
| 206 |
+
"cfg_normalization": false,
|
| 207 |
+
"max_wandb_samples_per_source": 10,
|
| 208 |
+
"cfg_modes": [
|
| 209 |
+
"simple",
|
| 210 |
+
"dual"
|
| 211 |
+
],
|
| 212 |
+
"video_text_guidance": 4.0,
|
| 213 |
+
"video_modality_guidance": 4.0,
|
| 214 |
+
"audio_text_guidance": 4.0,
|
| 215 |
+
"audio_modality_guidance": 4.0,
|
| 216 |
+
"video_frame_size": [
|
| 217 |
+
256,
|
| 218 |
+
256
|
| 219 |
+
],
|
| 220 |
+
"video_num_frames": 121,
|
| 221 |
+
"video_fps": 24.0,
|
| 222 |
+
"audio_duration_seconds": 5.0417
|
| 223 |
+
},
|
| 224 |
+
"vae": {
|
| 225 |
+
"type": "univae",
|
| 226 |
+
"model_name_or_path": "models/vae/audio_video/recon_distill_avclip",
|
| 227 |
+
"torch_dtype": "bfloat16",
|
| 228 |
+
"local_files_only": true,
|
| 229 |
+
"wan_chunk_mode": "parallel",
|
| 230 |
+
"compile_encode": true,
|
| 231 |
+
"compile_encode_mode": "reduce-overhead",
|
| 232 |
+
"compile_encode_fullgraph": false,
|
| 233 |
+
"branch": "video",
|
| 234 |
+
"use_ema": false
|
| 235 |
+
},
|
| 236 |
+
"audio_vae": {
|
| 237 |
+
"type": "univae",
|
| 238 |
+
"model_path": "models/vae/audio_only/recon_distill_avclip_ft_decoder",
|
| 239 |
+
"hop_length": 960,
|
| 240 |
+
"latent_channels": 128,
|
| 241 |
+
"torch_dtype": "float32",
|
| 242 |
+
"compile_encode": true,
|
| 243 |
+
"compile_encode_fullgraph": false,
|
| 244 |
+
"compile_encode_mode": "reduce-overhead",
|
| 245 |
+
"branch": "audio",
|
| 246 |
+
"use_ema": false
|
| 247 |
+
},
|
| 248 |
+
"transformer_video": {
|
| 249 |
+
"arch": "zimage",
|
| 250 |
+
"all_patch_size": [
|
| 251 |
+
1
|
| 252 |
+
],
|
| 253 |
+
"all_f_patch_size": [
|
| 254 |
+
1
|
| 255 |
+
],
|
| 256 |
+
"in_channels": 48,
|
| 257 |
+
"dim": 1920,
|
| 258 |
+
"n_layers": 18,
|
| 259 |
+
"n_refiner_layers": 2,
|
| 260 |
+
"n_heads": 15,
|
| 261 |
+
"n_kv_heads": 15,
|
| 262 |
+
"norm_eps": 1e-05,
|
| 263 |
+
"qk_norm": true,
|
| 264 |
+
"rope_theta": 256.0,
|
| 265 |
+
"t_scale": 1000.0,
|
| 266 |
+
"use_timestep": true,
|
| 267 |
+
"predict_target": "v",
|
| 268 |
+
"axes_dims": [
|
| 269 |
+
16,
|
| 270 |
+
56,
|
| 271 |
+
56
|
| 272 |
+
],
|
| 273 |
+
"axes_lens": [
|
| 274 |
+
1024,
|
| 275 |
+
512,
|
| 276 |
+
512
|
| 277 |
+
],
|
| 278 |
+
"compile_model": true,
|
| 279 |
+
"attention_backend": null
|
| 280 |
+
},
|
| 281 |
+
"transformer_audio": {
|
| 282 |
+
"arch": "zimage",
|
| 283 |
+
"all_patch_size": [
|
| 284 |
+
1
|
| 285 |
+
],
|
| 286 |
+
"all_f_patch_size": [
|
| 287 |
+
1
|
| 288 |
+
],
|
| 289 |
+
"in_channels": 128,
|
| 290 |
+
"dim": 1920,
|
| 291 |
+
"n_layers": 18,
|
| 292 |
+
"n_refiner_layers": 2,
|
| 293 |
+
"n_heads": 15,
|
| 294 |
+
"n_kv_heads": 15,
|
| 295 |
+
"norm_eps": 1e-05,
|
| 296 |
+
"qk_norm": true,
|
| 297 |
+
"rope_theta": 256.0,
|
| 298 |
+
"t_scale": 1000.0,
|
| 299 |
+
"use_timestep": true,
|
| 300 |
+
"predict_target": "v",
|
| 301 |
+
"axes_dims": [
|
| 302 |
+
16,
|
| 303 |
+
56,
|
| 304 |
+
56
|
| 305 |
+
],
|
| 306 |
+
"axes_lens": [
|
| 307 |
+
2048,
|
| 308 |
+
16,
|
| 309 |
+
16
|
| 310 |
+
],
|
| 311 |
+
"compile_model": true,
|
| 312 |
+
"attention_backend": null
|
| 313 |
+
},
|
| 314 |
+
"train": {
|
| 315 |
+
"seed": 42,
|
| 316 |
+
"validation_steps": 5000,
|
| 317 |
+
"validation_prompts": [
|
| 318 |
+
"a high-quality photo of a goldfish",
|
| 319 |
+
"a high-quality photo of a tiger shark",
|
| 320 |
+
"a high-quality photo of an ostrich",
|
| 321 |
+
"a high-quality photo of a tabby cat"
|
| 322 |
+
],
|
| 323 |
+
"validation_num_inference_steps": 20,
|
| 324 |
+
"validation_guidance_scale": 4.0,
|
| 325 |
+
"validation_cfg_normalization": false,
|
| 326 |
+
"validation_cfg_truncation": 1.0,
|
| 327 |
+
"validation_num_frames": null,
|
| 328 |
+
"validation_frame_size": null,
|
| 329 |
+
"validation_fps": null,
|
| 330 |
+
"validation_negative_prompts": null,
|
| 331 |
+
"shift_v": 5.0,
|
| 332 |
+
"shift_a": 3.0,
|
| 333 |
+
"validation_force_steps": [
|
| 334 |
+
0
|
| 335 |
+
]
|
| 336 |
+
}
|
| 337 |
+
}
|
models/dit/t2av/t2av_recon_distill_avclip/resolved_config.yaml
ADDED
|
@@ -0,0 +1,290 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
experiment:
|
| 2 |
+
name: t2av_recon_distill_avclip
|
| 3 |
+
output_dir: models/dit/t2av/t2av_recon_distill_avclip
|
| 4 |
+
dataset:
|
| 5 |
+
type: av_paired_jsonl
|
| 6 |
+
root: omitted_public_release_path
|
| 7 |
+
meta_path: null
|
| 8 |
+
jsonl_index_path: null
|
| 9 |
+
jsonl_path_field: video_path
|
| 10 |
+
jsonl_prompt_field: prompt_v2
|
| 11 |
+
jsonl_prompt_index_path: null
|
| 12 |
+
slave_path: ''
|
| 13 |
+
base_image_path: ''
|
| 14 |
+
split: train
|
| 15 |
+
image_size: 256
|
| 16 |
+
frame_size:
|
| 17 |
+
- 256
|
| 18 |
+
- 256
|
| 19 |
+
num_frames: 121
|
| 20 |
+
target_fps: 24.0
|
| 21 |
+
decode_backend: torchcodec
|
| 22 |
+
return_uint8: true
|
| 23 |
+
center_crop: true
|
| 24 |
+
random_flip: false
|
| 25 |
+
num_workers: 6
|
| 26 |
+
prefetch_factor: 2
|
| 27 |
+
pin_memory: true
|
| 28 |
+
drop_last: true
|
| 29 |
+
max_samples: null
|
| 30 |
+
cache_dir: .cache/omnivae
|
| 31 |
+
repeat: 1
|
| 32 |
+
recaption_prob: 0.0
|
| 33 |
+
captions_file: null
|
| 34 |
+
prompt_templates:
|
| 35 |
+
- a high-quality photo of {label}
|
| 36 |
+
use_full_label: false
|
| 37 |
+
metadata_paths: []
|
| 38 |
+
dataset_base_path: /
|
| 39 |
+
sample_rate: 48000
|
| 40 |
+
num_audio_samples: 242000
|
| 41 |
+
max_num_audio_samples: 1440000
|
| 42 |
+
mono: true
|
| 43 |
+
append_duration_suffix: false
|
| 44 |
+
duration_precision: 1
|
| 45 |
+
path_field: video_path
|
| 46 |
+
prompt_field: av_caption
|
| 47 |
+
sources:
|
| 48 |
+
- name: nonspeech_1000w_g2
|
| 49 |
+
path: data/train/nonspeech_1000w_group2_9376485.jsonl
|
| 50 |
+
weight: 0.5
|
| 51 |
+
- name: speech_1000w_g2
|
| 52 |
+
path: data/train/youtube_speech_10042814.jsonl
|
| 53 |
+
weight: 0.35
|
| 54 |
+
- name: documentary
|
| 55 |
+
path: data/train/documentary_2627844.jsonl
|
| 56 |
+
weight: 0.12
|
| 57 |
+
- name: movies
|
| 58 |
+
path: data/train/movies_8964574.jsonl
|
| 59 |
+
weight: 0.05
|
| 60 |
+
- name: chinese_drama
|
| 61 |
+
path: data/train/chinese_drama_3264550.jsonl
|
| 62 |
+
weight: 0.03
|
| 63 |
+
task_prefix_enabled: true
|
| 64 |
+
min_clip_duration_ratio: 0.99
|
| 65 |
+
text_encoder:
|
| 66 |
+
model_name_or_path: models/text_encoder/Qwen3.5-0.8B-Base
|
| 67 |
+
trust_remote_code: false
|
| 68 |
+
torch_dtype: bfloat16
|
| 69 |
+
attn_implementation: sdpa
|
| 70 |
+
disable_qwen3_5_fast_path: true
|
| 71 |
+
cache_enabled: false
|
| 72 |
+
compile_model: true
|
| 73 |
+
max_sequence_length: 512
|
| 74 |
+
local_files_only: true
|
| 75 |
+
scheduler:
|
| 76 |
+
model_name_or_path: models/dit/t2av/t2av_recon_distill_avclip
|
| 77 |
+
subfolder: scheduler
|
| 78 |
+
local_files_only: true
|
| 79 |
+
use_dynamic_shifting: false
|
| 80 |
+
transformer:
|
| 81 |
+
arch: zimage
|
| 82 |
+
backbone_name_or_path: Qwen/Qwen3-VL-2B-Instruct
|
| 83 |
+
backbone_torch_dtype: bfloat16
|
| 84 |
+
init_from_pretrained_backbone: true
|
| 85 |
+
text_config: null
|
| 86 |
+
trust_remote_code: false
|
| 87 |
+
local_files_only: false
|
| 88 |
+
attn_implementation: flex_attention
|
| 89 |
+
max_sequence_length: 512
|
| 90 |
+
all_patch_size:
|
| 91 |
+
- 1
|
| 92 |
+
all_f_patch_size:
|
| 93 |
+
- 1
|
| 94 |
+
in_channels: 16
|
| 95 |
+
dim: 2048
|
| 96 |
+
n_layers: 18
|
| 97 |
+
n_refiner_layers: 2
|
| 98 |
+
n_heads: 16
|
| 99 |
+
n_kv_heads: 16
|
| 100 |
+
norm_eps: 1.0e-05
|
| 101 |
+
qk_norm: true
|
| 102 |
+
rope_theta: 256.0
|
| 103 |
+
t_scale: 1000.0
|
| 104 |
+
use_timestep: true
|
| 105 |
+
predict_target: v
|
| 106 |
+
axes_dims:
|
| 107 |
+
- 16
|
| 108 |
+
- 56
|
| 109 |
+
- 56
|
| 110 |
+
axes_lens:
|
| 111 |
+
- 1024
|
| 112 |
+
- 512
|
| 113 |
+
- 512
|
| 114 |
+
compile_model: true
|
| 115 |
+
attention_backend: null
|
| 116 |
+
bridge_interval: 1
|
| 117 |
+
bridge_enabled: true
|
| 118 |
+
use_asymmetric_ati: false
|
| 119 |
+
a2v_window_size: 1
|
| 120 |
+
compile_bridges: true
|
| 121 |
+
compile_mode: default
|
| 122 |
+
compile_fullgraph: false
|
| 123 |
+
compile_dynamic: null
|
| 124 |
+
validation:
|
| 125 |
+
modes:
|
| 126 |
+
- audio_only
|
| 127 |
+
- video_only
|
| 128 |
+
- joint_av
|
| 129 |
+
joint_av_prompts:
|
| 130 |
+
name: versebench
|
| 131 |
+
jsonl_path: eval/data/t2av/versebench_minimal/versebench_t2av_infer_minimal.jsonl
|
| 132 |
+
text_field: av_caption
|
| 133 |
+
type_field: type
|
| 134 |
+
index_field: index
|
| 135 |
+
task_kind: t2av
|
| 136 |
+
append_duration_suffix: false
|
| 137 |
+
max_examples: null
|
| 138 |
+
video_only_prompts:
|
| 139 |
+
name: t2v_inline
|
| 140 |
+
max_examples: null
|
| 141 |
+
prompts:
|
| 142 |
+
- A cinematic documentary shot of a three-dimensional topographical map, clouds
|
| 143 |
+
drifting over islands, somber historical lighting.
|
| 144 |
+
- A tense cinematic scene inside a dimly lit historical palace hall, guards rushing
|
| 145 |
+
through a wooden corridor, dramatic torchlight.
|
| 146 |
+
- A close-up cinematic drama shot of a young woman lit by cool blue light, anxious
|
| 147 |
+
expression, soft early 2000s television style.
|
| 148 |
+
- A cinematic wide shot of ocean waves rolling onto a sandy beach at sunset, realistic
|
| 149 |
+
lighting, gentle camera movement.
|
| 150 |
+
- A young woman laughing while chatting with a friend at a sunny outdoor cafe.
|
| 151 |
+
- An old man telling a story to a group of children sitting around him in a park.
|
| 152 |
+
- A street musician playing guitar and singing on a busy city sidewalk.
|
| 153 |
+
- A golden retriever running across a grassy field on a bright afternoon.
|
| 154 |
+
- Cherry blossoms gently falling along a quiet path in spring.
|
| 155 |
+
- A bowl of steaming noodles on a wooden table in a cozy small restaurant.
|
| 156 |
+
audio_only_prompt_sets:
|
| 157 |
+
- name: basetts_valid
|
| 158 |
+
task_kind: tts
|
| 159 |
+
jsonl_path: examples/eval/t2a_tts_basetts_sample.jsonl
|
| 160 |
+
text_field: text
|
| 161 |
+
type_field: type
|
| 162 |
+
index_field: index
|
| 163 |
+
append_duration_suffix: true
|
| 164 |
+
duration_precision: 1
|
| 165 |
+
max_examples: 8
|
| 166 |
+
- name: tta_general_en
|
| 167 |
+
task_kind: tta
|
| 168 |
+
jsonl_path: examples/eval/t2a_tta_general_en.jsonl
|
| 169 |
+
text_field: text
|
| 170 |
+
type_field: type
|
| 171 |
+
index_field: index
|
| 172 |
+
append_duration_suffix: true
|
| 173 |
+
duration_precision: 1
|
| 174 |
+
max_examples: null
|
| 175 |
+
num_inference_steps: 50
|
| 176 |
+
video_guidance_scale: 4.0
|
| 177 |
+
audio_guidance_scale: 4.0
|
| 178 |
+
cfg_normalization: false
|
| 179 |
+
max_wandb_samples_per_source: 10
|
| 180 |
+
cfg_modes:
|
| 181 |
+
- simple
|
| 182 |
+
- dual
|
| 183 |
+
video_text_guidance: 4.0
|
| 184 |
+
video_modality_guidance: 4.0
|
| 185 |
+
audio_text_guidance: 4.0
|
| 186 |
+
audio_modality_guidance: 4.0
|
| 187 |
+
video_frame_size:
|
| 188 |
+
- 256
|
| 189 |
+
- 256
|
| 190 |
+
video_num_frames: 121
|
| 191 |
+
video_fps: 24.0
|
| 192 |
+
audio_duration_seconds: 5.0417
|
| 193 |
+
vae:
|
| 194 |
+
type: univae
|
| 195 |
+
model_name_or_path: models/vae/audio_video/recon_distill_avclip
|
| 196 |
+
torch_dtype: bfloat16
|
| 197 |
+
local_files_only: true
|
| 198 |
+
wan_chunk_mode: parallel
|
| 199 |
+
compile_encode: true
|
| 200 |
+
compile_encode_mode: reduce-overhead
|
| 201 |
+
compile_encode_fullgraph: false
|
| 202 |
+
branch: video
|
| 203 |
+
use_ema: false
|
| 204 |
+
audio_vae:
|
| 205 |
+
type: univae
|
| 206 |
+
model_path: models/vae/audio_only/recon_distill_avclip_ft_decoder
|
| 207 |
+
hop_length: 960
|
| 208 |
+
latent_channels: 128
|
| 209 |
+
torch_dtype: float32
|
| 210 |
+
compile_encode: true
|
| 211 |
+
compile_encode_fullgraph: false
|
| 212 |
+
compile_encode_mode: reduce-overhead
|
| 213 |
+
branch: audio
|
| 214 |
+
use_ema: false
|
| 215 |
+
transformer_video:
|
| 216 |
+
arch: zimage
|
| 217 |
+
all_patch_size:
|
| 218 |
+
- 1
|
| 219 |
+
all_f_patch_size:
|
| 220 |
+
- 1
|
| 221 |
+
in_channels: 48
|
| 222 |
+
dim: 1920
|
| 223 |
+
n_layers: 18
|
| 224 |
+
n_refiner_layers: 2
|
| 225 |
+
n_heads: 15
|
| 226 |
+
n_kv_heads: 15
|
| 227 |
+
norm_eps: 1.0e-05
|
| 228 |
+
qk_norm: true
|
| 229 |
+
rope_theta: 256.0
|
| 230 |
+
t_scale: 1000.0
|
| 231 |
+
use_timestep: true
|
| 232 |
+
predict_target: v
|
| 233 |
+
axes_dims:
|
| 234 |
+
- 16
|
| 235 |
+
- 56
|
| 236 |
+
- 56
|
| 237 |
+
axes_lens:
|
| 238 |
+
- 1024
|
| 239 |
+
- 512
|
| 240 |
+
- 512
|
| 241 |
+
compile_model: true
|
| 242 |
+
attention_backend: null
|
| 243 |
+
transformer_audio:
|
| 244 |
+
arch: zimage
|
| 245 |
+
all_patch_size:
|
| 246 |
+
- 1
|
| 247 |
+
all_f_patch_size:
|
| 248 |
+
- 1
|
| 249 |
+
in_channels: 128
|
| 250 |
+
dim: 1920
|
| 251 |
+
n_layers: 18
|
| 252 |
+
n_refiner_layers: 2
|
| 253 |
+
n_heads: 15
|
| 254 |
+
n_kv_heads: 15
|
| 255 |
+
norm_eps: 1.0e-05
|
| 256 |
+
qk_norm: true
|
| 257 |
+
rope_theta: 256.0
|
| 258 |
+
t_scale: 1000.0
|
| 259 |
+
use_timestep: true
|
| 260 |
+
predict_target: v
|
| 261 |
+
axes_dims:
|
| 262 |
+
- 16
|
| 263 |
+
- 56
|
| 264 |
+
- 56
|
| 265 |
+
axes_lens:
|
| 266 |
+
- 2048
|
| 267 |
+
- 16
|
| 268 |
+
- 16
|
| 269 |
+
compile_model: true
|
| 270 |
+
attention_backend: null
|
| 271 |
+
train:
|
| 272 |
+
seed: 42
|
| 273 |
+
validation_steps: 5000
|
| 274 |
+
validation_prompts:
|
| 275 |
+
- a high-quality photo of a goldfish
|
| 276 |
+
- a high-quality photo of a tiger shark
|
| 277 |
+
- a high-quality photo of an ostrich
|
| 278 |
+
- a high-quality photo of a tabby cat
|
| 279 |
+
validation_num_inference_steps: 20
|
| 280 |
+
validation_guidance_scale: 4.0
|
| 281 |
+
validation_cfg_normalization: false
|
| 282 |
+
validation_cfg_truncation: 1.0
|
| 283 |
+
validation_num_frames: null
|
| 284 |
+
validation_frame_size: null
|
| 285 |
+
validation_fps: null
|
| 286 |
+
validation_negative_prompts: null
|
| 287 |
+
shift_v: 5.0
|
| 288 |
+
shift_a: 3.0
|
| 289 |
+
validation_force_steps:
|
| 290 |
+
- 0
|
models/dit/t2av/t2av_recon_distill_avclip/scheduler/scheduler_config.json
ADDED
|
@@ -0,0 +1,18 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"_class_name": "FlowMatchEulerDiscreteScheduler",
|
| 3 |
+
"_diffusers_version": "0.37.1",
|
| 4 |
+
"base_image_seq_len": 256,
|
| 5 |
+
"base_shift": 0.5,
|
| 6 |
+
"invert_sigmas": false,
|
| 7 |
+
"max_image_seq_len": 4096,
|
| 8 |
+
"max_shift": 1.15,
|
| 9 |
+
"num_train_timesteps": 1000,
|
| 10 |
+
"shift": 3.0,
|
| 11 |
+
"shift_terminal": null,
|
| 12 |
+
"stochastic_sampling": false,
|
| 13 |
+
"time_shift_type": "exponential",
|
| 14 |
+
"use_beta_sigmas": false,
|
| 15 |
+
"use_dynamic_shifting": false,
|
| 16 |
+
"use_exponential_sigmas": false,
|
| 17 |
+
"use_karras_sigmas": false
|
| 18 |
+
}
|
models/dit/t2av/t2av_recon_distill_avclip/tokenizer/chat_template.jinja
ADDED
|
@@ -0,0 +1,154 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{%- set image_count = namespace(value=0) %}
|
| 2 |
+
{%- set video_count = namespace(value=0) %}
|
| 3 |
+
{%- macro render_content(content, do_vision_count, is_system_content=false) %}
|
| 4 |
+
{%- if content is string %}
|
| 5 |
+
{{- content }}
|
| 6 |
+
{%- elif content is iterable and content is not mapping %}
|
| 7 |
+
{%- for item in content %}
|
| 8 |
+
{%- if 'image' in item or 'image_url' in item or item.type == 'image' %}
|
| 9 |
+
{%- if is_system_content %}
|
| 10 |
+
{{- raise_exception('System message cannot contain images.') }}
|
| 11 |
+
{%- endif %}
|
| 12 |
+
{%- if do_vision_count %}
|
| 13 |
+
{%- set image_count.value = image_count.value + 1 %}
|
| 14 |
+
{%- endif %}
|
| 15 |
+
{%- if add_vision_id %}
|
| 16 |
+
{{- 'Picture ' ~ image_count.value ~ ': ' }}
|
| 17 |
+
{%- endif %}
|
| 18 |
+
{{- '<|vision_start|><|image_pad|><|vision_end|>' }}
|
| 19 |
+
{%- elif 'video' in item or item.type == 'video' %}
|
| 20 |
+
{%- if is_system_content %}
|
| 21 |
+
{{- raise_exception('System message cannot contain videos.') }}
|
| 22 |
+
{%- endif %}
|
| 23 |
+
{%- if do_vision_count %}
|
| 24 |
+
{%- set video_count.value = video_count.value + 1 %}
|
| 25 |
+
{%- endif %}
|
| 26 |
+
{%- if add_vision_id %}
|
| 27 |
+
{{- 'Video ' ~ video_count.value ~ ': ' }}
|
| 28 |
+
{%- endif %}
|
| 29 |
+
{{- '<|vision_start|><|video_pad|><|vision_end|>' }}
|
| 30 |
+
{%- elif 'text' in item %}
|
| 31 |
+
{{- item.text }}
|
| 32 |
+
{%- else %}
|
| 33 |
+
{{- raise_exception('Unexpected item type in content.') }}
|
| 34 |
+
{%- endif %}
|
| 35 |
+
{%- endfor %}
|
| 36 |
+
{%- elif content is none or content is undefined %}
|
| 37 |
+
{{- '' }}
|
| 38 |
+
{%- else %}
|
| 39 |
+
{{- raise_exception('Unexpected content type.') }}
|
| 40 |
+
{%- endif %}
|
| 41 |
+
{%- endmacro %}
|
| 42 |
+
{%- if not messages %}
|
| 43 |
+
{{- raise_exception('No messages provided.') }}
|
| 44 |
+
{%- endif %}
|
| 45 |
+
{%- if tools and tools is iterable and tools is not mapping %}
|
| 46 |
+
{{- '<|im_start|>system\n' }}
|
| 47 |
+
{{- "# Tools\n\nYou have access to the following functions:\n\n<tools>" }}
|
| 48 |
+
{%- for tool in tools %}
|
| 49 |
+
{{- "\n" }}
|
| 50 |
+
{{- tool | tojson }}
|
| 51 |
+
{%- endfor %}
|
| 52 |
+
{{- "\n</tools>" }}
|
| 53 |
+
{{- '\n\nIf you choose to call a function ONLY reply in the following format with NO suffix:\n\n<tool_call>\n<function=example_function_name>\n<parameter=example_parameter_1>\nvalue_1\n</parameter>\n<parameter=example_parameter_2>\nThis is the value for the second parameter\nthat can span\nmultiple lines\n</parameter>\n</function>\n</tool_call>\n\n<IMPORTANT>\nReminder:\n- Function calls MUST follow the specified format: an inner <function=...></function> block must be nested within <tool_call></tool_call> XML tags\n- Required parameters MUST be specified\n- You may provide optional reasoning for your function call in natural language BEFORE the function call, but NOT after\n- If there is no function call available, answer the question like normal with your current knowledge and do not tell the user about function calls\n</IMPORTANT>' }}
|
| 54 |
+
{%- if messages[0].role == 'system' %}
|
| 55 |
+
{%- set content = render_content(messages[0].content, false, true)|trim %}
|
| 56 |
+
{%- if content %}
|
| 57 |
+
{{- '\n\n' + content }}
|
| 58 |
+
{%- endif %}
|
| 59 |
+
{%- endif %}
|
| 60 |
+
{{- '<|im_end|>\n' }}
|
| 61 |
+
{%- else %}
|
| 62 |
+
{%- if messages[0].role == 'system' %}
|
| 63 |
+
{%- set content = render_content(messages[0].content, false, true)|trim %}
|
| 64 |
+
{{- '<|im_start|>system\n' + content + '<|im_end|>\n' }}
|
| 65 |
+
{%- endif %}
|
| 66 |
+
{%- endif %}
|
| 67 |
+
{%- set ns = namespace(multi_step_tool=true, last_query_index=messages|length - 1) %}
|
| 68 |
+
{%- for message in messages[::-1] %}
|
| 69 |
+
{%- set index = (messages|length - 1) - loop.index0 %}
|
| 70 |
+
{%- if ns.multi_step_tool and message.role == "user" %}
|
| 71 |
+
{%- set content = render_content(message.content, false)|trim %}
|
| 72 |
+
{%- if not(content.startswith('<tool_response>') and content.endswith('</tool_response>')) %}
|
| 73 |
+
{%- set ns.multi_step_tool = false %}
|
| 74 |
+
{%- set ns.last_query_index = index %}
|
| 75 |
+
{%- endif %}
|
| 76 |
+
{%- endif %}
|
| 77 |
+
{%- endfor %}
|
| 78 |
+
{%- if ns.multi_step_tool %}
|
| 79 |
+
{{- raise_exception('No user query found in messages.') }}
|
| 80 |
+
{%- endif %}
|
| 81 |
+
{%- for message in messages %}
|
| 82 |
+
{%- set content = render_content(message.content, true)|trim %}
|
| 83 |
+
{%- if message.role == "system" %}
|
| 84 |
+
{%- if not loop.first %}
|
| 85 |
+
{{- raise_exception('System message must be at the beginning.') }}
|
| 86 |
+
{%- endif %}
|
| 87 |
+
{%- elif message.role == "user" %}
|
| 88 |
+
{{- '<|im_start|>' + message.role + '\n' + content + '<|im_end|>' + '\n' }}
|
| 89 |
+
{%- elif message.role == "assistant" %}
|
| 90 |
+
{%- set reasoning_content = '' %}
|
| 91 |
+
{%- if message.reasoning_content is string %}
|
| 92 |
+
{%- set reasoning_content = message.reasoning_content %}
|
| 93 |
+
{%- else %}
|
| 94 |
+
{%- if '</think>' in content %}
|
| 95 |
+
{%- set reasoning_content = content.split('</think>')[0].rstrip('\n').split('<think>')[-1].lstrip('\n') %}
|
| 96 |
+
{%- set content = content.split('</think>')[-1].lstrip('\n') %}
|
| 97 |
+
{%- endif %}
|
| 98 |
+
{%- endif %}
|
| 99 |
+
{%- set reasoning_content = reasoning_content|trim %}
|
| 100 |
+
{%- if loop.index0 > ns.last_query_index %}
|
| 101 |
+
{{- '<|im_start|>' + message.role + '\n<think>\n' + reasoning_content + '\n</think>\n\n' + content }}
|
| 102 |
+
{%- else %}
|
| 103 |
+
{{- '<|im_start|>' + message.role + '\n' + content }}
|
| 104 |
+
{%- endif %}
|
| 105 |
+
{%- if message.tool_calls and message.tool_calls is iterable and message.tool_calls is not mapping %}
|
| 106 |
+
{%- for tool_call in message.tool_calls %}
|
| 107 |
+
{%- if tool_call.function is defined %}
|
| 108 |
+
{%- set tool_call = tool_call.function %}
|
| 109 |
+
{%- endif %}
|
| 110 |
+
{%- if loop.first %}
|
| 111 |
+
{%- if content|trim %}
|
| 112 |
+
{{- '\n\n<tool_call>\n<function=' + tool_call.name + '>\n' }}
|
| 113 |
+
{%- else %}
|
| 114 |
+
{{- '<tool_call>\n<function=' + tool_call.name + '>\n' }}
|
| 115 |
+
{%- endif %}
|
| 116 |
+
{%- else %}
|
| 117 |
+
{{- '\n<tool_call>\n<function=' + tool_call.name + '>\n' }}
|
| 118 |
+
{%- endif %}
|
| 119 |
+
{%- if tool_call.arguments is defined %}
|
| 120 |
+
{%- for args_name, args_value in tool_call.arguments|items %}
|
| 121 |
+
{{- '<parameter=' + args_name + '>\n' }}
|
| 122 |
+
{%- set args_value = args_value | tojson | safe if args_value is mapping or (args_value is sequence and args_value is not string) else args_value | string %}
|
| 123 |
+
{{- args_value }}
|
| 124 |
+
{{- '\n</parameter>\n' }}
|
| 125 |
+
{%- endfor %}
|
| 126 |
+
{%- endif %}
|
| 127 |
+
{{- '</function>\n</tool_call>' }}
|
| 128 |
+
{%- endfor %}
|
| 129 |
+
{%- endif %}
|
| 130 |
+
{{- '<|im_end|>\n' }}
|
| 131 |
+
{%- elif message.role == "tool" %}
|
| 132 |
+
{%- if loop.previtem and loop.previtem.role != "tool" %}
|
| 133 |
+
{{- '<|im_start|>user' }}
|
| 134 |
+
{%- endif %}
|
| 135 |
+
{{- '\n<tool_response>\n' }}
|
| 136 |
+
{{- content }}
|
| 137 |
+
{{- '\n</tool_response>' }}
|
| 138 |
+
{%- if not loop.last and loop.nextitem.role != "tool" %}
|
| 139 |
+
{{- '<|im_end|>\n' }}
|
| 140 |
+
{%- elif loop.last %}
|
| 141 |
+
{{- '<|im_end|>\n' }}
|
| 142 |
+
{%- endif %}
|
| 143 |
+
{%- else %}
|
| 144 |
+
{{- raise_exception('Unexpected message role.') }}
|
| 145 |
+
{%- endif %}
|
| 146 |
+
{%- endfor %}
|
| 147 |
+
{%- if add_generation_prompt %}
|
| 148 |
+
{{- '<|im_start|>assistant\n' }}
|
| 149 |
+
{%- if enable_thinking is defined and enable_thinking is true %}
|
| 150 |
+
{{- '<think>\n' }}
|
| 151 |
+
{%- else %}
|
| 152 |
+
{{- '<think>\n\n</think>\n\n' }}
|
| 153 |
+
{%- endif %}
|
| 154 |
+
{%- endif %}
|
models/dit/t2av/t2av_recon_distill_avclip/tokenizer/tokenizer_config.json
ADDED
|
@@ -0,0 +1,31 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"add_prefix_space": false,
|
| 3 |
+
"audio_bos_token": "<|audio_start|>",
|
| 4 |
+
"audio_eos_token": "<|audio_end|>",
|
| 5 |
+
"audio_token": "<|audio_pad|>",
|
| 6 |
+
"backend": "tokenizers",
|
| 7 |
+
"bos_token": null,
|
| 8 |
+
"clean_up_tokenization_spaces": false,
|
| 9 |
+
"eos_token": "<|endoftext|>",
|
| 10 |
+
"errors": "replace",
|
| 11 |
+
"image_token": "<|image_pad|>",
|
| 12 |
+
"is_local": false,
|
| 13 |
+
"model_max_length": 262144,
|
| 14 |
+
"model_specific_special_tokens": {
|
| 15 |
+
"audio_bos_token": "<|audio_start|>",
|
| 16 |
+
"audio_eos_token": "<|audio_end|>",
|
| 17 |
+
"audio_token": "<|audio_pad|>",
|
| 18 |
+
"image_token": "<|image_pad|>",
|
| 19 |
+
"video_token": "<|video_pad|>",
|
| 20 |
+
"vision_bos_token": "<|vision_start|>",
|
| 21 |
+
"vision_eos_token": "<|vision_end|>"
|
| 22 |
+
},
|
| 23 |
+
"pad_token": "<|endoftext|>",
|
| 24 |
+
"pretokenize_regex": "(?i:'s|'t|'re|'ve|'m|'ll|'d)|[^\\r\\n\\p{L}\\p{N}]?[\\p{L}\\p{M}]+|\\p{N}| ?[^\\s\\p{L}\\p{M}\\p{N}]+[\\r\\n]*|\\s*[\\r\\n]+|\\s+(?!\\S)|\\s+",
|
| 25 |
+
"split_special_tokens": false,
|
| 26 |
+
"tokenizer_class": "TokenizersBackend",
|
| 27 |
+
"unk_token": null,
|
| 28 |
+
"video_token": "<|video_pad|>",
|
| 29 |
+
"vision_bos_token": "<|vision_start|>",
|
| 30 |
+
"vision_eos_token": "<|vision_end|>"
|
| 31 |
+
}
|
models/dit/t2av/t2av_recon_distill_avclip/transformer_audio/config.json
ADDED
|
@@ -0,0 +1,32 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"_class_name": "ZImageTransformer2DModel",
|
| 3 |
+
"_diffusers_version": "0.37.1",
|
| 4 |
+
"all_f_patch_size": [
|
| 5 |
+
1
|
| 6 |
+
],
|
| 7 |
+
"all_patch_size": [
|
| 8 |
+
1
|
| 9 |
+
],
|
| 10 |
+
"axes_dims": [
|
| 11 |
+
16,
|
| 12 |
+
56,
|
| 13 |
+
56
|
| 14 |
+
],
|
| 15 |
+
"axes_lens": [
|
| 16 |
+
2048,
|
| 17 |
+
16,
|
| 18 |
+
16
|
| 19 |
+
],
|
| 20 |
+
"cap_feat_dim": 1024,
|
| 21 |
+
"dim": 1920,
|
| 22 |
+
"in_channels": 128,
|
| 23 |
+
"n_heads": 15,
|
| 24 |
+
"n_kv_heads": 15,
|
| 25 |
+
"n_layers": 18,
|
| 26 |
+
"n_refiner_layers": 2,
|
| 27 |
+
"norm_eps": 1e-05,
|
| 28 |
+
"qk_norm": true,
|
| 29 |
+
"rope_theta": 256.0,
|
| 30 |
+
"siglip_feat_dim": null,
|
| 31 |
+
"t_scale": 1000.0
|
| 32 |
+
}
|
models/dit/t2av/t2av_recon_distill_avclip/transformer_video/config.json
ADDED
|
@@ -0,0 +1,32 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"_class_name": "ZImageTransformer2DModel",
|
| 3 |
+
"_diffusers_version": "0.37.1",
|
| 4 |
+
"all_f_patch_size": [
|
| 5 |
+
1
|
| 6 |
+
],
|
| 7 |
+
"all_patch_size": [
|
| 8 |
+
1
|
| 9 |
+
],
|
| 10 |
+
"axes_dims": [
|
| 11 |
+
16,
|
| 12 |
+
56,
|
| 13 |
+
56
|
| 14 |
+
],
|
| 15 |
+
"axes_lens": [
|
| 16 |
+
1024,
|
| 17 |
+
512,
|
| 18 |
+
512
|
| 19 |
+
],
|
| 20 |
+
"cap_feat_dim": 1024,
|
| 21 |
+
"dim": 1920,
|
| 22 |
+
"in_channels": 48,
|
| 23 |
+
"n_heads": 15,
|
| 24 |
+
"n_kv_heads": 15,
|
| 25 |
+
"n_layers": 18,
|
| 26 |
+
"n_refiner_layers": 2,
|
| 27 |
+
"norm_eps": 1e-05,
|
| 28 |
+
"qk_norm": true,
|
| 29 |
+
"rope_theta": 256.0,
|
| 30 |
+
"siglip_feat_dim": null,
|
| 31 |
+
"t_scale": 1000.0
|
| 32 |
+
}
|
models/vae/audio_only/recon/config.yaml
ADDED
|
@@ -0,0 +1,254 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
seed: 1234
|
| 2 |
+
audio_sample_rate: 48000
|
| 3 |
+
num_frames: 121
|
| 4 |
+
resolution: 256
|
| 5 |
+
target_fps: 24
|
| 6 |
+
video_frame_sample_rate: 1
|
| 7 |
+
model:
|
| 8 |
+
video:
|
| 9 |
+
model_name: WanVAE22
|
| 10 |
+
model_config: scripts/causalvae/wanvae22_48dim.json
|
| 11 |
+
pretrained_model_name_or_path: null
|
| 12 |
+
audio:
|
| 13 |
+
audio_sample_rate: 48000
|
| 14 |
+
sample_rate: 48000
|
| 15 |
+
encoder_dim: 128
|
| 16 |
+
encoder_rates:
|
| 17 |
+
- 2
|
| 18 |
+
- 3
|
| 19 |
+
- 4
|
| 20 |
+
- 5
|
| 21 |
+
- 8
|
| 22 |
+
latent_dim: 128
|
| 23 |
+
decoder_dim: 2048
|
| 24 |
+
decoder_rates:
|
| 25 |
+
- 8
|
| 26 |
+
- 5
|
| 27 |
+
- 4
|
| 28 |
+
- 3
|
| 29 |
+
- 2
|
| 30 |
+
n_codebooks: 9
|
| 31 |
+
codebook_size: 1024
|
| 32 |
+
codebook_dim: 8
|
| 33 |
+
quantizer_dropout: false
|
| 34 |
+
continuous: true
|
| 35 |
+
pretrained_model_name_or_path: null
|
| 36 |
+
contrastive:
|
| 37 |
+
contrastive_use_mean: true
|
| 38 |
+
embed_dim: 512
|
| 39 |
+
segment_hidden_dim: 1024
|
| 40 |
+
global_hidden_dim: 1024
|
| 41 |
+
segment_count: null
|
| 42 |
+
init_scale: 0.07
|
| 43 |
+
clamp_scale_min: 0.001
|
| 44 |
+
clamp_scale_max: 0.5
|
| 45 |
+
gather_for_loss: true
|
| 46 |
+
num_negatives: 23
|
| 47 |
+
num_negative_videos: 63
|
| 48 |
+
use_sdpa: true
|
| 49 |
+
spatial_pool_mode: mean
|
| 50 |
+
spatial_merge_factor: 4
|
| 51 |
+
transformer_dim: 768
|
| 52 |
+
spatial_transformer_layers: 1
|
| 53 |
+
segment_transformer_layers: 1
|
| 54 |
+
global_transformer_layers: 1
|
| 55 |
+
use_segment_loss: false
|
| 56 |
+
use_global_loss: false
|
| 57 |
+
enabled: false
|
| 58 |
+
distill:
|
| 59 |
+
enabled: false
|
| 60 |
+
video_target_dim: 1152
|
| 61 |
+
image_target_dim: 1152
|
| 62 |
+
audio_target_dim: 1280
|
| 63 |
+
video_spatial_factor: 4
|
| 64 |
+
image_spatial_factor: 4
|
| 65 |
+
temporal_agg_ratio: 3
|
| 66 |
+
audio_distill_type: d_axis
|
| 67 |
+
distill_proj_type: conv
|
| 68 |
+
distill_use_conv3d: false
|
| 69 |
+
distill_proj_layers: 2
|
| 70 |
+
distill_proj_hidden_dim: 256
|
| 71 |
+
distill_proj_before_agg: true
|
| 72 |
+
distill_dim_schedule: fixed
|
| 73 |
+
distill_use_sampled: false
|
| 74 |
+
audio_proj_type: conv
|
| 75 |
+
audio_proj_layers: 2
|
| 76 |
+
audio_proj_hidden_dim: 512
|
| 77 |
+
llm:
|
| 78 |
+
enabled: false
|
| 79 |
+
llm_model_path: models/text_encoder/Qwen3.5-0.8B-Base
|
| 80 |
+
freeze_llm: false
|
| 81 |
+
include_first_frame: false
|
| 82 |
+
spatial_merge_factor: 4
|
| 83 |
+
temporal_merge_factor: 1
|
| 84 |
+
patch_embed_dim: 256
|
| 85 |
+
patch_stride: 2
|
| 86 |
+
spatial_merge_size: 2
|
| 87 |
+
audio_ds_hidden: 256
|
| 88 |
+
audio_ds_stride: 2
|
| 89 |
+
audio_inter_dim: 512
|
| 90 |
+
data:
|
| 91 |
+
train:
|
| 92 |
+
metadata_paths:
|
| 93 |
+
train_main: omitted_public_release_path
|
| 94 |
+
metadata_weights:
|
| 95 |
+
train_main: 1.0
|
| 96 |
+
use_file_processor: true
|
| 97 |
+
num_frames: 121
|
| 98 |
+
resolution: 256
|
| 99 |
+
video_frame_sample_rate: 1
|
| 100 |
+
target_fps: 24
|
| 101 |
+
audio_sample_rate: 48000
|
| 102 |
+
num_workers: 4
|
| 103 |
+
prefetch_factor: 2
|
| 104 |
+
val_video:
|
| 105 |
+
video_dir: omitted_public_release_path
|
| 106 |
+
num_frames: 121
|
| 107 |
+
resolution: 256
|
| 108 |
+
video_frame_sample_rate: 1
|
| 109 |
+
target_fps: 24
|
| 110 |
+
max_samples: 1000
|
| 111 |
+
batch_size: 1
|
| 112 |
+
val_audio:
|
| 113 |
+
audio_dir: omitted_public_release_path
|
| 114 |
+
audio_sample_rate: 48000
|
| 115 |
+
max_duration: 5.0
|
| 116 |
+
max_samples: 1000
|
| 117 |
+
batch_size: 1
|
| 118 |
+
val_contrastive:
|
| 119 |
+
jsonl_paths:
|
| 120 |
+
vggsound_valid: data/train/vggsound_valid_filtered.jsonl
|
| 121 |
+
ct_nonspeech: data/train/nonspeech_valid_10000.jsonl
|
| 122 |
+
ct_speech: data/train/speech_valid_10000.jsonl
|
| 123 |
+
num_frames: 121
|
| 124 |
+
resolution: 256
|
| 125 |
+
video_frame_sample_rate: 1
|
| 126 |
+
target_fps: 24
|
| 127 |
+
audio_sample_rate: 48000
|
| 128 |
+
max_samples: 20000
|
| 129 |
+
batch_size: 1
|
| 130 |
+
val_segment_num_negatives:
|
| 131 |
+
- 29
|
| 132 |
+
- 64
|
| 133 |
+
val_segment_num_negative_videos: ${model.contrastive.num_negative_videos}
|
| 134 |
+
val_global_num_negatives:
|
| 135 |
+
- 64
|
| 136 |
+
- 256
|
| 137 |
+
training:
|
| 138 |
+
max_steps: 500000
|
| 139 |
+
batch_size: 4
|
| 140 |
+
lr: 1.0e-05
|
| 141 |
+
weight_decay: 0.0001
|
| 142 |
+
betas:
|
| 143 |
+
- 0.9
|
| 144 |
+
- 0.999
|
| 145 |
+
max_grad_norm: 1.0
|
| 146 |
+
gradient_accumulation_steps: 1
|
| 147 |
+
dtype: fp32
|
| 148 |
+
video_vae_dtype: fp32
|
| 149 |
+
audio_vae_dtype: fp32
|
| 150 |
+
contrastive_dtype: bfloat16
|
| 151 |
+
llm_dtype: bfloat16
|
| 152 |
+
gradient_checkpointing: false
|
| 153 |
+
random_start: false
|
| 154 |
+
use_ema: false
|
| 155 |
+
ema_decay: 0.999
|
| 156 |
+
qk_norm: false
|
| 157 |
+
log_steps: 3
|
| 158 |
+
stdout_steps: 10
|
| 159 |
+
eval_steps: 2000
|
| 160 |
+
save_steps: 2000
|
| 161 |
+
max_checkpoints: 5000
|
| 162 |
+
loss:
|
| 163 |
+
use_video_recon: false
|
| 164 |
+
use_audio_recon: true
|
| 165 |
+
use_segment_contrastive: false
|
| 166 |
+
use_global_contrastive: false
|
| 167 |
+
lambda_group_video: 1.0
|
| 168 |
+
lambda_group_audio: 1.0
|
| 169 |
+
lambda_group_contrastive: 1.0
|
| 170 |
+
lambda_video_recon: 1.0
|
| 171 |
+
lambda_video_kl: 0.0165
|
| 172 |
+
lambda_video_lpips: 1.0
|
| 173 |
+
video_loss_reduction: sum
|
| 174 |
+
lambda_audio_mel: 1.0
|
| 175 |
+
lambda_audio_recon: 0.0
|
| 176 |
+
lambda_audio_kl: 0.5
|
| 177 |
+
lambda_segment_contrastive: 1.0
|
| 178 |
+
lambda_global_contrastive: 1.0
|
| 179 |
+
global_contrastive_start_steps: 0
|
| 180 |
+
adaptive_loss_balance: true
|
| 181 |
+
adaptive_balance_audio_ratio: 0.5
|
| 182 |
+
adaptive_balance_contrastive_ratio: 0.5
|
| 183 |
+
adaptive_loss_balance_by_uncertainty: false
|
| 184 |
+
uncertainty_warmup_steps: 100
|
| 185 |
+
use_semantic_distill: false
|
| 186 |
+
encoder_fps: 4
|
| 187 |
+
encoder_resolution: 256
|
| 188 |
+
distill_vision_layer: 18
|
| 189 |
+
distill_audio_layer: 24
|
| 190 |
+
lambda_distill_image_cosine: 1.0
|
| 191 |
+
lambda_distill_image_distance: 1.0
|
| 192 |
+
lambda_distill_video_cosine: 1.0
|
| 193 |
+
lambda_distill_video_distance: 1.0
|
| 194 |
+
lambda_distill_audio_d_axis: 120.0
|
| 195 |
+
lambda_distill_audio_t_axis: 1.0
|
| 196 |
+
distill_w_hyper: 0.1
|
| 197 |
+
distill_audio_type: d_axis
|
| 198 |
+
lambda_group_distill: 1.0
|
| 199 |
+
distill_spatial_norm: true
|
| 200 |
+
distill_spatial_norm_gamma: 0.6
|
| 201 |
+
distill_margin_cosine: 0.0
|
| 202 |
+
distill_margin_distance: 0.25
|
| 203 |
+
distill_use_dist_matrix: false
|
| 204 |
+
adaptive_distill_balance: false
|
| 205 |
+
adaptive_distill_video_ratio: 0.1
|
| 206 |
+
adaptive_distill_audio_ratio: 0.1
|
| 207 |
+
use_llm_caption: false
|
| 208 |
+
lambda_group_llm: 1.0
|
| 209 |
+
lambda_llm_caption: 1.0
|
| 210 |
+
mel_loss_kwargs:
|
| 211 |
+
sample_rate: 48000
|
| 212 |
+
n_mels:
|
| 213 |
+
- 5
|
| 214 |
+
- 10
|
| 215 |
+
- 20
|
| 216 |
+
- 40
|
| 217 |
+
- 80
|
| 218 |
+
- 160
|
| 219 |
+
- 320
|
| 220 |
+
window_lengths:
|
| 221 |
+
- 32
|
| 222 |
+
- 64
|
| 223 |
+
- 128
|
| 224 |
+
- 256
|
| 225 |
+
- 512
|
| 226 |
+
- 1024
|
| 227 |
+
- 2048
|
| 228 |
+
weights:
|
| 229 |
+
- 15
|
| 230 |
+
- 15
|
| 231 |
+
- 15
|
| 232 |
+
- 15
|
| 233 |
+
- 15
|
| 234 |
+
- 15
|
| 235 |
+
- 15
|
| 236 |
+
pow: 1.0
|
| 237 |
+
mel_fmin:
|
| 238 |
+
- 0.0
|
| 239 |
+
- 0.0
|
| 240 |
+
- 0.0
|
| 241 |
+
- 0.0
|
| 242 |
+
- 0.0
|
| 243 |
+
- 0.0
|
| 244 |
+
- 0.0
|
| 245 |
+
mel_fmax:
|
| 246 |
+
- null
|
| 247 |
+
- null
|
| 248 |
+
- null
|
| 249 |
+
- null
|
| 250 |
+
- null
|
| 251 |
+
- null
|
| 252 |
+
- null
|
| 253 |
+
output:
|
| 254 |
+
exp_root: outputs
|
models/vae/audio_only/recon/metadata.json
ADDED
|
@@ -0,0 +1,8 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"package_type": "vae",
|
| 3 |
+
"modality": "audio_only",
|
| 4 |
+
"name": "recon",
|
| 5 |
+
"config": "models/vae/audio_only/recon/config.yaml",
|
| 6 |
+
"checkpoint": "models/vae/audio_only/recon/state_dict.pt",
|
| 7 |
+
"notes": "Audio reconstruction VAE checkpoint without training state."
|
| 8 |
+
}
|
models/vae/audio_only/recon_avclip_ft_decoder/config.yaml
ADDED
|
@@ -0,0 +1,259 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
seed: 1234
|
| 2 |
+
audio_sample_rate: 48000
|
| 3 |
+
num_frames: 121
|
| 4 |
+
resolution: 256
|
| 5 |
+
target_fps: 24
|
| 6 |
+
video_frame_sample_rate: 1
|
| 7 |
+
model:
|
| 8 |
+
video:
|
| 9 |
+
model_name: WanVAE22
|
| 10 |
+
model_config: scripts/causalvae/wanvae22_48dim.json
|
| 11 |
+
pretrained_model_name_or_path: null
|
| 12 |
+
audio:
|
| 13 |
+
audio_sample_rate: 48000
|
| 14 |
+
sample_rate: 48000
|
| 15 |
+
encoder_dim: 128
|
| 16 |
+
encoder_rates:
|
| 17 |
+
- 2
|
| 18 |
+
- 3
|
| 19 |
+
- 4
|
| 20 |
+
- 5
|
| 21 |
+
- 8
|
| 22 |
+
latent_dim: 128
|
| 23 |
+
decoder_dim: 2048
|
| 24 |
+
decoder_rates:
|
| 25 |
+
- 8
|
| 26 |
+
- 5
|
| 27 |
+
- 4
|
| 28 |
+
- 3
|
| 29 |
+
- 2
|
| 30 |
+
n_codebooks: 9
|
| 31 |
+
codebook_size: 1024
|
| 32 |
+
codebook_dim: 8
|
| 33 |
+
quantizer_dropout: false
|
| 34 |
+
continuous: true
|
| 35 |
+
pretrained_model_name_or_path: null
|
| 36 |
+
contrastive:
|
| 37 |
+
contrastive_use_mean: true
|
| 38 |
+
embed_dim: 512
|
| 39 |
+
segment_hidden_dim: 1024
|
| 40 |
+
global_hidden_dim: 1024
|
| 41 |
+
segment_count: null
|
| 42 |
+
init_scale: 0.07
|
| 43 |
+
clamp_scale_min: 0.001
|
| 44 |
+
clamp_scale_max: 0.5
|
| 45 |
+
gather_for_loss: true
|
| 46 |
+
num_negatives: 23
|
| 47 |
+
num_negative_videos: 63
|
| 48 |
+
use_sdpa: true
|
| 49 |
+
spatial_pool_mode: mean
|
| 50 |
+
spatial_merge_factor: 4
|
| 51 |
+
transformer_dim: 768
|
| 52 |
+
spatial_transformer_layers: 1
|
| 53 |
+
segment_transformer_layers: 1
|
| 54 |
+
global_transformer_layers: 1
|
| 55 |
+
use_segment_loss: false
|
| 56 |
+
use_global_loss: false
|
| 57 |
+
enabled: false
|
| 58 |
+
distill:
|
| 59 |
+
enabled: false
|
| 60 |
+
video_target_dim: 1152
|
| 61 |
+
image_target_dim: 1152
|
| 62 |
+
audio_target_dim: 1280
|
| 63 |
+
video_spatial_factor: 4
|
| 64 |
+
image_spatial_factor: 4
|
| 65 |
+
temporal_agg_ratio: 3
|
| 66 |
+
audio_distill_type: d_axis
|
| 67 |
+
distill_proj_type: conv
|
| 68 |
+
distill_use_conv3d: false
|
| 69 |
+
distill_proj_layers: 2
|
| 70 |
+
distill_proj_hidden_dim: 256
|
| 71 |
+
distill_proj_before_agg: true
|
| 72 |
+
distill_dim_schedule: fixed
|
| 73 |
+
distill_use_sampled: false
|
| 74 |
+
audio_proj_type: conv
|
| 75 |
+
audio_proj_layers: 2
|
| 76 |
+
audio_proj_hidden_dim: 512
|
| 77 |
+
llm:
|
| 78 |
+
enabled: false
|
| 79 |
+
llm_model_path: models/text_encoder/Qwen3.5-0.8B-Base
|
| 80 |
+
freeze_llm: false
|
| 81 |
+
include_first_frame: false
|
| 82 |
+
spatial_merge_factor: 4
|
| 83 |
+
temporal_merge_factor: 1
|
| 84 |
+
patch_embed_dim: 256
|
| 85 |
+
patch_stride: 2
|
| 86 |
+
spatial_merge_size: 2
|
| 87 |
+
audio_ds_hidden: 256
|
| 88 |
+
audio_ds_stride: 2
|
| 89 |
+
audio_inter_dim: 512
|
| 90 |
+
data:
|
| 91 |
+
train:
|
| 92 |
+
metadata_paths:
|
| 93 |
+
train_main: omitted_public_release_path
|
| 94 |
+
metadata_weights:
|
| 95 |
+
train_main: 1.0
|
| 96 |
+
use_file_processor: true
|
| 97 |
+
num_frames: 121
|
| 98 |
+
resolution: 256
|
| 99 |
+
video_frame_sample_rate: 1
|
| 100 |
+
target_fps: 24
|
| 101 |
+
audio_sample_rate: 48000
|
| 102 |
+
num_workers: 4
|
| 103 |
+
prefetch_factor: 2
|
| 104 |
+
val_video:
|
| 105 |
+
video_dir: omitted_public_release_path
|
| 106 |
+
num_frames: 121
|
| 107 |
+
resolution: 256
|
| 108 |
+
video_frame_sample_rate: 1
|
| 109 |
+
target_fps: 24
|
| 110 |
+
max_samples: 1000
|
| 111 |
+
batch_size: 1
|
| 112 |
+
val_audio:
|
| 113 |
+
audio_dir: omitted_public_release_path
|
| 114 |
+
audio_sample_rate: 48000
|
| 115 |
+
max_duration: 5.0
|
| 116 |
+
max_samples: 1000
|
| 117 |
+
batch_size: 1
|
| 118 |
+
val_contrastive:
|
| 119 |
+
jsonl_paths:
|
| 120 |
+
vggsound_valid: data/train/vggsound_valid_filtered.jsonl
|
| 121 |
+
ct_nonspeech: data/train/nonspeech_valid_10000.jsonl
|
| 122 |
+
ct_speech: data/train/speech_valid_10000.jsonl
|
| 123 |
+
num_frames: 121
|
| 124 |
+
resolution: 256
|
| 125 |
+
video_frame_sample_rate: 1
|
| 126 |
+
target_fps: 24
|
| 127 |
+
audio_sample_rate: 48000
|
| 128 |
+
max_samples: 20000
|
| 129 |
+
batch_size: 1
|
| 130 |
+
val_segment_num_negatives:
|
| 131 |
+
- 29
|
| 132 |
+
- 64
|
| 133 |
+
val_segment_num_negative_videos: ${model.contrastive.num_negative_videos}
|
| 134 |
+
val_global_num_negatives:
|
| 135 |
+
- 64
|
| 136 |
+
- 256
|
| 137 |
+
training:
|
| 138 |
+
max_steps: 500000
|
| 139 |
+
batch_size: 4
|
| 140 |
+
lr: 1.0e-05
|
| 141 |
+
weight_decay: 0.0001
|
| 142 |
+
betas:
|
| 143 |
+
- 0.9
|
| 144 |
+
- 0.999
|
| 145 |
+
max_grad_norm: 1.0
|
| 146 |
+
gradient_accumulation_steps: 1
|
| 147 |
+
dtype: fp32
|
| 148 |
+
video_vae_dtype: fp32
|
| 149 |
+
audio_vae_dtype: fp32
|
| 150 |
+
contrastive_dtype: bfloat16
|
| 151 |
+
llm_dtype: bfloat16
|
| 152 |
+
gradient_checkpointing: false
|
| 153 |
+
random_start: false
|
| 154 |
+
use_ema: false
|
| 155 |
+
ema_decay: 0.999
|
| 156 |
+
qk_norm: false
|
| 157 |
+
log_steps: 3
|
| 158 |
+
stdout_steps: 10
|
| 159 |
+
eval_steps: 2000
|
| 160 |
+
save_steps: 2000
|
| 161 |
+
max_checkpoints: 5000
|
| 162 |
+
lr_disc: 0.0005
|
| 163 |
+
loss:
|
| 164 |
+
use_video_recon: false
|
| 165 |
+
use_audio_recon: true
|
| 166 |
+
use_segment_contrastive: false
|
| 167 |
+
use_global_contrastive: false
|
| 168 |
+
lambda_group_video: 1.0
|
| 169 |
+
lambda_group_audio: 1.0
|
| 170 |
+
lambda_group_contrastive: 1.0
|
| 171 |
+
lambda_video_recon: 1.0
|
| 172 |
+
lambda_video_kl: 0.0165
|
| 173 |
+
lambda_video_lpips: 1.0
|
| 174 |
+
video_loss_reduction: sum
|
| 175 |
+
lambda_audio_mel: 1.0
|
| 176 |
+
lambda_audio_recon: 0.0
|
| 177 |
+
lambda_audio_kl: 0.0
|
| 178 |
+
lambda_segment_contrastive: 1.0
|
| 179 |
+
lambda_global_contrastive: 1.0
|
| 180 |
+
global_contrastive_start_steps: 0
|
| 181 |
+
adaptive_loss_balance: true
|
| 182 |
+
adaptive_balance_audio_ratio: 0.5
|
| 183 |
+
adaptive_balance_contrastive_ratio: 0.5
|
| 184 |
+
adaptive_loss_balance_by_uncertainty: false
|
| 185 |
+
uncertainty_warmup_steps: 100
|
| 186 |
+
use_semantic_distill: false
|
| 187 |
+
encoder_fps: 4
|
| 188 |
+
encoder_resolution: 256
|
| 189 |
+
distill_vision_layer: 18
|
| 190 |
+
distill_audio_layer: 24
|
| 191 |
+
lambda_distill_image_cosine: 1.0
|
| 192 |
+
lambda_distill_image_distance: 1.0
|
| 193 |
+
lambda_distill_video_cosine: 1.0
|
| 194 |
+
lambda_distill_video_distance: 1.0
|
| 195 |
+
lambda_distill_audio_d_axis: 120.0
|
| 196 |
+
lambda_distill_audio_t_axis: 1.0
|
| 197 |
+
distill_w_hyper: 0.1
|
| 198 |
+
distill_audio_type: d_axis
|
| 199 |
+
lambda_group_distill: 1.0
|
| 200 |
+
distill_spatial_norm: true
|
| 201 |
+
distill_spatial_norm_gamma: 0.6
|
| 202 |
+
distill_margin_cosine: 0.0
|
| 203 |
+
distill_margin_distance: 0.25
|
| 204 |
+
distill_use_dist_matrix: false
|
| 205 |
+
adaptive_distill_balance: false
|
| 206 |
+
adaptive_distill_video_ratio: 0.1
|
| 207 |
+
adaptive_distill_audio_ratio: 0.1
|
| 208 |
+
use_llm_caption: false
|
| 209 |
+
lambda_group_llm: 1.0
|
| 210 |
+
lambda_llm_caption: 1.0
|
| 211 |
+
mel_loss_kwargs:
|
| 212 |
+
sample_rate: 48000
|
| 213 |
+
n_mels:
|
| 214 |
+
- 5
|
| 215 |
+
- 10
|
| 216 |
+
- 20
|
| 217 |
+
- 40
|
| 218 |
+
- 80
|
| 219 |
+
- 160
|
| 220 |
+
- 320
|
| 221 |
+
window_lengths:
|
| 222 |
+
- 32
|
| 223 |
+
- 64
|
| 224 |
+
- 128
|
| 225 |
+
- 256
|
| 226 |
+
- 512
|
| 227 |
+
- 1024
|
| 228 |
+
- 2048
|
| 229 |
+
weights:
|
| 230 |
+
- 15
|
| 231 |
+
- 15
|
| 232 |
+
- 15
|
| 233 |
+
- 15
|
| 234 |
+
- 15
|
| 235 |
+
- 15
|
| 236 |
+
- 15
|
| 237 |
+
pow: 1.0
|
| 238 |
+
mel_fmin:
|
| 239 |
+
- 0.0
|
| 240 |
+
- 0.0
|
| 241 |
+
- 0.0
|
| 242 |
+
- 0.0
|
| 243 |
+
- 0.0
|
| 244 |
+
- 0.0
|
| 245 |
+
- 0.0
|
| 246 |
+
mel_fmax:
|
| 247 |
+
- null
|
| 248 |
+
- null
|
| 249 |
+
- null
|
| 250 |
+
- null
|
| 251 |
+
- null
|
| 252 |
+
- null
|
| 253 |
+
- null
|
| 254 |
+
freeze_audio_encoder: true
|
| 255 |
+
use_audio_disc: true
|
| 256 |
+
lambda_audio_adv: 1.0
|
| 257 |
+
lambda_audio_feature_matching: 2.0
|
| 258 |
+
output:
|
| 259 |
+
exp_root: outputs
|
models/vae/audio_only/recon_avclip_ft_decoder/metadata.json
ADDED
|
@@ -0,0 +1,8 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"package_type": "vae",
|
| 3 |
+
"modality": "audio_only",
|
| 4 |
+
"name": "recon_avclip_ft_decoder",
|
| 5 |
+
"config": "models/vae/audio_only/recon_avclip_ft_decoder/config.yaml",
|
| 6 |
+
"checkpoint": "models/vae/audio_only/recon_avclip_ft_decoder/state_dict.pt",
|
| 7 |
+
"notes": "Audio decoder fine-tuned VAE checkpoint used by T2A/T2AV recon_avclip."
|
| 8 |
+
}
|
models/vae/audio_only/recon_distill/config.yaml
ADDED
|
@@ -0,0 +1,259 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
seed: 1234
|
| 2 |
+
audio_sample_rate: 48000
|
| 3 |
+
num_frames: 121
|
| 4 |
+
resolution: 256
|
| 5 |
+
target_fps: 24
|
| 6 |
+
video_frame_sample_rate: 1
|
| 7 |
+
model:
|
| 8 |
+
video:
|
| 9 |
+
model_name: WanVAE22
|
| 10 |
+
model_config: scripts/causalvae/wanvae22_48dim.json
|
| 11 |
+
pretrained_model_name_or_path: null
|
| 12 |
+
audio:
|
| 13 |
+
audio_sample_rate: 48000
|
| 14 |
+
sample_rate: 48000
|
| 15 |
+
encoder_dim: 128
|
| 16 |
+
encoder_rates:
|
| 17 |
+
- 2
|
| 18 |
+
- 3
|
| 19 |
+
- 4
|
| 20 |
+
- 5
|
| 21 |
+
- 8
|
| 22 |
+
latent_dim: 128
|
| 23 |
+
decoder_dim: 2048
|
| 24 |
+
decoder_rates:
|
| 25 |
+
- 8
|
| 26 |
+
- 5
|
| 27 |
+
- 4
|
| 28 |
+
- 3
|
| 29 |
+
- 2
|
| 30 |
+
n_codebooks: 9
|
| 31 |
+
codebook_size: 1024
|
| 32 |
+
codebook_dim: 8
|
| 33 |
+
quantizer_dropout: false
|
| 34 |
+
continuous: true
|
| 35 |
+
pretrained_model_name_or_path: null
|
| 36 |
+
contrastive:
|
| 37 |
+
contrastive_use_mean: true
|
| 38 |
+
embed_dim: 512
|
| 39 |
+
segment_hidden_dim: 1024
|
| 40 |
+
global_hidden_dim: 1024
|
| 41 |
+
segment_count: null
|
| 42 |
+
init_scale: 0.07
|
| 43 |
+
clamp_scale_min: 0.001
|
| 44 |
+
clamp_scale_max: 0.5
|
| 45 |
+
gather_for_loss: true
|
| 46 |
+
num_negatives: 23
|
| 47 |
+
num_negative_videos: 63
|
| 48 |
+
use_sdpa: true
|
| 49 |
+
spatial_pool_mode: mean
|
| 50 |
+
spatial_merge_factor: 4
|
| 51 |
+
transformer_dim: 768
|
| 52 |
+
spatial_transformer_layers: 1
|
| 53 |
+
segment_transformer_layers: 1
|
| 54 |
+
global_transformer_layers: 1
|
| 55 |
+
use_segment_loss: false
|
| 56 |
+
use_global_loss: false
|
| 57 |
+
enabled: false
|
| 58 |
+
distill:
|
| 59 |
+
enabled: true
|
| 60 |
+
video_target_dim: 1152
|
| 61 |
+
image_target_dim: 1152
|
| 62 |
+
audio_target_dim: 1280
|
| 63 |
+
video_spatial_factor: 4
|
| 64 |
+
image_spatial_factor: 4
|
| 65 |
+
temporal_agg_ratio: 3
|
| 66 |
+
audio_distill_type: t_axis
|
| 67 |
+
distill_proj_type: conv
|
| 68 |
+
distill_use_conv3d: false
|
| 69 |
+
distill_proj_layers: 2
|
| 70 |
+
distill_proj_hidden_dim: 256
|
| 71 |
+
distill_proj_before_agg: true
|
| 72 |
+
distill_dim_schedule: doubling
|
| 73 |
+
distill_use_sampled: false
|
| 74 |
+
audio_proj_type: conv
|
| 75 |
+
audio_proj_layers: 2
|
| 76 |
+
audio_proj_hidden_dim: 512
|
| 77 |
+
llm:
|
| 78 |
+
enabled: false
|
| 79 |
+
llm_model_path: models/text_encoder/Qwen3.5-0.8B-Base
|
| 80 |
+
freeze_llm: false
|
| 81 |
+
include_first_frame: false
|
| 82 |
+
spatial_merge_factor: 4
|
| 83 |
+
temporal_merge_factor: 1
|
| 84 |
+
patch_embed_dim: 256
|
| 85 |
+
patch_stride: 2
|
| 86 |
+
spatial_merge_size: 2
|
| 87 |
+
audio_ds_hidden: 256
|
| 88 |
+
audio_ds_stride: 2
|
| 89 |
+
audio_inter_dim: 512
|
| 90 |
+
data:
|
| 91 |
+
train:
|
| 92 |
+
metadata_paths:
|
| 93 |
+
train_main: omitted_public_release_path
|
| 94 |
+
metadata_weights:
|
| 95 |
+
train_main: 1.0
|
| 96 |
+
use_file_processor: true
|
| 97 |
+
num_frames: 121
|
| 98 |
+
resolution: 256
|
| 99 |
+
video_frame_sample_rate: 1
|
| 100 |
+
target_fps: 24
|
| 101 |
+
audio_sample_rate: 48000
|
| 102 |
+
num_workers: 4
|
| 103 |
+
prefetch_factor: 2
|
| 104 |
+
val_video:
|
| 105 |
+
video_dir: omitted_public_release_path
|
| 106 |
+
num_frames: 121
|
| 107 |
+
resolution: 256
|
| 108 |
+
video_frame_sample_rate: 1
|
| 109 |
+
target_fps: 24
|
| 110 |
+
max_samples: 1000
|
| 111 |
+
batch_size: 1
|
| 112 |
+
val_audio:
|
| 113 |
+
audio_dir: omitted_public_release_path
|
| 114 |
+
audio_sample_rate: 48000
|
| 115 |
+
max_duration: 5.0
|
| 116 |
+
max_samples: 1000
|
| 117 |
+
batch_size: 1
|
| 118 |
+
val_contrastive:
|
| 119 |
+
jsonl_paths:
|
| 120 |
+
vggsound_valid: data/train/vggsound_valid_filtered.jsonl
|
| 121 |
+
ct_nonspeech: data/train/nonspeech_valid_10000.jsonl
|
| 122 |
+
ct_speech: data/train/speech_valid_10000.jsonl
|
| 123 |
+
num_frames: 121
|
| 124 |
+
resolution: 256
|
| 125 |
+
video_frame_sample_rate: 1
|
| 126 |
+
target_fps: 24
|
| 127 |
+
audio_sample_rate: 48000
|
| 128 |
+
max_samples: 20000
|
| 129 |
+
batch_size: 1
|
| 130 |
+
val_segment_num_negatives:
|
| 131 |
+
- 29
|
| 132 |
+
- 64
|
| 133 |
+
val_segment_num_negative_videos: ${model.contrastive.num_negative_videos}
|
| 134 |
+
val_global_num_negatives:
|
| 135 |
+
- 64
|
| 136 |
+
- 256
|
| 137 |
+
training:
|
| 138 |
+
max_steps: 500000
|
| 139 |
+
batch_size: 4
|
| 140 |
+
lr: 1.0e-05
|
| 141 |
+
weight_decay: 0.0001
|
| 142 |
+
betas:
|
| 143 |
+
- 0.9
|
| 144 |
+
- 0.999
|
| 145 |
+
max_grad_norm: 1.0
|
| 146 |
+
gradient_accumulation_steps: 1
|
| 147 |
+
dtype: fp32
|
| 148 |
+
video_vae_dtype: fp32
|
| 149 |
+
audio_vae_dtype: fp32
|
| 150 |
+
contrastive_dtype: bfloat16
|
| 151 |
+
llm_dtype: bfloat16
|
| 152 |
+
gradient_checkpointing: false
|
| 153 |
+
random_start: false
|
| 154 |
+
use_ema: false
|
| 155 |
+
ema_decay: 0.999
|
| 156 |
+
qk_norm: false
|
| 157 |
+
log_steps: 3
|
| 158 |
+
stdout_steps: 10
|
| 159 |
+
eval_steps: 2000
|
| 160 |
+
save_steps: 2000
|
| 161 |
+
max_checkpoints: 5000
|
| 162 |
+
lr_disc: 0.0001
|
| 163 |
+
loss:
|
| 164 |
+
use_video_recon: false
|
| 165 |
+
use_audio_recon: true
|
| 166 |
+
use_segment_contrastive: false
|
| 167 |
+
use_global_contrastive: false
|
| 168 |
+
lambda_group_video: 1.0
|
| 169 |
+
lambda_group_audio: 1.0
|
| 170 |
+
lambda_group_contrastive: 1.0
|
| 171 |
+
lambda_video_recon: 1.0
|
| 172 |
+
lambda_video_kl: 0.0165
|
| 173 |
+
lambda_video_lpips: 1.0
|
| 174 |
+
video_loss_reduction: sum
|
| 175 |
+
lambda_audio_mel: 1.0
|
| 176 |
+
lambda_audio_recon: 0.0
|
| 177 |
+
lambda_audio_kl: 0.5
|
| 178 |
+
lambda_segment_contrastive: 1.0
|
| 179 |
+
lambda_global_contrastive: 1.0
|
| 180 |
+
global_contrastive_start_steps: 0
|
| 181 |
+
adaptive_loss_balance: true
|
| 182 |
+
adaptive_balance_audio_ratio: 0.5
|
| 183 |
+
adaptive_balance_contrastive_ratio: 0.5
|
| 184 |
+
adaptive_loss_balance_by_uncertainty: false
|
| 185 |
+
uncertainty_warmup_steps: 100
|
| 186 |
+
use_semantic_distill: true
|
| 187 |
+
encoder_fps: 4
|
| 188 |
+
encoder_resolution: 256
|
| 189 |
+
distill_vision_layer: 18
|
| 190 |
+
distill_audio_layer: 24
|
| 191 |
+
lambda_distill_image_cosine: 1.0
|
| 192 |
+
lambda_distill_image_distance: 1.0
|
| 193 |
+
lambda_distill_video_cosine: 1.0
|
| 194 |
+
lambda_distill_video_distance: 1.0
|
| 195 |
+
lambda_distill_audio_d_axis: 120.0
|
| 196 |
+
lambda_distill_audio_t_axis: 1.0
|
| 197 |
+
distill_w_hyper: 0.1
|
| 198 |
+
distill_audio_type: t_axis
|
| 199 |
+
lambda_group_distill: 1.0
|
| 200 |
+
distill_spatial_norm: true
|
| 201 |
+
distill_spatial_norm_gamma: 0.6
|
| 202 |
+
distill_margin_cosine: 0.0
|
| 203 |
+
distill_margin_distance: 0.25
|
| 204 |
+
distill_use_dist_matrix: false
|
| 205 |
+
adaptive_distill_balance: true
|
| 206 |
+
adaptive_distill_video_ratio: 0.1
|
| 207 |
+
adaptive_distill_audio_ratio: 1.0
|
| 208 |
+
use_llm_caption: false
|
| 209 |
+
lambda_group_llm: 1.0
|
| 210 |
+
lambda_llm_caption: 1.0
|
| 211 |
+
mel_loss_kwargs:
|
| 212 |
+
sample_rate: 48000
|
| 213 |
+
n_mels:
|
| 214 |
+
- 5
|
| 215 |
+
- 10
|
| 216 |
+
- 20
|
| 217 |
+
- 40
|
| 218 |
+
- 80
|
| 219 |
+
- 160
|
| 220 |
+
- 320
|
| 221 |
+
window_lengths:
|
| 222 |
+
- 32
|
| 223 |
+
- 64
|
| 224 |
+
- 128
|
| 225 |
+
- 256
|
| 226 |
+
- 512
|
| 227 |
+
- 1024
|
| 228 |
+
- 2048
|
| 229 |
+
weights:
|
| 230 |
+
- 15
|
| 231 |
+
- 15
|
| 232 |
+
- 15
|
| 233 |
+
- 15
|
| 234 |
+
- 15
|
| 235 |
+
- 15
|
| 236 |
+
- 15
|
| 237 |
+
pow: 1.0
|
| 238 |
+
mel_fmin:
|
| 239 |
+
- 0.0
|
| 240 |
+
- 0.0
|
| 241 |
+
- 0.0
|
| 242 |
+
- 0.0
|
| 243 |
+
- 0.0
|
| 244 |
+
- 0.0
|
| 245 |
+
- 0.0
|
| 246 |
+
mel_fmax:
|
| 247 |
+
- null
|
| 248 |
+
- null
|
| 249 |
+
- null
|
| 250 |
+
- null
|
| 251 |
+
- null
|
| 252 |
+
- null
|
| 253 |
+
- null
|
| 254 |
+
use_audio_disc: true
|
| 255 |
+
lambda_audio_adv: 1.0
|
| 256 |
+
lambda_audio_feature_matching: 1.0
|
| 257 |
+
semantic_model_path: models/text_encoder/Qwen3.5-0.8B-Base
|
| 258 |
+
output:
|
| 259 |
+
exp_root: outputs
|
models/vae/audio_only/recon_distill/metadata.json
ADDED
|
@@ -0,0 +1,8 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"package_type": "vae",
|
| 3 |
+
"modality": "audio_only",
|
| 4 |
+
"name": "recon_distill",
|
| 5 |
+
"config": "models/vae/audio_only/recon_distill/config.yaml",
|
| 6 |
+
"checkpoint": "models/vae/audio_only/recon_distill/state_dict.pt",
|
| 7 |
+
"notes": "Distilled audio reconstruction VAE checkpoint without training state."
|
| 8 |
+
}
|
models/vae/audio_only/recon_distill_avclip_ft_decoder/config.yaml
ADDED
|
@@ -0,0 +1,261 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
seed: 1234
|
| 2 |
+
audio_sample_rate: 48000
|
| 3 |
+
num_frames: 121
|
| 4 |
+
resolution: 256
|
| 5 |
+
target_fps: 24
|
| 6 |
+
video_frame_sample_rate: 1
|
| 7 |
+
model:
|
| 8 |
+
video:
|
| 9 |
+
model_name: WanVAE22
|
| 10 |
+
model_config: scripts/causalvae/wanvae22_48dim.json
|
| 11 |
+
pretrained_model_name_or_path: null
|
| 12 |
+
audio:
|
| 13 |
+
audio_sample_rate: 48000
|
| 14 |
+
sample_rate: 48000
|
| 15 |
+
encoder_dim: 128
|
| 16 |
+
encoder_rates:
|
| 17 |
+
- 2
|
| 18 |
+
- 3
|
| 19 |
+
- 4
|
| 20 |
+
- 5
|
| 21 |
+
- 8
|
| 22 |
+
latent_dim: 128
|
| 23 |
+
decoder_dim: 2048
|
| 24 |
+
decoder_rates:
|
| 25 |
+
- 8
|
| 26 |
+
- 5
|
| 27 |
+
- 4
|
| 28 |
+
- 3
|
| 29 |
+
- 2
|
| 30 |
+
n_codebooks: 9
|
| 31 |
+
codebook_size: 1024
|
| 32 |
+
codebook_dim: 8
|
| 33 |
+
quantizer_dropout: false
|
| 34 |
+
continuous: true
|
| 35 |
+
pretrained_model_name_or_path: null
|
| 36 |
+
contrastive:
|
| 37 |
+
contrastive_use_mean: true
|
| 38 |
+
embed_dim: 512
|
| 39 |
+
segment_hidden_dim: 1024
|
| 40 |
+
global_hidden_dim: 1024
|
| 41 |
+
segment_count: null
|
| 42 |
+
init_scale: 0.07
|
| 43 |
+
clamp_scale_min: 0.001
|
| 44 |
+
clamp_scale_max: 0.5
|
| 45 |
+
gather_for_loss: true
|
| 46 |
+
num_negatives: 23
|
| 47 |
+
num_negative_videos: 63
|
| 48 |
+
use_sdpa: true
|
| 49 |
+
spatial_pool_mode: mean
|
| 50 |
+
spatial_merge_factor: 4
|
| 51 |
+
transformer_dim: 768
|
| 52 |
+
spatial_transformer_layers: 1
|
| 53 |
+
segment_transformer_layers: 1
|
| 54 |
+
global_transformer_layers: 1
|
| 55 |
+
use_segment_loss: false
|
| 56 |
+
use_global_loss: false
|
| 57 |
+
enabled: false
|
| 58 |
+
distill:
|
| 59 |
+
enabled: false
|
| 60 |
+
video_target_dim: 1152
|
| 61 |
+
image_target_dim: 1152
|
| 62 |
+
audio_target_dim: 1280
|
| 63 |
+
video_spatial_factor: 4
|
| 64 |
+
image_spatial_factor: 4
|
| 65 |
+
temporal_agg_ratio: 3
|
| 66 |
+
audio_distill_type: d_axis
|
| 67 |
+
distill_proj_type: conv
|
| 68 |
+
distill_use_conv3d: false
|
| 69 |
+
distill_proj_layers: 2
|
| 70 |
+
distill_proj_hidden_dim: 256
|
| 71 |
+
distill_proj_before_agg: true
|
| 72 |
+
distill_dim_schedule: fixed
|
| 73 |
+
distill_use_sampled: false
|
| 74 |
+
audio_proj_type: conv
|
| 75 |
+
audio_proj_layers: 2
|
| 76 |
+
audio_proj_hidden_dim: 512
|
| 77 |
+
llm:
|
| 78 |
+
enabled: false
|
| 79 |
+
llm_model_path: models/text_encoder/Qwen3.5-0.8B-Base
|
| 80 |
+
freeze_llm: false
|
| 81 |
+
include_first_frame: false
|
| 82 |
+
spatial_merge_factor: 4
|
| 83 |
+
temporal_merge_factor: 1
|
| 84 |
+
patch_embed_dim: 256
|
| 85 |
+
patch_stride: 2
|
| 86 |
+
spatial_merge_size: 2
|
| 87 |
+
audio_ds_hidden: 256
|
| 88 |
+
audio_ds_stride: 2
|
| 89 |
+
audio_inter_dim: 512
|
| 90 |
+
data:
|
| 91 |
+
train:
|
| 92 |
+
metadata_paths:
|
| 93 |
+
train_main: omitted_public_release_path
|
| 94 |
+
metadata_weights:
|
| 95 |
+
train_main: 1.0
|
| 96 |
+
use_file_processor: true
|
| 97 |
+
num_frames: 121
|
| 98 |
+
resolution: 256
|
| 99 |
+
video_frame_sample_rate: 1
|
| 100 |
+
target_fps: 24
|
| 101 |
+
audio_sample_rate: 48000
|
| 102 |
+
num_workers: 4
|
| 103 |
+
prefetch_factor: 2
|
| 104 |
+
val_video:
|
| 105 |
+
jsonl_paths:
|
| 106 |
+
panda70m_test: data/train/panda70m-test.jsonl
|
| 107 |
+
ucf101_test: data/train/ucf101-test.jsonl
|
| 108 |
+
num_frames: 121
|
| 109 |
+
resolution: 256
|
| 110 |
+
video_frame_sample_rate: 1
|
| 111 |
+
target_fps: 24
|
| 112 |
+
max_samples: 1000
|
| 113 |
+
batch_size: 1
|
| 114 |
+
val_audio:
|
| 115 |
+
audio_dir: omitted_public_release_path
|
| 116 |
+
audio_sample_rate: 48000
|
| 117 |
+
max_duration: 5.0
|
| 118 |
+
max_samples: 1000
|
| 119 |
+
batch_size: 1
|
| 120 |
+
val_contrastive:
|
| 121 |
+
jsonl_paths:
|
| 122 |
+
vggsound_valid: data/train/vggsound_valid_filtered.jsonl
|
| 123 |
+
ct_nonspeech: data/train/nonspeech_valid_10000.jsonl
|
| 124 |
+
ct_speech: data/train/speech_valid_10000.jsonl
|
| 125 |
+
num_frames: 121
|
| 126 |
+
resolution: 256
|
| 127 |
+
video_frame_sample_rate: 1
|
| 128 |
+
target_fps: 24
|
| 129 |
+
audio_sample_rate: 48000
|
| 130 |
+
max_samples: 20000
|
| 131 |
+
batch_size: 1
|
| 132 |
+
val_segment_num_negatives:
|
| 133 |
+
- 29
|
| 134 |
+
- 64
|
| 135 |
+
val_segment_num_negative_videos: ${model.contrastive.num_negative_videos}
|
| 136 |
+
val_global_num_negatives:
|
| 137 |
+
- 64
|
| 138 |
+
- 256
|
| 139 |
+
training:
|
| 140 |
+
max_steps: 500000
|
| 141 |
+
batch_size: 4
|
| 142 |
+
lr: 1.0e-05
|
| 143 |
+
weight_decay: 0.0001
|
| 144 |
+
betas:
|
| 145 |
+
- 0.9
|
| 146 |
+
- 0.999
|
| 147 |
+
max_grad_norm: 1.0
|
| 148 |
+
gradient_accumulation_steps: 1
|
| 149 |
+
dtype: fp32
|
| 150 |
+
video_vae_dtype: fp32
|
| 151 |
+
audio_vae_dtype: fp32
|
| 152 |
+
contrastive_dtype: bfloat16
|
| 153 |
+
llm_dtype: bfloat16
|
| 154 |
+
gradient_checkpointing: false
|
| 155 |
+
random_start: false
|
| 156 |
+
use_ema: false
|
| 157 |
+
ema_decay: 0.999
|
| 158 |
+
qk_norm: false
|
| 159 |
+
log_steps: 3
|
| 160 |
+
stdout_steps: 10
|
| 161 |
+
eval_steps: 2000
|
| 162 |
+
save_steps: 2000
|
| 163 |
+
max_checkpoints: 5000
|
| 164 |
+
lr_disc: 0.0005
|
| 165 |
+
loss:
|
| 166 |
+
use_video_recon: false
|
| 167 |
+
use_audio_recon: true
|
| 168 |
+
use_segment_contrastive: false
|
| 169 |
+
use_global_contrastive: false
|
| 170 |
+
lambda_group_video: 1.0
|
| 171 |
+
lambda_group_audio: 1.0
|
| 172 |
+
lambda_group_contrastive: 1.0
|
| 173 |
+
lambda_video_recon: 1.0
|
| 174 |
+
lambda_video_kl: 0.0165
|
| 175 |
+
lambda_video_lpips: 1.0
|
| 176 |
+
video_loss_reduction: sum
|
| 177 |
+
lambda_audio_mel: 1.0
|
| 178 |
+
lambda_audio_recon: 0.0
|
| 179 |
+
lambda_audio_kl: 0.0
|
| 180 |
+
lambda_segment_contrastive: 1.0
|
| 181 |
+
lambda_global_contrastive: 1.0
|
| 182 |
+
global_contrastive_start_steps: 0
|
| 183 |
+
adaptive_loss_balance: true
|
| 184 |
+
adaptive_balance_audio_ratio: 0.5
|
| 185 |
+
adaptive_balance_contrastive_ratio: 0.5
|
| 186 |
+
adaptive_loss_balance_by_uncertainty: false
|
| 187 |
+
uncertainty_warmup_steps: 100
|
| 188 |
+
use_semantic_distill: false
|
| 189 |
+
encoder_fps: 4
|
| 190 |
+
encoder_resolution: 256
|
| 191 |
+
distill_vision_layer: 18
|
| 192 |
+
distill_audio_layer: 24
|
| 193 |
+
lambda_distill_image_cosine: 1.0
|
| 194 |
+
lambda_distill_image_distance: 1.0
|
| 195 |
+
lambda_distill_video_cosine: 1.0
|
| 196 |
+
lambda_distill_video_distance: 1.0
|
| 197 |
+
lambda_distill_audio_d_axis: 120.0
|
| 198 |
+
lambda_distill_audio_t_axis: 1.0
|
| 199 |
+
distill_w_hyper: 0.1
|
| 200 |
+
distill_audio_type: d_axis
|
| 201 |
+
lambda_group_distill: 1.0
|
| 202 |
+
distill_spatial_norm: true
|
| 203 |
+
distill_spatial_norm_gamma: 0.6
|
| 204 |
+
distill_margin_cosine: 0.0
|
| 205 |
+
distill_margin_distance: 0.25
|
| 206 |
+
distill_use_dist_matrix: false
|
| 207 |
+
adaptive_distill_balance: false
|
| 208 |
+
adaptive_distill_video_ratio: 0.1
|
| 209 |
+
adaptive_distill_audio_ratio: 0.1
|
| 210 |
+
use_llm_caption: false
|
| 211 |
+
lambda_group_llm: 1.0
|
| 212 |
+
lambda_llm_caption: 1.0
|
| 213 |
+
mel_loss_kwargs:
|
| 214 |
+
sample_rate: 48000
|
| 215 |
+
n_mels:
|
| 216 |
+
- 5
|
| 217 |
+
- 10
|
| 218 |
+
- 20
|
| 219 |
+
- 40
|
| 220 |
+
- 80
|
| 221 |
+
- 160
|
| 222 |
+
- 320
|
| 223 |
+
window_lengths:
|
| 224 |
+
- 32
|
| 225 |
+
- 64
|
| 226 |
+
- 128
|
| 227 |
+
- 256
|
| 228 |
+
- 512
|
| 229 |
+
- 1024
|
| 230 |
+
- 2048
|
| 231 |
+
weights:
|
| 232 |
+
- 15
|
| 233 |
+
- 15
|
| 234 |
+
- 15
|
| 235 |
+
- 15
|
| 236 |
+
- 15
|
| 237 |
+
- 15
|
| 238 |
+
- 15
|
| 239 |
+
pow: 1.0
|
| 240 |
+
mel_fmin:
|
| 241 |
+
- 0.0
|
| 242 |
+
- 0.0
|
| 243 |
+
- 0.0
|
| 244 |
+
- 0.0
|
| 245 |
+
- 0.0
|
| 246 |
+
- 0.0
|
| 247 |
+
- 0.0
|
| 248 |
+
mel_fmax:
|
| 249 |
+
- null
|
| 250 |
+
- null
|
| 251 |
+
- null
|
| 252 |
+
- null
|
| 253 |
+
- null
|
| 254 |
+
- null
|
| 255 |
+
- null
|
| 256 |
+
freeze_audio_encoder: true
|
| 257 |
+
use_audio_disc: true
|
| 258 |
+
lambda_audio_adv: 1.0
|
| 259 |
+
lambda_audio_feature_matching: 2.0
|
| 260 |
+
output:
|
| 261 |
+
exp_root: outputs
|
models/vae/audio_only/recon_distill_avclip_ft_decoder/metadata.json
ADDED
|
@@ -0,0 +1,8 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"package_type": "vae",
|
| 3 |
+
"modality": "audio_only",
|
| 4 |
+
"name": "recon_distill_avclip_ft_decoder",
|
| 5 |
+
"config": "models/vae/audio_only/recon_distill_avclip_ft_decoder/config.yaml",
|
| 6 |
+
"checkpoint": "models/vae/audio_only/recon_distill_avclip_ft_decoder/state_dict.pt",
|
| 7 |
+
"notes": "Audio decoder fine-tuned VAE checkpoint used by T2A/T2AV recon_distill_avclip."
|
| 8 |
+
}
|
models/vae/audio_video/recon_avclip/config.yaml
ADDED
|
@@ -0,0 +1,364 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
seed: 1234
|
| 2 |
+
audio_sample_rate: 48000
|
| 3 |
+
num_frames: 193
|
| 4 |
+
resolution: 256
|
| 5 |
+
target_fps: 24
|
| 6 |
+
video_frame_sample_rate: 1
|
| 7 |
+
model:
|
| 8 |
+
video:
|
| 9 |
+
model_name: WanVAE22
|
| 10 |
+
model_config: scripts/causalvae/wanvae22_48dim.json
|
| 11 |
+
pretrained_model_name_or_path: null
|
| 12 |
+
qk_norm: true
|
| 13 |
+
audio:
|
| 14 |
+
audio_sample_rate: 48000
|
| 15 |
+
sample_rate: 48000
|
| 16 |
+
encoder_dim: 128
|
| 17 |
+
encoder_rates:
|
| 18 |
+
- 2
|
| 19 |
+
- 3
|
| 20 |
+
- 4
|
| 21 |
+
- 5
|
| 22 |
+
- 8
|
| 23 |
+
latent_dim: 128
|
| 24 |
+
decoder_dim: 2048
|
| 25 |
+
decoder_rates:
|
| 26 |
+
- 8
|
| 27 |
+
- 5
|
| 28 |
+
- 4
|
| 29 |
+
- 3
|
| 30 |
+
- 2
|
| 31 |
+
n_codebooks: 9
|
| 32 |
+
codebook_size: 1024
|
| 33 |
+
codebook_dim: 8
|
| 34 |
+
quantizer_dropout: false
|
| 35 |
+
continuous: true
|
| 36 |
+
pretrained_model_name_or_path: null
|
| 37 |
+
contrastive:
|
| 38 |
+
contrastive_type: latent_seg
|
| 39 |
+
contrastive_use_mean: true
|
| 40 |
+
contrastive_grad_scale_video: 1.0
|
| 41 |
+
contrastive_grad_scale_audio: 1.0
|
| 42 |
+
embed_dim: 512
|
| 43 |
+
segment_hidden_dim: 1024
|
| 44 |
+
global_hidden_dim: 1024
|
| 45 |
+
segment_count: null
|
| 46 |
+
init_scale: 0.07
|
| 47 |
+
clamp_scale_min: 0.001
|
| 48 |
+
clamp_scale_max: 0.5
|
| 49 |
+
gather_for_loss: true
|
| 50 |
+
num_negatives: 96
|
| 51 |
+
num_negative_videos: 63
|
| 52 |
+
same_long_video_priority: true
|
| 53 |
+
same_long_video_num_negatives: 48
|
| 54 |
+
num_negatives_with_sibling: null
|
| 55 |
+
use_sdpa: true
|
| 56 |
+
spatial_pool_mode: transformer
|
| 57 |
+
spatial_merge_factor: 2
|
| 58 |
+
transformer_dim: 768
|
| 59 |
+
spatial_transformer_layers: 1
|
| 60 |
+
segment_transformer_layers: 1
|
| 61 |
+
global_transformer_layers: 1
|
| 62 |
+
segment_temporal_pool_mode: conv
|
| 63 |
+
global_temporal_pool_mode: transformer
|
| 64 |
+
spatial_module_size: large
|
| 65 |
+
segment_module_size: large
|
| 66 |
+
global_module_size: large
|
| 67 |
+
num_negatives_no_sibling: 24
|
| 68 |
+
use_segment_loss: true
|
| 69 |
+
use_global_loss: false
|
| 70 |
+
enabled: true
|
| 71 |
+
qk_norm: true
|
| 72 |
+
distill:
|
| 73 |
+
enabled: false
|
| 74 |
+
video_target_dim: 1152
|
| 75 |
+
image_target_dim: 1152
|
| 76 |
+
audio_target_dim: 1280
|
| 77 |
+
video_spatial_factor: 4
|
| 78 |
+
image_spatial_factor: 4
|
| 79 |
+
temporal_agg_ratio: 3
|
| 80 |
+
audio_distill_type: d_axis
|
| 81 |
+
distill_proj_type: conv
|
| 82 |
+
distill_use_conv3d: false
|
| 83 |
+
distill_proj_layers: 2
|
| 84 |
+
distill_proj_hidden_dim: 256
|
| 85 |
+
distill_proj_before_agg: true
|
| 86 |
+
distill_dim_schedule: fixed
|
| 87 |
+
distill_use_sampled: false
|
| 88 |
+
audio_proj_type: conv
|
| 89 |
+
audio_proj_layers: 2
|
| 90 |
+
audio_proj_hidden_dim: 512
|
| 91 |
+
llm:
|
| 92 |
+
enabled: false
|
| 93 |
+
llm_model_path: models/text_encoder/Qwen3.5-0.8B-Base
|
| 94 |
+
freeze_llm: false
|
| 95 |
+
include_first_frame: false
|
| 96 |
+
spatial_merge_factor: 4
|
| 97 |
+
temporal_merge_factor: 1
|
| 98 |
+
patch_embed_dim: 256
|
| 99 |
+
patch_stride: 2
|
| 100 |
+
spatial_merge_size: 2
|
| 101 |
+
audio_ds_hidden: 256
|
| 102 |
+
audio_ds_stride: 2
|
| 103 |
+
audio_inter_dim: 512
|
| 104 |
+
data:
|
| 105 |
+
train:
|
| 106 |
+
metadata_paths:
|
| 107 |
+
train_main: omitted_public_release_path
|
| 108 |
+
metadata_weights:
|
| 109 |
+
train_main: 1.0
|
| 110 |
+
use_file_processor: true
|
| 111 |
+
num_frames: 193
|
| 112 |
+
resolution: 256
|
| 113 |
+
video_frame_sample_rate: 1
|
| 114 |
+
target_fps: 24
|
| 115 |
+
audio_sample_rate: 48000
|
| 116 |
+
num_workers: 4
|
| 117 |
+
prefetch_factor: 2
|
| 118 |
+
use_image_video_alter: false
|
| 119 |
+
image_loader: jsonl
|
| 120 |
+
image_data_mixture_yaml: null
|
| 121 |
+
image_dataset_path: null
|
| 122 |
+
image_relaion: null
|
| 123 |
+
image_batch_size: null
|
| 124 |
+
video_batch_size: null
|
| 125 |
+
image_video_weights:
|
| 126 |
+
- 1
|
| 127 |
+
- 1
|
| 128 |
+
val_video:
|
| 129 |
+
video_dir: omitted_public_release_path
|
| 130 |
+
num_frames: 193
|
| 131 |
+
resolution: 256
|
| 132 |
+
video_frame_sample_rate: 1
|
| 133 |
+
target_fps: 24
|
| 134 |
+
max_samples: 1000
|
| 135 |
+
batch_size: 1
|
| 136 |
+
val_audio:
|
| 137 |
+
audio_dir: omitted_public_release_path
|
| 138 |
+
audio_sample_rate: 48000
|
| 139 |
+
max_duration: 5.0
|
| 140 |
+
max_samples: 1000
|
| 141 |
+
batch_size: 1
|
| 142 |
+
val_contrastive:
|
| 143 |
+
jsonl_paths:
|
| 144 |
+
vggsound_valid: data/train/vggsound_valid_filtered_original.jsonl
|
| 145 |
+
ct_nonspeech: data/train/nonspeech_valid_10000_original.jsonl
|
| 146 |
+
ct_speech: data/train/speech_valid_10000_orig.jsonl
|
| 147 |
+
num_frames: 193
|
| 148 |
+
resolution: 256
|
| 149 |
+
video_frame_sample_rate: 1
|
| 150 |
+
target_fps: 24
|
| 151 |
+
audio_sample_rate: 48000
|
| 152 |
+
max_samples: 20000
|
| 153 |
+
batch_size: 1
|
| 154 |
+
val_segment_num_negatives:
|
| 155 |
+
- 29
|
| 156 |
+
- 64
|
| 157 |
+
val_segment_num_negative_videos: ${model.contrastive.num_negative_videos}
|
| 158 |
+
val_global_num_negatives:
|
| 159 |
+
- 64
|
| 160 |
+
- 256
|
| 161 |
+
training:
|
| 162 |
+
max_steps: 200000
|
| 163 |
+
batch_size: 1
|
| 164 |
+
lr: 0.0001
|
| 165 |
+
weight_decay: 0.0001
|
| 166 |
+
betas:
|
| 167 |
+
- 0.9
|
| 168 |
+
- 0.999
|
| 169 |
+
lr_video_vae: 2.0e-05
|
| 170 |
+
lr_audio_vae: 1.0e-05
|
| 171 |
+
lr_contrastive_head: null
|
| 172 |
+
lr_llm_caption_head: null
|
| 173 |
+
lr_distill_proj: null
|
| 174 |
+
lr_video_logvar: null
|
| 175 |
+
max_grad_norm: 1.0
|
| 176 |
+
gradient_accumulation_steps: 1
|
| 177 |
+
dtype: fp32
|
| 178 |
+
video_vae_dtype: bf16
|
| 179 |
+
audio_vae_dtype: fp32
|
| 180 |
+
contrastive_dtype: bfloat16
|
| 181 |
+
llm_dtype: bfloat16
|
| 182 |
+
lr_disc: 0.0001
|
| 183 |
+
disc_betas:
|
| 184 |
+
- 0.9
|
| 185 |
+
- 0.99
|
| 186 |
+
disc_weight_decay: 0.0
|
| 187 |
+
disc_max_grad_norm: null
|
| 188 |
+
disc_dtype: fp32
|
| 189 |
+
qk_norm: true
|
| 190 |
+
warmup_steps: 4000
|
| 191 |
+
lr_video_vae_warmup_steps: 6000
|
| 192 |
+
lr_video_vae_total_steps: null
|
| 193 |
+
lr_video_vae_start_step: null
|
| 194 |
+
lr_video_vae_min_ratio: 0.1
|
| 195 |
+
lr_audio_vae_warmup_steps: null
|
| 196 |
+
lr_audio_vae_total_steps: null
|
| 197 |
+
lr_audio_vae_start_step: null
|
| 198 |
+
lr_audio_vae_min_ratio: null
|
| 199 |
+
gradient_checkpointing: true
|
| 200 |
+
random_start: false
|
| 201 |
+
use_ema: false
|
| 202 |
+
ema_decay: 0.999
|
| 203 |
+
log_steps: 3
|
| 204 |
+
stdout_steps: 10
|
| 205 |
+
eval_steps: 2000
|
| 206 |
+
save_steps: 2000
|
| 207 |
+
max_checkpoints: 5000
|
| 208 |
+
reset_scheduler_on_resume: true
|
| 209 |
+
loss:
|
| 210 |
+
use_video_recon: true
|
| 211 |
+
use_audio_recon: true
|
| 212 |
+
use_segment_contrastive: true
|
| 213 |
+
use_global_contrastive: false
|
| 214 |
+
lambda_group_video: 1.0
|
| 215 |
+
lambda_group_audio: 1.0
|
| 216 |
+
lambda_group_contrastive: 1.0
|
| 217 |
+
lambda_video_recon: 1.0
|
| 218 |
+
lambda_video_kl: 0.0001
|
| 219 |
+
lambda_video_lpips: 1.0
|
| 220 |
+
video_loss_reduction: sum
|
| 221 |
+
lambda_audio_mel: 1.0
|
| 222 |
+
lambda_audio_recon: 1.0
|
| 223 |
+
lambda_audio_kl: 0.5
|
| 224 |
+
use_audio_disc: false
|
| 225 |
+
audio_disc_start_step: 0
|
| 226 |
+
lambda_audio_adv: 1.0
|
| 227 |
+
lambda_audio_feature_matching: 1.0
|
| 228 |
+
audio_disc_params:
|
| 229 |
+
mpd: {}
|
| 230 |
+
msd: {}
|
| 231 |
+
mstftd:
|
| 232 |
+
filters: 32
|
| 233 |
+
n_ffts:
|
| 234 |
+
- 1024
|
| 235 |
+
- 2048
|
| 236 |
+
- 512
|
| 237 |
+
- 256
|
| 238 |
+
- 128
|
| 239 |
+
hop_lengths:
|
| 240 |
+
- 256
|
| 241 |
+
- 512
|
| 242 |
+
- 128
|
| 243 |
+
- 64
|
| 244 |
+
- 32
|
| 245 |
+
win_lengths:
|
| 246 |
+
- 1024
|
| 247 |
+
- 2048
|
| 248 |
+
- 512
|
| 249 |
+
- 256
|
| 250 |
+
- 128
|
| 251 |
+
use_video_disc: false
|
| 252 |
+
video_disc_start_step: 0
|
| 253 |
+
lambda_video_adv: 0.5
|
| 254 |
+
video_disc_loss_type: hinge
|
| 255 |
+
video_disc_adaptive_weight: false
|
| 256 |
+
distill_every_steps: false
|
| 257 |
+
video_disc_params:
|
| 258 |
+
input_nc: 3
|
| 259 |
+
ndf: 64
|
| 260 |
+
n_layers: 3
|
| 261 |
+
use_actnorm: false
|
| 262 |
+
lambda_segment_contrastive: 1.0
|
| 263 |
+
lambda_global_contrastive: 1.0
|
| 264 |
+
global_contrastive_start_steps: 0
|
| 265 |
+
video_loss_clamp: false
|
| 266 |
+
video_recon_clamp_max: 8000.0
|
| 267 |
+
video_lpips_clamp_max: 0.25
|
| 268 |
+
video_kl_clamp_max: 6000.0
|
| 269 |
+
adaptive_loss_balance: false
|
| 270 |
+
adaptive_balance_audio_ratio: 0.5
|
| 271 |
+
adaptive_balance_contrastive_ratio: 0.5
|
| 272 |
+
adaptive_loss_balance_by_uncertainty: false
|
| 273 |
+
uncertainty_warmup_steps: 100
|
| 274 |
+
adaptive_loss_balance_v2: true
|
| 275 |
+
adaptive_anchor_source: contrastive
|
| 276 |
+
adaptive_anchor_ema_decay: 0.99
|
| 277 |
+
adaptive_anchor_warmup_steps: 200
|
| 278 |
+
adaptive_scale_clamp_min: 0.001
|
| 279 |
+
adaptive_scale_clamp_max: 100.0
|
| 280 |
+
adaptive_ratio_video: 1.0
|
| 281 |
+
adaptive_ratio_audio: 1.0
|
| 282 |
+
adaptive_ratio_contrastive: 1.5
|
| 283 |
+
adaptive_anchor_source_stage1: contrastive
|
| 284 |
+
adaptive_ratio_video_stage1: 0.0
|
| 285 |
+
adaptive_ratio_audio_stage1: 1.0
|
| 286 |
+
adaptive_ratio_contrastive_stage1: 2.0
|
| 287 |
+
adaptive_v2_stage2_use_gradient: false
|
| 288 |
+
adaptive_v2_stage2_blend_steps: 0
|
| 289 |
+
gradient_ratio_video_stage2: null
|
| 290 |
+
gradient_ratio_audio_stage2: null
|
| 291 |
+
freeze_video_vae: true
|
| 292 |
+
freeze_video_vae_until_step: 20000
|
| 293 |
+
freeze_audio_vae: false
|
| 294 |
+
freeze_audio_vae_until_step: 0
|
| 295 |
+
use_semantic_distill: false
|
| 296 |
+
encoder_fps: 4
|
| 297 |
+
encoder_resolution: 256
|
| 298 |
+
distill_vision_layer: 18
|
| 299 |
+
distill_audio_layer: 24
|
| 300 |
+
lambda_distill_image_cosine: 1.0
|
| 301 |
+
lambda_distill_image_distance: 1.0
|
| 302 |
+
lambda_distill_video_cosine: 1.0
|
| 303 |
+
lambda_distill_video_distance: 1.0
|
| 304 |
+
lambda_distill_audio_d_axis: 120.0
|
| 305 |
+
lambda_distill_audio_t_axis: 1.0
|
| 306 |
+
distill_w_hyper: 0.1
|
| 307 |
+
distill_audio_type: d_axis
|
| 308 |
+
lambda_group_distill: 1.0
|
| 309 |
+
distill_spatial_norm: true
|
| 310 |
+
distill_spatial_norm_gamma: 0.6
|
| 311 |
+
distill_margin_cosine: 0.0
|
| 312 |
+
distill_margin_distance: 0.25
|
| 313 |
+
distill_use_dist_matrix: false
|
| 314 |
+
adaptive_distill_balance: false
|
| 315 |
+
adaptive_distill_video_ratio: 0.1
|
| 316 |
+
adaptive_distill_audio_ratio: 0.1
|
| 317 |
+
use_llm_caption: false
|
| 318 |
+
lambda_group_llm: 1.0
|
| 319 |
+
lambda_llm_caption: 1.0
|
| 320 |
+
mel_loss_kwargs:
|
| 321 |
+
sample_rate: 48000
|
| 322 |
+
n_mels:
|
| 323 |
+
- 5
|
| 324 |
+
- 10
|
| 325 |
+
- 20
|
| 326 |
+
- 40
|
| 327 |
+
- 80
|
| 328 |
+
- 160
|
| 329 |
+
- 320
|
| 330 |
+
window_lengths:
|
| 331 |
+
- 32
|
| 332 |
+
- 64
|
| 333 |
+
- 128
|
| 334 |
+
- 256
|
| 335 |
+
- 512
|
| 336 |
+
- 1024
|
| 337 |
+
- 2048
|
| 338 |
+
weights:
|
| 339 |
+
- 15
|
| 340 |
+
- 15
|
| 341 |
+
- 15
|
| 342 |
+
- 15
|
| 343 |
+
- 15
|
| 344 |
+
- 15
|
| 345 |
+
- 15
|
| 346 |
+
pow: 1.0
|
| 347 |
+
mel_fmin:
|
| 348 |
+
- 0.0
|
| 349 |
+
- 0.0
|
| 350 |
+
- 0.0
|
| 351 |
+
- 0.0
|
| 352 |
+
- 0.0
|
| 353 |
+
- 0.0
|
| 354 |
+
- 0.0
|
| 355 |
+
mel_fmax:
|
| 356 |
+
- null
|
| 357 |
+
- null
|
| 358 |
+
- null
|
| 359 |
+
- null
|
| 360 |
+
- null
|
| 361 |
+
- null
|
| 362 |
+
- null
|
| 363 |
+
output:
|
| 364 |
+
exp_root: outputs
|
models/vae/audio_video/recon_avclip/metadata.json
ADDED
|
@@ -0,0 +1,8 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"package_type": "vae",
|
| 3 |
+
"modality": "audio_video",
|
| 4 |
+
"name": "recon_avclip",
|
| 5 |
+
"config": "models/vae/audio_video/recon_avclip/config.yaml",
|
| 6 |
+
"checkpoint": "models/vae/audio_video/recon_avclip/state_dict.pt",
|
| 7 |
+
"notes": "Unified audio-video VAE checkpoint without training state."
|
| 8 |
+
}
|
models/vae/audio_video/recon_distill_avclip/config.yaml
ADDED
|
@@ -0,0 +1,367 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
seed: 1234
|
| 2 |
+
audio_sample_rate: 48000
|
| 3 |
+
num_frames: 193
|
| 4 |
+
resolution: 256
|
| 5 |
+
target_fps: 24
|
| 6 |
+
video_frame_sample_rate: 1
|
| 7 |
+
model:
|
| 8 |
+
video:
|
| 9 |
+
model_name: WanVAE22
|
| 10 |
+
model_config: scripts/causalvae/wanvae22_48dim.json
|
| 11 |
+
pretrained_model_name_or_path: null
|
| 12 |
+
qk_norm: true
|
| 13 |
+
audio:
|
| 14 |
+
audio_sample_rate: 48000
|
| 15 |
+
sample_rate: 48000
|
| 16 |
+
encoder_dim: 128
|
| 17 |
+
encoder_rates:
|
| 18 |
+
- 2
|
| 19 |
+
- 3
|
| 20 |
+
- 4
|
| 21 |
+
- 5
|
| 22 |
+
- 8
|
| 23 |
+
latent_dim: 128
|
| 24 |
+
decoder_dim: 2048
|
| 25 |
+
decoder_rates:
|
| 26 |
+
- 8
|
| 27 |
+
- 5
|
| 28 |
+
- 4
|
| 29 |
+
- 3
|
| 30 |
+
- 2
|
| 31 |
+
n_codebooks: 9
|
| 32 |
+
codebook_size: 1024
|
| 33 |
+
codebook_dim: 8
|
| 34 |
+
quantizer_dropout: false
|
| 35 |
+
continuous: true
|
| 36 |
+
pretrained_model_name_or_path: null
|
| 37 |
+
contrastive:
|
| 38 |
+
contrastive_type: latent_seg
|
| 39 |
+
contrastive_use_mean: true
|
| 40 |
+
contrastive_grad_scale_video: 1.0
|
| 41 |
+
contrastive_grad_scale_audio: 1.0
|
| 42 |
+
embed_dim: 512
|
| 43 |
+
segment_hidden_dim: 1024
|
| 44 |
+
global_hidden_dim: 1024
|
| 45 |
+
segment_count: null
|
| 46 |
+
init_scale: 0.07
|
| 47 |
+
clamp_scale_min: 0.001
|
| 48 |
+
clamp_scale_max: 0.5
|
| 49 |
+
gather_for_loss: true
|
| 50 |
+
num_negatives: 96
|
| 51 |
+
num_negative_videos: 63
|
| 52 |
+
same_long_video_priority: true
|
| 53 |
+
same_long_video_num_negatives: 48
|
| 54 |
+
num_negatives_with_sibling: null
|
| 55 |
+
use_sdpa: true
|
| 56 |
+
spatial_pool_mode: transformer
|
| 57 |
+
spatial_merge_factor: 2
|
| 58 |
+
transformer_dim: 768
|
| 59 |
+
spatial_transformer_layers: 1
|
| 60 |
+
segment_transformer_layers: 1
|
| 61 |
+
global_transformer_layers: 1
|
| 62 |
+
segment_temporal_pool_mode: conv
|
| 63 |
+
global_temporal_pool_mode: transformer
|
| 64 |
+
spatial_module_size: large
|
| 65 |
+
segment_module_size: large
|
| 66 |
+
global_module_size: large
|
| 67 |
+
num_negatives_no_sibling: 24
|
| 68 |
+
use_segment_loss: true
|
| 69 |
+
use_global_loss: false
|
| 70 |
+
enabled: true
|
| 71 |
+
qk_norm: true
|
| 72 |
+
distill:
|
| 73 |
+
enabled: true
|
| 74 |
+
video_target_dim: 1152
|
| 75 |
+
image_target_dim: 1152
|
| 76 |
+
audio_target_dim: 1280
|
| 77 |
+
video_spatial_factor: 4
|
| 78 |
+
image_spatial_factor: 4
|
| 79 |
+
temporal_agg_ratio: 3
|
| 80 |
+
audio_distill_type: t_axis
|
| 81 |
+
distill_proj_type: conv
|
| 82 |
+
distill_use_conv3d: false
|
| 83 |
+
distill_proj_layers: 2
|
| 84 |
+
distill_proj_hidden_dim: 256
|
| 85 |
+
distill_proj_before_agg: true
|
| 86 |
+
distill_dim_schedule: doubling
|
| 87 |
+
distill_use_sampled: false
|
| 88 |
+
audio_proj_type: conv
|
| 89 |
+
audio_proj_layers: 2
|
| 90 |
+
audio_proj_hidden_dim: 512
|
| 91 |
+
llm:
|
| 92 |
+
enabled: false
|
| 93 |
+
llm_model_path: models/text_encoder/Qwen3.5-0.8B-Base
|
| 94 |
+
freeze_llm: false
|
| 95 |
+
include_first_frame: false
|
| 96 |
+
spatial_merge_factor: 4
|
| 97 |
+
temporal_merge_factor: 1
|
| 98 |
+
patch_embed_dim: 256
|
| 99 |
+
patch_stride: 2
|
| 100 |
+
spatial_merge_size: 2
|
| 101 |
+
audio_ds_hidden: 256
|
| 102 |
+
audio_ds_stride: 2
|
| 103 |
+
audio_inter_dim: 512
|
| 104 |
+
data:
|
| 105 |
+
train:
|
| 106 |
+
metadata_paths:
|
| 107 |
+
train_main: omitted_public_release_path
|
| 108 |
+
metadata_weights:
|
| 109 |
+
train_main: 1.0
|
| 110 |
+
use_file_processor: true
|
| 111 |
+
num_frames: 193
|
| 112 |
+
resolution: 256
|
| 113 |
+
video_frame_sample_rate: 1
|
| 114 |
+
target_fps: 24
|
| 115 |
+
audio_sample_rate: 48000
|
| 116 |
+
num_workers: 4
|
| 117 |
+
prefetch_factor: 2
|
| 118 |
+
use_image_video_alter: false
|
| 119 |
+
image_loader: jsonl
|
| 120 |
+
image_data_mixture_yaml: null
|
| 121 |
+
image_dataset_path: null
|
| 122 |
+
image_relaion: null
|
| 123 |
+
image_batch_size: null
|
| 124 |
+
video_batch_size: null
|
| 125 |
+
image_video_weights:
|
| 126 |
+
- 1
|
| 127 |
+
- 1
|
| 128 |
+
val_video:
|
| 129 |
+
video_dir: omitted_public_release_path
|
| 130 |
+
num_frames: 193
|
| 131 |
+
resolution: 256
|
| 132 |
+
video_frame_sample_rate: 1
|
| 133 |
+
target_fps: 24
|
| 134 |
+
max_samples: 1000
|
| 135 |
+
batch_size: 1
|
| 136 |
+
val_audio:
|
| 137 |
+
audio_dir: omitted_public_release_path
|
| 138 |
+
audio_sample_rate: 48000
|
| 139 |
+
max_duration: 5.0
|
| 140 |
+
max_samples: 1000
|
| 141 |
+
batch_size: 1
|
| 142 |
+
val_contrastive:
|
| 143 |
+
jsonl_paths:
|
| 144 |
+
vggsound_valid: data/train/vggsound_valid_filtered_original.jsonl
|
| 145 |
+
ct_nonspeech: data/train/nonspeech_valid_10000_original.jsonl
|
| 146 |
+
ct_speech: data/train/speech_valid_10000_orig.jsonl
|
| 147 |
+
num_frames: 193
|
| 148 |
+
resolution: 256
|
| 149 |
+
video_frame_sample_rate: 1
|
| 150 |
+
target_fps: 24
|
| 151 |
+
audio_sample_rate: 48000
|
| 152 |
+
max_samples: 20000
|
| 153 |
+
batch_size: 1
|
| 154 |
+
val_segment_num_negatives:
|
| 155 |
+
- 29
|
| 156 |
+
- 64
|
| 157 |
+
val_segment_num_negative_videos: ${model.contrastive.num_negative_videos}
|
| 158 |
+
val_global_num_negatives:
|
| 159 |
+
- 64
|
| 160 |
+
- 256
|
| 161 |
+
training:
|
| 162 |
+
max_steps: 200000
|
| 163 |
+
batch_size: 1
|
| 164 |
+
lr: 0.0001
|
| 165 |
+
weight_decay: 0.0001
|
| 166 |
+
betas:
|
| 167 |
+
- 0.9
|
| 168 |
+
- 0.999
|
| 169 |
+
lr_video_vae: 2.0e-05
|
| 170 |
+
lr_audio_vae: 5.0e-05
|
| 171 |
+
lr_contrastive_head: null
|
| 172 |
+
lr_llm_caption_head: null
|
| 173 |
+
lr_distill_proj: null
|
| 174 |
+
lr_video_logvar: null
|
| 175 |
+
max_grad_norm: 1.0
|
| 176 |
+
gradient_accumulation_steps: 1
|
| 177 |
+
dtype: fp32
|
| 178 |
+
video_vae_dtype: bf16
|
| 179 |
+
audio_vae_dtype: fp32
|
| 180 |
+
contrastive_dtype: bfloat16
|
| 181 |
+
llm_dtype: bfloat16
|
| 182 |
+
lr_disc: 0.0001
|
| 183 |
+
disc_betas:
|
| 184 |
+
- 0.9
|
| 185 |
+
- 0.99
|
| 186 |
+
disc_weight_decay: 0.0
|
| 187 |
+
disc_max_grad_norm: null
|
| 188 |
+
disc_dtype: fp32
|
| 189 |
+
qk_norm: true
|
| 190 |
+
warmup_steps: 4000
|
| 191 |
+
lr_video_vae_warmup_steps: 6000
|
| 192 |
+
lr_video_vae_total_steps: null
|
| 193 |
+
lr_video_vae_start_step: null
|
| 194 |
+
lr_video_vae_min_ratio: 0.1
|
| 195 |
+
lr_audio_vae_warmup_steps: null
|
| 196 |
+
lr_audio_vae_total_steps: null
|
| 197 |
+
lr_audio_vae_start_step: null
|
| 198 |
+
lr_audio_vae_min_ratio: null
|
| 199 |
+
gradient_checkpointing: true
|
| 200 |
+
random_start: false
|
| 201 |
+
use_ema: false
|
| 202 |
+
ema_decay: 0.999
|
| 203 |
+
log_steps: 3
|
| 204 |
+
stdout_steps: 10
|
| 205 |
+
eval_steps: 2000
|
| 206 |
+
save_steps: 2000
|
| 207 |
+
max_checkpoints: 5000
|
| 208 |
+
reset_scheduler_on_resume: true
|
| 209 |
+
loss:
|
| 210 |
+
use_video_recon: true
|
| 211 |
+
use_audio_recon: true
|
| 212 |
+
use_segment_contrastive: true
|
| 213 |
+
use_global_contrastive: false
|
| 214 |
+
lambda_group_video: 1.0
|
| 215 |
+
lambda_group_audio: 1.0
|
| 216 |
+
lambda_group_contrastive: 1.0
|
| 217 |
+
lambda_video_recon: 1.0
|
| 218 |
+
lambda_video_kl: 0.0001
|
| 219 |
+
lambda_video_lpips: 1.0
|
| 220 |
+
video_loss_reduction: sum
|
| 221 |
+
lambda_audio_mel: 1.0
|
| 222 |
+
lambda_audio_recon: 1.0
|
| 223 |
+
lambda_audio_kl: 0.5
|
| 224 |
+
use_audio_disc: false
|
| 225 |
+
audio_disc_start_step: 0
|
| 226 |
+
lambda_audio_adv: 1.0
|
| 227 |
+
lambda_audio_feature_matching: 1.0
|
| 228 |
+
audio_disc_params:
|
| 229 |
+
mpd: {}
|
| 230 |
+
msd: {}
|
| 231 |
+
mstftd:
|
| 232 |
+
filters: 32
|
| 233 |
+
n_ffts:
|
| 234 |
+
- 1024
|
| 235 |
+
- 2048
|
| 236 |
+
- 512
|
| 237 |
+
- 256
|
| 238 |
+
- 128
|
| 239 |
+
hop_lengths:
|
| 240 |
+
- 256
|
| 241 |
+
- 512
|
| 242 |
+
- 128
|
| 243 |
+
- 64
|
| 244 |
+
- 32
|
| 245 |
+
win_lengths:
|
| 246 |
+
- 1024
|
| 247 |
+
- 2048
|
| 248 |
+
- 512
|
| 249 |
+
- 256
|
| 250 |
+
- 128
|
| 251 |
+
use_video_disc: false
|
| 252 |
+
video_disc_start_step: 0
|
| 253 |
+
lambda_video_adv: 0.5
|
| 254 |
+
video_disc_loss_type: hinge
|
| 255 |
+
video_disc_adaptive_weight: false
|
| 256 |
+
distill_every_steps: false
|
| 257 |
+
video_disc_params:
|
| 258 |
+
input_nc: 3
|
| 259 |
+
ndf: 64
|
| 260 |
+
n_layers: 3
|
| 261 |
+
use_actnorm: false
|
| 262 |
+
lambda_segment_contrastive: 1.0
|
| 263 |
+
lambda_global_contrastive: 1.0
|
| 264 |
+
global_contrastive_start_steps: 0
|
| 265 |
+
video_loss_clamp: false
|
| 266 |
+
video_recon_clamp_max: 8000.0
|
| 267 |
+
video_lpips_clamp_max: 0.25
|
| 268 |
+
video_kl_clamp_max: 6000.0
|
| 269 |
+
adaptive_loss_balance: false
|
| 270 |
+
adaptive_balance_audio_ratio: 0.5
|
| 271 |
+
adaptive_balance_contrastive_ratio: 0.5
|
| 272 |
+
adaptive_loss_balance_by_uncertainty: false
|
| 273 |
+
uncertainty_warmup_steps: 100
|
| 274 |
+
adaptive_loss_balance_v2: true
|
| 275 |
+
adaptive_anchor_source: contrastive
|
| 276 |
+
adaptive_anchor_ema_decay: 0.99
|
| 277 |
+
adaptive_anchor_warmup_steps: 200
|
| 278 |
+
adaptive_scale_clamp_min: 0.001
|
| 279 |
+
adaptive_scale_clamp_max: 100.0
|
| 280 |
+
adaptive_ratio_video: 1.0
|
| 281 |
+
adaptive_ratio_audio: 1.0
|
| 282 |
+
adaptive_ratio_contrastive: 1.5
|
| 283 |
+
adaptive_anchor_source_stage1: contrastive
|
| 284 |
+
adaptive_ratio_video_stage1: 0.0
|
| 285 |
+
adaptive_ratio_audio_stage1: 1.0
|
| 286 |
+
adaptive_ratio_contrastive_stage1: 2.0
|
| 287 |
+
adaptive_v2_stage2_use_gradient: false
|
| 288 |
+
adaptive_v2_stage2_blend_steps: 0
|
| 289 |
+
gradient_ratio_video_stage2: null
|
| 290 |
+
gradient_ratio_audio_stage2: null
|
| 291 |
+
freeze_video_vae: true
|
| 292 |
+
freeze_video_vae_until_step: 20000
|
| 293 |
+
freeze_audio_vae: false
|
| 294 |
+
freeze_audio_vae_until_step: 0
|
| 295 |
+
use_semantic_distill: true
|
| 296 |
+
encoder_fps: 4.0
|
| 297 |
+
encoder_resolution: 256
|
| 298 |
+
distill_vision_layer: 18
|
| 299 |
+
distill_audio_layer: 24
|
| 300 |
+
lambda_distill_image_cosine: 1.0
|
| 301 |
+
lambda_distill_image_distance: 1.0
|
| 302 |
+
lambda_distill_video_cosine: 1.0
|
| 303 |
+
lambda_distill_video_distance: 1.0
|
| 304 |
+
lambda_distill_audio_d_axis: 120.0
|
| 305 |
+
lambda_distill_audio_t_axis: 1.0
|
| 306 |
+
distill_w_hyper: 0.1
|
| 307 |
+
distill_audio_type: t_axis
|
| 308 |
+
lambda_group_distill: 1.0
|
| 309 |
+
distill_spatial_norm: true
|
| 310 |
+
distill_spatial_norm_gamma: 0.7
|
| 311 |
+
distill_margin_cosine: 0.0
|
| 312 |
+
distill_margin_distance: 0.25
|
| 313 |
+
distill_use_dist_matrix: false
|
| 314 |
+
adaptive_distill_balance: true
|
| 315 |
+
adaptive_distill_video_ratio: 0.2
|
| 316 |
+
adaptive_distill_audio_ratio: 0.2
|
| 317 |
+
use_llm_caption: false
|
| 318 |
+
lambda_group_llm: 1.0
|
| 319 |
+
lambda_llm_caption: 1.0
|
| 320 |
+
mel_loss_kwargs:
|
| 321 |
+
sample_rate: 48000
|
| 322 |
+
n_mels:
|
| 323 |
+
- 5
|
| 324 |
+
- 10
|
| 325 |
+
- 20
|
| 326 |
+
- 40
|
| 327 |
+
- 80
|
| 328 |
+
- 160
|
| 329 |
+
- 320
|
| 330 |
+
window_lengths:
|
| 331 |
+
- 32
|
| 332 |
+
- 64
|
| 333 |
+
- 128
|
| 334 |
+
- 256
|
| 335 |
+
- 512
|
| 336 |
+
- 1024
|
| 337 |
+
- 2048
|
| 338 |
+
weights:
|
| 339 |
+
- 15
|
| 340 |
+
- 15
|
| 341 |
+
- 15
|
| 342 |
+
- 15
|
| 343 |
+
- 15
|
| 344 |
+
- 15
|
| 345 |
+
- 15
|
| 346 |
+
pow: 1.0
|
| 347 |
+
mel_fmin:
|
| 348 |
+
- 0.0
|
| 349 |
+
- 0.0
|
| 350 |
+
- 0.0
|
| 351 |
+
- 0.0
|
| 352 |
+
- 0.0
|
| 353 |
+
- 0.0
|
| 354 |
+
- 0.0
|
| 355 |
+
mel_fmax:
|
| 356 |
+
- null
|
| 357 |
+
- null
|
| 358 |
+
- null
|
| 359 |
+
- null
|
| 360 |
+
- null
|
| 361 |
+
- null
|
| 362 |
+
- null
|
| 363 |
+
video_distill_start_step: 20000
|
| 364 |
+
audio_distill_start_step: 0
|
| 365 |
+
semantic_model_path: models/text_encoder/Qwen3.5-0.8B-Base
|
| 366 |
+
output:
|
| 367 |
+
exp_root: outputs
|
models/vae/audio_video/recon_distill_avclip/metadata.json
ADDED
|
@@ -0,0 +1,8 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"package_type": "vae",
|
| 3 |
+
"modality": "audio_video",
|
| 4 |
+
"name": "recon_distill_avclip",
|
| 5 |
+
"config": "models/vae/audio_video/recon_distill_avclip/config.yaml",
|
| 6 |
+
"checkpoint": "models/vae/audio_video/recon_distill_avclip/state_dict.pt",
|
| 7 |
+
"notes": "Unified distilled audio-video VAE checkpoint without training state."
|
| 8 |
+
}
|
models/vae/manifest.json
ADDED
|
@@ -0,0 +1,66 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
[
|
| 2 |
+
{
|
| 3 |
+
"modality": "video_only",
|
| 4 |
+
"name": "recon",
|
| 5 |
+
"path": "models/vae/video_only/recon",
|
| 6 |
+
"relative_path": "models/vae/video_only/recon",
|
| 7 |
+
"config": "models/vae/video_only/recon/config.yaml",
|
| 8 |
+
"checkpoint": "models/vae/video_only/recon/state_dict.pt"
|
| 9 |
+
},
|
| 10 |
+
{
|
| 11 |
+
"modality": "video_only",
|
| 12 |
+
"name": "recon_distill",
|
| 13 |
+
"path": "models/vae/video_only/recon_distill",
|
| 14 |
+
"relative_path": "models/vae/video_only/recon_distill",
|
| 15 |
+
"config": "models/vae/video_only/recon_distill/config.yaml",
|
| 16 |
+
"checkpoint": "models/vae/video_only/recon_distill/state_dict.pt"
|
| 17 |
+
},
|
| 18 |
+
{
|
| 19 |
+
"modality": "audio_only",
|
| 20 |
+
"name": "recon",
|
| 21 |
+
"path": "models/vae/audio_only/recon",
|
| 22 |
+
"relative_path": "models/vae/audio_only/recon",
|
| 23 |
+
"config": "models/vae/audio_only/recon/config.yaml",
|
| 24 |
+
"checkpoint": "models/vae/audio_only/recon/state_dict.pt"
|
| 25 |
+
},
|
| 26 |
+
{
|
| 27 |
+
"modality": "audio_only",
|
| 28 |
+
"name": "recon_distill",
|
| 29 |
+
"path": "models/vae/audio_only/recon_distill",
|
| 30 |
+
"relative_path": "models/vae/audio_only/recon_distill",
|
| 31 |
+
"config": "models/vae/audio_only/recon_distill/config.yaml",
|
| 32 |
+
"checkpoint": "models/vae/audio_only/recon_distill/state_dict.pt"
|
| 33 |
+
},
|
| 34 |
+
{
|
| 35 |
+
"modality": "audio_only",
|
| 36 |
+
"name": "recon_avclip_ft_decoder",
|
| 37 |
+
"path": "models/vae/audio_only/recon_avclip_ft_decoder",
|
| 38 |
+
"relative_path": "models/vae/audio_only/recon_avclip_ft_decoder",
|
| 39 |
+
"config": "models/vae/audio_only/recon_avclip_ft_decoder/config.yaml",
|
| 40 |
+
"checkpoint": "models/vae/audio_only/recon_avclip_ft_decoder/state_dict.pt"
|
| 41 |
+
},
|
| 42 |
+
{
|
| 43 |
+
"modality": "audio_only",
|
| 44 |
+
"name": "recon_distill_avclip_ft_decoder",
|
| 45 |
+
"path": "models/vae/audio_only/recon_distill_avclip_ft_decoder",
|
| 46 |
+
"relative_path": "models/vae/audio_only/recon_distill_avclip_ft_decoder",
|
| 47 |
+
"config": "models/vae/audio_only/recon_distill_avclip_ft_decoder/config.yaml",
|
| 48 |
+
"checkpoint": "models/vae/audio_only/recon_distill_avclip_ft_decoder/state_dict.pt"
|
| 49 |
+
},
|
| 50 |
+
{
|
| 51 |
+
"modality": "audio_video",
|
| 52 |
+
"name": "recon_avclip",
|
| 53 |
+
"path": "models/vae/audio_video/recon_avclip",
|
| 54 |
+
"relative_path": "models/vae/audio_video/recon_avclip",
|
| 55 |
+
"config": "models/vae/audio_video/recon_avclip/config.yaml",
|
| 56 |
+
"checkpoint": "models/vae/audio_video/recon_avclip/state_dict.pt"
|
| 57 |
+
},
|
| 58 |
+
{
|
| 59 |
+
"modality": "audio_video",
|
| 60 |
+
"name": "recon_distill_avclip",
|
| 61 |
+
"path": "models/vae/audio_video/recon_distill_avclip",
|
| 62 |
+
"relative_path": "models/vae/audio_video/recon_distill_avclip",
|
| 63 |
+
"config": "models/vae/audio_video/recon_distill_avclip/config.yaml",
|
| 64 |
+
"checkpoint": "models/vae/audio_video/recon_distill_avclip/state_dict.pt"
|
| 65 |
+
}
|
| 66 |
+
]
|
models/vae/video_only/recon/config.yaml
ADDED
|
@@ -0,0 +1,260 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
seed: 1234
|
| 2 |
+
audio_sample_rate: 48000
|
| 3 |
+
num_frames: 121
|
| 4 |
+
resolution: 256
|
| 5 |
+
target_fps: 24
|
| 6 |
+
video_frame_sample_rate: 1
|
| 7 |
+
model:
|
| 8 |
+
video:
|
| 9 |
+
model_name: WanVAE22
|
| 10 |
+
model_config: scripts/causalvae/wanvae22_48dim.json
|
| 11 |
+
pretrained_model_name_or_path: null
|
| 12 |
+
audio:
|
| 13 |
+
audio_sample_rate: 48000
|
| 14 |
+
sample_rate: 48000
|
| 15 |
+
encoder_dim: 128
|
| 16 |
+
encoder_rates:
|
| 17 |
+
- 2
|
| 18 |
+
- 3
|
| 19 |
+
- 4
|
| 20 |
+
- 5
|
| 21 |
+
- 8
|
| 22 |
+
latent_dim: 128
|
| 23 |
+
decoder_dim: 2048
|
| 24 |
+
decoder_rates:
|
| 25 |
+
- 8
|
| 26 |
+
- 5
|
| 27 |
+
- 4
|
| 28 |
+
- 3
|
| 29 |
+
- 2
|
| 30 |
+
n_codebooks: 9
|
| 31 |
+
codebook_size: 1024
|
| 32 |
+
codebook_dim: 8
|
| 33 |
+
quantizer_dropout: false
|
| 34 |
+
continuous: true
|
| 35 |
+
pretrained_model_name_or_path: null
|
| 36 |
+
contrastive:
|
| 37 |
+
contrastive_use_mean: true
|
| 38 |
+
embed_dim: 512
|
| 39 |
+
segment_hidden_dim: 1024
|
| 40 |
+
global_hidden_dim: 1024
|
| 41 |
+
segment_count: null
|
| 42 |
+
init_scale: 0.07
|
| 43 |
+
clamp_scale_min: 0.001
|
| 44 |
+
clamp_scale_max: 0.5
|
| 45 |
+
gather_for_loss: true
|
| 46 |
+
num_negatives: 23
|
| 47 |
+
num_negative_videos: 63
|
| 48 |
+
use_sdpa: true
|
| 49 |
+
spatial_pool_mode: mean
|
| 50 |
+
spatial_merge_factor: 4
|
| 51 |
+
transformer_dim: 768
|
| 52 |
+
spatial_transformer_layers: 1
|
| 53 |
+
segment_transformer_layers: 1
|
| 54 |
+
global_transformer_layers: 1
|
| 55 |
+
use_segment_loss: false
|
| 56 |
+
use_global_loss: false
|
| 57 |
+
enabled: false
|
| 58 |
+
distill:
|
| 59 |
+
enabled: false
|
| 60 |
+
video_target_dim: 1152
|
| 61 |
+
image_target_dim: 1152
|
| 62 |
+
audio_target_dim: 1280
|
| 63 |
+
video_spatial_factor: 4
|
| 64 |
+
image_spatial_factor: 4
|
| 65 |
+
temporal_agg_ratio: 3
|
| 66 |
+
audio_distill_type: d_axis
|
| 67 |
+
distill_proj_type: conv
|
| 68 |
+
distill_use_conv3d: false
|
| 69 |
+
distill_proj_layers: 2
|
| 70 |
+
distill_proj_hidden_dim: 256
|
| 71 |
+
distill_proj_before_agg: true
|
| 72 |
+
distill_dim_schedule: fixed
|
| 73 |
+
distill_use_sampled: false
|
| 74 |
+
audio_proj_type: conv
|
| 75 |
+
audio_proj_layers: 2
|
| 76 |
+
audio_proj_hidden_dim: 512
|
| 77 |
+
llm:
|
| 78 |
+
enabled: false
|
| 79 |
+
llm_model_path: models/text_encoder/Qwen3.5-0.8B-Base
|
| 80 |
+
freeze_llm: false
|
| 81 |
+
include_first_frame: false
|
| 82 |
+
spatial_merge_factor: 4
|
| 83 |
+
temporal_merge_factor: 1
|
| 84 |
+
patch_embed_dim: 256
|
| 85 |
+
patch_stride: 2
|
| 86 |
+
spatial_merge_size: 2
|
| 87 |
+
audio_ds_hidden: 256
|
| 88 |
+
audio_ds_stride: 2
|
| 89 |
+
audio_inter_dim: 512
|
| 90 |
+
data:
|
| 91 |
+
train:
|
| 92 |
+
metadata_paths:
|
| 93 |
+
train_main: omitted_public_release_path
|
| 94 |
+
metadata_weights:
|
| 95 |
+
train_main: 1.0
|
| 96 |
+
use_file_processor: true
|
| 97 |
+
num_frames: 121
|
| 98 |
+
resolution: 256
|
| 99 |
+
video_frame_sample_rate: 1
|
| 100 |
+
target_fps: 24
|
| 101 |
+
audio_sample_rate: 48000
|
| 102 |
+
num_workers: 4
|
| 103 |
+
prefetch_factor: 2
|
| 104 |
+
val_video:
|
| 105 |
+
video_dir: omitted_public_release_path
|
| 106 |
+
num_frames: 121
|
| 107 |
+
resolution: 256
|
| 108 |
+
video_frame_sample_rate: 1
|
| 109 |
+
target_fps: 24
|
| 110 |
+
max_samples: 1000
|
| 111 |
+
batch_size: 1
|
| 112 |
+
val_audio:
|
| 113 |
+
audio_dir: omitted_public_release_path
|
| 114 |
+
audio_sample_rate: 48000
|
| 115 |
+
max_duration: 5.0
|
| 116 |
+
max_samples: 1000
|
| 117 |
+
batch_size: 1
|
| 118 |
+
val_contrastive:
|
| 119 |
+
jsonl_paths:
|
| 120 |
+
vggsound_valid: data/train/vggsound_valid_filtered.jsonl
|
| 121 |
+
ct_nonspeech: data/train/nonspeech_valid_10000.jsonl
|
| 122 |
+
ct_speech: data/train/speech_valid_10000.jsonl
|
| 123 |
+
num_frames: 121
|
| 124 |
+
resolution: 256
|
| 125 |
+
video_frame_sample_rate: 1
|
| 126 |
+
target_fps: 24
|
| 127 |
+
audio_sample_rate: 48000
|
| 128 |
+
max_samples: 20000
|
| 129 |
+
batch_size: 1
|
| 130 |
+
val_segment_num_negatives:
|
| 131 |
+
- 29
|
| 132 |
+
- 64
|
| 133 |
+
val_segment_num_negative_videos: ${model.contrastive.num_negative_videos}
|
| 134 |
+
val_global_num_negatives:
|
| 135 |
+
- 64
|
| 136 |
+
- 256
|
| 137 |
+
training:
|
| 138 |
+
max_steps: 500000
|
| 139 |
+
batch_size: 1
|
| 140 |
+
lr: 1.0e-05
|
| 141 |
+
weight_decay: 0.0001
|
| 142 |
+
betas:
|
| 143 |
+
- 0.9
|
| 144 |
+
- 0.999
|
| 145 |
+
max_grad_norm: 1.0
|
| 146 |
+
gradient_accumulation_steps: 1
|
| 147 |
+
dtype: fp32
|
| 148 |
+
video_vae_dtype: bf16
|
| 149 |
+
audio_vae_dtype: fp32
|
| 150 |
+
contrastive_dtype: bfloat16
|
| 151 |
+
llm_dtype: bfloat16
|
| 152 |
+
gradient_checkpointing: true
|
| 153 |
+
random_start: false
|
| 154 |
+
use_ema: false
|
| 155 |
+
ema_decay: 0.999
|
| 156 |
+
qk_norm: false
|
| 157 |
+
log_steps: 3
|
| 158 |
+
stdout_steps: 10
|
| 159 |
+
eval_steps: 2000
|
| 160 |
+
save_steps: 2000
|
| 161 |
+
max_checkpoints: 5000
|
| 162 |
+
lr_disc: 5.0e-06
|
| 163 |
+
loss:
|
| 164 |
+
use_video_recon: true
|
| 165 |
+
use_audio_recon: false
|
| 166 |
+
use_segment_contrastive: false
|
| 167 |
+
use_global_contrastive: false
|
| 168 |
+
lambda_group_video: 1.0
|
| 169 |
+
lambda_group_audio: 1.0
|
| 170 |
+
lambda_group_contrastive: 1.0
|
| 171 |
+
lambda_video_recon: 1.0
|
| 172 |
+
lambda_video_kl: 0.0001
|
| 173 |
+
lambda_video_lpips: 1.0
|
| 174 |
+
video_loss_reduction: sum
|
| 175 |
+
lambda_audio_mel: 1.0
|
| 176 |
+
lambda_audio_recon: 0.0
|
| 177 |
+
lambda_audio_kl: 0.5
|
| 178 |
+
lambda_segment_contrastive: 1.0
|
| 179 |
+
lambda_global_contrastive: 1.0
|
| 180 |
+
global_contrastive_start_steps: 0
|
| 181 |
+
adaptive_loss_balance: true
|
| 182 |
+
adaptive_balance_audio_ratio: 0.5
|
| 183 |
+
adaptive_balance_contrastive_ratio: 0.5
|
| 184 |
+
adaptive_loss_balance_by_uncertainty: false
|
| 185 |
+
uncertainty_warmup_steps: 100
|
| 186 |
+
use_semantic_distill: false
|
| 187 |
+
encoder_fps: 4
|
| 188 |
+
encoder_resolution: 256
|
| 189 |
+
distill_vision_layer: 18
|
| 190 |
+
distill_audio_layer: 24
|
| 191 |
+
lambda_distill_image_cosine: 1.0
|
| 192 |
+
lambda_distill_image_distance: 1.0
|
| 193 |
+
lambda_distill_video_cosine: 1.0
|
| 194 |
+
lambda_distill_video_distance: 1.0
|
| 195 |
+
lambda_distill_audio_d_axis: 120.0
|
| 196 |
+
lambda_distill_audio_t_axis: 1.0
|
| 197 |
+
distill_w_hyper: 0.1
|
| 198 |
+
distill_audio_type: d_axis
|
| 199 |
+
lambda_group_distill: 1.0
|
| 200 |
+
distill_spatial_norm: true
|
| 201 |
+
distill_spatial_norm_gamma: 0.6
|
| 202 |
+
distill_margin_cosine: 0.0
|
| 203 |
+
distill_margin_distance: 0.25
|
| 204 |
+
distill_use_dist_matrix: false
|
| 205 |
+
adaptive_distill_balance: false
|
| 206 |
+
adaptive_distill_video_ratio: 0.1
|
| 207 |
+
adaptive_distill_audio_ratio: 0.1
|
| 208 |
+
use_llm_caption: false
|
| 209 |
+
lambda_group_llm: 1.0
|
| 210 |
+
lambda_llm_caption: 1.0
|
| 211 |
+
mel_loss_kwargs:
|
| 212 |
+
sample_rate: 48000
|
| 213 |
+
n_mels:
|
| 214 |
+
- 5
|
| 215 |
+
- 10
|
| 216 |
+
- 20
|
| 217 |
+
- 40
|
| 218 |
+
- 80
|
| 219 |
+
- 160
|
| 220 |
+
- 320
|
| 221 |
+
window_lengths:
|
| 222 |
+
- 32
|
| 223 |
+
- 64
|
| 224 |
+
- 128
|
| 225 |
+
- 256
|
| 226 |
+
- 512
|
| 227 |
+
- 1024
|
| 228 |
+
- 2048
|
| 229 |
+
weights:
|
| 230 |
+
- 15
|
| 231 |
+
- 15
|
| 232 |
+
- 15
|
| 233 |
+
- 15
|
| 234 |
+
- 15
|
| 235 |
+
- 15
|
| 236 |
+
- 15
|
| 237 |
+
pow: 1.0
|
| 238 |
+
mel_fmin:
|
| 239 |
+
- 0.0
|
| 240 |
+
- 0.0
|
| 241 |
+
- 0.0
|
| 242 |
+
- 0.0
|
| 243 |
+
- 0.0
|
| 244 |
+
- 0.0
|
| 245 |
+
- 0.0
|
| 246 |
+
mel_fmax:
|
| 247 |
+
- null
|
| 248 |
+
- null
|
| 249 |
+
- null
|
| 250 |
+
- null
|
| 251 |
+
- null
|
| 252 |
+
- null
|
| 253 |
+
- null
|
| 254 |
+
use_video_disc: true
|
| 255 |
+
video_disc_start_step: 3000
|
| 256 |
+
lambda_video_adv: 0.1
|
| 257 |
+
video_disc_loss_type: hinge
|
| 258 |
+
video_disc_adaptive_weight: true
|
| 259 |
+
output:
|
| 260 |
+
exp_root: outputs
|
models/vae/video_only/recon/metadata.json
ADDED
|
@@ -0,0 +1,8 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"package_type": "vae",
|
| 3 |
+
"modality": "video_only",
|
| 4 |
+
"name": "recon",
|
| 5 |
+
"config": "models/vae/video_only/recon/config.yaml",
|
| 6 |
+
"checkpoint": "models/vae/video_only/recon/state_dict.pt",
|
| 7 |
+
"notes": "Video reconstruction VAE checkpoint without training state."
|
| 8 |
+
}
|
models/vae/video_only/recon_distill/config.yaml
ADDED
|
@@ -0,0 +1,262 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
seed: 1234
|
| 2 |
+
audio_sample_rate: 48000
|
| 3 |
+
num_frames: 121
|
| 4 |
+
resolution: 256
|
| 5 |
+
target_fps: 24
|
| 6 |
+
video_frame_sample_rate: 1
|
| 7 |
+
model:
|
| 8 |
+
video:
|
| 9 |
+
model_name: WanVAE22
|
| 10 |
+
model_config: scripts/causalvae/wanvae22_48dim.json
|
| 11 |
+
pretrained_model_name_or_path: null
|
| 12 |
+
audio:
|
| 13 |
+
audio_sample_rate: 48000
|
| 14 |
+
sample_rate: 48000
|
| 15 |
+
encoder_dim: 128
|
| 16 |
+
encoder_rates:
|
| 17 |
+
- 2
|
| 18 |
+
- 3
|
| 19 |
+
- 4
|
| 20 |
+
- 5
|
| 21 |
+
- 8
|
| 22 |
+
latent_dim: 128
|
| 23 |
+
decoder_dim: 2048
|
| 24 |
+
decoder_rates:
|
| 25 |
+
- 8
|
| 26 |
+
- 5
|
| 27 |
+
- 4
|
| 28 |
+
- 3
|
| 29 |
+
- 2
|
| 30 |
+
n_codebooks: 9
|
| 31 |
+
codebook_size: 1024
|
| 32 |
+
codebook_dim: 8
|
| 33 |
+
quantizer_dropout: false
|
| 34 |
+
continuous: true
|
| 35 |
+
pretrained_model_name_or_path: null
|
| 36 |
+
contrastive:
|
| 37 |
+
contrastive_use_mean: true
|
| 38 |
+
embed_dim: 512
|
| 39 |
+
segment_hidden_dim: 1024
|
| 40 |
+
global_hidden_dim: 1024
|
| 41 |
+
segment_count: null
|
| 42 |
+
init_scale: 0.07
|
| 43 |
+
clamp_scale_min: 0.001
|
| 44 |
+
clamp_scale_max: 0.5
|
| 45 |
+
gather_for_loss: true
|
| 46 |
+
num_negatives: 23
|
| 47 |
+
num_negative_videos: 63
|
| 48 |
+
use_sdpa: true
|
| 49 |
+
spatial_pool_mode: mean
|
| 50 |
+
spatial_merge_factor: 4
|
| 51 |
+
transformer_dim: 768
|
| 52 |
+
spatial_transformer_layers: 1
|
| 53 |
+
segment_transformer_layers: 1
|
| 54 |
+
global_transformer_layers: 1
|
| 55 |
+
use_segment_loss: false
|
| 56 |
+
use_global_loss: false
|
| 57 |
+
enabled: false
|
| 58 |
+
distill:
|
| 59 |
+
enabled: true
|
| 60 |
+
video_target_dim: 1152
|
| 61 |
+
image_target_dim: 1152
|
| 62 |
+
audio_target_dim: 1280
|
| 63 |
+
video_spatial_factor: 4
|
| 64 |
+
image_spatial_factor: 4
|
| 65 |
+
temporal_agg_ratio: 3
|
| 66 |
+
audio_distill_type: d_axis
|
| 67 |
+
distill_proj_type: conv
|
| 68 |
+
distill_use_conv3d: false
|
| 69 |
+
distill_proj_layers: 2
|
| 70 |
+
distill_proj_hidden_dim: 256
|
| 71 |
+
distill_proj_before_agg: true
|
| 72 |
+
distill_dim_schedule: doubling
|
| 73 |
+
distill_use_sampled: false
|
| 74 |
+
audio_proj_type: conv
|
| 75 |
+
audio_proj_layers: 2
|
| 76 |
+
audio_proj_hidden_dim: 512
|
| 77 |
+
llm:
|
| 78 |
+
enabled: false
|
| 79 |
+
llm_model_path: models/text_encoder/Qwen3.5-0.8B-Base
|
| 80 |
+
freeze_llm: false
|
| 81 |
+
include_first_frame: false
|
| 82 |
+
spatial_merge_factor: 4
|
| 83 |
+
temporal_merge_factor: 1
|
| 84 |
+
patch_embed_dim: 256
|
| 85 |
+
patch_stride: 2
|
| 86 |
+
spatial_merge_size: 2
|
| 87 |
+
audio_ds_hidden: 256
|
| 88 |
+
audio_ds_stride: 2
|
| 89 |
+
audio_inter_dim: 512
|
| 90 |
+
data:
|
| 91 |
+
train:
|
| 92 |
+
metadata_paths:
|
| 93 |
+
train_main: omitted_public_release_path
|
| 94 |
+
metadata_weights:
|
| 95 |
+
train_main: 1.0
|
| 96 |
+
use_file_processor: true
|
| 97 |
+
num_frames: 121
|
| 98 |
+
resolution: 256
|
| 99 |
+
video_frame_sample_rate: 1
|
| 100 |
+
target_fps: 24
|
| 101 |
+
audio_sample_rate: 48000
|
| 102 |
+
num_workers: 4
|
| 103 |
+
prefetch_factor: 2
|
| 104 |
+
val_video:
|
| 105 |
+
video_dir: omitted_public_release_path
|
| 106 |
+
num_frames: 121
|
| 107 |
+
resolution: 256
|
| 108 |
+
video_frame_sample_rate: 1
|
| 109 |
+
target_fps: 24
|
| 110 |
+
max_samples: 1000
|
| 111 |
+
batch_size: 1
|
| 112 |
+
val_audio:
|
| 113 |
+
audio_dir: omitted_public_release_path
|
| 114 |
+
audio_sample_rate: 48000
|
| 115 |
+
max_duration: 5.0
|
| 116 |
+
max_samples: 1000
|
| 117 |
+
batch_size: 1
|
| 118 |
+
val_contrastive:
|
| 119 |
+
jsonl_paths:
|
| 120 |
+
vggsound_valid: data/train/vggsound_valid_filtered.jsonl
|
| 121 |
+
ct_nonspeech: data/train/nonspeech_valid_10000.jsonl
|
| 122 |
+
ct_speech: data/train/speech_valid_10000.jsonl
|
| 123 |
+
num_frames: 121
|
| 124 |
+
resolution: 256
|
| 125 |
+
video_frame_sample_rate: 1
|
| 126 |
+
target_fps: 24
|
| 127 |
+
audio_sample_rate: 48000
|
| 128 |
+
max_samples: 20000
|
| 129 |
+
batch_size: 1
|
| 130 |
+
val_segment_num_negatives:
|
| 131 |
+
- 29
|
| 132 |
+
- 64
|
| 133 |
+
val_segment_num_negative_videos: ${model.contrastive.num_negative_videos}
|
| 134 |
+
val_global_num_negatives:
|
| 135 |
+
- 64
|
| 136 |
+
- 256
|
| 137 |
+
training:
|
| 138 |
+
max_steps: 500000
|
| 139 |
+
batch_size: 1
|
| 140 |
+
lr: 1.0e-05
|
| 141 |
+
weight_decay: 0.0001
|
| 142 |
+
betas:
|
| 143 |
+
- 0.9
|
| 144 |
+
- 0.999
|
| 145 |
+
max_grad_norm: 1.0
|
| 146 |
+
gradient_accumulation_steps: 1
|
| 147 |
+
dtype: fp32
|
| 148 |
+
video_vae_dtype: bf16
|
| 149 |
+
audio_vae_dtype: fp32
|
| 150 |
+
contrastive_dtype: bfloat16
|
| 151 |
+
llm_dtype: bfloat16
|
| 152 |
+
gradient_checkpointing: true
|
| 153 |
+
random_start: false
|
| 154 |
+
use_ema: false
|
| 155 |
+
ema_decay: 0.999
|
| 156 |
+
qk_norm: false
|
| 157 |
+
log_steps: 3
|
| 158 |
+
stdout_steps: 10
|
| 159 |
+
eval_steps: 2000
|
| 160 |
+
save_steps: 2000
|
| 161 |
+
max_checkpoints: 5000
|
| 162 |
+
lr_disc: 5.0e-06
|
| 163 |
+
loss:
|
| 164 |
+
use_video_recon: true
|
| 165 |
+
use_audio_recon: false
|
| 166 |
+
use_segment_contrastive: false
|
| 167 |
+
use_global_contrastive: false
|
| 168 |
+
lambda_group_video: 1.0
|
| 169 |
+
lambda_group_audio: 1.0
|
| 170 |
+
lambda_group_contrastive: 1.0
|
| 171 |
+
lambda_video_recon: 1.0
|
| 172 |
+
lambda_video_kl: 0.0001
|
| 173 |
+
lambda_video_lpips: 1.0
|
| 174 |
+
video_loss_reduction: sum
|
| 175 |
+
lambda_audio_mel: 1.0
|
| 176 |
+
lambda_audio_recon: 0.0
|
| 177 |
+
lambda_audio_kl: 0.5
|
| 178 |
+
lambda_segment_contrastive: 1.0
|
| 179 |
+
lambda_global_contrastive: 1.0
|
| 180 |
+
global_contrastive_start_steps: 0
|
| 181 |
+
adaptive_loss_balance: true
|
| 182 |
+
adaptive_balance_audio_ratio: 0.5
|
| 183 |
+
adaptive_balance_contrastive_ratio: 0.5
|
| 184 |
+
adaptive_loss_balance_by_uncertainty: false
|
| 185 |
+
uncertainty_warmup_steps: 100
|
| 186 |
+
use_semantic_distill: true
|
| 187 |
+
encoder_fps: 4.0
|
| 188 |
+
encoder_resolution: 256
|
| 189 |
+
distill_vision_layer: 18
|
| 190 |
+
distill_audio_layer: 24
|
| 191 |
+
lambda_distill_image_cosine: 1.0
|
| 192 |
+
lambda_distill_image_distance: 1.0
|
| 193 |
+
lambda_distill_video_cosine: 1.0
|
| 194 |
+
lambda_distill_video_distance: 1.0
|
| 195 |
+
lambda_distill_audio_d_axis: 120.0
|
| 196 |
+
lambda_distill_audio_t_axis: 1.0
|
| 197 |
+
distill_w_hyper: 0.1
|
| 198 |
+
distill_audio_type: d_axis
|
| 199 |
+
lambda_group_distill: 1.0
|
| 200 |
+
distill_spatial_norm: true
|
| 201 |
+
distill_spatial_norm_gamma: 0.7
|
| 202 |
+
distill_margin_cosine: 0.0
|
| 203 |
+
distill_margin_distance: 0.25
|
| 204 |
+
distill_use_dist_matrix: false
|
| 205 |
+
adaptive_distill_balance: true
|
| 206 |
+
adaptive_distill_video_ratio: 0.5
|
| 207 |
+
adaptive_distill_audio_ratio: 0.1
|
| 208 |
+
use_llm_caption: false
|
| 209 |
+
lambda_group_llm: 1.0
|
| 210 |
+
lambda_llm_caption: 1.0
|
| 211 |
+
mel_loss_kwargs:
|
| 212 |
+
sample_rate: 48000
|
| 213 |
+
n_mels:
|
| 214 |
+
- 5
|
| 215 |
+
- 10
|
| 216 |
+
- 20
|
| 217 |
+
- 40
|
| 218 |
+
- 80
|
| 219 |
+
- 160
|
| 220 |
+
- 320
|
| 221 |
+
window_lengths:
|
| 222 |
+
- 32
|
| 223 |
+
- 64
|
| 224 |
+
- 128
|
| 225 |
+
- 256
|
| 226 |
+
- 512
|
| 227 |
+
- 1024
|
| 228 |
+
- 2048
|
| 229 |
+
weights:
|
| 230 |
+
- 15
|
| 231 |
+
- 15
|
| 232 |
+
- 15
|
| 233 |
+
- 15
|
| 234 |
+
- 15
|
| 235 |
+
- 15
|
| 236 |
+
- 15
|
| 237 |
+
pow: 1.0
|
| 238 |
+
mel_fmin:
|
| 239 |
+
- 0.0
|
| 240 |
+
- 0.0
|
| 241 |
+
- 0.0
|
| 242 |
+
- 0.0
|
| 243 |
+
- 0.0
|
| 244 |
+
- 0.0
|
| 245 |
+
- 0.0
|
| 246 |
+
mel_fmax:
|
| 247 |
+
- null
|
| 248 |
+
- null
|
| 249 |
+
- null
|
| 250 |
+
- null
|
| 251 |
+
- null
|
| 252 |
+
- null
|
| 253 |
+
- null
|
| 254 |
+
use_video_disc: true
|
| 255 |
+
video_disc_start_step: 3000
|
| 256 |
+
lambda_video_adv: 0.1
|
| 257 |
+
video_disc_loss_type: hinge
|
| 258 |
+
video_disc_adaptive_weight: true
|
| 259 |
+
distill_every_steps: true
|
| 260 |
+
semantic_model_path: models/text_encoder/Qwen3.5-0.8B-Base
|
| 261 |
+
output:
|
| 262 |
+
exp_root: outputs
|
models/vae/video_only/recon_distill/metadata.json
ADDED
|
@@ -0,0 +1,8 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"package_type": "vae",
|
| 3 |
+
"modality": "video_only",
|
| 4 |
+
"name": "recon_distill",
|
| 5 |
+
"config": "models/vae/video_only/recon_distill/config.yaml",
|
| 6 |
+
"checkpoint": "models/vae/video_only/recon_distill/state_dict.pt",
|
| 7 |
+
"notes": "Distilled video reconstruction VAE checkpoint without training state."
|
| 8 |
+
}
|