Commit
8889131
·
0 Parent(s):

Super-squash branch 'main' using huggingface_hub

Browse files

Co-authored-by: zekunhao <zekunhao@users.noreply.huggingface.co>
Co-authored-by: CYChenv <CYChenv@users.noreply.huggingface.co>
Co-authored-by: tangyue0820 <tangyue0820@users.noreply.huggingface.co>
Co-authored-by: harrim-nv <harrim-nv@users.noreply.huggingface.co>
Co-authored-by: liang1225 <liang1225@users.noreply.huggingface.co>
Co-authored-by: mli0603 <mli0603@users.noreply.huggingface.co>
Co-authored-by: mbalaNV <mbalaNV@users.noreply.huggingface.co>

This view is limited to 50 files because it contains too many changes.   See raw diff
Files changed (50) hide show
  1. .gitattributes +39 -0
  2. BIAS.md +11 -0
  3. EXPLAINABILITY.md +16 -0
  4. PRIVACY.md +6 -0
  5. README.md +505 -0
  6. SAFETY.md +11 -0
  7. assets/benchmark-image2video-leaderboard-all-models.png +3 -0
  8. assets/benchmark-image2video-leaderboard.png +3 -0
  9. assets/example_first_frame.png +3 -0
  10. assets/example_original_prompt.txt +1 -0
  11. assets/example_output.mp4 +3 -0
  12. assets/example_output_diffusers.mp4 +3 -0
  13. assets/example_prompt.json +1 -0
  14. chat_template.json +3 -0
  15. checkpoint.json +17 -0
  16. config.json +244 -0
  17. generation_config.json +14 -0
  18. merges.txt +0 -0
  19. model.safetensors.index.json +0 -0
  20. model_index.json +24 -0
  21. preprocessor_config.json +21 -0
  22. scheduler/scheduler_config.json +33 -0
  23. scripts/gen_video.py +64 -0
  24. scripts/upsample_prompt.py +168 -0
  25. text_tokenizer/added_tokens.json +28 -0
  26. text_tokenizer/chat_template.jinja +120 -0
  27. text_tokenizer/merges.txt +0 -0
  28. text_tokenizer/special_tokens_map.json +31 -0
  29. text_tokenizer/tokenizer.json +3 -0
  30. text_tokenizer/tokenizer_config.json +239 -0
  31. text_tokenizer/vocab.json +0 -0
  32. tokenizer.json +0 -0
  33. tokenizer_config.json +239 -0
  34. transformer/config.json +54 -0
  35. transformer/diffusion_pytorch_model-00001-of-00027.safetensors +3 -0
  36. transformer/diffusion_pytorch_model-00002-of-00027.safetensors +3 -0
  37. transformer/diffusion_pytorch_model-00003-of-00027.safetensors +3 -0
  38. transformer/diffusion_pytorch_model-00004-of-00027.safetensors +3 -0
  39. transformer/diffusion_pytorch_model-00005-of-00027.safetensors +3 -0
  40. transformer/diffusion_pytorch_model-00006-of-00027.safetensors +3 -0
  41. transformer/diffusion_pytorch_model-00007-of-00027.safetensors +3 -0
  42. transformer/diffusion_pytorch_model-00008-of-00027.safetensors +3 -0
  43. transformer/diffusion_pytorch_model-00009-of-00027.safetensors +3 -0
  44. transformer/diffusion_pytorch_model-00010-of-00027.safetensors +3 -0
  45. transformer/diffusion_pytorch_model-00011-of-00027.safetensors +3 -0
  46. transformer/diffusion_pytorch_model-00012-of-00027.safetensors +3 -0
  47. transformer/diffusion_pytorch_model-00013-of-00027.safetensors +3 -0
  48. transformer/diffusion_pytorch_model-00014-of-00027.safetensors +3 -0
  49. transformer/diffusion_pytorch_model-00015-of-00027.safetensors +3 -0
  50. transformer/diffusion_pytorch_model-00016-of-00027.safetensors +3 -0
.gitattributes ADDED
@@ -0,0 +1,39 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
+ saved_model/**/* filter=lfs diff=lfs merge=lfs -text
27
+ *.tar.* filter=lfs diff=lfs merge=lfs -text
28
+ *.tar filter=lfs diff=lfs merge=lfs -text
29
+ *.tflite filter=lfs diff=lfs merge=lfs -text
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
36
+ text_tokenizer/tokenizer.json filter=lfs diff=lfs merge=lfs -text
37
+ *.mp4 filter=lfs diff=lfs merge=lfs -text
38
+ *.png filter=lfs diff=lfs merge=lfs -text
39
+ *.gif filter=lfs diff=lfs merge=lfs -text
BIAS.md ADDED
@@ -0,0 +1,11 @@
 
 
 
 
 
 
 
 
 
 
 
 
1
+ ## Bias
2
+
3
+ | Field | Response |
4
+ | :---- | :---- |
5
+ | Participation considerations from adversely impacted groups [protected classes](https://www.senate.ca.gov/content/protected-classes) in model design and testing | None. |
6
+ | Measures taken to mitigate against unwanted bias | Training, evaluation, and testing data are curated before release to filter restricted content, including content relating to protected classes. Model behavior is evaluated across Physical AI domains — robotics, autonomous vehicles, human-centric scenes, common scenes, industry, miscellaneous, and physics-oriented benchmarks — with attention to coverage across diverse demographic and contextual characteristics that affect protected-class outcomes. |
7
+ | Which characteristic (feature) show(s) the greatest difference in performance?: | Greatest performance differences are observed in tasks requiring long-horizon temporal consistency, fine-grained physical interactions, and embodiment-specific action generation. Performance is generally stronger on common visual reasoning and world-generation tasks than on complex multi-agent, robotics-control, or tightly synchronized multimodal generation scenarios. |
8
+ | Which feature(s) have the worst performance overall? | Performance is generally weakest in tasks requiring long-horizon temporal consistency, precise physical interactions, embodiment-specific action control, and strict audio-visual synchronization. |
9
+ | If using internal data, description of methods implemented in data acquisition or processing, if any, to address the prevalence of identifiable biases in the training, testing, and validation data: | Bias-specific methods applied during data processing include person-presence screening, demographic-taxonomy classification (age, gender, ethnicity), embedding-based diversity analysis, and dataset balancing across sources. Internal analysis surfaced: non-person scenes are more prevalent than person-centric content; demographic-taxonomy outputs on person-present samples are most frequently "uncertain" across age, gender, and ethnicity dimensions; and source-type variation, with people-centric image and video datasets showing higher demographic signal than document-, object-, robotics-, or scene-focused datasets. *(Quantitative details in the row below.)* Downstream deployments should add bias audits, fairness evaluation, red-teaming, demographically balanced fine-tuning, or counterfactual augmentation as mitigations. |
10
+ | Tools used to assess statistical imbalances and highlight patterns that may introduce bias into AI models: | Dataset analytics pipelines, metadata distribution analysis, heuristic quality checks, embedding-based clustering, model-assisted filtering systems, and benchmark evaluation suites are used to assess statistical imbalances and identify patterns that may introduce bias into model behavior. |
11
+ | Tools used to assess statistical imbalances and highlight patterns that may introduce bias into AI models: | These datasets, such as OpenImages-derived detection-to-NLP datasets, visual grounding and VQA datasets, document/image understanding datasets, video/action understanding datasets, and NVIDIA-created or curated visual datasets, do not collectively or exhaustively represent all demographic groups (and proportionally therein). For instance, automated person-presence screening did not identify a person in approximately 58% of visual samples analyzed across approximately 400 datasets, while person-present signals were identified in approximately 42% of analyzed samples. In the subset where person-present signals were identified, these datasets contain uneven representation splits across the measured visual taxonomies: age outputs were most frequently uncertain, followed by child and adult; gender outputs were most frequently uncertain, followed by male and female; and ethnicity outputs were most frequently uncertain, followed by Hispanic and White as the most frequent identified categories. Dataset-level results vary by source type, with people-centric image and video datasets containing higher person-present and demographic-taxonomy signals than document-, object-, robotics-, or scene-focused datasets. To mitigate these imbalances, we recommend considering evaluation techniques such as bias audits, task-specific fairness evaluation, and red-teaming, along with fine-tuning with demographically balanced datasets and counterfactual data augmentation to align with the desired model behavior. This evaluation used a baseline of 200 samples across all datasets, with larger subsets of up to 3,000 samples utilized for certain in-depth analyses, identified as optimal thresholds for maximizing embedder accuracy. |
EXPLAINABILITY.md ADDED
@@ -0,0 +1,16 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ ## Explainability
2
+
3
+ | Field | Response |
4
+ | :---- | :---- |
5
+ | Intended Application & Domain | World reasoning and generation for Physical AI. |
6
+ | Model Type | Mixture-of-Transformers architecture with two towers. One is an autoregressive model for Physical AI reasoning; the other is a diffusion model for Physical AI generation. |
7
+ | Intended Users | Physical AI developers, researchers, and practitioners building or evaluating autonomous vehicle, robotics, and world-generation workflows. |
8
+ | Output | Images, videos, audio, and action commands. |
9
+ | Tools used to evaluate datasets to identify synthetic data and ensure data authenticity. | Dataset provenance analysis, metadata validation, watermark and artifact detection, embedding-based clustering, heuristic quality checks, and model-assisted data validation pipelines are used to identify synthetic content patterns, assess dataset authenticity, and improve data quality during dataset curation. |
10
+ | Describe how the model works | Cosmos3 is an Omni world foundation model that generates texts, images, videos, audio, and action commands from combinations of text, images, videos, and action trajectory inputs. Input tokens from multiple modalities are packed into a shared sequence and processed by our mixture-of-transformer backbone with modality-specific output heads. |
11
+ | Name the adversely impacted groups this has been tested to deliver comparable outcomes regardless of: | None. |
12
+ | Technical Limitations | The model may not follow text, image, video, audio, or action trajectory inputs accurately in challenging cases, especially where the input contains complex scene composition, unusual camera motion, multiple interacting agents, low lighting, high motion blur, or fine-grained physical interactions. Generated outputs may contain temporal inconsistency, object morphing, inaccurate 3D structure, or implausible physical dynamics. Generated audio may not accurately render intelligible speech, or maintain strict temporal and semantic alignment with the visual context. |
13
+ | Verified to have met prescribed NVIDIA quality standards | Yes. |
14
+ | Performance Metrics | Video generation is measured using PAIBench-G, RBench, PhysicsIQ, and Artifical Analysis Image2Video benchmark. Image generation uses UniGenBench and Artifical Analysis Text2Image benchmark. For transfer evaluation, we use PAIBench-C and AVBench-C. Audio generation uses internal benchmarks. Action prediction uses metrics such as action MSE, Absolute Translation Error, Relative Translation Error, Relative Rotation Error, PSNR, and robotic task completion success rate. |
15
+ | Potential Known Risks | This model can generate synthetic media and may produce content that is offensive, unsafe, misleading, indecent, or unsuitable for a target deployment. Users should implement robust safety guardrails — including content filtering, abuse monitoring, and access controls — to reduce the risk of harmful outputs. Users are responsible for ensuring that their use of the model complies with all applicable laws and regulations, and for regularly reviewing and updating their guardrails as risks evolve. |
16
+ | Licensing | [OpenMDW1.1](https://openmdw.ai/) |
PRIVACY.md ADDED
@@ -0,0 +1,6 @@
 
 
 
 
 
 
 
1
+ ## Privacy
2
+ | Privacy Information |
3
+ |---|
4
+ | The model was trained on large-scale publicly available data that may contain images, audio-video, and text relating to people. NVIDIA collected and used this data in compliance with applicable data protection and privacy laws. This model was not designed to derive insights or otherwise learn from any personal data contained in the datasets. |
5
+ | NVIDIA uses a combination of filters, data minimization techniques, and other guardrails to help prevent personal data from being recited by our models. We employ automated tools and data processing techniques during pre-training or training to identify and filter certain categories of personal data. For example, for text-bearing source and document components, our automated tools identified potential personal data such as person names, locations, and possible business or public-facing contact information such as email addresses and phone numbers. We reviewed and removed any verified instances of personal data through a combination of automated filtering and human-in-the-loop validation. |
6
+ | Please review NVIDIA's [Privacy Policy](https://www.nvidia.com/en-us/about-nvidia/privacy-policy/) for more information. |
README.md ADDED
@@ -0,0 +1,505 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ ---
2
+ license: other
3
+ license_name: openmdw1.1-license
4
+ license_link: >-
5
+ https://openmdw.ai/license/1-1/
6
+ library_name: cosmos
7
+ tags:
8
+ - nvidia
9
+ - cosmos
10
+ - cosmos3
11
+ - vllm-omni
12
+ - diffusers
13
+ - image-to-video
14
+ - video-generation
15
+ ---
16
+
17
+ # **Cosmos 3: Omnimodal World Models for Physical AI**
18
+ **[Model Collection](https://huggingface.co/collections/nvidia/cosmos3)** | **[Code](https://github.com/nvidia/cosmos)** | **[White Paper](https://research.nvidia.com/labs/cosmos-lab/cosmos3/technical-report.pdf)** | **[Website](https://research.nvidia.com/labs/cosmos-lab/cosmos3/)**
19
+
20
+ [NVIDIA Cosmos™](https://github.com/nvidia/cosmos) is a world foundation model platform designed to accelerate the development of Physical AI by enabling machines to understand, simulate, and interact with the physical world across robotics, autonomous driving, and smart space environments, including industrial and factory-scale applications.
21
+
22
+ # Model Overview: Cosmos3-Super-Image2Video
23
+
24
+ ## Description
25
+
26
+ Cosmos3 is a collection of Omnimodal world models capable of generating dynamic, high-quality video, image, audio, and action commands from combinations of text, image, video, and action trajectory inputs. It serves as a foundational building block for a broad range of Physical AI applications and research spanning world understanding, world generation, simulation, and embodied policy learning.
27
+
28
+ This model is ready for commercial and non-commercial use.
29
+
30
+ **Model Developer:** NVIDIA
31
+
32
+ ### Model Versions
33
+ - Cosmos3-Nano:
34
+ - Given multimodal inputs including text, images, video, audio, and action trajectories, generate coherent text, images, video, audio, and action outputs for multimodal understanding, world simulation, future prediction, action reasoning, and Physical AI applications.
35
+
36
+ - Cosmos3-Super:
37
+ - Given multimodal inputs including text, images, video, audio, and action trajectories, generate coherent text, images, video, audio, and action outputs for multimodal understanding, world simulation, future prediction, action reasoning, and Physical AI applications.
38
+
39
+ - Cosmos3-Nano-Policy-DROID:
40
+ - Given language instructions and visual observations from the DROID robot platform, generate robot action trajectories for manipulation and control tasks.
41
+
42
+ - Cosmos3-Super-Image2Video:
43
+ - Given one input image and text instructions, generate temporally coherent video sequences that are consistent with the provided visual content.
44
+
45
+ - Cosmos3-Super-Text2Image:
46
+ - Given text input, generate high-fidelity images that are consistent with the provided description.
47
+
48
+ ### License
49
+
50
+ This model is released under the [OpenMDW1.1](https://openmdw.ai/license/1-1/)
51
+
52
+ ### Deployment Geography
53
+
54
+ Global
55
+
56
+ ### Use Case
57
+
58
+ Physical AI: Encompassing robotics, autonomous vehicles (AV), and smart space environments, including industrial and factory-scale applications.
59
+
60
+ ### Release Date
61
+
62
+ Hugging Face 05/31/2026 via [https://huggingface.co/collections/nvidia/cosmos3](https://huggingface.co/collections/nvidia/cosmos3)
63
+ GitHub 05/31/2026 via [https://github.com/nvidia/cosmos](https://github.com/nvidia/cosmos)
64
+
65
+ ## Model Architecture
66
+
67
+ **Architecture Type:** Transformer
68
+
69
+ **Network Architecture:** Mixture-of-Transformers (MoT)
70
+
71
+ Cosmos3 is an Omni-modal foundation model built on a Mixture-of-Transformers (MoT) architecture consisting of two complementary transformer towers: an autoregressive transformer for discrete token generation and a diffusion transformer for continuous multimodal generation. During inference, text is generated through standard next-token autoregressive decoding, while non-text modalities, such as images, video, audio, and actions, are synthesized through iterative denoising. This unified architecture enables Cosmos3 to model heterogeneous modalities within a single framework while preserving generation mechanisms best suited to each modality.
72
+
73
+ **This model was developed based on:** [Cosmos Framework](https://github.com/nvidia/cosmos-framework)
74
+
75
+ **Number of trainable model parameters:**
76
+
77
+ - Cosmos3-Nano: 16B
78
+ - Cosmos3-Super: 64B
79
+ - Cosmos3-Nano-Policy-DROID: 16B
80
+ - Cosmos3-Super-Image2Video: 64B
81
+ - Cosmos3-Super-Text2Image: 64B
82
+
83
+ ## Input/Output Specifications
84
+
85
+ - **Generator Input**
86
+ - **Input Type(s)**: Text, Image, Video (with audio or without audio), Action Trajectory
87
+ - **Input Format(s)**:
88
+ - Text: String
89
+ - Image: jpg, png, jpeg, webp
90
+ - Video (with or without audio): mp4
91
+ - Action: json (1D list)
92
+ - **Input Parameters**:
93
+ - Text: One-dimensional (1D)
94
+ - Image: Two-dimensional (2D)
95
+ - Video: Three-dimensional (3D)
96
+ - Audio: One-dimensional (1D)
97
+ - Action trajectory: One-dimensional (1D)
98
+ - **Other Properties Related to Input**:
99
+ - For video inputs, we accept various resolutions, including 720p, 480p, and 256p.
100
+ - When using input video with audio muxed into the video MP4 file, the audio should have 2 channels (stereo) and a 48 kHz sample rate.
101
+ - Image and video inputs are RGB color (8 bits per channel, sRGB color space); grayscale inputs are not supported.
102
+ - Action input is a per-frame sequence of robot/agent state or control values (e.g., joint positions, gripper state, camera pose). The full input is a 2D array shaped (T, D), where T is the number of frames and D is the embodiment-specific dimensionality listed below.
103
+ - Input action is only supported for compatible embodiments, including general camera motion (9D), autonomous vehicle (9D), egocentric motion (57D), single Franka Panda arm with RobotiQ gripper (10D), dual Franka Panda arm with RobotiQ gripper (20D), Agibot (29D), UR (10D), Google robot (10D), WidowX 250 (10D), UMI (9D).
104
+ - **Input Size and Length limits:**
105
+ - **Text:** 4096 tokens
106
+ - **Image:** 256p, 480p, and 720p resolution at one of these aspect ratios (16:9, 4:3, 1:1, 3:4, 9:16)
107
+ - **Video:** 256p, 480p, and 720p resolution at one of these aspect ratios (16:9, 4:3, 1:1, 3:4, 9:16). Max number of frames = 5.
108
+ - **Audio:** Max 0.5 second
109
+ - **Action:** 16 – 400 video frames
110
+ - **Generator Output**
111
+ - **Output Type(s)**: Image, video, audio, action, text
112
+ - **Output Format(s)**:
113
+ - Image: JPG
114
+ - Video: MP4
115
+ - Audio: Advanced Audio Coding (AAC) stream (muxed within the MP4)
116
+ - Action: 1D list (.json)
117
+ - Text: string
118
+ - **Output Parameters**:
119
+ - Image: Two-dimensional (2D)
120
+ - Video: Three-dimensional (3D)
121
+ - Audio: One-dimensional (1D)
122
+ - Action: One-dimensional (1D)
123
+ - Text: One-dimensional (1D)
124
+ - **Other Properties Related to Output**:
125
+ - The generated video is an MP4 file, with the resolution, frame rate, and duration specified in the input. The generated audio is encoded in AAC format, muxed into the video MP4 file with 2 channels (stereo) and a 48 kHz sample rate.
126
+ - Video generation supports durations from 5 to 400 frames, with 189 frames as the default generation duration.
127
+ - The generated action is only supported for compatible embodiments, including general camera motion (9D), autonomous vehicle (9D), egocentric motion (57D), single Franka Panda arm with RobotiQ gripper (10D), dual Franka Panda arm with RobotiQ gripper (20D), Agibot (29D), UR (10D), Google robot (10D), WidowX 250 (10D), UMI (9D).
128
+ - Audio: 48 kHz stereo AAC stream muxed into video mp4
129
+ - Video: mp4 at the FPS specified in input
130
+ - Image: JPEG
131
+ - **Reasoner Input**
132
+ - **Input Type(s)**: Text, Text+Image, Text+Video
133
+ - **Input Format(s)**:
134
+ - Text: String
135
+ - Image: jpg, png, jpeg, webp
136
+ - Video: mp4
137
+ - **Input Parameters**:
138
+ - Text: One-dimensional (1D)
139
+ - Image: Two-dimensional (2D)
140
+ - Video: Three-dimensional (3D)
141
+ - **Other Properties Related to Input**:
142
+ - Video inputs are recommended at a frame rate of 4 fps.
143
+ - Long-context inputs supported up to 256K tokens.
144
+ - **Input Size and Length limits:**
145
+ - **Text:** Up to 256K tokens (context window).
146
+ - **Image:** Standard input image formats; passed as file or URL.
147
+ - **Video:** mp4 at the recommended 4 fps.
148
+ - **Reasoner Output**
149
+ - **Output Type(s)**: Text
150
+ - **Output Format(s)**:
151
+ - Text: string
152
+ - **Output Parameters**:
153
+ - Text: One-dimensional (1D)
154
+ - **Other Properties Related to Output**:
155
+ - Default `max_tokens=4096+` is recommended for reasoning outputs; longer outputs may be requested.
156
+ - Reasoning outputs may include structured chain-of-thought, 2D/3D point localization, and bounding-box coordinates for vision-based tasks.
157
+
158
+ The video content visualizes the input text description as a short animated scene, capturing key elements within the specified time constraints.
159
+
160
+ Our AI models are designed and/or optimized to run on NVIDIA GPU-accelerated systems. By leveraging NVIDIA's hardware (e.g., GPU cores) and software frameworks (e.g., CUDA libraries), the model achieves faster training and inference times compared to CPU-only solutions.
161
+
162
+ ## Software Integration
163
+
164
+ **Runtime Engine(s):**
165
+
166
+ - [PyTorch](https://github.com/nvidia/cosmos3)
167
+ - [vLLM-Omni](https://github.com/vllm-project/vllm-omni)
168
+ - [Hugging Face Diffusers](https://huggingface.co/docs/diffusers/en/index)
169
+
170
+ **Supported Hardware Microarchitecture Compatibility:**
171
+
172
+ - NVIDIA Ampere
173
+ - NVIDIA Blackwell
174
+ - NVIDIA Hopper
175
+
176
+ **Operating System(s):**
177
+
178
+ - Linux (We have not tested on other operating systems.)
179
+
180
+ **Note:** Only BF16 precision is tested. Other precisions like FP4, FP8, and FP16 are not officially supported.
181
+
182
+ The integration of foundation and fine-tuned models into AI systems requires additional testing using use-case-specific data to ensure safe and effective deployment. Following the V-model methodology, iterative testing and validation at both unit and system levels are essential to mitigate risks, meet technical and functional requirements, and ensure compliance with safety and ethical standards before deployment.
183
+
184
+ ## Training, Testing, and Evaluation Datasets
185
+
186
+ ### Dataset Overview
187
+
188
+ - **Total Size:** 1.3B data points
189
+ - **Total Number of Datasets:** 393 dataset entries
190
+ - **Dataset partition:** Training [100%], Testing [N/A — evaluation benchmarks used separately], Validation [N/A — evaluation benchmarks used separately]
191
+ - **Time period for training data collection:** 2024–2026
192
+ - **Time period for testing data collection:** N/A (standard public benchmarks)
193
+ - **Time period for validation data collection:** N/A (standard public benchmarks)
194
+
195
+ Raw data from internal and external sources is transformed into training-ready data through multiple stages of curation, filtering, and quality review. Data acquisition spans diverse multimodal sources — robotics, autonomous driving, industrial environments, indoor and outdoor scenes, varied lighting and weather conditions, camera viewpoints, object categories, and human activities — to broaden coverage across Physical AI operating environments. Automated filtering pipelines remove corrupted, duplicate, low-quality, and restricted content. Metadata analysis, heuristic rules, and model-assisted classifiers are applied during preprocessing to flag anomalous distributions and low-diversity subsets. Human review supplements automated filtering for selected datasets, benchmark construction, and targeted quality analysis. Datasets are balanced across modalities and task categories — visual reasoning, text-to-image, text-to-video, image-to-video, audio generation, video transfer, action-conditioned generation, and action command generation — to reduce overrepresentation of narrow domains. Synthetic and simulation-based augmentation supplements coverage of rare physical interactions and edge-case scenarios. Deduplication and provenance tracking are applied across the corpus. The resulting processed data is converted into model-ready tokenized or encoded representations through modality-specific preprocessors before training begins.
196
+
197
+ Training datasets passed through multiple layers of automated and manual safeguards designed to reduce the presence of harmful or policy-violating content across categories including weapons and weapons-related instructional content, criminal planning, child sexual abuse material (CSAM), non-consensual intimate imagery (NCII), sexual content involving minors, harassment, hate speech, profanity, threats and incitement to violence, self-harm or suicide-related content, and graphic violence. Data sources are reviewed for licensing compatibility, provenance, and alignment with internal data governance and safety policies before admission into training corpora. Automated filtering pipelines combine multiple detection strategies: hash-matching against known CSAM and NCII reference databases; classifier-based moderation models trained for explicit sexual content, hate speech, violence, weapons imagery, and other restricted categories; keyword and regex-based screening for criminal-planning, threats, and self-harm phrases in text data; metadata and provenance heuristics for source-level risk signals; and embedding-based anomaly detection to surface samples that fall outside expected distributions. Human review and targeted audits supplement automated filtering for selected datasets, benchmark construction, and safety-sensitive evaluation. For multimodal Physical AI data (robotics, autonomous driving, industrial scenes), additional filtering targets invalid action trajectories, physically implausible interactions, and unsafe control sequences. Synthetic and simulation-generated data are evaluated through internal validation before inclusion. Benchmark evaluations and red-team testing are applied post-training to surface remaining safety gaps across world generation, reasoning, audio, and action tasks. No large-scale data-filtering process can guarantee complete removal of all harmful content; residual risks may remain, particularly in rare edge cases or open-world deployment settings. Ongoing monitoring and dataset review continue post-release.
198
+
199
+ **Data Modality and Training Data Size**
200
+
201
+ | Modality | Reasoning Data Sample Count | Generation Data Sample Count |
202
+ | -------- | ------------------- | -------------------- |
203
+ | Text | 22M | Not Applicable |
204
+ | Image | 19M | 767M |
205
+ | Video | 1M | 348M |
206
+ | Audio | Not Applicable | 139M |
207
+ | Action | Not Applicable | 8M |
208
+
209
+ **Data Collection Method by dataset**
210
+
211
+ - Hybrid: Automatic/Sensors, Synthetic, Automated
212
+
213
+ **Labeling Method by dataset**
214
+
215
+ - Hybrid: Human, Automated
216
+
217
+ **Properties:** The training, testing, and evaluation datasets consist of diverse multimodal video, image, audio, action, synthetic, and sensor-conditioned data sourced from NVIDIA-owned data and publicly available, commercially permissive datasets. These datasets are curated to exclude known restricted content and to support building an Omni model that learns to generate and reason about dynamic physical environments across world reasoning and generation tasks.
218
+
219
+ ### Public Datasets
220
+
221
+ | Dataset&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; | Samples&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; |
222
+ |---|---|
223
+ | OpenImage | 1.2M |
224
+ | Coyo700M | 100M |
225
+ | YouTube Video | 340M |
226
+ | UMI | 4.5M |
227
+
228
+ ### Private Datasets
229
+
230
+ | Dataset&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; | Samples&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; |
231
+ |---|---|
232
+ | Egocentric | 7M |
233
+ | Nexar | 0.6M |
234
+ | AgiBot | 0.2M |
235
+ | HOI | 0.3M |
236
+
237
+ ### Synthetic Datasets
238
+
239
+ | Dataset | Samples |
240
+ |---|---|
241
+ | synthetic images generated using HiDream-I1 | 15M |
242
+ | synthetic images generated using Qwen-Image-2512 | 14M |
243
+ | synthetic captions generated using Qwen3-VL | 1115M |
244
+
245
+ ## Evaluation Datasets
246
+
247
+ **Data Collection Method by dataset**
248
+
249
+ - Hybrid: Automatic/Sensors, Synthetic, Automated
250
+
251
+ **Labeling Method by dataset**
252
+
253
+ - Hybrid: Human, Automated
254
+
255
+ **Properties:** The training, testing, and evaluation datasets consist of diverse multimodal video, image, audio, action, synthetic, and sensor-conditioned data sourced from NVIDIA-owned data and publicly available, commercially permissive datasets. These datasets are curated to exclude known restricted content and to support building an Omni model that learns to generate and reason about dynamic physical environments across world reasoning and generation tasks.
256
+
257
+ ## Benchmarks
258
+
259
+ Please see our [technical paper](https://research.nvidia.com/labs/cosmos-lab/cosmos3/technical-report.pdf) for detailed evaluations of the base model.
260
+
261
+ ### Artificial Analysis Leaderboard
262
+
263
+ #### Open-Source Models [2026/05/28/]
264
+
265
+ ![Artificial Analysis Image-to-Video leaderboard (no audio) — open-source models](assets/benchmark-image2video-leaderboard.png)
266
+
267
+ #### All Models [2026/05/28/] (Including Closed-Source)
268
+
269
+ ![Artificial Analysis Image-to-Video leaderboard (no audio) — all models including closed-source](assets/benchmark-image2video-leaderboard-all-models.png)
270
+
271
+ ## Usage
272
+
273
+ - See [Cosmos](https://github.com/nvidia/cosmos) for details.
274
+
275
+ ### Prompt upsampling
276
+
277
+ For optimal quality, text prompts should be upsampled into a specific JSON structure. Description and code can be found [here](https://github.com/nvidia/cosmos-framework/blob/main/docs/prompt_upsampling.md).
278
+
279
+ For example, for prompt upsampling using Opus-4.7:
280
+
281
+ ```bash
282
+ git clone https://github.com/NVIDIA/cosmos-framework.git packages/cosmos-framework
283
+ pip install -e packages/cosmos-framework
284
+
285
+ export PROMPT_UPSAMPLER_ENDPOINT_URL="https://api.anthropic.com/v1/"
286
+ export PROMPT_UPSAMPLER_MODEL_NAME="claude-opus-4-7"
287
+ export PROMPT_UPSAMPLER_API_TOKEN="<you_token>"
288
+
289
+ python -m cosmos_framework.inference.prompt_upsampling \
290
+ --input assets/example_original_prompt.txt \
291
+ --image-url assets/example_first_frame.png \
292
+ --output /tmp/upsampled_posttrain_i2v/ \
293
+ --mode posttrain_image2video \
294
+ --endpoint-url "${PROMPT_UPSAMPLER_ENDPOINT_URL}" \
295
+ --model "${PROMPT_UPSAMPLER_MODEL_NAME}" \
296
+ --api-token "${PROMPT_UPSAMPLER_API_TOKEN}" \
297
+ --resolution 480 \
298
+ --aspect-ratio "16,9" \
299
+ --duration 7s
300
+ ```
301
+
302
+ The JSON-upsampled version of `assets/example_original_prompt.txt` is saved in `assets/example_prompt.json` for convenience, and is used for the video generation examples below.
303
+
304
+ ### vLLM-Omni
305
+
306
+ #### Container
307
+
308
+ ```
309
+ docker pull vllm/vllm-omni:cosmos3
310
+ ```
311
+
312
+ #### General Invocation
313
+
314
+ You can use the release-tested `vllm-omni` package for deploying an OpenAI-compatible API inference endpoint.
315
+ The recommended vLLM-Omni serving configuration for nvidia/Cosmos3-Super-Image2Video on 8xH200, 8xH100, or 8xA100 is:
316
+
317
+ ```bash
318
+ vllm serve nvidia/Cosmos3-Super-Image2Video \
319
+ --omni \
320
+ --host 0.0.0.0 \
321
+ --port 8000 \
322
+ --cfg-parallel-size 2 \
323
+ --ulysses-degree 4 \
324
+ --use-hsdp \
325
+ --hsdp-shard-size 8 \
326
+ --init-timeout 1800
327
+ ```
328
+
329
+ With this configuration, video generation with 50 steps should take approximately 55 seconds on H200 GPUs. For 2xH200, one can simply use `--cfg-parallel-size 2 --use-hsdp --hsdp-shard-size 2`, and a video should take approximately 3 minutes to generate. Tensor parallelism is also supported by setting `--tensor-parallel-size`. Setting `--enable-layerwise-offload` can help reduce memory usage on GPUs with less available memory.
330
+
331
+ #### Download example prompts and scripts
332
+
333
+ The inference scripts (`scripts/`) and example inputs (`assets/`) live in this model repo. Download just those folders with the Hugging Face CLI:
334
+
335
+ ```bash
336
+ pip install -U "huggingface_hub[cli]"
337
+ hf download nvidia/Cosmos3-Super-Image2Video scripts/ assets/ \
338
+ --local-dir Cosmos3-Super-Image2Video
339
+ cd Cosmos3-Super-Image2Video
340
+ ```
341
+
342
+ Run all commands below from the downloaded repo root.
343
+
344
+ #### Example: image to video generation
345
+
346
+ Generate a video from a first-frame image and a JSON-format prompt by calling a vLLM-Omni endpoint:
347
+
348
+ ```bash
349
+ python scripts/gen_video.py \
350
+ --endpoint <endpoint-url> \
351
+ --prompt-file assets/example_prompt.json \
352
+ --image-path assets/example_first_frame.png \
353
+ --output-path scripts/output.mp4
354
+ ```
355
+
356
+ Or, as a minimal standalone script:
357
+
358
+ ```python
359
+ import json
360
+ import requests
361
+
362
+ # 1. Read JSON-upsampled prompt (prompt + negative_prompt)
363
+ json_prompt = json.load(open("assets/example_prompt.json"))
364
+
365
+ # 2. Build your API payload
366
+ payload = {
367
+ "prompt": json_prompt["prompt"],
368
+ "negative_prompt": json_prompt["negative_prompt"],
369
+ "size": "832x480",
370
+ "num_frames": 189,
371
+ "fps": 24,
372
+ "num_inference_steps": 50,
373
+ "guidance_scale": 6.0,
374
+ "flow_shift": 5.0,
375
+ "extra_params": json.dumps(
376
+ {
377
+ "use_resolution_template": False,
378
+ "use_duration_template": False,
379
+ "guardrails": True,
380
+ }
381
+ ),
382
+ }
383
+ files = {"input_reference": ("input.png", open("assets/example_first_frame.png", "rb"), "image/png")}
384
+
385
+ # 3. Send the POST request
386
+ url = "http://localhost:8000/v1/videos/sync"
387
+ print("Sending request to server...")
388
+ response = requests.post(url, data=payload, files=files, headers={"Accept": "video/mp4"})
389
+ response.raise_for_status()
390
+
391
+ # 4. Save the returned MP4 bytes
392
+ with open("/tmp/cosmos3_i2v.mp4", "wb") as video_file:
393
+ video_file.write(response.content)
394
+ print("Saved video to /tmp/cosmos3_i2v.mp4")
395
+ ```
396
+
397
+ Example output generated from `assets/example_first_frame.png`:
398
+
399
+ <video controls width="832" height="480" src="https://huggingface.co/nvidia/Cosmos3-Super-Image2Video/resolve/main/assets/example_output.mp4"></video>
400
+
401
+ #### Inferencing with custom prompts
402
+
403
+ Cosmos3-Super-Image2Video uses JSON-format prompts for optimal quality. The recommended way is to utilize [cosmos-framework](#prompt-upsampling). Here we provide a simple proof-of-concept script for convenience. It requires an OpenAI-compatible VLM model like `claude-opus-4.7` and `gpt-5.5`.
404
+
405
+ ```bash
406
+ export PROMPT_UPSAMPLER_API_KEY="..."
407
+ python scripts/upsample_prompt.py \
408
+ --model-name <model> \
409
+ --base-url <VLM-endpoint-url> \
410
+ --image-path assets/example_first_frame.png \
411
+ --user-prompt "The ice cream melts and gradually disappears. The camera moves around." \
412
+ --output-path scripts/upsampled.json
413
+ ```
414
+
415
+ ### Diffusers
416
+
417
+ Cosmos3 is fully supported within the popular HuggingFace Diffusers package. This integration makes it a supported inference backend, allowing developers to easily incorporate Cosmos3's capabilities - such as text-to-image generation - into their pipelines using the Cosmos3OmniPipeline class, as demonstrated by the provided code examples (see examples for other modalities on the HuggingFace Cosmos3 page).
418
+
419
+ #### Installation
420
+
421
+ To install diffusers with Cosmos3OmniPipeline:
422
+ ```
423
+ uv venv --python 3.13 --seed --managed-python
424
+ source .venv/bin/activate
425
+ uv pip install \
426
+ "diffusers @ git+https://github.com/huggingface/diffusers.git" \
427
+ accelerate \
428
+ av \
429
+ cosmos_guardrail \
430
+ huggingface_hub \
431
+ imageio \
432
+ imageio-ffmpeg \
433
+ torch \
434
+ torchvision \
435
+ transformers
436
+ ```
437
+
438
+ #### Example: image to video generation with Diffusers
439
+
440
+ The following example generates a video in approximately 170 seconds on a single GB200.
441
+
442
+ ```python
443
+ import json
444
+
445
+ import torch
446
+ from diffusers import Cosmos3OmniPipeline, UniPCMultistepScheduler
447
+ from diffusers.utils import export_to_video, load_image
448
+
449
+ pipe = Cosmos3OmniPipeline.from_pretrained(
450
+ "nvidia/Cosmos3-Super-Image2Video",
451
+ torch_dtype=torch.bfloat16,
452
+ device_map="cuda",
453
+ enable_safety_checker=True,
454
+ )
455
+ pipe.scheduler = UniPCMultistepScheduler.from_config(pipe.scheduler.config, flow_shift=5.0)
456
+
457
+ image = load_image("assets/example_first_frame.png")
458
+
459
+ # JSON-format prompt (see scripts/upsample_prompt.py to build your own).
460
+ spec = json.load(open("assets/example_prompt.json"))
461
+ prompt = spec["prompt"]
462
+ negative_prompt = spec["negative_prompt"]
463
+
464
+ result = pipe(
465
+ prompt=prompt,
466
+ negative_prompt=negative_prompt,
467
+ image=image,
468
+ num_frames=189,
469
+ height=480,
470
+ width=832,
471
+ fps=24.0,
472
+ num_inference_steps=50,
473
+ guidance_scale=6.0,
474
+ add_resolution_template=False,
475
+ add_duration_template=False,
476
+ )
477
+
478
+ export_to_video(result.video, "output.mp4", fps=24, quality=7, macro_block_size=1)
479
+ ```
480
+
481
+ Example output generated by Diffusers:
482
+
483
+ <video controls width="832" height="480" src="https://huggingface.co/nvidia/Cosmos3-Super-Image2Video/resolve/main/assets/example_output_diffusers.mp4"></video>
484
+
485
+ ## Limitations
486
+
487
+ Cosmos3 may produce imperfect outputs in challenging scenarios. Generation artifacts include temporal inconsistency, unstable camera or object motion, imprecise physical interactions, inaccurate audio-video synchronization, and action-state drift — especially in long-horizon or high-resolution outputs. Reasoning may also be incorrect: object states, causal relationships, spatial geometry, temporal ordering, agent intent, and future outcomes can be misinferred, and complex or long-context inputs may yield hallucinated entities, inconsistent interpretations, or implausible predictions. Because the model lacks an explicit physics simulator, 3D geometry, 4D space-time evolution, object permanence, contact dynamics, and physical laws are only approximated — producing artifacts such as disappearing or morphing objects, unrealistic collisions, and physically implausible motions. Quality further degrades in out-of-distribution environments, safety-critical edge cases, and domains underrepresented in training.
488
+
489
+ Cosmos3 outputs should not be treated as physically accurate simulation, reliable ground-truth reasoning, or safety-certified decision making. Applications involving robotics control, autonomous systems, scientific simulation, or safety-critical planning require additional validation, external constraints, system-level safety analysis, and domain-specific guardrails before deployment.
490
+
491
+ ## Inference
492
+
493
+ **Acceleration Engine:** [PyTorch](https://pytorch.org/), [vLLM](https://github.com/vllm-project/vllm), [vLLM-Omni](https://github.com/vllm-project/vllm-omni), [Hugging Face Diffusers](https://github.com/huggingface/diffusers)
494
+
495
+ **Test Hardware:** GB200 and H100
496
+
497
+ ## Ethical Considerations
498
+
499
+ NVIDIA believes Trustworthy AI is a shared responsibility and we have established policies and practices to enable development for a wide array of AI applications. Developers should work with their internal model team to ensure this model meets requirements for the relevant industry and use case and addresses unforeseen product misuse.
500
+
501
+ Please make sure you have proper rights and permissions for all input image and video content; if image or video includes people, personal health information, or intellectual property, the image or video generated will not blur or maintain proportions of image subjects included.
502
+
503
+ Users are responsible for model inputs and outputs. Users are responsible for ensuring safe integration of this model, including implementing guardrails as well as other safety mechanisms, prior to deployment.
504
+
505
+ For more detailed information on ethical considerations for this model, please see the Model Card++ [Explainability](EXPLAINABILITY.md), [Bias](BIAS.md), [Safety & Security](SAFETY.md), and [Privacy](PRIVACY.md) subcards. Please report model quality, risk, security vulnerabilities or NVIDIA AI Concerns [here](https://www.nvidia.com/en-us/support/submit-security-vulnerability/).
SAFETY.md ADDED
@@ -0,0 +1,11 @@
 
 
 
 
 
 
 
 
 
 
 
 
1
+ ## Safety & Security
2
+
3
+ | Field | Response |
4
+ | :---- | :---- |
5
+ | Model Application(s) | World reasoning and generation for Physical AI. |
6
+ | Describe the life critical impact: | This model is not a safety-certified component and must not be used as the sole basis for life-critical decisions or control without additional system-level validation, safety analysis, and safeguards. The model is not designed or tested by NVIDIA for use in any system or application where the use of or failure of such system or application developed with the model could result in injury, death, or catastrophic damage. NVIDIA is not liable to any party, in whole or in part, for any claims or damages arising from those uses. Any system or application developed with the model must include sufficient safety and redundancy features and comply with applicable legal and regulatory standards and requirements. |
7
+ | Description of methods implemented in data acquisition or processing, if any, to address other types of potentially harmful data in the training, testing, and validation data: | Training, evaluation, and validation datasets pass through multi-stage automated and manual filtering to reduce harmful, unsafe, restricted, or policy-violating content. Pipelines include source-licensing review, deduplication, metadata-based and classifier-based moderation, embedding-based anomaly detection, and human audits on selected datasets. For Physical AI data (robotics, autonomous driving, industrial scenes), filtering also targets invalid action trajectories, physically implausible interactions, and unsafe control sequences. Synthetic and simulation-generated data are evaluated through internal validation before inclusion. Benchmark and red-team testing surface remaining safety gaps across world generation, reasoning, audio, and action tasks. No data-filtering process can guarantee complete removal; developers are responsible for application-specific safeguards and validation before deployment. |
8
+ | Description of any methods implemented in data acquisition or processing, if any, to address illegal or harmful content in the training data, including, but not limited to, child sexual abuse material (CSAM) and non-consensual intimate imagery (NCII) | In addition to the general unsafe-content filtering described above, training data acquisition and preprocessing apply CSAM- and NCII-specific safeguards: hash-matching systems against known CSAM databases, classifier-based moderation models trained specifically for explicit content and NCII detection, and provenance and licensing review for sources containing human imagery. Identified content is removed at ingest, with human review and targeted audits supplementing automated filtering for selected datasets. Despite these safeguards, no large-scale data-filtering system can guarantee complete detection. Ongoing monitoring and dataset review continue post-release. |
9
+ | Use Case Restrictions | Use is governed by the [OpenMDW1.1](https://openmdw.ai/) |
10
+ | Model and dataset restrictions | The Principle of least privilege (PoLP) is applied limiting access for dataset generation and model development. Restrictions enforce dataset access during training, and dataset license constraints adhered to. |
11
+ | Responsible Data Handling | This AI model was developed based on our policies to ensure responsible data handling and risk mitigation. The datasets used for training have been scanned for harmful content and illegal content, consistent with our policies including scanning for Child Sexual Abuse Material (CSAM). Ongoing review and monitoring mechanisms are in place based on our policies and to maintain data integrity. |
assets/benchmark-image2video-leaderboard-all-models.png ADDED

Git LFS Details

  • SHA256: 185bfd9042b58c449b3328833193cb1a51782fbe49e492039eeb637e9f6c0fb6
  • Pointer size: 131 Bytes
  • Size of remote file: 522 kB
assets/benchmark-image2video-leaderboard.png ADDED

Git LFS Details

  • SHA256: 265cdc6ab57ceb15c60356fa0a328299aead5dfd43c32ae354a0aa6fa03bc72f
  • Pointer size: 131 Bytes
  • Size of remote file: 419 kB
assets/example_first_frame.png ADDED

Git LFS Details

  • SHA256: 677259954dfc05b6dd62fbc1d8c4064544e247f86d0df458214e6e8097341988
  • Pointer size: 132 Bytes
  • Size of remote file: 1.96 MB
assets/example_original_prompt.txt ADDED
@@ -0,0 +1 @@
 
 
1
+ The ice cream melts and gradually disappears. The camera moves around.
assets/example_output.mp4 ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:9c7df4dc671a3237c33aed82c47e1840b403c43b11ecbb6987d34284f3bf6cbe
3
+ size 6948901
assets/example_output_diffusers.mp4 ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:f8c60550d54d9ce3cec15a00c4c484da930ee020510caa02323edeb3e6528173
3
+ size 3987298
assets/example_prompt.json ADDED
@@ -0,0 +1 @@
 
 
1
+ {"prompt": "{\"temporal_caption\": \"A fallen waffle cone lies on rough sunlit asphalt in an extreme low close-up, with a rounded scoop of vanilla and chocolate ice cream pressed against the road, a small melted puddle already spreading beneath it, and dry autumn leaves scattered around in warm late-afternoon light. The viewpoint stays near ground level and begins a slow, smooth arc around the cone from left to right, keeping the melting scoop dominant while the background street and leaves remain softly blurred. As the sun warms the ice cream, the glossy edges soften first, thin rivulets of vanilla and chocolate slide down the curved scoop, and the existing puddle widens into the cracks and pebbled texture of the asphalt. The waffle cone remains mostly rigid but grows slightly damp at the rim touching the ice cream, while the scoop loses its rounded shape, slumps lower, and exposes more of the cone’s open mouth. The moving viewpoint continues its gentle orbit, revealing the chocolate side thinning into streaks and the vanilla side collapsing into pale liquid that creeps outward under gravity. By the end, most of the ice cream has flattened into a shallow glossy stain that drains into small road fissures and spreads out of the immediate area, leaving the cone lying in place with only thin cream-colored and brown traces clinging to the asphalt in the warm light.\", \"duration\": \"7s\", \"fps\": 24.0, \"resolution\": {\"H\": 480, \"W\": 832}, \"aspect_ratio\": \"16,9\"}", "negative_prompt": "The video captures a series of frames showing macroblocking artifacts, chromatic aberration, high-frequency noise, and rolling shutter distortion. It includes static with no motion, motion blur, over-saturation, shaky footage, low resolution, grainy texture, pixelated images, poorly lit areas, underexposed and overexposed scenes, poor color balance, washed out colors, choppy sequences, jerky movements, low frame rate, bit-depth compression artifacts, color banding, unnatural transitions, outdated special effects, fake elements, unconvincing visuals, poorly edited content, jump cuts, hard cut, visual noise, and flickering. It features moiré patterns, edge halos, and temporal aliasing. Furthermore, the content defies common sense, generating illogical scenarios, nonsensical entities, absurd character behaviors, and conceptual paradoxes that violate basic human reasoning and everyday reality. The video looks like a surreal or glitchy hallucination. Overall, the video is of poor quality."}
chat_template.json ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ {
2
+ "chat_template": "{%- if tools %}\n {{- '<|im_start|>system\\n' }}\n {%- if messages[0].role == 'system' %}\n {%- if messages[0].content is string %}\n {{- messages[0].content }}\n {%- else %}\n {%- for content in messages[0].content %}\n {%- if 'text' in content %}\n {{- content.text }}\n {%- endif %}\n {%- endfor %}\n {%- endif %}\n {{- '\\n\\n' }}\n {%- endif %}\n {{- \"# Tools\\n\\nYou may call one or more functions to assist with the user query.\\n\\nYou are provided with function signatures within <tools></tools> XML tags:\\n<tools>\" }}\n {%- for tool in tools %}\n {{- \"\\n\" }}\n {{- tool | tojson }}\n {%- endfor %}\n {{- \"\\n</tools>\\n\\nFor each function call, return a json object with function name and arguments within <tool_call></tool_call> XML tags:\\n<tool_call>\\n{\\\"name\\\": <function-name>, \\\"arguments\\\": <args-json-object>}\\n</tool_call><|im_end|>\\n\" }}\n{%- else %}\n {%- if messages[0].role == 'system' %}\n {{- '<|im_start|>system\\n' }}\n {%- if messages[0].content is string %}\n {{- messages[0].content }}\n {%- else %}\n {%- for content in messages[0].content %}\n {%- if 'text' in content %}\n {{- content.text }}\n {%- endif %}\n {%- endfor %}\n {%- endif %}\n {{- '<|im_end|>\\n' }}\n {%- endif %}\n{%- endif %}\n{%- set image_count = namespace(value=0) %}\n{%- set video_count = namespace(value=0) %}\n{%- for message in messages %}\n {%- if message.role == \"user\" %}\n {{- '<|im_start|>' + message.role + '\\n' }}\n {%- if message.content is string %}\n {{- message.content }}\n {%- else %}\n {%- for content in message.content %}\n {%- if content.type == 'image' or 'image' in content or 'image_url' in content %}\n {%- set image_count.value = image_count.value + 1 %}\n {%- if add_vision_id %}Picture {{ image_count.value }}: {% endif -%}\n <|vision_start|><|image_pad|><|vision_end|>\n {%- elif content.type == 'video' or 'video' in content %}\n {%- set video_count.value = video_count.value + 1 %}\n {%- if add_vision_id %}Video {{ video_count.value }}: {% endif -%}\n <|vision_start|><|video_pad|><|vision_end|>\n {%- elif 'text' in content %}\n {{- content.text }}\n {%- endif %}\n {%- endfor %}\n {%- endif %}\n {{- '<|im_end|>\\n' }}\n {%- elif message.role == \"assistant\" %}\n {{- '<|im_start|>' + message.role + '\\n' }}\n {%- if message.content is string %}\n {{- message.content }}\n {%- else %}\n {%- for content_item in message.content %}\n {%- if 'text' in content_item %}\n {{- content_item.text }}\n {%- endif %}\n {%- endfor %}\n {%- endif %}\n {%- if message.tool_calls %}\n {%- for tool_call in message.tool_calls %}\n {%- if (loop.first and message.content) or (not loop.first) %}\n {{- '\\n' }}\n {%- endif %}\n {%- if tool_call.function %}\n {%- set tool_call = tool_call.function %}\n {%- endif %}\n {{- '<tool_call>\\n{\"name\": \"' }}\n {{- tool_call.name }}\n {{- '\", \"arguments\": ' }}\n {%- if tool_call.arguments is string %}\n {{- tool_call.arguments }}\n {%- else %}\n {{- tool_call.arguments | tojson }}\n {%- endif %}\n {{- '}\\n</tool_call>' }}\n {%- endfor %}\n {%- endif %}\n {{- '<|im_end|>\\n' }}\n {%- elif message.role == \"tool\" %}\n {%- if loop.first or (messages[loop.index0 - 1].role != \"tool\") %}\n {{- '<|im_start|>user' }}\n {%- endif %}\n {{- '\\n<tool_response>\\n' }}\n {%- if message.content is string %}\n {{- message.content }}\n {%- else %}\n {%- for content in message.content %}\n {%- if content.type == 'image' or 'image' in content or 'image_url' in content %}\n {%- set image_count.value = image_count.value + 1 %}\n {%- if add_vision_id %}Picture {{ image_count.value }}: {% endif -%}\n <|vision_start|><|image_pad|><|vision_end|>\n {%- elif content.type == 'video' or 'video' in content %}\n {%- set video_count.value = video_count.value + 1 %}\n {%- if add_vision_id %}Video {{ video_count.value }}: {% endif -%}\n <|vision_start|><|video_pad|><|vision_end|>\n {%- elif 'text' in content %}\n {{- content.text }}\n {%- endif %}\n {%- endfor %}\n {%- endif %}\n {{- '\\n</tool_response>' }}\n {%- if loop.last or (messages[loop.index0 + 1].role != \"tool\") %}\n {{- '<|im_end|>\\n' }}\n {%- endif %}\n {%- endif %}\n{%- endfor %}\n{%- if add_generation_prompt %}\n {{- '<|im_start|>assistant\\n' }}\n{%- endif %}\n"
3
+ }
checkpoint.json ADDED
@@ -0,0 +1,17 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "checkpoint_cache_dir": null,
3
+ "checkpoint_hf": null,
4
+ "checkpoint_path": "/lustre/fsw/portfolios/cosmos/projects/cosmos_base_training/users/zhao/tmp/i4_checkpoint",
5
+ "checkpoint_type": "dcp",
6
+ "config_file": "/lustre/fsw/portfolios/cosmos/projects/cosmos_base_training/users/zhao/imaginaire4/cosmos3/configs/model/Cosmos3-Super-Image2Video.yaml",
7
+ "config_file_type": "yaml",
8
+ "credential_path": "credentials/gcp_checkpoint.secret",
9
+ "experiment": "",
10
+ "experiment_overrides": [
11
+ "model.config.diffusion_expert_config.load_weights_from_pretrained=False",
12
+ "model.config.vlm_config.pretrained_weights.enabled=False",
13
+ "checkpoint.load_from_object_store.enabled=False"
14
+ ],
15
+ "model_memory_bytes": null,
16
+ "use_ema_weights": true
17
+ }
config.json ADDED
@@ -0,0 +1,244 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "allow_patterns_overrides": [
3
+ "*/*.safetensors"
4
+ ],
5
+ "architectures": [
6
+ "Cosmos3ForConditionalGeneration"
7
+ ],
8
+ "image_token_id": 151655,
9
+ "model": {
10
+ "_recursive_": false,
11
+ "_target_": "projects.cosmos3.vfm.models.omni_mot_model.OmniMoTModel",
12
+ "config": {
13
+ "_type": "projects.cosmos3.vfm.configs.base.defaults.model_config.OmniMoTModelConfig",
14
+ "action_gen": false,
15
+ "activation_checkpointing": {
16
+ "_type": "projects.cosmos3.vfm.configs.base.defaults.activation_checkpointing.ActivationCheckpointingConfig",
17
+ "determinism_check": "default",
18
+ "mode": "full",
19
+ "preserve_rng_state": true,
20
+ "save_ops_regex": [
21
+ "fmha"
22
+ ]
23
+ },
24
+ "causal_training_strategy": "none",
25
+ "compile": {
26
+ "_type": "projects.cosmos3.vfm.configs.base.defaults.compile.CompileConfig",
27
+ "compile_dynamic": true,
28
+ "compiled_region": "language",
29
+ "coordinate_descent_tuning": false,
30
+ "enabled": true,
31
+ "max_autotune_pointwise": false,
32
+ "use_cuda_graphs": false
33
+ },
34
+ "diffusion_expert_config": {
35
+ "_type": "projects.cosmos3.vfm.configs.base.defaults.model_config.DiffusionExpertConfig",
36
+ "base_fps": 16,
37
+ "enable_fps_modulation": true,
38
+ "load_weights_from_pretrained": true,
39
+ "max_vae_latent_side_after_patchify": 20,
40
+ "patch_spatial": 2,
41
+ "position_embedding_type": "unified_3d_mrope",
42
+ "rope_h_extrapolation_ratio": 1.0,
43
+ "rope_t_extrapolation_ratio": 1.0,
44
+ "rope_w_extrapolation_ratio": 1.0,
45
+ "timestep_range": 1.0,
46
+ "unified_3d_mrope_reset_spatial_ids": true,
47
+ "unified_3d_mrope_temporal_modality_margin": 15000
48
+ },
49
+ "ema": {
50
+ "_type": "projects.cosmos3.vfm.configs.base.defaults.ema.EMAConfig",
51
+ "enabled": false,
52
+ "iteration_shift": 0,
53
+ "rate": 0.1
54
+ },
55
+ "fixed_step_sampler_config": null,
56
+ "input_caption_key": "ai_caption",
57
+ "input_image_key": "images",
58
+ "input_video_key": "video",
59
+ "joint_attn_implementation": "two_way",
60
+ "latent_downsample_factor": 16,
61
+ "lbl": {
62
+ "_type": "projects.cosmos3.vfm.configs.base.defaults.model_config.LBLConfig",
63
+ "coeff_gen": null,
64
+ "coeff_und": null,
65
+ "method": "local"
66
+ },
67
+ "log_enc_time_every_n": 100,
68
+ "lora_alpha": 32,
69
+ "lora_enabled": false,
70
+ "lora_rank": 16,
71
+ "lora_target_modules": "q_proj_moe_gen,k_proj_moe_gen,v_proj_moe_gen,o_proj_moe_gen",
72
+ "max_action_dim": 32,
73
+ "max_num_tokens_after_packing": 45056,
74
+ "natten_parameter_list": null,
75
+ "net": null,
76
+ "num_embodiment_domains": 32,
77
+ "parallelism": {
78
+ "_type": "projects.cosmos3.vfm.configs.base.defaults.parallelism.ParallelismConfig",
79
+ "cfg_parallel_shard_degree": 1,
80
+ "context_parallel_shard_degree": 1,
81
+ "data_parallel_replicate_degree": 1,
82
+ "data_parallel_shard_degree": 16,
83
+ "enable_inference_mode": false,
84
+ "fsdp_master_dtype": "float32"
85
+ },
86
+ "precision": "bfloat16",
87
+ "rectified_flow_inference_config": {
88
+ "_type": "projects.cosmos3.vfm.configs.base.defaults.model_config.RectifiedFlowInferenceConfig",
89
+ "num_train_timesteps": 1000,
90
+ "scheduler_type": "unipc",
91
+ "shift": 1,
92
+ "use_dynamic_shifting": false
93
+ },
94
+ "rectified_flow_training_config": {
95
+ "_type": "projects.cosmos3.vfm.configs.base.defaults.model_config.RectifiedFlowTrainingConfig",
96
+ "action_loss_weight": 10.0,
97
+ "high_sigma_ratio": 0.05,
98
+ "high_sigma_timesteps_max": 1000,
99
+ "high_sigma_timesteps_min": 995,
100
+ "image_loss_scale": null,
101
+ "independent_action_schedule": false,
102
+ "independent_sound_schedule": false,
103
+ "loss_scale": 1.0,
104
+ "normalize_loss_by_active": false,
105
+ "shift": {
106
+ "256": 1,
107
+ "480": 3,
108
+ "704": 5,
109
+ "720": 5
110
+ },
111
+ "shift_action": null,
112
+ "shift_sound": null,
113
+ "sound_loss_scale": null,
114
+ "train_time_action_distribution": "logitnormal",
115
+ "train_time_image_distribution": "logitnormal",
116
+ "train_time_sound_distribution": "logitnormal",
117
+ "train_time_video_distribution": "ltx2",
118
+ "train_time_weight": "uniform",
119
+ "use_discrete_rf": false,
120
+ "use_dynamic_shift": false,
121
+ "use_high_sigma_strategy": false,
122
+ "use_high_sigma_strategy_action": false,
123
+ "use_high_sigma_strategy_sound": false
124
+ },
125
+ "resolution": "480",
126
+ "sound_dim": null,
127
+ "sound_gen": false,
128
+ "sound_latent_fps": 25,
129
+ "sound_tokenizer": null,
130
+ "state_ch": 48,
131
+ "state_t": 300,
132
+ "tokenizer": {
133
+ "_target_": "projects.cosmos3.vfm.tokenizers.wan2pt2_vae_4x16x16.Wan2pt2VAEInterface",
134
+ "bucket_name": "bucket",
135
+ "causal": true,
136
+ "chunk_duration": 93,
137
+ "encode_bucket_multiple": null,
138
+ "encode_chunk_frames": {
139
+ "256": 68,
140
+ "480": 24,
141
+ "720": 12
142
+ },
143
+ "encode_exact_durations": null,
144
+ "keep_decoder_cache": false,
145
+ "object_store_credential_path_pretrained": "credentials/gcp_training.secret",
146
+ "spatial_compression_factor": 16,
147
+ "temporal_compression_factor": 4,
148
+ "temporal_window": null,
149
+ "use_streaming_encode": false,
150
+ "vae_path": "pretrained/tokenizers/video/wan2pt2/Wan2.2_VAE.pth"
151
+ },
152
+ "video_temporal_causal": false,
153
+ "vision_gen": true,
154
+ "vlm_config": {
155
+ "_type": "projects.cosmos3.vfm.configs.base.defaults.vlm.VLMConfig",
156
+ "layer_module": null,
157
+ "model_instance": {
158
+ "_target_": "projects.cosmos3.vfm.models.mot.unified_mot.Qwen3VLTextForCausalLM",
159
+ "config": {
160
+ "_target_": "projects.cosmos3.vfm.configs.base.defaults.vlm.create_vlm_config",
161
+ "base_config": {
162
+ "_target_": "projects.cosmos3.vfm.models.mot.unified_mot.Qwen3VLMoTConfig.from_json_file",
163
+ "json_file": "projects/cosmos3/vfm/models/vlm/qwen3_vl/configs/Qwen3-VL-32B-Instruct.json"
164
+ },
165
+ "qk_norm_for_text": true
166
+ }
167
+ },
168
+ "model_name": "nvidia/Cosmos3-Super-Reasoner",
169
+ "pretrained_weights": {
170
+ "_type": "projects.cosmos3.vfm.configs.base.defaults.vlm.PretrainedWeightsConfig",
171
+ "backbone_path": "s3://bucket/cosmos3/pretrained/huggingface/Cosmos-Reason/Cosmos3-Super-Reasoner-b6df0d1/",
172
+ "checkpoint_format": null,
173
+ "credentials_path": "credentials/gcp_checkpoint.secret",
174
+ "enable_gcs_patch_in_boto3": true,
175
+ "enabled": true
176
+ },
177
+ "qk_norm": false,
178
+ "tie_word_embeddings": false,
179
+ "tokenizer": {
180
+ "_target_": "projects.cosmos3.vfm.configs.base.defaults.vlm.create_qwen2_tokenizer_with_download",
181
+ "config_variant": "gcp",
182
+ "pretrained_model_name": "Qwen/Qwen3-VL-32B-Instruct"
183
+ },
184
+ "use_system_prompt": false
185
+ }
186
+ }
187
+ },
188
+ "model_type": "cosmos3_omni",
189
+ "text_config": {
190
+ "attention_bias": false,
191
+ "attention_dropout": 0.0,
192
+ "bos_token_id": 151643,
193
+ "dtype": "bfloat16",
194
+ "eos_token_id": 151645,
195
+ "head_dim": 128,
196
+ "hidden_act": "silu",
197
+ "hidden_size": 5120,
198
+ "initializer_range": 0.02,
199
+ "intermediate_size": 25600,
200
+ "max_position_embeddings": 262144,
201
+ "model_type": "qwen3_vl_text",
202
+ "num_attention_heads": 64,
203
+ "num_hidden_layers": 64,
204
+ "num_key_value_heads": 8,
205
+ "rms_norm_eps": 1e-06,
206
+ "rope_scaling": {
207
+ "mrope_interleaved": true,
208
+ "mrope_section": [
209
+ 24,
210
+ 20,
211
+ 20
212
+ ],
213
+ "rope_type": "default"
214
+ },
215
+ "rope_theta": 5000000,
216
+ "use_cache": true,
217
+ "vocab_size": 151936
218
+ },
219
+ "tie_word_embeddings": false,
220
+ "transformers_version": "4.57.0.dev0",
221
+ "video_token_id": 151656,
222
+ "vision_config": {
223
+ "deepstack_visual_indexes": [
224
+ 8,
225
+ 16,
226
+ 24
227
+ ],
228
+ "depth": 27,
229
+ "hidden_act": "gelu_pytorch_tanh",
230
+ "hidden_size": 1152,
231
+ "in_channels": 3,
232
+ "initializer_range": 0.02,
233
+ "intermediate_size": 4304,
234
+ "model_type": "qwen3_vl",
235
+ "num_heads": 16,
236
+ "num_position_embeddings": 2304,
237
+ "out_hidden_size": 5120,
238
+ "patch_size": 16,
239
+ "spatial_merge_size": 2,
240
+ "temporal_patch_size": 2
241
+ },
242
+ "vision_end_token_id": 151653,
243
+ "vision_start_token_id": 151652
244
+ }
generation_config.json ADDED
@@ -0,0 +1,14 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "bos_token_id": 151643,
3
+ "pad_token_id": 151643,
4
+ "do_sample": true,
5
+ "eos_token_id": [
6
+ 151645,
7
+ 151643
8
+ ],
9
+ "top_p": 0.8,
10
+ "top_k": 20,
11
+ "temperature": 0.7,
12
+ "repetition_penalty": 1.0,
13
+ "transformers_version": "4.56.0"
14
+ }
merges.txt ADDED
The diff for this file is too large to render. See raw diff
 
model.safetensors.index.json ADDED
The diff for this file is too large to render. See raw diff
 
model_index.json ADDED
@@ -0,0 +1,24 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "_class_name": "Cosmos3OmniDiffusersPipeline",
3
+ "_diffusers_version": "0.38.0",
4
+ "scheduler": [
5
+ "diffusers",
6
+ "UniPCMultistepScheduler"
7
+ ],
8
+ "text_tokenizer": [
9
+ "transformers",
10
+ "Qwen2TokenizerFast"
11
+ ],
12
+ "transformer": [
13
+ "diffusers",
14
+ "Cosmos3OmniTransformer"
15
+ ],
16
+ "vae": [
17
+ "diffusers",
18
+ "AutoencoderKLWan"
19
+ ],
20
+ "vision_encoder": [
21
+ "transformers",
22
+ "Qwen3VLVisionModel"
23
+ ]
24
+ }
preprocessor_config.json ADDED
@@ -0,0 +1,21 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "size": {
3
+ "longest_edge": 16777216,
4
+ "shortest_edge": 65536
5
+ },
6
+ "patch_size": 16,
7
+ "temporal_patch_size": 2,
8
+ "merge_size": 2,
9
+ "image_mean": [
10
+ 0.5,
11
+ 0.5,
12
+ 0.5
13
+ ],
14
+ "image_std": [
15
+ 0.5,
16
+ 0.5,
17
+ 0.5
18
+ ],
19
+ "processor_class": "Qwen3VLProcessor",
20
+ "image_processor_type": "Qwen2VLImageProcessorFast"
21
+ }
scheduler/scheduler_config.json ADDED
@@ -0,0 +1,33 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "_class_name": "UniPCMultistepScheduler",
3
+ "_diffusers_version": "0.38.0",
4
+ "beta_end": 0.02,
5
+ "beta_schedule": "linear",
6
+ "beta_start": 0.0001,
7
+ "disable_corrector": [],
8
+ "dynamic_thresholding_ratio": 0.995,
9
+ "final_sigmas_type": "zero",
10
+ "flow_shift": 1.0,
11
+ "lower_order_final": true,
12
+ "num_train_timesteps": 1000,
13
+ "predict_x0": true,
14
+ "prediction_type": "flow_prediction",
15
+ "rescale_betas_zero_snr": false,
16
+ "sample_max_value": 1.0,
17
+ "shift_terminal": null,
18
+ "sigma_max": 200.0,
19
+ "sigma_min": 0.147,
20
+ "solver_order": 2,
21
+ "solver_p": null,
22
+ "solver_type": "bh2",
23
+ "steps_offset": 0,
24
+ "thresholding": false,
25
+ "time_shift_type": "exponential",
26
+ "timestep_spacing": "linspace",
27
+ "trained_betas": null,
28
+ "use_beta_sigmas": false,
29
+ "use_dynamic_shifting": false,
30
+ "use_exponential_sigmas": false,
31
+ "use_flow_sigmas": true,
32
+ "use_karras_sigmas": true
33
+ }
scripts/gen_video.py ADDED
@@ -0,0 +1,64 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ """Minimal image-to-video generation against a vLLM-Omni endpoint (sync mode).
2
+
3
+ Run from the Cosmos3-Super-Image2Video repo root:
4
+
5
+ python scripts/gen_video.py \
6
+ --endpoint <endpoint-url> \
7
+ --prompt-file assets/example_prompt.json \
8
+ --image-path assets/example_first_frame.png \
9
+ --output-path scripts/output.mp4
10
+ """
11
+
12
+ import argparse
13
+ import json
14
+ from pathlib import Path
15
+
16
+ import requests
17
+
18
+ # Fixed generation settings: 16:9 480p, 189 frames @ 24 fps.
19
+ ASPECT_RATIO = "16,9"
20
+ WIDTH = 832
21
+ HEIGHT = 480
22
+ NUM_FRAMES = 189
23
+ FPS = 24
24
+
25
+
26
+ def main() -> None:
27
+ parser = argparse.ArgumentParser(description="Generate one I2V sample (sync mode).")
28
+ parser.add_argument("--endpoint", required=True, help="vLLM-Omni endpoint base URL.")
29
+ parser.add_argument("--prompt-file", type=Path, default=Path("assets/example_prompt.json"))
30
+ parser.add_argument("--image-path", type=Path, default=Path("assets/example_first_frame.png"))
31
+ parser.add_argument("--output-path", type=Path, default=Path("scripts/output.mp4"))
32
+ args = parser.parse_args()
33
+
34
+ spec = json.loads(args.prompt_file.read_text(encoding="utf-8"))
35
+ # Safeguard the metadata and json format
36
+ prompt = json.loads(spec["prompt"])
37
+ prompt["duration"] = f"{int(NUM_FRAMES / FPS)}s"
38
+ prompt["fps"] = float(round(FPS))
39
+ prompt["resolution"] = {"H": HEIGHT, "W": WIDTH}
40
+ prompt["aspect_ratio"] = ASPECT_RATIO
41
+ data = {
42
+ "prompt": json.dumps(prompt, ensure_ascii=False),
43
+ "negative_prompt": spec["negative_prompt"],
44
+ "size": f"{WIDTH}x{HEIGHT}",
45
+ "num_frames": NUM_FRAMES,
46
+ "fps": FPS,
47
+ "num_inference_steps": 50,
48
+ "guidance_scale": 6.0,
49
+ "flow_shift": 5.0,
50
+ "extra_params": json.dumps({"use_resolution_template": False, "use_duration_template": False}),
51
+ }
52
+ files = {"input_reference": ("input.png", args.image_path.read_bytes(), "image/png")}
53
+ headers = {"Accept": "video/mp4", "User-Agent": "curl/8.5.0"}
54
+
55
+ response = requests.post(f"{args.endpoint}/v1/videos/sync", data=data, files=files, headers=headers, timeout=(10, 600))
56
+ response.raise_for_status()
57
+
58
+ args.output_path.parent.mkdir(parents=True, exist_ok=True)
59
+ args.output_path.write_bytes(response.content)
60
+ print(f"Saved video to {args.output_path} ({len(response.content) / (1024 * 1024):.1f} MB)")
61
+
62
+
63
+ if __name__ == "__main__":
64
+ main()
scripts/upsample_prompt.py ADDED
@@ -0,0 +1,168 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ """Minimal image-to-video prompt upsampler.
2
+
3
+ Run from the Cosmos3-Super-Image2Video repo root:
4
+
5
+ export PROMPT_UPSAMPLER_API_KEY="..."
6
+ python scripts/upsample_prompt.py \
7
+ --model-name <model> \
8
+ --base-url <VLM-endpoint-url> \
9
+ --image-path assets/example_first_frame.png \
10
+ --user-prompt "The dog flies into the outer space" \
11
+ --output-path scripts/upsampled.json
12
+ """
13
+
14
+ import argparse
15
+ import base64
16
+ import json
17
+ import mimetypes
18
+ import os
19
+ import re
20
+ from pathlib import Path
21
+
22
+ import requests
23
+
24
+ # Fixed generation settings: 16:9 480p, 189 frames @ 24 fps.
25
+ ASPECT_RATIO = "16,9"
26
+ WIDTH = 832
27
+ HEIGHT = 480
28
+ NUM_FRAMES = 189
29
+ FPS = 24
30
+
31
+ MAX_TOKENS = 8192
32
+
33
+ PROMPT_TEMPLATE = """You are an expert prompt engineer for an image-to-video generative model. You are given a STARTING FRAME image (the first frame of the video) and a USER INSTRUCTION describing the desired motion or changes to animate. Your task is to produce a dense, cinematic video description that the model will use to generate the full video, together with a customized negative prompt.
34
+
35
+ Complete this task in two phases.
36
+
37
+ ---
38
+ ### PHASE 1: VIDEO DESCRIPTION
39
+ Write a dense, narrative temporal_caption inside `<final_prompt>` XML tags, formatted as a JSON object using this exact template:
40
+
41
+ {
42
+ "temporal_caption": "...",
43
+ "duration": "placeholder",
44
+ "fps": "placeholder",
45
+ "resolution": {
46
+ "H": "placeholder",
47
+ "W": "placeholder"
48
+ },
49
+ "aspect_ratio": "placeholder"
50
+ }
51
+
52
+ Rules for the temporal_caption:
53
+ - The provided image is the exact starting frame - all described motion must be consistent with the starting frame.
54
+ - Opening: Establish the scene — subjects, environment, lighting — describing what is directly visible in the starting frame accurately and faithfully, noting essential elements that the motion will directly involve, the subject's orientation (e.g., "facing away", "in three-quarter profile"), and any implied ongoing motion (e.g., a cyclist leaning into a curve, water already splashing) so the video continues smoothly. Phrase it naturally as a scene description (do not say "in the starting frame", "initially shown", or similar meta-references).
55
+ - Motion: Describe the changes and actions in chronological order. Flow naturally from one action to the next. Advance time using natural conjunctions (e.g., "while," "as," "and").
56
+ - Physical Accuracy: All motion must obey gravity and reflect realistic material behavior (e.g., cloth ripples, water splashes, rigid objects resist deformation).
57
+ - Cause-and-effect: Always describe causes before their effects. Reflections, shadows, and secondary effects cannot appear on their own — the source object must first enter the frame or move into the relevant position before any reflection or shadow is described. E.g., a person must walk to the water's edge before their reflection appears on the surface; an object must strike the water before a splash erupts.
58
+ - Object Permanence: Every subject must persist throughout or have a clear reason for entering or exiting. When a new subject not present in the starting frame is introduced (e.g., an opposing team, an arriving vehicle), briefly describe their appearance (e.g., uniform color, vehicle type and color) so the generator can render them consistently, and describe a logical way for them to come into the frame (e.g., entering from a specific side of the frame, walking in through a door, or emerging from behind an existing object) rather than having them appear out of nowhere.
59
+ - Taboo Phrases: NEVER refer to the video medium itself. Avoid "the video shows...", "the scene...", "the clip...", "the frame...", "the camera shows...", "we see...".
60
+ - Perspective: Describe human body sides from the subject's own perspective (e.g., "her right hand" = the subject's right hand) to avoid ambiguity. This applies whenever a body part enters or moves in the frame: always specify whether it is the left or right (e.g., "his right hand reaches in from the lower edge"), never a bare "a hand enters the frame".
61
+ - Pronouns: Use singular pronouns ("he", "she", "him", "her", "it") or a singular noun phrase ("the person", "the rider", "the child") for single subjects. Never use "they"/"them"/"their" to refer to one person, as this can cause the model to render multiple subjects.
62
+ - Spatial Phrasing: Use spatial relationships for motion (e.g., "enters from the left", "rises above the horizon") rather than camera-centric descriptions.
63
+ - Camera: Include camera motion only if specified in the instruction; otherwise describe from a static viewpoint. Keep any described camera movement subtle and gradual — do not exaggerate altitude loss, tilt angle, or speed beyond what is minimally implied by the instruction. Do not use the word "transition" when describing camera motion.
64
+ - Cinematography Terms: When the instruction references a lens, camera, or filming technique (e.g., "probe lens", "macro lens", "fisheye", "drone shot", "GoPro"), treat it as a cinematographic style describing how the footage is captured — never as a physical object visible in the scene. Mention the style (e.g., for a probe lens: extreme close shot; for a fisheye lens: extreme wide angle fisheye view) rather than mentioning the lens or camera apparatus itself.
65
+ - Timelapse: If the instruction implies timelapse, explicitly use the word "timelapse" in the caption and avoid exaggerating its effects.
66
+ - Cuts & Montages: Always describe a single continuous shot with no hard cuts unless the user instruction explicitly used words like "cut", "hard cut", "jump cut", "shot change", or "montage". When multiple shots are requested without specifying an exact number, describe at most 3 shots, and dedicate the majority of the description to the opening action before any cut. Never use phrases like "the first shot", "the opening shot", or number shots as "first", "second", etc. — simply describe the action directly.
67
+ - Tone: Neutral, objective, descriptive. No opinions, value judgments, or inferred emotions unless physically observable.
68
+ - Length & Format: Write exactly ONE coherent paragraph of 5-8 sentences. No bullet points or lists.
69
+
70
+ USER INSTRUCTION:
71
+ "{nl_description}"
72
+
73
+ ---
74
+ ### PHASE 2: NEGATIVE PROMPT
75
+ Using your final video description from Phase 1, create a customized negative prompt.
76
+
77
+ HOW IT WORKS:
78
+ A negative prompt describes exactly what a bad video looks like. Use declarative statements (e.g., "blurry faces"). Never use negative instructions like "avoid" or "do not".
79
+
80
+ ---
81
+ DEFAULT NEGATIVE PROMPT:
82
+ The video captures a series of frames showing macroblocking artifacts, chromatic aberration, high-frequency noise, and rolling shutter distortion. It includes static with no motion, motion blur, over-saturation, shaky footage, low resolution, grainy texture, pixelated images, poorly lit areas, underexposed and overexposed scenes, poor color balance, washed out colors, choppy sequences, jerky movements, low frame rate, bit-depth compression artifacts, color banding, unnatural transitions, outdated special effects, fake elements, unconvincing visuals, poorly edited content, jump cuts, hard cut, visual noise, and flickering. It features moiré patterns, edge halos, and temporal aliasing. Furthermore, the content defies common sense, generating illogical scenarios, nonsensical entities, absurd character behaviors, and conceptual paradoxes that violate basic human reasoning and everyday reality. The video looks like a surreal or glitchy hallucination. Overall, the video is of poor quality.
83
+ ---
84
+
85
+ INSTRUCTIONS:
86
+ Delete any words from the default negative prompt that contradict your intended video. Keep most of the original wording and structure intact, and do not add new items. Examples:
87
+ * If you want scene cuts/montages -> REMOVE "jump cuts" and "hard cut".
88
+ * If you want a motionless/static scene -> REMOVE "static with no motion".
89
+ * If you want fantasy, sci-fi, or surrealism -> REMOVE "defies common sense", "illogical scenarios", "nonsensical entities", "surreal", and related logic-violation terms.
90
+ * If the scene has flickering light -> REMOVE "flickering".
91
+ * If it is a night-time timelapse -> REMOVE "motion blur".
92
+
93
+ Output only the final negative prompt as a single paragraph, wrapped in <negative_prompt> tags. Do not output any explanation or preamble."""
94
+
95
+
96
+ def image_to_data_url(path: Path) -> str:
97
+ """Encode a local image as a base64 data URL."""
98
+ mime = mimetypes.guess_type(path.name)[0] or "image/png"
99
+ encoded = base64.b64encode(path.read_bytes()).decode("ascii")
100
+ return f"data:{mime};base64,{encoded}"
101
+
102
+
103
+ def extract_tag(text: str, tag: str) -> str | None:
104
+ """Return the stripped inner text of the first <tag>...</tag> block, if present."""
105
+ match = re.search(rf"<{tag}>(.*?)</{tag}>", text, flags=re.DOTALL)
106
+ return match.group(1).strip() if match else None
107
+
108
+
109
+ def parse_args() -> argparse.Namespace:
110
+ parser = argparse.ArgumentParser(description="Upsample an image-to-video prompt with a VLM.")
111
+ parser.add_argument("--image-path", type=Path, default=Path("assets/example_first_frame.png"))
112
+ parser.add_argument("--user-prompt", default="The dog flies into the outer space")
113
+ parser.add_argument("--output-path", type=Path, default=Path("scripts/upsampled.json"))
114
+ parser.add_argument("--model-name", required=True)
115
+ parser.add_argument("--base-url", required=True, metavar="<VLM-endpoint-url>")
116
+ return parser.parse_args()
117
+
118
+
119
+ def invoke_vlm(image_path: Path, user_prompt: str, model_name: str, base_url: str) -> str:
120
+ """Call an OpenAI-compatible chat completions endpoint and return the assistant text."""
121
+ payload = {
122
+ "model": model_name,
123
+ "max_tokens": MAX_TOKENS,
124
+ "messages": [
125
+ {
126
+ "role": "user",
127
+ "content": [
128
+ {"type": "image_url", "image_url": {"url": image_to_data_url(image_path)}},
129
+ {"type": "text", "text": PROMPT_TEMPLATE.replace("{nl_description}", user_prompt.strip())},
130
+ ],
131
+ }
132
+ ],
133
+ }
134
+ headers = {"Authorization": f"Bearer {os.environ['PROMPT_UPSAMPLER_API_KEY']}"}
135
+ response = requests.post(f"{base_url.rstrip('/')}/chat/completions", json=payload, headers=headers)
136
+ response.raise_for_status()
137
+ return response.json()["choices"][0]["message"]["content"]
138
+
139
+
140
+ def main() -> None:
141
+ args = parse_args()
142
+ content = invoke_vlm(args.image_path, args.user_prompt, args.model_name, args.base_url)
143
+
144
+ final_prompt = extract_tag(content, "final_prompt")
145
+ if final_prompt is None:
146
+ raise RuntimeError(f"Response missing <final_prompt> block:\n{content}")
147
+
148
+ # Pin the output parameters post-hoc (the template leaves them as placeholders).
149
+ data = json.loads(final_prompt)
150
+ data["duration"] = f"{int(NUM_FRAMES / FPS)}s"
151
+ data["fps"] = float(round(FPS))
152
+ data["resolution"] = {"H": HEIGHT, "W": WIDTH}
153
+ data["aspect_ratio"] = ASPECT_RATIO
154
+
155
+ record: dict = {"prompt": json.dumps(data, ensure_ascii=False)}
156
+ negative = extract_tag(content, "negative_prompt")
157
+ if negative:
158
+ record["negative_prompt"] = negative
159
+
160
+ args.output_path.parent.mkdir(parents=True, exist_ok=True)
161
+ args.output_path.write_text(json.dumps(record, ensure_ascii=False), encoding="utf-8")
162
+ print(f"PROMPT:\n{record['prompt']}")
163
+ print(f"\nNEGATIVE PROMPT:\n{record.get('negative_prompt', '')}")
164
+ print(f"\nWrote {args.output_path}")
165
+
166
+
167
+ if __name__ == "__main__":
168
+ main()
text_tokenizer/added_tokens.json ADDED
@@ -0,0 +1,28 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "</think>": 151668,
3
+ "</tool_call>": 151658,
4
+ "</tool_response>": 151666,
5
+ "<think>": 151667,
6
+ "<tool_call>": 151657,
7
+ "<tool_response>": 151665,
8
+ "<|box_end|>": 151649,
9
+ "<|box_start|>": 151648,
10
+ "<|endoftext|>": 151643,
11
+ "<|file_sep|>": 151664,
12
+ "<|fim_middle|>": 151660,
13
+ "<|fim_pad|>": 151662,
14
+ "<|fim_prefix|>": 151659,
15
+ "<|fim_suffix|>": 151661,
16
+ "<|im_end|>": 151645,
17
+ "<|im_start|>": 151644,
18
+ "<|image_pad|>": 151655,
19
+ "<|object_ref_end|>": 151647,
20
+ "<|object_ref_start|>": 151646,
21
+ "<|quad_end|>": 151651,
22
+ "<|quad_start|>": 151650,
23
+ "<|repo_name|>": 151663,
24
+ "<|video_pad|>": 151656,
25
+ "<|vision_end|>": 151653,
26
+ "<|vision_pad|>": 151654,
27
+ "<|vision_start|>": 151652
28
+ }
text_tokenizer/chat_template.jinja ADDED
@@ -0,0 +1,120 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {%- if tools %}
2
+ {{- '<|im_start|>system\n' }}
3
+ {%- if messages[0].role == 'system' %}
4
+ {%- if messages[0].content is string %}
5
+ {{- messages[0].content }}
6
+ {%- else %}
7
+ {%- for content in messages[0].content %}
8
+ {%- if 'text' in content %}
9
+ {{- content.text }}
10
+ {%- endif %}
11
+ {%- endfor %}
12
+ {%- endif %}
13
+ {{- '\n\n' }}
14
+ {%- endif %}
15
+ {{- "# Tools\n\nYou may call one or more functions to assist with the user query.\n\nYou are provided with function signatures within <tools></tools> XML tags:\n<tools>" }}
16
+ {%- for tool in tools %}
17
+ {{- "\n" }}
18
+ {{- tool | tojson }}
19
+ {%- endfor %}
20
+ {{- "\n</tools>\n\nFor each function call, return a json object with function name and arguments within <tool_call></tool_call> XML tags:\n<tool_call>\n{\"name\": <function-name>, \"arguments\": <args-json-object>}\n</tool_call><|im_end|>\n" }}
21
+ {%- else %}
22
+ {%- if messages[0].role == 'system' %}
23
+ {{- '<|im_start|>system\n' }}
24
+ {%- if messages[0].content is string %}
25
+ {{- messages[0].content }}
26
+ {%- else %}
27
+ {%- for content in messages[0].content %}
28
+ {%- if 'text' in content %}
29
+ {{- content.text }}
30
+ {%- endif %}
31
+ {%- endfor %}
32
+ {%- endif %}
33
+ {{- '<|im_end|>\n' }}
34
+ {%- endif %}
35
+ {%- endif %}
36
+ {%- set image_count = namespace(value=0) %}
37
+ {%- set video_count = namespace(value=0) %}
38
+ {%- for message in messages %}
39
+ {%- if message.role == "user" %}
40
+ {{- '<|im_start|>' + message.role + '\n' }}
41
+ {%- if message.content is string %}
42
+ {{- message.content }}
43
+ {%- else %}
44
+ {%- for content in message.content %}
45
+ {%- if content.type == 'image' or 'image' in content or 'image_url' in content %}
46
+ {%- set image_count.value = image_count.value + 1 %}
47
+ {%- if add_vision_id %}Picture {{ image_count.value }}: {% endif -%}
48
+ <|vision_start|><|image_pad|><|vision_end|>
49
+ {%- elif content.type == 'video' or 'video' in content %}
50
+ {%- set video_count.value = video_count.value + 1 %}
51
+ {%- if add_vision_id %}Video {{ video_count.value }}: {% endif -%}
52
+ <|vision_start|><|video_pad|><|vision_end|>
53
+ {%- elif 'text' in content %}
54
+ {{- content.text }}
55
+ {%- endif %}
56
+ {%- endfor %}
57
+ {%- endif %}
58
+ {{- '<|im_end|>\n' }}
59
+ {%- elif message.role == "assistant" %}
60
+ {{- '<|im_start|>' + message.role + '\n' }}
61
+ {%- if message.content is string %}
62
+ {{- message.content }}
63
+ {%- else %}
64
+ {%- for content_item in message.content %}
65
+ {%- if 'text' in content_item %}
66
+ {{- content_item.text }}
67
+ {%- endif %}
68
+ {%- endfor %}
69
+ {%- endif %}
70
+ {%- if message.tool_calls %}
71
+ {%- for tool_call in message.tool_calls %}
72
+ {%- if (loop.first and message.content) or (not loop.first) %}
73
+ {{- '\n' }}
74
+ {%- endif %}
75
+ {%- if tool_call.function %}
76
+ {%- set tool_call = tool_call.function %}
77
+ {%- endif %}
78
+ {{- '<tool_call>\n{"name": "' }}
79
+ {{- tool_call.name }}
80
+ {{- '", "arguments": ' }}
81
+ {%- if tool_call.arguments is string %}
82
+ {{- tool_call.arguments }}
83
+ {%- else %}
84
+ {{- tool_call.arguments | tojson }}
85
+ {%- endif %}
86
+ {{- '}\n</tool_call>' }}
87
+ {%- endfor %}
88
+ {%- endif %}
89
+ {{- '<|im_end|>\n' }}
90
+ {%- elif message.role == "tool" %}
91
+ {%- if loop.first or (messages[loop.index0 - 1].role != "tool") %}
92
+ {{- '<|im_start|>user' }}
93
+ {%- endif %}
94
+ {{- '\n<tool_response>\n' }}
95
+ {%- if message.content is string %}
96
+ {{- message.content }}
97
+ {%- else %}
98
+ {%- for content in message.content %}
99
+ {%- if content.type == 'image' or 'image' in content or 'image_url' in content %}
100
+ {%- set image_count.value = image_count.value + 1 %}
101
+ {%- if add_vision_id %}Picture {{ image_count.value }}: {% endif -%}
102
+ <|vision_start|><|image_pad|><|vision_end|>
103
+ {%- elif content.type == 'video' or 'video' in content %}
104
+ {%- set video_count.value = video_count.value + 1 %}
105
+ {%- if add_vision_id %}Video {{ video_count.value }}: {% endif -%}
106
+ <|vision_start|><|video_pad|><|vision_end|>
107
+ {%- elif 'text' in content %}
108
+ {{- content.text }}
109
+ {%- endif %}
110
+ {%- endfor %}
111
+ {%- endif %}
112
+ {{- '\n</tool_response>' }}
113
+ {%- if loop.last or (messages[loop.index0 + 1].role != "tool") %}
114
+ {{- '<|im_end|>\n' }}
115
+ {%- endif %}
116
+ {%- endif %}
117
+ {%- endfor %}
118
+ {%- if add_generation_prompt %}
119
+ {{- '<|im_start|>assistant\n' }}
120
+ {%- endif %}
text_tokenizer/merges.txt ADDED
The diff for this file is too large to render. See raw diff
 
text_tokenizer/special_tokens_map.json ADDED
@@ -0,0 +1,31 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "additional_special_tokens": [
3
+ "<|im_start|>",
4
+ "<|im_end|>",
5
+ "<|object_ref_start|>",
6
+ "<|object_ref_end|>",
7
+ "<|box_start|>",
8
+ "<|box_end|>",
9
+ "<|quad_start|>",
10
+ "<|quad_end|>",
11
+ "<|vision_start|>",
12
+ "<|vision_end|>",
13
+ "<|vision_pad|>",
14
+ "<|image_pad|>",
15
+ "<|video_pad|>"
16
+ ],
17
+ "eos_token": {
18
+ "content": "<|im_end|>",
19
+ "lstrip": false,
20
+ "normalized": false,
21
+ "rstrip": false,
22
+ "single_word": false
23
+ },
24
+ "pad_token": {
25
+ "content": "<|endoftext|>",
26
+ "lstrip": false,
27
+ "normalized": false,
28
+ "rstrip": false,
29
+ "single_word": false
30
+ }
31
+ }
text_tokenizer/tokenizer.json ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:aeb13307a71acd8fe81861d94ad54ab689df773318809eed3cbe794b4492dae4
3
+ size 11422654
text_tokenizer/tokenizer_config.json ADDED
@@ -0,0 +1,239 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "add_bos_token": false,
3
+ "add_prefix_space": false,
4
+ "added_tokens_decoder": {
5
+ "151643": {
6
+ "content": "<|endoftext|>",
7
+ "lstrip": false,
8
+ "normalized": false,
9
+ "rstrip": false,
10
+ "single_word": false,
11
+ "special": true
12
+ },
13
+ "151644": {
14
+ "content": "<|im_start|>",
15
+ "lstrip": false,
16
+ "normalized": false,
17
+ "rstrip": false,
18
+ "single_word": false,
19
+ "special": true
20
+ },
21
+ "151645": {
22
+ "content": "<|im_end|>",
23
+ "lstrip": false,
24
+ "normalized": false,
25
+ "rstrip": false,
26
+ "single_word": false,
27
+ "special": true
28
+ },
29
+ "151646": {
30
+ "content": "<|object_ref_start|>",
31
+ "lstrip": false,
32
+ "normalized": false,
33
+ "rstrip": false,
34
+ "single_word": false,
35
+ "special": true
36
+ },
37
+ "151647": {
38
+ "content": "<|object_ref_end|>",
39
+ "lstrip": false,
40
+ "normalized": false,
41
+ "rstrip": false,
42
+ "single_word": false,
43
+ "special": true
44
+ },
45
+ "151648": {
46
+ "content": "<|box_start|>",
47
+ "lstrip": false,
48
+ "normalized": false,
49
+ "rstrip": false,
50
+ "single_word": false,
51
+ "special": true
52
+ },
53
+ "151649": {
54
+ "content": "<|box_end|>",
55
+ "lstrip": false,
56
+ "normalized": false,
57
+ "rstrip": false,
58
+ "single_word": false,
59
+ "special": true
60
+ },
61
+ "151650": {
62
+ "content": "<|quad_start|>",
63
+ "lstrip": false,
64
+ "normalized": false,
65
+ "rstrip": false,
66
+ "single_word": false,
67
+ "special": true
68
+ },
69
+ "151651": {
70
+ "content": "<|quad_end|>",
71
+ "lstrip": false,
72
+ "normalized": false,
73
+ "rstrip": false,
74
+ "single_word": false,
75
+ "special": true
76
+ },
77
+ "151652": {
78
+ "content": "<|vision_start|>",
79
+ "lstrip": false,
80
+ "normalized": false,
81
+ "rstrip": false,
82
+ "single_word": false,
83
+ "special": true
84
+ },
85
+ "151653": {
86
+ "content": "<|vision_end|>",
87
+ "lstrip": false,
88
+ "normalized": false,
89
+ "rstrip": false,
90
+ "single_word": false,
91
+ "special": true
92
+ },
93
+ "151654": {
94
+ "content": "<|vision_pad|>",
95
+ "lstrip": false,
96
+ "normalized": false,
97
+ "rstrip": false,
98
+ "single_word": false,
99
+ "special": true
100
+ },
101
+ "151655": {
102
+ "content": "<|image_pad|>",
103
+ "lstrip": false,
104
+ "normalized": false,
105
+ "rstrip": false,
106
+ "single_word": false,
107
+ "special": true
108
+ },
109
+ "151656": {
110
+ "content": "<|video_pad|>",
111
+ "lstrip": false,
112
+ "normalized": false,
113
+ "rstrip": false,
114
+ "single_word": false,
115
+ "special": true
116
+ },
117
+ "151657": {
118
+ "content": "<tool_call>",
119
+ "lstrip": false,
120
+ "normalized": false,
121
+ "rstrip": false,
122
+ "single_word": false,
123
+ "special": false
124
+ },
125
+ "151658": {
126
+ "content": "</tool_call>",
127
+ "lstrip": false,
128
+ "normalized": false,
129
+ "rstrip": false,
130
+ "single_word": false,
131
+ "special": false
132
+ },
133
+ "151659": {
134
+ "content": "<|fim_prefix|>",
135
+ "lstrip": false,
136
+ "normalized": false,
137
+ "rstrip": false,
138
+ "single_word": false,
139
+ "special": false
140
+ },
141
+ "151660": {
142
+ "content": "<|fim_middle|>",
143
+ "lstrip": false,
144
+ "normalized": false,
145
+ "rstrip": false,
146
+ "single_word": false,
147
+ "special": false
148
+ },
149
+ "151661": {
150
+ "content": "<|fim_suffix|>",
151
+ "lstrip": false,
152
+ "normalized": false,
153
+ "rstrip": false,
154
+ "single_word": false,
155
+ "special": false
156
+ },
157
+ "151662": {
158
+ "content": "<|fim_pad|>",
159
+ "lstrip": false,
160
+ "normalized": false,
161
+ "rstrip": false,
162
+ "single_word": false,
163
+ "special": false
164
+ },
165
+ "151663": {
166
+ "content": "<|repo_name|>",
167
+ "lstrip": false,
168
+ "normalized": false,
169
+ "rstrip": false,
170
+ "single_word": false,
171
+ "special": false
172
+ },
173
+ "151664": {
174
+ "content": "<|file_sep|>",
175
+ "lstrip": false,
176
+ "normalized": false,
177
+ "rstrip": false,
178
+ "single_word": false,
179
+ "special": false
180
+ },
181
+ "151665": {
182
+ "content": "<tool_response>",
183
+ "lstrip": false,
184
+ "normalized": false,
185
+ "rstrip": false,
186
+ "single_word": false,
187
+ "special": false
188
+ },
189
+ "151666": {
190
+ "content": "</tool_response>",
191
+ "lstrip": false,
192
+ "normalized": false,
193
+ "rstrip": false,
194
+ "single_word": false,
195
+ "special": false
196
+ },
197
+ "151667": {
198
+ "content": "<think>",
199
+ "lstrip": false,
200
+ "normalized": false,
201
+ "rstrip": false,
202
+ "single_word": false,
203
+ "special": false
204
+ },
205
+ "151668": {
206
+ "content": "</think>",
207
+ "lstrip": false,
208
+ "normalized": false,
209
+ "rstrip": false,
210
+ "single_word": false,
211
+ "special": false
212
+ }
213
+ },
214
+ "additional_special_tokens": [
215
+ "<|im_start|>",
216
+ "<|im_end|>",
217
+ "<|object_ref_start|>",
218
+ "<|object_ref_end|>",
219
+ "<|box_start|>",
220
+ "<|box_end|>",
221
+ "<|quad_start|>",
222
+ "<|quad_end|>",
223
+ "<|vision_start|>",
224
+ "<|vision_end|>",
225
+ "<|vision_pad|>",
226
+ "<|image_pad|>",
227
+ "<|video_pad|>"
228
+ ],
229
+ "bos_token": null,
230
+ "clean_up_tokenization_spaces": false,
231
+ "eos_token": "<|im_end|>",
232
+ "errors": "replace",
233
+ "extra_special_tokens": {},
234
+ "model_max_length": 262144,
235
+ "pad_token": "<|endoftext|>",
236
+ "split_special_tokens": false,
237
+ "tokenizer_class": "Qwen2Tokenizer",
238
+ "unk_token": null
239
+ }
text_tokenizer/vocab.json ADDED
The diff for this file is too large to render. See raw diff
 
tokenizer.json ADDED
The diff for this file is too large to render. See raw diff
 
tokenizer_config.json ADDED
@@ -0,0 +1,239 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "add_bos_token": false,
3
+ "add_prefix_space": false,
4
+ "added_tokens_decoder": {
5
+ "151643": {
6
+ "content": "<|endoftext|>",
7
+ "lstrip": false,
8
+ "normalized": false,
9
+ "rstrip": false,
10
+ "single_word": false,
11
+ "special": true
12
+ },
13
+ "151644": {
14
+ "content": "<|im_start|>",
15
+ "lstrip": false,
16
+ "normalized": false,
17
+ "rstrip": false,
18
+ "single_word": false,
19
+ "special": true
20
+ },
21
+ "151645": {
22
+ "content": "<|im_end|>",
23
+ "lstrip": false,
24
+ "normalized": false,
25
+ "rstrip": false,
26
+ "single_word": false,
27
+ "special": true
28
+ },
29
+ "151646": {
30
+ "content": "<|object_ref_start|>",
31
+ "lstrip": false,
32
+ "normalized": false,
33
+ "rstrip": false,
34
+ "single_word": false,
35
+ "special": true
36
+ },
37
+ "151647": {
38
+ "content": "<|object_ref_end|>",
39
+ "lstrip": false,
40
+ "normalized": false,
41
+ "rstrip": false,
42
+ "single_word": false,
43
+ "special": true
44
+ },
45
+ "151648": {
46
+ "content": "<|box_start|>",
47
+ "lstrip": false,
48
+ "normalized": false,
49
+ "rstrip": false,
50
+ "single_word": false,
51
+ "special": true
52
+ },
53
+ "151649": {
54
+ "content": "<|box_end|>",
55
+ "lstrip": false,
56
+ "normalized": false,
57
+ "rstrip": false,
58
+ "single_word": false,
59
+ "special": true
60
+ },
61
+ "151650": {
62
+ "content": "<|quad_start|>",
63
+ "lstrip": false,
64
+ "normalized": false,
65
+ "rstrip": false,
66
+ "single_word": false,
67
+ "special": true
68
+ },
69
+ "151651": {
70
+ "content": "<|quad_end|>",
71
+ "lstrip": false,
72
+ "normalized": false,
73
+ "rstrip": false,
74
+ "single_word": false,
75
+ "special": true
76
+ },
77
+ "151652": {
78
+ "content": "<|vision_start|>",
79
+ "lstrip": false,
80
+ "normalized": false,
81
+ "rstrip": false,
82
+ "single_word": false,
83
+ "special": true
84
+ },
85
+ "151653": {
86
+ "content": "<|vision_end|>",
87
+ "lstrip": false,
88
+ "normalized": false,
89
+ "rstrip": false,
90
+ "single_word": false,
91
+ "special": true
92
+ },
93
+ "151654": {
94
+ "content": "<|vision_pad|>",
95
+ "lstrip": false,
96
+ "normalized": false,
97
+ "rstrip": false,
98
+ "single_word": false,
99
+ "special": true
100
+ },
101
+ "151655": {
102
+ "content": "<|image_pad|>",
103
+ "lstrip": false,
104
+ "normalized": false,
105
+ "rstrip": false,
106
+ "single_word": false,
107
+ "special": true
108
+ },
109
+ "151656": {
110
+ "content": "<|video_pad|>",
111
+ "lstrip": false,
112
+ "normalized": false,
113
+ "rstrip": false,
114
+ "single_word": false,
115
+ "special": true
116
+ },
117
+ "151657": {
118
+ "content": "<tool_call>",
119
+ "lstrip": false,
120
+ "normalized": false,
121
+ "rstrip": false,
122
+ "single_word": false,
123
+ "special": false
124
+ },
125
+ "151658": {
126
+ "content": "</tool_call>",
127
+ "lstrip": false,
128
+ "normalized": false,
129
+ "rstrip": false,
130
+ "single_word": false,
131
+ "special": false
132
+ },
133
+ "151659": {
134
+ "content": "<|fim_prefix|>",
135
+ "lstrip": false,
136
+ "normalized": false,
137
+ "rstrip": false,
138
+ "single_word": false,
139
+ "special": false
140
+ },
141
+ "151660": {
142
+ "content": "<|fim_middle|>",
143
+ "lstrip": false,
144
+ "normalized": false,
145
+ "rstrip": false,
146
+ "single_word": false,
147
+ "special": false
148
+ },
149
+ "151661": {
150
+ "content": "<|fim_suffix|>",
151
+ "lstrip": false,
152
+ "normalized": false,
153
+ "rstrip": false,
154
+ "single_word": false,
155
+ "special": false
156
+ },
157
+ "151662": {
158
+ "content": "<|fim_pad|>",
159
+ "lstrip": false,
160
+ "normalized": false,
161
+ "rstrip": false,
162
+ "single_word": false,
163
+ "special": false
164
+ },
165
+ "151663": {
166
+ "content": "<|repo_name|>",
167
+ "lstrip": false,
168
+ "normalized": false,
169
+ "rstrip": false,
170
+ "single_word": false,
171
+ "special": false
172
+ },
173
+ "151664": {
174
+ "content": "<|file_sep|>",
175
+ "lstrip": false,
176
+ "normalized": false,
177
+ "rstrip": false,
178
+ "single_word": false,
179
+ "special": false
180
+ },
181
+ "151665": {
182
+ "content": "<tool_response>",
183
+ "lstrip": false,
184
+ "normalized": false,
185
+ "rstrip": false,
186
+ "single_word": false,
187
+ "special": false
188
+ },
189
+ "151666": {
190
+ "content": "</tool_response>",
191
+ "lstrip": false,
192
+ "normalized": false,
193
+ "rstrip": false,
194
+ "single_word": false,
195
+ "special": false
196
+ },
197
+ "151667": {
198
+ "content": "<think>",
199
+ "lstrip": false,
200
+ "normalized": false,
201
+ "rstrip": false,
202
+ "single_word": false,
203
+ "special": false
204
+ },
205
+ "151668": {
206
+ "content": "</think>",
207
+ "lstrip": false,
208
+ "normalized": false,
209
+ "rstrip": false,
210
+ "single_word": false,
211
+ "special": false
212
+ }
213
+ },
214
+ "additional_special_tokens": [
215
+ "<|im_start|>",
216
+ "<|im_end|>",
217
+ "<|object_ref_start|>",
218
+ "<|object_ref_end|>",
219
+ "<|box_start|>",
220
+ "<|box_end|>",
221
+ "<|quad_start|>",
222
+ "<|quad_end|>",
223
+ "<|vision_start|>",
224
+ "<|vision_end|>",
225
+ "<|vision_pad|>",
226
+ "<|image_pad|>",
227
+ "<|video_pad|>"
228
+ ],
229
+ "bos_token": null,
230
+ "chat_template": "{%- if tools %}\n {{- '<|im_start|>system\\n' }}\n {%- if messages[0].role == 'system' %}\n {%- if messages[0].content is string %}\n {{- messages[0].content }}\n {%- else %}\n {%- for content in messages[0].content %}\n {%- if 'text' in content %}\n {{- content.text }}\n {%- endif %}\n {%- endfor %}\n {%- endif %}\n {{- '\\n\\n' }}\n {%- endif %}\n {{- \"# Tools\\n\\nYou may call one or more functions to assist with the user query.\\n\\nYou are provided with function signatures within <tools></tools> XML tags:\\n<tools>\" }}\n {%- for tool in tools %}\n {{- \"\\n\" }}\n {{- tool | tojson }}\n {%- endfor %}\n {{- \"\\n</tools>\\n\\nFor each function call, return a json object with function name and arguments within <tool_call></tool_call> XML tags:\\n<tool_call>\\n{\\\"name\\\": <function-name>, \\\"arguments\\\": <args-json-object>}\\n</tool_call><|im_end|>\\n\" }}\n{%- else %}\n {%- if messages[0].role == 'system' %}\n {{- '<|im_start|>system\\n' }}\n {%- if messages[0].content is string %}\n {{- messages[0].content }}\n {%- else %}\n {%- for content in messages[0].content %}\n {%- if 'text' in content %}\n {{- content.text }}\n {%- endif %}\n {%- endfor %}\n {%- endif %}\n {{- '<|im_end|>\\n' }}\n {%- endif %}\n{%- endif %}\n{%- set image_count = namespace(value=0) %}\n{%- set video_count = namespace(value=0) %}\n{%- for message in messages %}\n {%- if message.role == \"user\" %}\n {{- '<|im_start|>' + message.role + '\\n' }}\n {%- if message.content is string %}\n {{- message.content }}\n {%- else %}\n {%- for content in message.content %}\n {%- if content.type == 'image' or 'image' in content or 'image_url' in content %}\n {%- set image_count.value = image_count.value + 1 %}\n {%- if add_vision_id %}Picture {{ image_count.value }}: {% endif -%}\n <|vision_start|><|image_pad|><|vision_end|>\n {%- elif content.type == 'video' or 'video' in content %}\n {%- set video_count.value = video_count.value + 1 %}\n {%- if add_vision_id %}Video {{ video_count.value }}: {% endif -%}\n <|vision_start|><|video_pad|><|vision_end|>\n {%- elif 'text' in content %}\n {{- content.text }}\n {%- endif %}\n {%- endfor %}\n {%- endif %}\n {{- '<|im_end|>\\n' }}\n {%- elif message.role == \"assistant\" %}\n {{- '<|im_start|>' + message.role + '\\n' }}\n {%- if message.content is string %}\n {{- message.content }}\n {%- else %}\n {%- for content_item in message.content %}\n {%- if 'text' in content_item %}\n {{- content_item.text }}\n {%- endif %}\n {%- endfor %}\n {%- endif %}\n {%- if message.tool_calls %}\n {%- for tool_call in message.tool_calls %}\n {%- if (loop.first and message.content) or (not loop.first) %}\n {{- '\\n' }}\n {%- endif %}\n {%- if tool_call.function %}\n {%- set tool_call = tool_call.function %}\n {%- endif %}\n {{- '<tool_call>\\n{\"name\": \"' }}\n {{- tool_call.name }}\n {{- '\", \"arguments\": ' }}\n {%- if tool_call.arguments is string %}\n {{- tool_call.arguments }}\n {%- else %}\n {{- tool_call.arguments | tojson }}\n {%- endif %}\n {{- '}\\n</tool_call>' }}\n {%- endfor %}\n {%- endif %}\n {{- '<|im_end|>\\n' }}\n {%- elif message.role == \"tool\" %}\n {%- if loop.first or (messages[loop.index0 - 1].role != \"tool\") %}\n {{- '<|im_start|>user' }}\n {%- endif %}\n {{- '\\n<tool_response>\\n' }}\n {%- if message.content is string %}\n {{- message.content }}\n {%- else %}\n {%- for content in message.content %}\n {%- if content.type == 'image' or 'image' in content or 'image_url' in content %}\n {%- set image_count.value = image_count.value + 1 %}\n {%- if add_vision_id %}Picture {{ image_count.value }}: {% endif -%}\n <|vision_start|><|image_pad|><|vision_end|>\n {%- elif content.type == 'video' or 'video' in content %}\n {%- set video_count.value = video_count.value + 1 %}\n {%- if add_vision_id %}Video {{ video_count.value }}: {% endif -%}\n <|vision_start|><|video_pad|><|vision_end|>\n {%- elif 'text' in content %}\n {{- content.text }}\n {%- endif %}\n {%- endfor %}\n {%- endif %}\n {{- '\\n</tool_response>' }}\n {%- if loop.last or (messages[loop.index0 + 1].role != \"tool\") %}\n {{- '<|im_end|>\\n' }}\n {%- endif %}\n {%- endif %}\n{%- endfor %}\n{%- if add_generation_prompt %}\n {{- '<|im_start|>assistant\\n' }}\n{%- endif %}\n",
231
+ "clean_up_tokenization_spaces": false,
232
+ "eos_token": "<|im_end|>",
233
+ "errors": "replace",
234
+ "model_max_length": 262144,
235
+ "pad_token": "<|endoftext|>",
236
+ "split_special_tokens": false,
237
+ "tokenizer_class": "Qwen2Tokenizer",
238
+ "unk_token": null
239
+ }
transformer/config.json ADDED
@@ -0,0 +1,54 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "_class_name": "Cosmos3OmniTransformer",
3
+ "_diffusers_version": "0.38.0",
4
+ "action_dim": 32,
5
+ "action_gen": false,
6
+ "attention_bias": false,
7
+ "attention_dropout": 0.0,
8
+ "base_fps": 16,
9
+ "dtype": "bfloat16",
10
+ "enable_fps_modulation": true,
11
+ "freeze_und": false,
12
+ "head_dim": 128,
13
+ "hidden_act": "silu",
14
+ "hidden_size": 5120,
15
+ "initializer_range": 0.02,
16
+ "intermediate_size": 25600,
17
+ "joint_attn_implementation": "two_way",
18
+ "latent_channel": 48,
19
+ "latent_patch_size": 2,
20
+ "max_action_dim": 32,
21
+ "max_position_embeddings": 262144,
22
+ "model_type": "qwen3_vl_text",
23
+ "num_attention_heads": 64,
24
+ "num_embodiment_domains": 32,
25
+ "num_hidden_layers": 64,
26
+ "num_key_value_heads": 8,
27
+ "patch_latent_dim": 192,
28
+ "position_embedding_type": "unified_3d_mrope",
29
+ "qk_norm": false,
30
+ "qk_norm_for_diffusion": true,
31
+ "qk_norm_for_text": true,
32
+ "rms_norm_eps": 1e-06,
33
+ "rope_scaling": {
34
+ "mrope_interleaved": true,
35
+ "mrope_section": [
36
+ 24,
37
+ 20,
38
+ 20
39
+ ],
40
+ "rope_type": "default"
41
+ },
42
+ "rope_theta": 5000000,
43
+ "sound_dim": null,
44
+ "sound_gen": false,
45
+ "sound_latent_fps": 25,
46
+ "temporal_compression_factor_sound": 1,
47
+ "timestep_scale": 0.001,
48
+ "unified_3d_mrope_reset_spatial_ids": true,
49
+ "unified_3d_mrope_temporal_modality_margin": 15000,
50
+ "use_cache": true,
51
+ "use_moe": true,
52
+ "video_temporal_causal": false,
53
+ "vocab_size": 151936
54
+ }
transformer/diffusion_pytorch_model-00001-of-00027.safetensors ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:da7e1203782fdbcc24c3ebd965698bdb733c40de79a741a512c3e08106e0e404
3
+ size 4932286736
transformer/diffusion_pytorch_model-00002-of-00027.safetensors ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:deef4952ef906fa0f4f28bf789bab114e224f6437f34ab25bbe6e1253224d750
3
+ size 4802610968
transformer/diffusion_pytorch_model-00003-of-00027.safetensors ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:73e619cfc4a34499be985f19f367dcf6213d952b7a6f538f74be22c45da48f4c
3
+ size 4949368056
transformer/diffusion_pytorch_model-00004-of-00027.safetensors ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:4af5caa0da9e09b3db7454b71d5de50b553ac0f9a08bcf9193a08de61dcc948b
3
+ size 4802610968
transformer/diffusion_pytorch_model-00005-of-00027.safetensors ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:443bb738c375588f50ef23010ac5d01c3a8cd8ad05dbd500463fdab3fd1f7b61
3
+ size 4949368096
transformer/diffusion_pytorch_model-00006-of-00027.safetensors ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:86ec5a7fe509ad59512b59843972b55628298fe7c79422a29f9846758b4320f7
3
+ size 4802611024
transformer/diffusion_pytorch_model-00007-of-00027.safetensors ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:277e2a2e055262b922bf20fc350331c7269cc653ab9aa98fc24bc79fd278aa8d
3
+ size 4949368104
transformer/diffusion_pytorch_model-00008-of-00027.safetensors ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:ad567bf9eae72d1001495df60fb9f4c1b53063517a3c7e9573efeef6b49d6182
3
+ size 4802611024
transformer/diffusion_pytorch_model-00009-of-00027.safetensors ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:d29572826e0f3dddf7300923157fea981784fccf77b9a3041810e5c61046c722
3
+ size 4949368104
transformer/diffusion_pytorch_model-00010-of-00027.safetensors ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:eb0dc522049b96cc5eb624dbf355d6eb78981795705c47ce0508823ecc9c4f1f
3
+ size 4802611024
transformer/diffusion_pytorch_model-00011-of-00027.safetensors ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:4eec73f0e89965bffcd8dad0da82ecfe6e89def456a31c03fde1164de44b8364
3
+ size 4949368104
transformer/diffusion_pytorch_model-00012-of-00027.safetensors ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:453fbbf4ac59b0f7340b57cf3dcd73d49cae356ba2aa9bd7797449e5925cbcd9
3
+ size 4802611024
transformer/diffusion_pytorch_model-00013-of-00027.safetensors ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:a21745d30b07533fcc1e3bcf8283bbf0cb94141b42a359b3599d5242246e2f76
3
+ size 4949368104
transformer/diffusion_pytorch_model-00014-of-00027.safetensors ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:595dfc0caa65e8c18f3e9abd700e6d2fff2774047c9dbb04e001eb0530459e7f
3
+ size 4802611024
transformer/diffusion_pytorch_model-00015-of-00027.safetensors ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:3da0db1ef8cba18ae3e0077ef4c5eedeb23545ede99882df5ddf2d83800581fb
3
+ size 4949368104
transformer/diffusion_pytorch_model-00016-of-00027.safetensors ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:5774ddf0cb924d0d003c6013bf9a80f7d8fb8cb76bbb3e8d1ec04a373452e648
3
+ size 4802611024