diff --git a/.gitattributes b/.gitattributes index a6344aac8c09253b3b630fb776ae94478aa0275b..b7df39fb529d06ffbd64ced26ac5f2887b1bccb8 100644 --- a/.gitattributes +++ b/.gitattributes @@ -33,3 +33,5 @@ saved_model/**/* filter=lfs diff=lfs merge=lfs -text *.zip filter=lfs diff=lfs merge=lfs -text *.zst filter=lfs diff=lfs merge=lfs -text *tfevents* filter=lfs diff=lfs merge=lfs -text +tokenizer/tokenizer.json filter=lfs diff=lfs merge=lfs -text +processor/tokenizer.json filter=lfs diff=lfs merge=lfs -text diff --git a/README.md b/README.md new file mode 100644 index 0000000000000000000000000000000000000000..1db51c69867235eff551e6c0462e71e4d853ee96 --- /dev/null +++ b/README.md @@ -0,0 +1,217 @@ +--- +base_model: + - diffusers/LTX-2.3-Diffusers +library_name: diffusers +license: apache-2.0 +pipeline_tag: image-to-video +tags: + - diffusers + - safetensors + - image-to-video + - text-to-video + - audio-video + - ltx-2-3 + - vbvr +datasets: + - Video-Reason/VBVR-Dataset +--- + +# VBVR-Pro: A Scalable and Verifiable Suite for Native Visual Reasoning + + + Project Page + + + Code + + + Code + + + arXiv + + + Dataset + + + Bench Data + + + Leaderboard + + +## Overview +Native visual reasoning, i.e., reasoning through visual generation, has recently emerged as a promising direction for studying visual intelligence beyond language. Yet progress remains bottlenecked by the lack of scalable training tasks, reliable feedback, and controlled comparisons across generative substrates. In this work, we introduce **VBVR-Pro**, a closed-loop testbed that makes native visual reasoning through generation trainable, verifiable, optimizable, and experimentally controllable. **1) Task scaling.** VBVR-Pro turns visual reasoning into a controlled task space of *300* procedurally generated tasks. Models trained on VBVR-Pro show strong transfer beyond the proposed suite across *six* held-out visual reasoning benchmarks such as RISE-Video, MME-CoF-Pro, and BabyVision. Further analysis validates that these gains reflect visual reasoning rather than instruction-pattern fitting. **2) Verifiable rewards.** VBVR-Pro provides verifiable reward scorers for task-grounded evaluation. Through a systematic study of leading MLLMs as judges, we identify recurring failure modes of the prevalent *VLM-as-a-judge* paradigm. In contrast, the proposed scorers are grounded on verifiable task-specific rules, achieve fine-grained alignment with human judgments. Importantly, they serve as reliable reward signals for large-scale multi-task reinforcement learning and demonstrate stronger post-RL performance across visual reasoning tasks. **3) Mechanism study.** VBVR-Pro enables controlled modality studies across more than *30* image, video, and interleaved generators. Our analysis shows that video generation remains strongest for tasks requiring persistent spatiotemporal state tracking, while interleaved generation provides a compute-efficient alternative by externalizing intermediate visual states. Critically, ablations and probing confirm the presence of vision-native trajectories, that are a more crucial substrate than explicit linguistic chains of thought for visual reasoning. We release all data, models, scorers, and code to facilitate future research. + +The models are presented in the paper [VBVR-Pro: A Scalable and Verifiable Suite for Native Visual Reasoning](https://huggingface.co/papers/2602.20159). + +## Models Zoo + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ModelBase ArchitectureOther Remarks
Image Generation Models
VBVR-Pro-BAGELBAGEL-7B-MoTComplete model
VBVR-Pro-FLUX2-devFLUX.2-devComplete model, Diffusers format
VBVR-Pro-FLUX2-dev-diffsynthFLUX.2-devLoRA model, DiffSynth format
VBVR-Pro-Qwen-Image-EditQwen-Image-Edit-2511Complete model, Diffusers format
VBVR-Pro-Qwen-Image-Edit-diffsynthQwen-Image-Edit-2511LoRA model, DiffSynth format
Interleaved Image Generation Models
VBVR-Pro-ThinkMorphThinkMorph-7BComplete model
VBVR-Pro-SenseNova-U1SenseNova-U1-8B-MoTComplete model
Video Generation Models
VBVR-Pro-LTX2.3LTX-Video-2.3Complete model, Diffusers format
VBVR-Pro-LTX2.3-diffsynthLTX-Video-2.3LoRA model, DiffSynth format
VBVR-Pro-Wan2.1-I2V-14BWan2.1-I2V-14B-720PComplete model, Diffusers format
VBVR-Pro-Wan2.1-I2V-14B-diffsynthWan2.1-I2V-14B-720PLoRA model, DiffSynth format
VBVR-Pro-Wan2.2-I2V-A14BWan2.2-I2V-A14BComplete model, Diffusers format
VBVR-Pro-Wan2.2-I2V-A14B-diffsynthWan2.2-I2V-A14BLoRA model, DiffSynth format
VBVR-Pro-Wan2.2-TI2V-5BWan2.2-TI2V-5BComplete model, Diffusers format
VBVR-Pro-Wan2.2-TI2V-5B-diffsynthWan2.2-TI2V-5BLoRA model, DiffSynth format
+ +## Release Information + +VBVR-Pro fine-tuned **LTX-2.3** for instruction-based, image-conditioned +audio-video generation. It was trained on the +[VBVR-Dataset](https://huggingface.co/datasets/Video-Reason/VBVR-Dataset). + +This is the **merged model**: the rank-32 LoRA has already been fused into the +LTX transformer weights. Load it directly with +[diffusers](https://github.com/huggingface/diffusers); no adapter needs to be +loaded separately. + +| Format | Repository | +|---|---| +| Merged / Diffusers (this repo) | `VBVR-Pro-LTX2.3` | +| DiffSynth LoRA | `VBVR-Pro-LTX2.3-diffsynth` | + +In this release, we present all models presented in paper +[**VBVR-Pro-Trained-Models**](https://huggingface.co/collections/Video-Reason/VBVR-Pro), +[**VBVR-Pro-Dataset-Video**](https://huggingface.co/datasets/Video-Reason/VBVR-Pro-SFT-Video), +[**VBVR-Pro-Dataset-Image**](https://huggingface.co/datasets/Video-Reason/VBVR-Pro-SFT-Image), +[**VBVR-Pro-Bench**](https://huggingface.co/datasets/Video-Reason/VBVR-Pro-Bench), +[**VBVR-Pro-Code**](https://github.com/Video-Reason/VBVR-Pro) and +[**VBVR-Bench-Leaderboard**](https://video-reason.com/pro/bench/#leaderboard). + +## VBVR-Pro Benchmark Results + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ModelsOverallIn-Domain by CategoryOut-of-Domain by Category
Avg.Abst.Know.Perc.Spat.Trans.Avg.Abst.Know.Perc.Spat.Trans.
Image Generation Models
Proprietary Models
Qwen-Image-2.00.3130.2480.2690.1960.2250.1700.1320.3780.3410.2350.3910.3840.080
Seedream-5.0-Pro0.5570.4850.5180.3120.5090.4010.2170.6290.5070.4550.6610.5590.202
Open-source Models
BAGEL-7B-MoT0.0890.0660.0390.0850.0670.0460.0270.1110.2010.0310.0730.0280.121
FLUX.2-dev0.1570.1080.0880.1090.0720.1000.0660.2060.1970.1650.1840.2410.077
Qwen-Image-Edit0.1340.1080.0920.0820.1000.1090.0560.1590.1760.0630.1410.1820.082
Strong Baselines
VBVR-Pro-BAGEL0.1720.1680.1990.1050.1100.2130.0550.1760.2540.1040.1480.0150.145
VBVR-Pro-FLUX.20.4070.4840.4830.3230.3670.4490.3360.3300.3610.2720.2550.4540.128
VBVR-Pro-Qwen-Image0.3220.3320.2980.2170.1930.4310.2220.3110.3410.2390.2330.4130.181
Interleaved Image Generation Models
Proprietary Models
GPT-Image-20.5070.4280.4560.3180.4280.2060.3000.5870.3980.4130.6330.4800.303
Nano Banana Pro0.5640.4800.5180.4220.5120.2850.1740.6480.5530.4990.6570.5850.220
Open-source Models
ThinkMorph-7B0.1540.1130.1000.0820.1010.1480.0310.1950.1760.1660.1630.2530.103
VBVR-SenseNova-U10.4080.4690.3560.3130.3730.3860.4770.3470.2910.3170.2750.4800.238
SenseNova-U1-8B-MoT0.5650.5330.5010.3950.5440.3550.3490.5970.4480.4950.5330.7170.401
Strong Baselines
VBVR-Pro-ThinkMorph0.3730.4020.4030.3440.2380.4540.1840.3440.3670.2240.2380.5350.257
VBVR-Pro-SenseNova-U10.6380.8110.6480.6950.6210.7700.5410.4640.4800.3280.3440.5580.408
Video Generation Models
Proprietary Models
Veo 3.10.3090.3120.2750.2990.2520.2670.1570.3050.3050.2330.2520.3120.219
Kling V30.3920.3560.2130.3260.3200.3550.2290.4270.2940.5640.3750.2420.412
SeedDance 2.00.4990.4510.3380.3610.3530.4680.3080.5470.3690.5110.4780.5380.532
Open-source Models
HunyuanVideo-I2V0.0540.0540.0230.0640.0150.0840.0320.0530.0880.0140.0280.0620.055
CogVideoX1.5-5B-I2V0.0850.1000.0610.1180.0690.0920.0600.0700.1250.0380.0510.0400.024
Wan2.1-I2V-14B0.1000.1050.0520.1250.0910.1020.0520.0950.1120.0730.0710.1230.044
Wan2.2-TI2V-5B0.0940.0660.0290.0730.0500.0830.0310.1220.1560.0520.1060.0630.099
Wan2.2-I2V-14B-720P0.1820.1570.0820.1310.1100.1610.1560.2070.2240.1390.1400.1950.273
LTX2.3-I2AV0.1120.1060.0620.1090.0700.1330.0550.1190.1610.1350.0860.0910.050
VBVR-Wan2.20.5170.5480.2370.4990.3340.5660.5910.4860.3100.3430.3450.7320.684
Strong Baselines
VBVR-Pro-LTX2.30.4250.5270.4090.5100.3460.4600.3900.3240.3810.1080.2010.4770.386
VBVR-Pro-Wan2.1-I2V-14B0.5620.7300.6170.5800.4520.6760.6230.3950.4100.3050.2300.6170.439
VBVR-Pro-Wan2.2-TI2V-5B0.4700.6410.5280.5560.3730.5650.5570.3000.3330.1270.1610.5050.409
VBVR-Pro-Wan2.2-I2V-14B0.6700.8080.6320.6850.5560.7510.6360.5320.4790.4180.3500.6790.690
+ +## Quick Start + +### Method 1: Standalone Diffusers inference + +#### 1. Install Diffusers + +```bash +pip install -U diffusers transformers accelerate pillow imageio imageio-ffmpeg +``` + +#### 2. Run `example.py` + +The included [`example.py`](example.py) loads the merged checkpoint directly +with Diffusers, enables model CPU offloading, and writes synchronized audio and +video to an MP4 file. + +```bash +python example.py \ + --model_path Video-Reason/VBVR-Pro-LTX2.3 \ + --image input.png \ + --prompt "The machine starts and makes a quiet mechanical hum." \ + --num_frames 49 --fps 24 \ + --output output.mp4 +``` + +### Method 2: Unified VBVR-Pro inference + +Clone [Video-Reason/VBVR-Pro](https://github.com/Video-Reason/VBVR-Pro) and +create its unified inference environment: + +```bash +git clone https://github.com/Video-Reason/VBVR-Pro.git +cd VBVR-Pro/ +uv sync --extra cu124 # or one of [cu118|cu121|cu124|cu126|cu128|cu129] +source .venv/bin/activate +``` + +Then run the unified inference script: + +```bash +python example.py \ + --model_path Video-Reason/VBVR-Pro-LTX2.3 \ + --image_paths input.png \ + --prompt "The machine starts and makes a quiet mechanical hum." \ + --num_frames 49 --fps 24 \ + --output output.mp4 +``` + +## Citation + +```bibtex +@article{vbvr2025, + title={VBVR: A Very Big Video Reasoning Suite}, + year={2025}, +} +``` diff --git a/__pycache__/example.cpython-310.pyc b/__pycache__/example.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..a6555c78796963779ae8e8840cdfd60b78dc079f Binary files /dev/null and b/__pycache__/example.cpython-310.pyc differ diff --git a/audio_vae/config.json b/audio_vae/config.json new file mode 100644 index 0000000000000000000000000000000000000000..08f6cdf9b9e01512d6a997d85ad11a4b47673744 --- /dev/null +++ b/audio_vae/config.json @@ -0,0 +1,25 @@ +{ + "_class_name": "AutoencoderKLLTX2Audio", + "_diffusers_version": "0.37.0.dev0", + "attn_resolutions": null, + "base_channels": 128, + "causality_axis": "height", + "ch_mult": [ + 1, + 2, + 4 + ], + "double_z": true, + "dropout": 0.0, + "in_channels": 2, + "is_causal": true, + "latent_channels": 8, + "mel_bins": 64, + "mel_hop_length": 160, + "mid_block_add_attention": false, + "norm_type": "pixel", + "num_res_blocks": 2, + "output_channels": 2, + "resolution": 256, + "sample_rate": 16000 +} diff --git a/audio_vae/diffusion_pytorch_model.safetensors b/audio_vae/diffusion_pytorch_model.safetensors new file mode 100644 index 0000000000000000000000000000000000000000..29e78729f390a3a618a77b19c5276d9f33ed983e --- /dev/null +++ b/audio_vae/diffusion_pytorch_model.safetensors @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:45dcb1c3cffc8c8b7710a04dd19500e481daff31f5ea8e8529f2cf697c439d12 +size 106507972 diff --git a/connectors/config.json b/connectors/config.json new file mode 100644 index 0000000000000000000000000000000000000000..c939b56b7112414cd864f4d2a5db7c0848b0c578 --- /dev/null +++ b/connectors/config.json @@ -0,0 +1,25 @@ +{ + "_class_name": "LTX2TextConnectors", + "_diffusers_version": "0.37.0.dev0", + "audio_connector_attention_head_dim": 64, + "audio_connector_num_attention_heads": 32, + "audio_connector_num_layers": 8, + "audio_connector_num_learnable_registers": 128, + "audio_gated_attn": true, + "audio_hidden_dim": 2048, + "caption_channels": 3840, + "causal_temporal_positioning": false, + "connector_rope_base_seq_len": 4096, + "per_modality_projections": true, + "proj_bias": true, + "rope_double_precision": true, + "rope_theta": 10000.0, + "rope_type": "split", + "text_proj_in_factor": 49, + "video_connector_attention_head_dim": 128, + "video_connector_num_attention_heads": 32, + "video_connector_num_layers": 8, + "video_connector_num_learnable_registers": 128, + "video_gated_attn": true, + "video_hidden_dim": 4096 +} diff --git a/connectors/diffusion_pytorch_model-00001-of-00002.safetensors b/connectors/diffusion_pytorch_model-00001-of-00002.safetensors new file mode 100644 index 0000000000000000000000000000000000000000..ead51b6f0d2b4c2b1715eecb0c89e985acc1ca0c --- /dev/null +++ b/connectors/diffusion_pytorch_model-00001-of-00002.safetensors @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b767a411e336d692306d7d34fa85627db1d17809a4690f45dd96a4b3807d248c +size 4999998520 diff --git a/connectors/diffusion_pytorch_model-00002-of-00002.safetensors b/connectors/diffusion_pytorch_model-00002-of-00002.safetensors new file mode 100644 index 0000000000000000000000000000000000000000..a1972843c92b20ee931a83e9e7be1dabf3e6176b --- /dev/null +++ b/connectors/diffusion_pytorch_model-00002-of-00002.safetensors @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ffe33521b2bbd12604abe2d63b5cf02cf55f2fdf10226ff5aae00e437678ebc8 +size 1344490576 diff --git a/connectors/diffusion_pytorch_model.safetensors.index.json b/connectors/diffusion_pytorch_model.safetensors.index.json new file mode 100644 index 0000000000000000000000000000000000000000..777aac3f995533ed007d65935e332dbef42aea71 --- /dev/null +++ b/connectors/diffusion_pytorch_model.safetensors.index.json @@ -0,0 +1,269 @@ +{ + "metadata": { + "total_size": 6344455168 + }, + "weight_map": { + "audio_connector.learnable_registers": "diffusion_pytorch_model-00002-of-00002.safetensors", + "audio_connector.transformer_blocks.0.attn1.norm_k.weight": "diffusion_pytorch_model-00002-of-00002.safetensors", + "audio_connector.transformer_blocks.0.attn1.norm_q.weight": "diffusion_pytorch_model-00002-of-00002.safetensors", + "audio_connector.transformer_blocks.0.attn1.to_gate_logits.bias": "diffusion_pytorch_model-00002-of-00002.safetensors", + "audio_connector.transformer_blocks.0.attn1.to_gate_logits.weight": "diffusion_pytorch_model-00002-of-00002.safetensors", + "audio_connector.transformer_blocks.0.attn1.to_k.bias": "diffusion_pytorch_model-00002-of-00002.safetensors", + "audio_connector.transformer_blocks.0.attn1.to_k.weight": "diffusion_pytorch_model-00002-of-00002.safetensors", + "audio_connector.transformer_blocks.0.attn1.to_out.0.bias": "diffusion_pytorch_model-00002-of-00002.safetensors", + "audio_connector.transformer_blocks.0.attn1.to_out.0.weight": "diffusion_pytorch_model-00002-of-00002.safetensors", + "audio_connector.transformer_blocks.0.attn1.to_q.bias": "diffusion_pytorch_model-00002-of-00002.safetensors", + "audio_connector.transformer_blocks.0.attn1.to_q.weight": "diffusion_pytorch_model-00002-of-00002.safetensors", + "audio_connector.transformer_blocks.0.attn1.to_v.bias": "diffusion_pytorch_model-00002-of-00002.safetensors", + "audio_connector.transformer_blocks.0.attn1.to_v.weight": "diffusion_pytorch_model-00002-of-00002.safetensors", + "audio_connector.transformer_blocks.0.ff.net.0.proj.bias": "diffusion_pytorch_model-00002-of-00002.safetensors", + "audio_connector.transformer_blocks.0.ff.net.0.proj.weight": "diffusion_pytorch_model-00002-of-00002.safetensors", + "audio_connector.transformer_blocks.0.ff.net.2.bias": "diffusion_pytorch_model-00002-of-00002.safetensors", + "audio_connector.transformer_blocks.0.ff.net.2.weight": "diffusion_pytorch_model-00002-of-00002.safetensors", + "audio_connector.transformer_blocks.1.attn1.norm_k.weight": "diffusion_pytorch_model-00002-of-00002.safetensors", + "audio_connector.transformer_blocks.1.attn1.norm_q.weight": "diffusion_pytorch_model-00002-of-00002.safetensors", + "audio_connector.transformer_blocks.1.attn1.to_gate_logits.bias": "diffusion_pytorch_model-00002-of-00002.safetensors", + "audio_connector.transformer_blocks.1.attn1.to_gate_logits.weight": "diffusion_pytorch_model-00002-of-00002.safetensors", + "audio_connector.transformer_blocks.1.attn1.to_k.bias": "diffusion_pytorch_model-00002-of-00002.safetensors", + "audio_connector.transformer_blocks.1.attn1.to_k.weight": "diffusion_pytorch_model-00002-of-00002.safetensors", + "audio_connector.transformer_blocks.1.attn1.to_out.0.bias": "diffusion_pytorch_model-00002-of-00002.safetensors", + "audio_connector.transformer_blocks.1.attn1.to_out.0.weight": "diffusion_pytorch_model-00002-of-00002.safetensors", + "audio_connector.transformer_blocks.1.attn1.to_q.bias": "diffusion_pytorch_model-00002-of-00002.safetensors", + "audio_connector.transformer_blocks.1.attn1.to_q.weight": "diffusion_pytorch_model-00002-of-00002.safetensors", + "audio_connector.transformer_blocks.1.attn1.to_v.bias": "diffusion_pytorch_model-00002-of-00002.safetensors", + "audio_connector.transformer_blocks.1.attn1.to_v.weight": "diffusion_pytorch_model-00002-of-00002.safetensors", + "audio_connector.transformer_blocks.1.ff.net.0.proj.bias": "diffusion_pytorch_model-00002-of-00002.safetensors", + "audio_connector.transformer_blocks.1.ff.net.0.proj.weight": "diffusion_pytorch_model-00002-of-00002.safetensors", + "audio_connector.transformer_blocks.1.ff.net.2.bias": "diffusion_pytorch_model-00002-of-00002.safetensors", + "audio_connector.transformer_blocks.1.ff.net.2.weight": "diffusion_pytorch_model-00002-of-00002.safetensors", + "audio_connector.transformer_blocks.2.attn1.norm_k.weight": "diffusion_pytorch_model-00002-of-00002.safetensors", + "audio_connector.transformer_blocks.2.attn1.norm_q.weight": "diffusion_pytorch_model-00002-of-00002.safetensors", + "audio_connector.transformer_blocks.2.attn1.to_gate_logits.bias": "diffusion_pytorch_model-00002-of-00002.safetensors", + "audio_connector.transformer_blocks.2.attn1.to_gate_logits.weight": "diffusion_pytorch_model-00002-of-00002.safetensors", + "audio_connector.transformer_blocks.2.attn1.to_k.bias": "diffusion_pytorch_model-00002-of-00002.safetensors", + "audio_connector.transformer_blocks.2.attn1.to_k.weight": "diffusion_pytorch_model-00002-of-00002.safetensors", + "audio_connector.transformer_blocks.2.attn1.to_out.0.bias": "diffusion_pytorch_model-00002-of-00002.safetensors", + "audio_connector.transformer_blocks.2.attn1.to_out.0.weight": "diffusion_pytorch_model-00002-of-00002.safetensors", + "audio_connector.transformer_blocks.2.attn1.to_q.bias": "diffusion_pytorch_model-00002-of-00002.safetensors", + "audio_connector.transformer_blocks.2.attn1.to_q.weight": "diffusion_pytorch_model-00002-of-00002.safetensors", + "audio_connector.transformer_blocks.2.attn1.to_v.bias": "diffusion_pytorch_model-00002-of-00002.safetensors", + "audio_connector.transformer_blocks.2.attn1.to_v.weight": "diffusion_pytorch_model-00002-of-00002.safetensors", + "audio_connector.transformer_blocks.2.ff.net.0.proj.bias": "diffusion_pytorch_model-00002-of-00002.safetensors", + "audio_connector.transformer_blocks.2.ff.net.0.proj.weight": "diffusion_pytorch_model-00002-of-00002.safetensors", + "audio_connector.transformer_blocks.2.ff.net.2.bias": "diffusion_pytorch_model-00002-of-00002.safetensors", + "audio_connector.transformer_blocks.2.ff.net.2.weight": "diffusion_pytorch_model-00002-of-00002.safetensors", + "audio_connector.transformer_blocks.3.attn1.norm_k.weight": "diffusion_pytorch_model-00002-of-00002.safetensors", + "audio_connector.transformer_blocks.3.attn1.norm_q.weight": "diffusion_pytorch_model-00002-of-00002.safetensors", + "audio_connector.transformer_blocks.3.attn1.to_gate_logits.bias": "diffusion_pytorch_model-00002-of-00002.safetensors", + "audio_connector.transformer_blocks.3.attn1.to_gate_logits.weight": "diffusion_pytorch_model-00002-of-00002.safetensors", + "audio_connector.transformer_blocks.3.attn1.to_k.bias": "diffusion_pytorch_model-00002-of-00002.safetensors", + "audio_connector.transformer_blocks.3.attn1.to_k.weight": "diffusion_pytorch_model-00002-of-00002.safetensors", + "audio_connector.transformer_blocks.3.attn1.to_out.0.bias": "diffusion_pytorch_model-00002-of-00002.safetensors", + "audio_connector.transformer_blocks.3.attn1.to_out.0.weight": "diffusion_pytorch_model-00002-of-00002.safetensors", + "audio_connector.transformer_blocks.3.attn1.to_q.bias": "diffusion_pytorch_model-00002-of-00002.safetensors", + "audio_connector.transformer_blocks.3.attn1.to_q.weight": "diffusion_pytorch_model-00002-of-00002.safetensors", + "audio_connector.transformer_blocks.3.attn1.to_v.bias": "diffusion_pytorch_model-00002-of-00002.safetensors", + "audio_connector.transformer_blocks.3.attn1.to_v.weight": "diffusion_pytorch_model-00002-of-00002.safetensors", + "audio_connector.transformer_blocks.3.ff.net.0.proj.bias": "diffusion_pytorch_model-00002-of-00002.safetensors", + "audio_connector.transformer_blocks.3.ff.net.0.proj.weight": "diffusion_pytorch_model-00002-of-00002.safetensors", + "audio_connector.transformer_blocks.3.ff.net.2.bias": "diffusion_pytorch_model-00002-of-00002.safetensors", + "audio_connector.transformer_blocks.3.ff.net.2.weight": "diffusion_pytorch_model-00002-of-00002.safetensors", + "audio_connector.transformer_blocks.4.attn1.norm_k.weight": "diffusion_pytorch_model-00002-of-00002.safetensors", + "audio_connector.transformer_blocks.4.attn1.norm_q.weight": "diffusion_pytorch_model-00002-of-00002.safetensors", + "audio_connector.transformer_blocks.4.attn1.to_gate_logits.bias": "diffusion_pytorch_model-00002-of-00002.safetensors", + "audio_connector.transformer_blocks.4.attn1.to_gate_logits.weight": "diffusion_pytorch_model-00002-of-00002.safetensors", + "audio_connector.transformer_blocks.4.attn1.to_k.bias": "diffusion_pytorch_model-00002-of-00002.safetensors", + "audio_connector.transformer_blocks.4.attn1.to_k.weight": "diffusion_pytorch_model-00002-of-00002.safetensors", + "audio_connector.transformer_blocks.4.attn1.to_out.0.bias": "diffusion_pytorch_model-00002-of-00002.safetensors", + "audio_connector.transformer_blocks.4.attn1.to_out.0.weight": "diffusion_pytorch_model-00002-of-00002.safetensors", + "audio_connector.transformer_blocks.4.attn1.to_q.bias": "diffusion_pytorch_model-00002-of-00002.safetensors", + "audio_connector.transformer_blocks.4.attn1.to_q.weight": "diffusion_pytorch_model-00002-of-00002.safetensors", + "audio_connector.transformer_blocks.4.attn1.to_v.bias": "diffusion_pytorch_model-00002-of-00002.safetensors", + "audio_connector.transformer_blocks.4.attn1.to_v.weight": "diffusion_pytorch_model-00002-of-00002.safetensors", + "audio_connector.transformer_blocks.4.ff.net.0.proj.bias": "diffusion_pytorch_model-00002-of-00002.safetensors", + "audio_connector.transformer_blocks.4.ff.net.0.proj.weight": "diffusion_pytorch_model-00002-of-00002.safetensors", + "audio_connector.transformer_blocks.4.ff.net.2.bias": "diffusion_pytorch_model-00002-of-00002.safetensors", + "audio_connector.transformer_blocks.4.ff.net.2.weight": "diffusion_pytorch_model-00002-of-00002.safetensors", + "audio_connector.transformer_blocks.5.attn1.norm_k.weight": "diffusion_pytorch_model-00002-of-00002.safetensors", + "audio_connector.transformer_blocks.5.attn1.norm_q.weight": "diffusion_pytorch_model-00002-of-00002.safetensors", + "audio_connector.transformer_blocks.5.attn1.to_gate_logits.bias": "diffusion_pytorch_model-00002-of-00002.safetensors", + "audio_connector.transformer_blocks.5.attn1.to_gate_logits.weight": "diffusion_pytorch_model-00002-of-00002.safetensors", + "audio_connector.transformer_blocks.5.attn1.to_k.bias": "diffusion_pytorch_model-00002-of-00002.safetensors", + "audio_connector.transformer_blocks.5.attn1.to_k.weight": "diffusion_pytorch_model-00002-of-00002.safetensors", + "audio_connector.transformer_blocks.5.attn1.to_out.0.bias": "diffusion_pytorch_model-00002-of-00002.safetensors", + "audio_connector.transformer_blocks.5.attn1.to_out.0.weight": "diffusion_pytorch_model-00002-of-00002.safetensors", + "audio_connector.transformer_blocks.5.attn1.to_q.bias": "diffusion_pytorch_model-00002-of-00002.safetensors", + "audio_connector.transformer_blocks.5.attn1.to_q.weight": "diffusion_pytorch_model-00002-of-00002.safetensors", + "audio_connector.transformer_blocks.5.attn1.to_v.bias": "diffusion_pytorch_model-00002-of-00002.safetensors", + "audio_connector.transformer_blocks.5.attn1.to_v.weight": "diffusion_pytorch_model-00002-of-00002.safetensors", + "audio_connector.transformer_blocks.5.ff.net.0.proj.bias": "diffusion_pytorch_model-00002-of-00002.safetensors", + "audio_connector.transformer_blocks.5.ff.net.0.proj.weight": "diffusion_pytorch_model-00002-of-00002.safetensors", + "audio_connector.transformer_blocks.5.ff.net.2.bias": "diffusion_pytorch_model-00002-of-00002.safetensors", + "audio_connector.transformer_blocks.5.ff.net.2.weight": "diffusion_pytorch_model-00002-of-00002.safetensors", + "audio_connector.transformer_blocks.6.attn1.norm_k.weight": "diffusion_pytorch_model-00002-of-00002.safetensors", + "audio_connector.transformer_blocks.6.attn1.norm_q.weight": "diffusion_pytorch_model-00002-of-00002.safetensors", + "audio_connector.transformer_blocks.6.attn1.to_gate_logits.bias": "diffusion_pytorch_model-00002-of-00002.safetensors", + "audio_connector.transformer_blocks.6.attn1.to_gate_logits.weight": "diffusion_pytorch_model-00002-of-00002.safetensors", + "audio_connector.transformer_blocks.6.attn1.to_k.bias": "diffusion_pytorch_model-00002-of-00002.safetensors", + "audio_connector.transformer_blocks.6.attn1.to_k.weight": "diffusion_pytorch_model-00002-of-00002.safetensors", + "audio_connector.transformer_blocks.6.attn1.to_out.0.bias": "diffusion_pytorch_model-00002-of-00002.safetensors", + "audio_connector.transformer_blocks.6.attn1.to_out.0.weight": "diffusion_pytorch_model-00002-of-00002.safetensors", + "audio_connector.transformer_blocks.6.attn1.to_q.bias": "diffusion_pytorch_model-00002-of-00002.safetensors", + "audio_connector.transformer_blocks.6.attn1.to_q.weight": "diffusion_pytorch_model-00002-of-00002.safetensors", + "audio_connector.transformer_blocks.6.attn1.to_v.bias": "diffusion_pytorch_model-00002-of-00002.safetensors", + "audio_connector.transformer_blocks.6.attn1.to_v.weight": "diffusion_pytorch_model-00002-of-00002.safetensors", + "audio_connector.transformer_blocks.6.ff.net.0.proj.bias": "diffusion_pytorch_model-00002-of-00002.safetensors", + "audio_connector.transformer_blocks.6.ff.net.0.proj.weight": "diffusion_pytorch_model-00002-of-00002.safetensors", + "audio_connector.transformer_blocks.6.ff.net.2.bias": "diffusion_pytorch_model-00002-of-00002.safetensors", + "audio_connector.transformer_blocks.6.ff.net.2.weight": "diffusion_pytorch_model-00002-of-00002.safetensors", + "audio_connector.transformer_blocks.7.attn1.norm_k.weight": "diffusion_pytorch_model-00002-of-00002.safetensors", + "audio_connector.transformer_blocks.7.attn1.norm_q.weight": "diffusion_pytorch_model-00002-of-00002.safetensors", + "audio_connector.transformer_blocks.7.attn1.to_gate_logits.bias": "diffusion_pytorch_model-00002-of-00002.safetensors", + "audio_connector.transformer_blocks.7.attn1.to_gate_logits.weight": "diffusion_pytorch_model-00002-of-00002.safetensors", + "audio_connector.transformer_blocks.7.attn1.to_k.bias": "diffusion_pytorch_model-00002-of-00002.safetensors", + "audio_connector.transformer_blocks.7.attn1.to_k.weight": "diffusion_pytorch_model-00002-of-00002.safetensors", + "audio_connector.transformer_blocks.7.attn1.to_out.0.bias": "diffusion_pytorch_model-00002-of-00002.safetensors", + "audio_connector.transformer_blocks.7.attn1.to_out.0.weight": "diffusion_pytorch_model-00002-of-00002.safetensors", + "audio_connector.transformer_blocks.7.attn1.to_q.bias": "diffusion_pytorch_model-00002-of-00002.safetensors", + "audio_connector.transformer_blocks.7.attn1.to_q.weight": "diffusion_pytorch_model-00002-of-00002.safetensors", + "audio_connector.transformer_blocks.7.attn1.to_v.bias": "diffusion_pytorch_model-00002-of-00002.safetensors", + "audio_connector.transformer_blocks.7.attn1.to_v.weight": "diffusion_pytorch_model-00002-of-00002.safetensors", + "audio_connector.transformer_blocks.7.ff.net.0.proj.bias": "diffusion_pytorch_model-00002-of-00002.safetensors", + "audio_connector.transformer_blocks.7.ff.net.0.proj.weight": "diffusion_pytorch_model-00002-of-00002.safetensors", + "audio_connector.transformer_blocks.7.ff.net.2.bias": "diffusion_pytorch_model-00002-of-00002.safetensors", + "audio_connector.transformer_blocks.7.ff.net.2.weight": "diffusion_pytorch_model-00002-of-00002.safetensors", + "audio_text_proj_in.bias": "diffusion_pytorch_model-00001-of-00002.safetensors", + "audio_text_proj_in.weight": "diffusion_pytorch_model-00001-of-00002.safetensors", + "video_connector.learnable_registers": "diffusion_pytorch_model-00001-of-00002.safetensors", + "video_connector.transformer_blocks.0.attn1.norm_k.weight": "diffusion_pytorch_model-00001-of-00002.safetensors", + "video_connector.transformer_blocks.0.attn1.norm_q.weight": "diffusion_pytorch_model-00001-of-00002.safetensors", + "video_connector.transformer_blocks.0.attn1.to_gate_logits.bias": "diffusion_pytorch_model-00001-of-00002.safetensors", + "video_connector.transformer_blocks.0.attn1.to_gate_logits.weight": "diffusion_pytorch_model-00001-of-00002.safetensors", + "video_connector.transformer_blocks.0.attn1.to_k.bias": "diffusion_pytorch_model-00001-of-00002.safetensors", + "video_connector.transformer_blocks.0.attn1.to_k.weight": "diffusion_pytorch_model-00001-of-00002.safetensors", + "video_connector.transformer_blocks.0.attn1.to_out.0.bias": "diffusion_pytorch_model-00001-of-00002.safetensors", + "video_connector.transformer_blocks.0.attn1.to_out.0.weight": "diffusion_pytorch_model-00001-of-00002.safetensors", + "video_connector.transformer_blocks.0.attn1.to_q.bias": "diffusion_pytorch_model-00001-of-00002.safetensors", + "video_connector.transformer_blocks.0.attn1.to_q.weight": "diffusion_pytorch_model-00001-of-00002.safetensors", + "video_connector.transformer_blocks.0.attn1.to_v.bias": "diffusion_pytorch_model-00001-of-00002.safetensors", + "video_connector.transformer_blocks.0.attn1.to_v.weight": "diffusion_pytorch_model-00001-of-00002.safetensors", + "video_connector.transformer_blocks.0.ff.net.0.proj.bias": "diffusion_pytorch_model-00001-of-00002.safetensors", + "video_connector.transformer_blocks.0.ff.net.0.proj.weight": "diffusion_pytorch_model-00001-of-00002.safetensors", + "video_connector.transformer_blocks.0.ff.net.2.bias": "diffusion_pytorch_model-00001-of-00002.safetensors", + "video_connector.transformer_blocks.0.ff.net.2.weight": "diffusion_pytorch_model-00001-of-00002.safetensors", + "video_connector.transformer_blocks.1.attn1.norm_k.weight": "diffusion_pytorch_model-00001-of-00002.safetensors", + "video_connector.transformer_blocks.1.attn1.norm_q.weight": "diffusion_pytorch_model-00001-of-00002.safetensors", + "video_connector.transformer_blocks.1.attn1.to_gate_logits.bias": "diffusion_pytorch_model-00001-of-00002.safetensors", + "video_connector.transformer_blocks.1.attn1.to_gate_logits.weight": "diffusion_pytorch_model-00001-of-00002.safetensors", + "video_connector.transformer_blocks.1.attn1.to_k.bias": "diffusion_pytorch_model-00001-of-00002.safetensors", + "video_connector.transformer_blocks.1.attn1.to_k.weight": "diffusion_pytorch_model-00001-of-00002.safetensors", + "video_connector.transformer_blocks.1.attn1.to_out.0.bias": "diffusion_pytorch_model-00001-of-00002.safetensors", + "video_connector.transformer_blocks.1.attn1.to_out.0.weight": "diffusion_pytorch_model-00001-of-00002.safetensors", + "video_connector.transformer_blocks.1.attn1.to_q.bias": "diffusion_pytorch_model-00001-of-00002.safetensors", + "video_connector.transformer_blocks.1.attn1.to_q.weight": "diffusion_pytorch_model-00001-of-00002.safetensors", + "video_connector.transformer_blocks.1.attn1.to_v.bias": "diffusion_pytorch_model-00001-of-00002.safetensors", + "video_connector.transformer_blocks.1.attn1.to_v.weight": "diffusion_pytorch_model-00001-of-00002.safetensors", + "video_connector.transformer_blocks.1.ff.net.0.proj.bias": "diffusion_pytorch_model-00001-of-00002.safetensors", + "video_connector.transformer_blocks.1.ff.net.0.proj.weight": "diffusion_pytorch_model-00001-of-00002.safetensors", + "video_connector.transformer_blocks.1.ff.net.2.bias": "diffusion_pytorch_model-00001-of-00002.safetensors", + "video_connector.transformer_blocks.1.ff.net.2.weight": "diffusion_pytorch_model-00001-of-00002.safetensors", + "video_connector.transformer_blocks.2.attn1.norm_k.weight": "diffusion_pytorch_model-00001-of-00002.safetensors", + "video_connector.transformer_blocks.2.attn1.norm_q.weight": "diffusion_pytorch_model-00001-of-00002.safetensors", + "video_connector.transformer_blocks.2.attn1.to_gate_logits.bias": "diffusion_pytorch_model-00001-of-00002.safetensors", + "video_connector.transformer_blocks.2.attn1.to_gate_logits.weight": "diffusion_pytorch_model-00001-of-00002.safetensors", + "video_connector.transformer_blocks.2.attn1.to_k.bias": "diffusion_pytorch_model-00001-of-00002.safetensors", + "video_connector.transformer_blocks.2.attn1.to_k.weight": "diffusion_pytorch_model-00001-of-00002.safetensors", + "video_connector.transformer_blocks.2.attn1.to_out.0.bias": "diffusion_pytorch_model-00001-of-00002.safetensors", + "video_connector.transformer_blocks.2.attn1.to_out.0.weight": "diffusion_pytorch_model-00001-of-00002.safetensors", + "video_connector.transformer_blocks.2.attn1.to_q.bias": "diffusion_pytorch_model-00001-of-00002.safetensors", + "video_connector.transformer_blocks.2.attn1.to_q.weight": "diffusion_pytorch_model-00001-of-00002.safetensors", + "video_connector.transformer_blocks.2.attn1.to_v.bias": "diffusion_pytorch_model-00001-of-00002.safetensors", + "video_connector.transformer_blocks.2.attn1.to_v.weight": "diffusion_pytorch_model-00001-of-00002.safetensors", + "video_connector.transformer_blocks.2.ff.net.0.proj.bias": "diffusion_pytorch_model-00001-of-00002.safetensors", + "video_connector.transformer_blocks.2.ff.net.0.proj.weight": "diffusion_pytorch_model-00001-of-00002.safetensors", + "video_connector.transformer_blocks.2.ff.net.2.bias": "diffusion_pytorch_model-00001-of-00002.safetensors", + "video_connector.transformer_blocks.2.ff.net.2.weight": "diffusion_pytorch_model-00001-of-00002.safetensors", + "video_connector.transformer_blocks.3.attn1.norm_k.weight": "diffusion_pytorch_model-00001-of-00002.safetensors", + "video_connector.transformer_blocks.3.attn1.norm_q.weight": "diffusion_pytorch_model-00001-of-00002.safetensors", + "video_connector.transformer_blocks.3.attn1.to_gate_logits.bias": "diffusion_pytorch_model-00001-of-00002.safetensors", + "video_connector.transformer_blocks.3.attn1.to_gate_logits.weight": "diffusion_pytorch_model-00001-of-00002.safetensors", + "video_connector.transformer_blocks.3.attn1.to_k.bias": "diffusion_pytorch_model-00001-of-00002.safetensors", + "video_connector.transformer_blocks.3.attn1.to_k.weight": "diffusion_pytorch_model-00001-of-00002.safetensors", + "video_connector.transformer_blocks.3.attn1.to_out.0.bias": "diffusion_pytorch_model-00001-of-00002.safetensors", + "video_connector.transformer_blocks.3.attn1.to_out.0.weight": "diffusion_pytorch_model-00001-of-00002.safetensors", + "video_connector.transformer_blocks.3.attn1.to_q.bias": "diffusion_pytorch_model-00001-of-00002.safetensors", + "video_connector.transformer_blocks.3.attn1.to_q.weight": "diffusion_pytorch_model-00001-of-00002.safetensors", + "video_connector.transformer_blocks.3.attn1.to_v.bias": "diffusion_pytorch_model-00001-of-00002.safetensors", + "video_connector.transformer_blocks.3.attn1.to_v.weight": "diffusion_pytorch_model-00001-of-00002.safetensors", + "video_connector.transformer_blocks.3.ff.net.0.proj.bias": "diffusion_pytorch_model-00001-of-00002.safetensors", + "video_connector.transformer_blocks.3.ff.net.0.proj.weight": "diffusion_pytorch_model-00001-of-00002.safetensors", + "video_connector.transformer_blocks.3.ff.net.2.bias": "diffusion_pytorch_model-00001-of-00002.safetensors", + "video_connector.transformer_blocks.3.ff.net.2.weight": "diffusion_pytorch_model-00001-of-00002.safetensors", + "video_connector.transformer_blocks.4.attn1.norm_k.weight": "diffusion_pytorch_model-00001-of-00002.safetensors", + "video_connector.transformer_blocks.4.attn1.norm_q.weight": "diffusion_pytorch_model-00001-of-00002.safetensors", + "video_connector.transformer_blocks.4.attn1.to_gate_logits.bias": "diffusion_pytorch_model-00001-of-00002.safetensors", + "video_connector.transformer_blocks.4.attn1.to_gate_logits.weight": "diffusion_pytorch_model-00001-of-00002.safetensors", + "video_connector.transformer_blocks.4.attn1.to_k.bias": "diffusion_pytorch_model-00001-of-00002.safetensors", + "video_connector.transformer_blocks.4.attn1.to_k.weight": "diffusion_pytorch_model-00001-of-00002.safetensors", + "video_connector.transformer_blocks.4.attn1.to_out.0.bias": "diffusion_pytorch_model-00001-of-00002.safetensors", + "video_connector.transformer_blocks.4.attn1.to_out.0.weight": "diffusion_pytorch_model-00001-of-00002.safetensors", + "video_connector.transformer_blocks.4.attn1.to_q.bias": "diffusion_pytorch_model-00001-of-00002.safetensors", + "video_connector.transformer_blocks.4.attn1.to_q.weight": "diffusion_pytorch_model-00001-of-00002.safetensors", + "video_connector.transformer_blocks.4.attn1.to_v.bias": "diffusion_pytorch_model-00001-of-00002.safetensors", + "video_connector.transformer_blocks.4.attn1.to_v.weight": "diffusion_pytorch_model-00001-of-00002.safetensors", + "video_connector.transformer_blocks.4.ff.net.0.proj.bias": "diffusion_pytorch_model-00001-of-00002.safetensors", + "video_connector.transformer_blocks.4.ff.net.0.proj.weight": "diffusion_pytorch_model-00001-of-00002.safetensors", + "video_connector.transformer_blocks.4.ff.net.2.bias": "diffusion_pytorch_model-00001-of-00002.safetensors", + "video_connector.transformer_blocks.4.ff.net.2.weight": "diffusion_pytorch_model-00001-of-00002.safetensors", + "video_connector.transformer_blocks.5.attn1.norm_k.weight": "diffusion_pytorch_model-00001-of-00002.safetensors", + "video_connector.transformer_blocks.5.attn1.norm_q.weight": "diffusion_pytorch_model-00001-of-00002.safetensors", + "video_connector.transformer_blocks.5.attn1.to_gate_logits.bias": "diffusion_pytorch_model-00001-of-00002.safetensors", + "video_connector.transformer_blocks.5.attn1.to_gate_logits.weight": "diffusion_pytorch_model-00001-of-00002.safetensors", + "video_connector.transformer_blocks.5.attn1.to_k.bias": "diffusion_pytorch_model-00001-of-00002.safetensors", + "video_connector.transformer_blocks.5.attn1.to_k.weight": "diffusion_pytorch_model-00001-of-00002.safetensors", + "video_connector.transformer_blocks.5.attn1.to_out.0.bias": "diffusion_pytorch_model-00001-of-00002.safetensors", + "video_connector.transformer_blocks.5.attn1.to_out.0.weight": "diffusion_pytorch_model-00001-of-00002.safetensors", + "video_connector.transformer_blocks.5.attn1.to_q.bias": "diffusion_pytorch_model-00001-of-00002.safetensors", + "video_connector.transformer_blocks.5.attn1.to_q.weight": "diffusion_pytorch_model-00001-of-00002.safetensors", + "video_connector.transformer_blocks.5.attn1.to_v.bias": "diffusion_pytorch_model-00001-of-00002.safetensors", + "video_connector.transformer_blocks.5.attn1.to_v.weight": "diffusion_pytorch_model-00001-of-00002.safetensors", + "video_connector.transformer_blocks.5.ff.net.0.proj.bias": "diffusion_pytorch_model-00001-of-00002.safetensors", + "video_connector.transformer_blocks.5.ff.net.0.proj.weight": "diffusion_pytorch_model-00001-of-00002.safetensors", + "video_connector.transformer_blocks.5.ff.net.2.bias": "diffusion_pytorch_model-00001-of-00002.safetensors", + "video_connector.transformer_blocks.5.ff.net.2.weight": "diffusion_pytorch_model-00001-of-00002.safetensors", + "video_connector.transformer_blocks.6.attn1.norm_k.weight": "diffusion_pytorch_model-00001-of-00002.safetensors", + "video_connector.transformer_blocks.6.attn1.norm_q.weight": "diffusion_pytorch_model-00001-of-00002.safetensors", + "video_connector.transformer_blocks.6.attn1.to_gate_logits.bias": "diffusion_pytorch_model-00001-of-00002.safetensors", + "video_connector.transformer_blocks.6.attn1.to_gate_logits.weight": "diffusion_pytorch_model-00001-of-00002.safetensors", + "video_connector.transformer_blocks.6.attn1.to_k.bias": "diffusion_pytorch_model-00001-of-00002.safetensors", + "video_connector.transformer_blocks.6.attn1.to_k.weight": "diffusion_pytorch_model-00001-of-00002.safetensors", + "video_connector.transformer_blocks.6.attn1.to_out.0.bias": "diffusion_pytorch_model-00001-of-00002.safetensors", + "video_connector.transformer_blocks.6.attn1.to_out.0.weight": "diffusion_pytorch_model-00001-of-00002.safetensors", + "video_connector.transformer_blocks.6.attn1.to_q.bias": "diffusion_pytorch_model-00001-of-00002.safetensors", + "video_connector.transformer_blocks.6.attn1.to_q.weight": "diffusion_pytorch_model-00001-of-00002.safetensors", + "video_connector.transformer_blocks.6.attn1.to_v.bias": "diffusion_pytorch_model-00001-of-00002.safetensors", + "video_connector.transformer_blocks.6.attn1.to_v.weight": "diffusion_pytorch_model-00001-of-00002.safetensors", + "video_connector.transformer_blocks.6.ff.net.0.proj.bias": "diffusion_pytorch_model-00001-of-00002.safetensors", + "video_connector.transformer_blocks.6.ff.net.0.proj.weight": "diffusion_pytorch_model-00001-of-00002.safetensors", + "video_connector.transformer_blocks.6.ff.net.2.bias": "diffusion_pytorch_model-00002-of-00002.safetensors", + "video_connector.transformer_blocks.6.ff.net.2.weight": "diffusion_pytorch_model-00002-of-00002.safetensors", + "video_connector.transformer_blocks.7.attn1.norm_k.weight": "diffusion_pytorch_model-00002-of-00002.safetensors", + "video_connector.transformer_blocks.7.attn1.norm_q.weight": "diffusion_pytorch_model-00002-of-00002.safetensors", + "video_connector.transformer_blocks.7.attn1.to_gate_logits.bias": "diffusion_pytorch_model-00002-of-00002.safetensors", + "video_connector.transformer_blocks.7.attn1.to_gate_logits.weight": "diffusion_pytorch_model-00002-of-00002.safetensors", + "video_connector.transformer_blocks.7.attn1.to_k.bias": "diffusion_pytorch_model-00002-of-00002.safetensors", + "video_connector.transformer_blocks.7.attn1.to_k.weight": "diffusion_pytorch_model-00002-of-00002.safetensors", + "video_connector.transformer_blocks.7.attn1.to_out.0.bias": "diffusion_pytorch_model-00002-of-00002.safetensors", + "video_connector.transformer_blocks.7.attn1.to_out.0.weight": "diffusion_pytorch_model-00002-of-00002.safetensors", + "video_connector.transformer_blocks.7.attn1.to_q.bias": "diffusion_pytorch_model-00002-of-00002.safetensors", + "video_connector.transformer_blocks.7.attn1.to_q.weight": "diffusion_pytorch_model-00002-of-00002.safetensors", + "video_connector.transformer_blocks.7.attn1.to_v.bias": "diffusion_pytorch_model-00002-of-00002.safetensors", + "video_connector.transformer_blocks.7.attn1.to_v.weight": "diffusion_pytorch_model-00002-of-00002.safetensors", + "video_connector.transformer_blocks.7.ff.net.0.proj.bias": "diffusion_pytorch_model-00002-of-00002.safetensors", + "video_connector.transformer_blocks.7.ff.net.0.proj.weight": "diffusion_pytorch_model-00002-of-00002.safetensors", + "video_connector.transformer_blocks.7.ff.net.2.bias": "diffusion_pytorch_model-00002-of-00002.safetensors", + "video_connector.transformer_blocks.7.ff.net.2.weight": "diffusion_pytorch_model-00002-of-00002.safetensors", + "video_text_proj_in.bias": "diffusion_pytorch_model-00001-of-00002.safetensors", + "video_text_proj_in.weight": "diffusion_pytorch_model-00001-of-00002.safetensors" + } +} diff --git a/example.py b/example.py new file mode 100644 index 0000000000000000000000000000000000000000..d8ec85d468a1a4ab12b3a925191a33fb3d6054db --- /dev/null +++ b/example.py @@ -0,0 +1,65 @@ +"""VBVR-Pro-LTX2.3 image-to-audio-video inference example. + +Usage: + python example.py --model_path Video-Reason/VBVR-Pro-LTX2.3 \ + --image input.png --prompt "Your video instruction" +""" + +import argparse + +import torch +from diffusers import LTX2ImageToVideoPipeline +from diffusers.utils import encode_video, load_image + + +parser = argparse.ArgumentParser() +parser.add_argument("--model_path", type=str, default="Video-Reason/VBVR-Pro-LTX2.3") +parser.add_argument("--image", type=str, required=True, help="Path or URL to input image") +parser.add_argument("--prompt", type=str, required=True, help="Video instruction") +parser.add_argument( + "--negative_prompt", + type=str, + default="blurry, low quality, flickering, motion blur, distorted", +) +parser.add_argument("--output", type=str, default="output.mp4") +parser.add_argument("--width", type=int, default=768) +parser.add_argument("--height", type=int, default=512) +parser.add_argument("--num_frames", type=int, default=49) +parser.add_argument("--steps", type=int, default=40) +parser.add_argument("--guidance_scale", type=float, default=5.0) +parser.add_argument("--fps", type=int, default=24) +parser.add_argument("--seed", type=int, default=42) +args = parser.parse_args() + +print(f"Loading model from: {args.model_path}") +pipe = LTX2ImageToVideoPipeline.from_pretrained( + args.model_path, torch_dtype=torch.bfloat16 +) +pipe.enable_model_cpu_offload() + +image = load_image(args.image).convert("RGB") +print(f"Input image: {args.image} ({image.size[0]}x{image.size[1]})") + +video, audio = pipe( + image=image, + prompt=args.prompt, + negative_prompt=args.negative_prompt, + height=args.height, + width=args.width, + num_frames=args.num_frames, + frame_rate=args.fps, + num_inference_steps=args.steps, + guidance_scale=args.guidance_scale, + generator=torch.manual_seed(args.seed), + output_type="np", + return_dict=False, +) + +encode_video( + video[0][: args.num_frames], + fps=args.fps, + output_path=args.output, + audio=audio[0].float().cpu(), + audio_sample_rate=pipe.vocoder.config.output_sampling_rate, +) +print(f"Saved to: {args.output}") diff --git a/model_index.json b/model_index.json new file mode 100644 index 0000000000000000000000000000000000000000..6be4554dce9382b3a78f6fbdaa3a5f7f3d4db5c1 --- /dev/null +++ b/model_index.json @@ -0,0 +1,36 @@ +{ + "_class_name": "LTX2Pipeline", + "_diffusers_version": "0.37.0.dev0", + "audio_vae": [ + "diffusers", + "AutoencoderKLLTX2Audio" + ], + "connectors": [ + "ltx2", + "LTX2TextConnectors" + ], + "scheduler": [ + "diffusers", + "FlowMatchEulerDiscreteScheduler" + ], + "text_encoder": [ + "transformers", + "Gemma3ForConditionalGeneration" + ], + "tokenizer": [ + "transformers", + "GemmaTokenizerFast" + ], + "transformer": [ + "diffusers", + "LTX2VideoTransformer3DModel" + ], + "vae": [ + "diffusers", + "AutoencoderKLLTX2Video" + ], + "vocoder": [ + "ltx2", + "LTX2VocoderWithBWE" + ] +} diff --git a/processor/added_tokens.json b/processor/added_tokens.json new file mode 100644 index 0000000000000000000000000000000000000000..e17bde03d42feda32d1abfca6d3b598b9a020df7 --- /dev/null +++ b/processor/added_tokens.json @@ -0,0 +1,3 @@ +{ + "": 262144 +} diff --git a/processor/chat_template.jinja b/processor/chat_template.jinja new file mode 100644 index 0000000000000000000000000000000000000000..1117055ab8e8c90e1b200be00cddb78943616d9e --- /dev/null +++ b/processor/chat_template.jinja @@ -0,0 +1,47 @@ +{{ bos_token }} +{%- if messages[0]['role'] == 'system' -%} + {%- if messages[0]['content'] is string -%} + {%- set first_user_prefix = messages[0]['content'] + ' + +' -%} + {%- else -%} + {%- set first_user_prefix = messages[0]['content'][0]['text'] + ' + +' -%} + {%- endif -%} + {%- set loop_messages = messages[1:] -%} +{%- else -%} + {%- set first_user_prefix = "" -%} + {%- set loop_messages = messages -%} +{%- endif -%} +{%- for message in loop_messages -%} + {%- if (message['role'] == 'user') != (loop.index0 % 2 == 0) -%} + {{ raise_exception("Conversation roles must alternate user/assistant/user/assistant/...") }} + {%- endif -%} + {%- if (message['role'] == 'assistant') -%} + {%- set role = "model" -%} + {%- else -%} + {%- set role = message['role'] -%} + {%- endif -%} + {{ '' + role + ' +' + (first_user_prefix if loop.first else "") }} + {%- if message['content'] is string -%} + {{ message['content'] | trim }} + {%- elif message['content'] is iterable -%} + {%- for item in message['content'] -%} + {%- if item['type'] == 'image' -%} + {{ '' }} + {%- elif item['type'] == 'text' -%} + {{ item['text'] | trim }} + {%- endif -%} + {%- endfor -%} + {%- else -%} + {{ raise_exception("Invalid content type") }} + {%- endif -%} + {{ ' +' }} +{%- endfor -%} +{%- if add_generation_prompt -%} + {{'model +'}} +{%- endif -%} diff --git a/processor/preprocessor_config.json b/processor/preprocessor_config.json new file mode 100644 index 0000000000000000000000000000000000000000..b1e00fc184f61b698181821169c6374cd5813e5c --- /dev/null +++ b/processor/preprocessor_config.json @@ -0,0 +1,29 @@ +{ + "do_convert_rgb": null, + "do_normalize": true, + "do_pan_and_scan": null, + "do_rescale": true, + "do_resize": true, + "image_mean": [ + 0.5, + 0.5, + 0.5 + ], + "image_processor_type": "Gemma3ImageProcessor", + "image_seq_length": 256, + "image_std": [ + 0.5, + 0.5, + 0.5 + ], + "pan_and_scan_max_num_crops": null, + "pan_and_scan_min_crop_size": null, + "pan_and_scan_min_ratio_to_activate": null, + "processor_class": "Gemma3Processor", + "resample": 2, + "rescale_factor": 0.00392156862745098, + "size": { + "height": 896, + "width": 896 + } +} diff --git a/processor/processor_config.json b/processor/processor_config.json new file mode 100644 index 0000000000000000000000000000000000000000..453c7966d4b5d0b4a317c585989f64c58c2a6bf0 --- /dev/null +++ b/processor/processor_config.json @@ -0,0 +1,4 @@ +{ + "image_seq_length": 256, + "processor_class": "Gemma3Processor" +} diff --git a/processor/special_tokens_map.json b/processor/special_tokens_map.json new file mode 100644 index 0000000000000000000000000000000000000000..1a6193244714d3d78be48666cb02cdbfac62ad86 --- /dev/null +++ b/processor/special_tokens_map.json @@ -0,0 +1,33 @@ +{ + "boi_token": "", + "bos_token": { + "content": "", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false + }, + "eoi_token": "", + "eos_token": { + "content": "", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false + }, + "image_token": "", + "pad_token": { + "content": "", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false + }, + "unk_token": { + "content": "", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false + } +} diff --git a/processor/tokenizer.json b/processor/tokenizer.json new file mode 100644 index 0000000000000000000000000000000000000000..29401f984828a18bb09a6128d437c6766785eb66 --- /dev/null +++ b/processor/tokenizer.json @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4667f2089529e8e7657cfb6d1c19910ae71ff5f28aa7ab2ff2763330affad795 +size 33384568 diff --git a/processor/tokenizer.model b/processor/tokenizer.model new file mode 100644 index 0000000000000000000000000000000000000000..14f810a829755bae3fafd6f97096dbd2eac556bd --- /dev/null +++ b/processor/tokenizer.model @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1299c11d7cf632ef3b4e11937501358ada021bbdf7c47638d13c0ee982f2e79c +size 4689074 diff --git a/processor/tokenizer_config.json b/processor/tokenizer_config.json new file mode 100644 index 0000000000000000000000000000000000000000..ba114d514c9f82c551d8c98b7185da62e8a263f8 --- /dev/null +++ b/processor/tokenizer_config.json @@ -0,0 +1,51345 @@ +{ + "add_bos_token": true, + "add_eos_token": false, + "added_tokens_decoder": { + "0": { + "content": "", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": true + }, + "1": { + "content": "", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": true + }, + "2": { + "content": "", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": true + }, + "3": { + "content": "", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": true + }, + "4": { + "content": "", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": false + }, + "5": { + "content": "[multimodal]", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": false + }, + "6": { + "content": "", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": false + }, + "7": { + "content": "", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": false + }, + "8": { + "content": "", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": false + }, + "9": { + "content": "", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": false + }, + "10": { + "content": "", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": false + }, + "11": { + "content": "", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": false + }, + "12": { + "content": "", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": false + }, + "13": { + "content": "", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": false + }, + "14": { + "content": "", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": false + }, + "15": { + "content": "", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": false + }, + "16": { + "content": "", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": false + }, + "17": { + "content": "", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": false + }, + "18": { + "content": "", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": false + }, + "19": { + "content": "", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": false + }, + "20": { + "content": "", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": false + }, + "21": { + "content": "", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": false + }, + "22": { + "content": "", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": false + }, + "23": { + "content": "", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": false + }, + "24": { + "content": "", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": false + }, + "25": { + "content": "", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": false + }, + "26": { + "content": "", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": false + }, + "27": { + "content": "", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": false + }, + "28": { + "content": "", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": false + }, + "29": { + "content": "", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": false + }, + "30": { + "content": "", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": false + }, + "31": { + "content": "", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": false + }, + "32": { + "content": "", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": false + }, + "33": { + "content": "", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": false + }, + "34": { + "content": "", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": false + }, + "35": { + "content": "", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": false + }, + "36": { + "content": "", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": false + }, + "37": { + "content": "", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": false + }, + "38": { + "content": "", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": false + }, + "39": { + "content": "", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": false + }, + "40": { + "content": "", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": false + }, + "41": { + "content": "", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": false + }, + "42": { + "content": "", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": false + }, + "43": { + "content": "", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": false + }, + "44": { + "content": "", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": false + }, + "45": { + "content": "", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": false + }, + "46": { + "content": "", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": false + }, + "47": { + "content": "", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": false + }, + "48": { + "content": "", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": false + }, + "49": { + "content": "", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": false + }, + "50": { + "content": "", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": false + }, + "51": { + "content": "", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": false + }, + "52": { + "content": "", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": false + }, + "53": { + "content": "", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": false + }, + "54": { + "content": "", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": false + }, + "55": { + "content": "", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": false + }, + "56": { + "content": "", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": false + }, + "57": { + "content": "", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": false + }, + "58": { + "content": "", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": false + }, + "59": { + "content": "", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": false + }, + "60": { + "content": "", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": false + }, + "61": { + "content": "", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": false + }, + "62": { + "content": "", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": false + }, + "63": { + "content": "", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": false + }, + "64": { + "content": "", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": false + }, + "65": { + "content": "", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": false + }, + "66": { + "content": "", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": false + }, + "67": { + "content": "", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": false + }, + "68": { + "content": "", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": false + }, + "69": { + "content": "", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": false + }, + "70": { + "content": "", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": false + }, + "71": { + "content": "", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": false + }, + "72": { + "content": "", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": false + }, + "73": { + "content": "", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": false + }, + "74": { + "content": "", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": false + }, + "75": { + "content": "", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": false + }, + "76": { + "content": "", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": false + }, + "77": { + "content": "", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": false + }, + "78": { + "content": "", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": false + }, + "79": { + "content": "", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": false + }, + "80": { + "content": "", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": false + }, + "81": { + "content": "", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": false + }, + "82": { + "content": "", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": false + }, + "83": { + "content": "", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": false + }, + "84": { + "content": "", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": false + }, + "85": { + "content": "", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": false + }, + "86": { + "content": "", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": false + }, + "87": { + "content": "", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": false + }, + "88": { + "content": "", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": false + }, + "89": { + "content": "", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": false + }, + "90": { + "content": "", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": false + }, + "91": { + "content": "", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": false + }, + "92": { + "content": "", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": false + }, + "93": { + "content": "", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": false + }, + "94": { + "content": "", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": false + }, + "95": { + "content": "", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": false + }, + "96": { + "content": "", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": false + }, + "97": { + "content": "", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": false + }, + "98": { + "content": "", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": false + }, + "99": { + "content": "", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": false + }, + "100": { + "content": "", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": false + }, + "101": { + "content": "", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": false + }, + "102": { + "content": "", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": false + }, + "103": { + "content": "", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": false + }, + "104": { + "content": "", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": false + }, + "105": { + "content": "", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": true + }, + "106": { + "content": "", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": true + }, + "107": { + "content": "\n", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": false + }, + "108": { + "content": "\n\n", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": false + }, + "109": { + "content": "\n\n\n", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": false + }, + "110": { + "content": "\n\n\n\n", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": false + }, + "111": { + "content": "\n\n\n\n\n", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": false + }, + "112": { + "content": "\n\n\n\n\n\n", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": false + }, + "113": { + "content": "\n\n\n\n\n\n\n", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": false + }, + "114": { + "content": "\n\n\n\n\n\n\n\n", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": false + }, + "115": { + "content": "\n\n\n\n\n\n\n\n\n", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": false + }, + "116": { + "content": "\n\n\n\n\n\n\n\n\n\n", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": false + }, + "117": { + "content": "\n\n\n\n\n\n\n\n\n\n\n", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": false + }, + "118": { + "content": "\n\n\n\n\n\n\n\n\n\n\n\n", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": false + }, + "119": { + "content": "\n\n\n\n\n\n\n\n\n\n\n\n\n", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": false + }, + "120": { + "content": "\n\n\n\n\n\n\n\n\n\n\n\n\n\n", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": false + }, + "121": { + "content": "\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": false + }, + "122": { + "content": "\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": false + }, + "123": { + "content": "\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": false + }, + "124": { + "content": "\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": false + }, + "125": { + "content": "\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": false + }, + "126": { + "content": "\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": false + }, + "127": { + "content": "\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": false + }, + "128": { + "content": "\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": false + }, + "129": { + "content": "\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": false + }, + "130": { + "content": "\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": false + }, + "131": { + "content": "\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": false + }, + "132": { + "content": "\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": false + }, + "133": { + "content": "\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": false + }, + "134": { + "content": "\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": false + }, + "135": { + "content": "\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": false + }, + "136": { + "content": "\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": false + }, + "137": { + "content": "\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": false + }, + "138": { + "content": "▁▁", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": false + }, + "139": { + "content": "▁▁▁", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": false + }, + "140": { + "content": "▁▁▁▁", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": false + }, + "141": { + "content": "▁▁▁▁▁", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": false + }, + "142": { + "content": "▁▁▁▁▁▁", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": false + }, + "143": { + "content": "▁▁▁▁▁▁▁", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": false + }, + "144": { + "content": "▁▁▁▁▁▁▁▁", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": false + }, + "145": { + "content": "▁▁▁▁▁▁▁▁▁", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": false + }, + "146": { + "content": "▁▁▁▁▁▁▁▁▁▁", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": false + }, + "147": { + "content": "▁▁▁▁▁▁▁▁▁▁▁", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": false + }, + "148": { + "content": "▁▁▁▁▁▁▁▁▁▁▁▁", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": false + }, + "149": { + "content": "▁▁▁▁▁▁▁▁▁▁▁▁▁", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": false + }, + "150": { + "content": "▁▁▁▁▁▁▁▁▁▁▁▁▁▁", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": false + }, + "151": { + "content": "▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": false + }, + "152": { + "content": "▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": false + }, + "153": { + "content": "▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": false + }, + "154": { + "content": "▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": false + }, + "155": { + "content": "▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": false + }, + "156": { + "content": "▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": false + }, + "157": { + "content": "▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": false + }, + "158": { + "content": "▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": false + }, + "159": { + "content": "▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": false + }, + "160": { + "content": "▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": false + }, + "161": { + "content": "▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": false + }, + "162": { + "content": "▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": false + }, + "163": { + "content": "▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": false + }, + "164": { + "content": "▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": false + }, + "165": { + "content": "▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": false + }, + "166": { + "content": "▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": false + }, + "167": { + "content": "▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": false + }, + "168": { + "content": "", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": false + }, + "169": { + "content": "", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": false + }, + "171": { + "content": "", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": false + }, + "172": { + "content": "", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": false + }, + "173": { + "content": "", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": false + }, + "174": { + "content": "
", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": false + }, + "170": { + "content": "
", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": false + }, + "175": { + "content": "", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": false + }, + "176": { + "content": "
", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": false + }, + "177": { + "content": "", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": false + }, + "178": { + "content": "", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": false + }, + "179": { + "content": "", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": false + }, + "180": { + "content": "", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": false + }, + "181": { + "content": "", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": false + }, + "182": { + "content": "", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": false + }, + "183": { + "content": "", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": false + }, + "184": { + "content": "

", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": false + }, + "185": { + "content": "

", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": false + }, + "186": { + "content": "

", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": false + }, + "187": { + "content": "

", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": false + }, + "188": { + "content": "

", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": false + }, + "189": { + "content": "
", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": false + }, + "190": { + "content": "
", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": false + }, + "191": { + "content": "
", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": false + }, + "192": { + "content": "", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": false + }, + "193": { + "content": "", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": false + }, + "194": { + "content": "", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": false + }, + "195": { + "content": "", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": false + }, + "196": { + "content": "", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": false + }, + "197": { + "content": "", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": false + }, + "198": { + "content": "", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": false + }, + "199": { + "content": "", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": false + }, + "200": { + "content": "", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": false + }, + "201": { + "content": "", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": false + }, + "202": { + "content": "", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": false + }, + "203": { + "content": "", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": false + }, + "204": { + "content": "", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": false + }, + "205": { + "content": "", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": false + }, + "206": { + "content": "", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": false + }, + "207": { + "content": "", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": false + }, + "208": { + "content": "", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": false + }, + "209": { + "content": "", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": false + }, + "210": { + "content": "", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": false + }, + "211": { + "content": "", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": false + }, + "212": { + "content": "", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": false + }, + "213": { + "content": "", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": false + }, + "214": { + "content": "", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": false + }, + "215": { + "content": "", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": false + }, + "216": { + "content": "", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": false + }, + "217": { + "content": "", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": false + }, + "218": { + "content": "", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": false + }, + "219": { + "content": "", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": false + }, + "220": { + "content": "", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": false + }, + "221": { + "content": "", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": false + }, + "222": { + "content": "