File size: 9,145 Bytes
f305224
 
5f0e154
 
 
 
 
 
 
 
 
 
 
f305224
9789b58
5f0e154
7c3edb5
5f0e154
 
 
 
7c3edb5
5f0e154
 
 
9789b58
5f0e154
7c3edb5
 
5f0e154
7c3edb5
 
 
9789b58
 
5f0e154
 
 
 
 
9789b58
 
5f0e154
9789b58
5f0e154
 
 
 
9789b58
5f0e154
7c3edb5
5f0e154
7c3edb5
5f0e154
9789b58
5f0e154
9789b58
5f0e154
9789b58
 
 
 
 
 
 
 
5f0e154
9789b58
5f0e154
7c3edb5
 
 
 
 
 
 
 
5f0e154
9789b58
5f0e154
7c3edb5
5f0e154
9789b58
5f0e154
 
7c3edb5
9789b58
5f0e154
 
9789b58
5f0e154
 
9789b58
 
5f0e154
 
9789b58
5f0e154
 
 
9789b58
 
5f0e154
 
9789b58
5f0e154
 
7c3edb5
9789b58
5f0e154
 
9789b58
5f0e154
9789b58
5f0e154
9789b58
5f0e154
9789b58
5f0e154
9789b58
5f0e154
9789b58
5f0e154
9789b58
 
 
 
 
7c3edb5
5f0e154
9789b58
5f0e154
 
9789b58
5f0e154
 
9789b58
5f0e154
 
 
9789b58
5f0e154
 
 
 
 
9789b58
5f0e154
9789b58
5f0e154
9789b58
 
 
7c3edb5
9789b58
 
 
5f0e154
9789b58
 
7c3edb5
9789b58
 
 
 
 
 
 
 
 
 
 
 
 
5f0e154
7c3edb5
 
 
 
 
 
5f0e154
 
7c3edb5
5f0e154
 
 
7c3edb5
5f0e154
 
b2905a8
7c3edb5
5f0e154
 
 
7c3edb5
5f0e154
 
 
 
 
7c3edb5
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
---
license: other
license_name: ltx-2-community-license-agreement
license_link: https://github.com/Lightricks/LTX-2/blob/main/LICENSE
pipeline_tag: text-to-video
tags:
  - text-to-video
  - video-generation
  - audio-video-generation
  - long-video
  - multi-shot
  - dmd
library_name: ltx-video
---

<p align="center">
  <img src="assets/image.png" alt="JoyAI-Echo generated video gallery" width="100%">
</p>

<div align="center">

<h1>JoyAI-Echo</h1>

<p><strong>🎬 Pushing the Frontier of Long Video Generation</strong></p>

<p>Official model weights for <strong>minute-level multi-shot audio-video generation</strong> with a distilled DMD generator, paired cross-modal memory, and story-level consistency.</p>

<p><strong>For academic research and non-commercial use only.</strong></p>

<p>
  <a href="https://github.com/jd-opensource/JoyAI-Echo/blob/main/joyai-echo%20tech%20report.pdf"><b>πŸ“„ Paper</b></a> |
  <a href="https://echo-team-joy-future-academy-jd.github.io/Echo-LongVideo-Page/"><b>🌐 Project Page</b></a> |
  <a href="https://github.com/jd-opensource/JoyAI-Echo"><b>πŸ’» Inference Code</b></a> |
  <a href="#model-details"><b>🧬 Model</b></a> |
  <a href="#usage"><b>πŸš€ Usage</b></a> |
  <a href="#results"><b>πŸ“Š Results</b></a> |
  <a href="#citation"><b>πŸ“ Citation</b></a>
</p>

<p>
  <img src="https://img.shields.io/badge/Task-Text--to--Video-blue?style=flat-square" alt="Text-to-Video">
  <img src="https://img.shields.io/badge/Modality-Audio%2BVideo-purple?style=flat-square" alt="Audio + Video">
  <img src="https://img.shields.io/badge/Long%20Video-5%20min-d61f2c?style=flat-square" alt="5 minute long video">
  <img src="https://img.shields.io/badge/Release-Model%20Weights-black?style=flat-square" alt="Model Weights">
</p>

</div>

## Model Summary

**JoyAI-Echo** is a long-form, multi-shot, audio-video generation framework that breaks the barriers of error accumulation, weak temporal coherence, and prohibitive latency in long video generation. A cross-modal audio-visual memory bank preserves character appearance and voice timbre consistently over **five-minute** videos, while a post-training pipeline combining memory-based reinforcement learning with distribution matching distillation (DMD) delivers a **7.5Γ— inference speedup** without sacrificing quality.

JoyAI-Echo decisively outperforms *HappyOyster* (directing mode) on long-form generation and even surpasses the short-video specialist *Wan 2.6* on human-centric tasks.

This repository hosts the **released checkpoint**. Inference code is released separately β€” see the [Usage](#usage) section.

## Model Details

- **Developed by:** Echo Team @ Joy Future Academy, JD
- **Model type:** Text-to-(Audio+Video) diffusion transformer, DMD 8-step
- **Modality:** Text β†’ synchronized video + audio
- **Backbone:** Built on top of [LTX-Video](https://github.com/Lightricks/LTX-Video)
- **Text encoder:** [`google/gemma-3-12b-it`](https://huggingface.co/google/gemma-3-12b-it) (downloaded separately)
- **Resolution / length (by default):** 1280 Γ— 736, 241 frames @ 25 fps per shot
- **Max story length:** up to 5 minutes (multi-shot)
- **License:** LTX-2 Community License Agreement

## Highlights

- 🎞️ **Minute-level multi-shot stories**: generate a sequence of coherent shots from one prompt JSON.
- ⚑ **DMD-distilled few-step inference**: ~7.5Γ— faster than the original pipeline.
- πŸ”Š **Joint audio-video generation**: one pipeline produces synchronized video and audio.
- 🧠 **Paired cross-modal memory bank**: conditions each new shot on prior visual identity and voice context for story-level consistency.

## Demo Gallery

Explore long-form and short-form JoyAI-Echo cases on the [Project Page](https://echo-team-joy-future-academy-jd.github.io/Echo-LongVideo-Page/). 🍿

## Usage

Inference is run with the standalone **JoyAI-Echo** inference repository.

### 1. Download the checkpoint

```bash
huggingface-cli download jdopensource/JoyAI-Echo \
  --local-dir checkpoints
```

Also download the Gemma text encoder:

```bash
huggingface-cli download google/gemma-3-12b-it \
  --local-dir checkpoints/gemma-3-12b
```

Expected layout:

```text
checkpoints/
β”œβ”€β”€ echo-longvideo-release.safetensors
└── gemma-3-12b/
```

### 2. Get the inference code

```bash
git clone https://github.com/jd-opensource/JoyAI-Echo.git
cd JoyAI-Echo
```

Environment: **Python 3.11 + PyTorch 2.8 + CUDA 12.8** (see the inference repo's `environment.yml` / `requirements.txt`).

### 3. Write a story prompt

**Enhance your prompt first.** We provide prompt enhancers β€” system prompts that expand a short story or idea into well-formed shot prompts: **`prompts/long_story_writer_system_prompt.md`** for long, multi-shot video, and **`prompts/short_story_writer_system_prompt.md`** for single-shot short video. We **strongly recommend** running your input through the matching enhancer before inference; un-enhanced prompts tend to produce noticeably weaker results.

Create a JSON file under `prompts/`. Each file is a single object with a `prompts` list, where **every string is one complete shot**. A single string produces one shot; multiple strings produce a multi-shot story, with each new shot conditioned on the previous ones through the paired audio-video memory bank.

Inside each string, write these parts in order:

| Part | What to describe |
| --- | --- |
| **Roles & Subjects** | Describe the appearance of all visible people, including age, build, hair, face, wardrobe, and speaking voice timbre when applicable. |
| **Action & Dialogue** | What the subject does and speaks. |
| **Style** | The overall visual and emotional aesthetic β€” e.g. realistic motorsport film language, cool daylight, restrained cinematic tension. |
| **Camera Movement** | The shot type and framing or movement β€” e.g. a stable close-up on the face, or a medium shot from the waist up. |
| **Background** | The setting and scene details behind the subject. |
| **Sound Effects & BGM** | The sounds in the scene and the background music β€” e.g. room tone, wind, footsteps and fabric, with a soft low music bed under the dialogue or no background music. |

### 4. Run

```bash
python inference.py
```

Outputs land in `inference_result/outputs/<prompt-name>/inference_<timestamp>/`.

## Hardware

Peak GPU memory is **~46–50 GB** at the default 1280 Γ— 736 Γ— 241 frame setting β€” a single H100/A100 (80 GB) or 48 GB GPU is sufficient. For smaller GPUs, lower resolution or frame count:

```bash
python inference.py --num-frames 121 --video-height 480 --video-width 832
```

## Results

### Reported Scale

| Item | Value |
| --- | ---: |
| 🎬 Long-form coherent story length | **5 min** |
| ⚑ Generation speedup over the original multi-step pipeline | **7.5Γ—** |
| πŸ“š Benchmark stories | **100** |
| 🎞️ Generated evaluation shots | **3,000** |
| πŸ•’ Frames per shot | **241 @ 25 fps** |

### Human Evaluation

GSB user study on long- and short-video generation. The numbers denote the percentage of user preferences.

| Aspect (Long Video) | JoyAI-Echo | Tie | HappyOyster (Directing) |
| --- | ---: | ---: | ---: |
| Visual aesthetics | **63.6%** | 8.8% | 27.6% |
| Audio quality | **81.7%** | 6.5% | 11.8% |
| Prompt following | **80.6%** | 13.5% | 5.9% |
| IP consistency | **59.4%** | 12.9% | 27.7% |

| Aspect (Short Video) | JoyAI-Echo | Tie | Wan 2.6 |
| --- | ---: | ---: | ---: |
| Visual aesthetics | **58.8%** | 14.7% | 26.5% |
| Audio quality | 32.3% | 30.9% | 36.8% |
| Prompt following | 33.8% | 36.8% | 29.4% |

## Links

- Project page: [`https://echo-team-joy-future-academy-jd.github.io/Echo-LongVideo-Page/`](https://echo-team-joy-future-academy-jd.github.io/Echo-LongVideo-Page/)
- Inference code: [`https://github.com/jd-opensource/JoyAI-Echo`](https://github.com/jd-opensource/JoyAI-Echo)
- HuggingFace: [`https://huggingface.co/jdopensource/JoyAI-Echo`](https://huggingface.co/jdopensource/JoyAI-Echo)

## Acknowledgements

We gratefully acknowledge the open-source projects this work builds upon β€” in particular [LTX2.3](https://huggingface.co/Lightricks/LTX-2.3) for the base video generator and [Gemma](https://huggingface.co/google/gemma-3-12b-it) for the text encoder. Thanks to the broader research community whose contributions made this release possible.

## Citation

If JoyAI-Echo helps your research or products, please cite:

```bibtex
@techreport{echo2026JoyEcho,
  title        = {JoyAI-Echo: Pushing the Frontier of Long Video Generation},
  author       = {{Echo Team @ Joy Future Academy, JD}},
  institution  = {Joy Future Academy, JD},
  year         = {2026},
  month        = {May}
}
```

## License

This project is based on LTX-2 by Lightricks Ltd.

Portions of the original LTX-2 codebase have been modified by JD.com for academic and research purposes only.
This project is not intended for commercial use. For commercial use of LTX-2 or its derivatives, please contact Lightricks Ltd.

All original copyright, license, patent, trademark, and attribution notices from LTX-2 are retained.
This project remains subject to the LTX-2 Community License Agreement.