File size: 10,147 Bytes
f305224
 
5f0e154
 
 
 
 
 
 
 
 
 
 
f305224
5f0e154
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
6a15bdf
 
 
 
 
 
 
 
5f0e154
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
---
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>Standalone, inference-only release 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="#quickstart"><b>πŸš€ Quickstart</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/Python-3.11-3776AB?style=flat-square&logo=python&logoColor=white" alt="Python 3.11">
  <img src="https://img.shields.io/badge/PyTorch-2.8-EE4C2C?style=flat-square&logo=pytorch&logoColor=white" alt="PyTorch 2.8">
  <img src="https://img.shields.io/badge/CUDA-12.8-76B900?style=flat-square&logo=nvidia&logoColor=white" alt="CUDA 12.8">
  <img src="https://img.shields.io/badge/Release-Inference--Only-black?style=flat-square" alt="Inference">
  <img src="https://img.shields.io/badge/Long%20Video-5%20min-d61f2c?style=flat-square" alt="5 minute long video">
</p>

</div>

## Abstract

Long video generation still suffers from error accumulation, weak temporal coherence, and prohibitive latency, limiting its applicability to interactive scenarios. We present **JoyAI-Echo**, a framework that breaks these barriers through four key advances.
Central to its performance, a cross-modal audio-visual memory bank preserves character appearance and voice timbre consistently over five-minute videos, while a post-training pipeline combines memory-based reinforcement learning with distribution matching distillation for a **7.5Γ— speedup** to substantially boost visual quality and alignment.
Empowered by these two components, **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.
Beyond raw generation quality, an interactive agent enables real-time user editing through conversational instructions, and a lightweight super-resolution module maintains high definition under streaming latency, further elevating the overall experience and delivering instantly editable, conversation-speed video creation.
For the first time, **JoyAI-Echo** simultaneously achieves long-range cross-modal consistency, real-time inference for minute-long video, conversational interactivity, and high-resolution output β€” without compromise, inaugurating a new era of interactive video generation.
Codes and weights will be open-sourced.

## Highlights

- 🎞️ **Minute-level multi-shot stories**: generate a sequence of coherent shots from one prompt JSON.
- ⚑ **DMD-distilled few-step inference**: ~7.5x 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.

## Current Release Scope

JoyAI-Echo currently focuses on **text-to-video (T2V)** and **multi-shot long-video generation with paired audio-video memory**. The memory used in our official pipeline is built from generated T2V shots.

Please note that **image-to-video (I2V)** is **not supported in the current release**.

We are actively working on I2V support and plan to release it in a future version.

## 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/). 🍿

## Results

### Reported Scale

| Item | Value |
| --- | ---: |
| 🎬 Long-form coherent story length | **5 min** |
| ⚑ Generation speedup over the original multi-step pipeline | **7.5x** |
| πŸ“š 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<br>(Long Video) | JoyAI-Echo | Tie | HappyOyster<br> (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<br>(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% |


## Quickstart

### 1. Clone

Get the Repo at first! 

```bash

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

### 2. Create the environment

The reference environment is **Python 3.11 + PyTorch 2.8 + CUDA 12.8**.

With conda:

```bash
conda env create -f environment.yml
conda activate echo-long
```

With `uv`:

```bash
uv venv --python 3.11 .venv
source .venv/bin/activate
uv pip install --extra-index-url https://download.pytorch.org/whl/cu128 -r requirements.txt
```

[`ffmpeg`](https://ffmpeg.org/download.html) must be available on `PATH` for shot concatenation. The conda recipe includes it. If you use `uv`, install it with your system package manager:

```bash
sudo apt install ffmpeg
# macOS:
brew install ffmpeg
```

### 3. Download checkpoint

Download the JoyAI-Echo release checkpoint and Gemma text encoder:

| File | Description | Size | Link |
| --- | --- | --- | --- |
| `echo-longvideo-release.safetensors` | Full model (transformer + VAE + vocoder) | ~46 GB |[`JoyAI-Echo`](https://huggingface.co/jdopensource/JoyAI-Echo)  |
| `gemma-3-12b/` | Instruction-tuned model (text encoder) | ~24 GB | [`gemma-3-12b-it`](https://huggingface.co/google/gemma-3-12b-it) |

Place them under `checkpoints/`:

```text
checkpoints/
+-- echo-longvideo-release.safetensors
`-- gemma-3-12b/
```

### 4. Write a story prompt

Create a JSON file under `prompts/`. 

Each string is one complete shot description. A single prompt creates a single shot. Multiple prompts create a multi-shot story conditioned through the paired audio-video memory bank.

### 5. Run inference

```bash
python inference.py
```

This loads the model once and processes all prompt files under `prompts/`.

> πŸ’‘ **Note**: The inference pipeline is optimized to run on lower-VRAM
> GPUs. Peak GPU usage is around **46–50 GB**, at the cost of slightly
> longer per-shot inference time.

Outputs are written to:

```text
inference_result/outputs/<prompt-name>/inference_<timestamp>/
```

## Configuration

All inference parameters are managed in `configs/inference.yaml`. The file is organized into sections:

| Section | Contents |
| --- | --- |
| `paths` | Checkpoint path, prompts directory, output root |
| `video` | Resolution, frame count, FPS, seed |
| `denoising` | Step list and sigma schedule |
| `memory` | Memory bank size, save mode, LoRA settings |
| `audio_memory` | Audio window, mel-spectrogram params |
| `inference` | Device, dtype, grad scale |

### Override via CLI

Any YAML parameter can be overridden from the command line:

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

Use a custom config file:

```bash
python inference.py --config configs/my_experiment.yaml
```

The Python entrypoint exposes the full configuration surface:

```bash
python inference.py --help
```

## Hardware

Peak GPU usage is around **46–50 GB** for the default **25 fps x 241 frames x 1280 x 736** setting, so a single H100/A100-class (80 GB) or 48 GB GPU is sufficient.

For smaller GPUs, reduce resolution/frames:

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

## TODO List

- [x] Release inference code
- [x] Release model checkpoints
- [x] Add prompt examples
- [ ] Release Director Agent 

## 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/)
- Repository: [`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{echo2026longvideo,
  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.