Update README.md
Browse files
README.md
CHANGED
|
@@ -1,51 +1,222 @@
|
|
| 1 |
---
|
| 2 |
license: apache-2.0
|
| 3 |
language:
|
| 4 |
-
- en
|
| 5 |
-
- zh
|
| 6 |
pipeline_tag: video-to-video
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 7 |
---
|
| 8 |
-
<h1 align="center">JoyAI-Video-Edit<br><sub><sup>Real-Time Open-Ended Video Editing with Autoregressive Diffusion</sup></sub></h1>
|
| 9 |
|
| 10 |
-
<
|
| 11 |
|
| 12 |
-
|
| 13 |
-
|
| 14 |
-
|
| 15 |
-
[](https://modelscope.cn/models/jd-opensource/JoyAI-Video-Edit) 
|
| 16 |
-
[](LICENSE)
|
| 17 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 18 |
|
| 19 |
-
<
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 20 |
|
| 21 |
## πΆ JoyAI-Video-Edit
|
| 22 |
|
| 23 |
-
JoyAI-Video-Edit is a real-time, instruction-guided video editing
|
| 24 |
|
| 25 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 26 |
|
| 27 |
## π Highlights
|
| 28 |
|
| 29 |
-
|
| 30 |
-
|
| 31 |
-
-
|
| 32 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 33 |
|
| 34 |
## π Quick Start
|
| 35 |
|
| 36 |
-
### 1.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 37 |
|
| 38 |
```bash
|
| 39 |
conda create -n joyai-video-edit python=3.10 -y
|
| 40 |
conda activate joyai-video-edit
|
|
|
|
| 41 |
python -m pip install -r requirements.txt
|
| 42 |
```
|
| 43 |
|
| 44 |
-
###
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 45 |
|
| 46 |
-
|
| 47 |
|
| 48 |
-
|
|
|
|
|
|
|
| 49 |
|
| 50 |
```bash
|
| 51 |
cd deploy
|
|
@@ -58,25 +229,67 @@ Then open:
|
|
| 58 |
http://localhost:8080
|
| 59 |
```
|
| 60 |
|
| 61 |
-
For remote
|
| 62 |
|
|
|
|
| 63 |
|
| 64 |
-
##
|
| 65 |
|
| 66 |
-
|
| 67 |
|
| 68 |
```text
|
| 69 |
-
deploy/
|
| 70 |
-
|-- dit/
|
| 71 |
-
| `-- joyai_video_edit_dit_0804.pth
|
| 72 |
-
`-- vae/
|
| 73 |
-
|-- config.json
|
| 74 |
-
`-- diffusion_pytorch_model.safetensors
|
| 75 |
```
|
| 76 |
|
| 77 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 78 |
|
|
|
|
| 79 |
|
| 80 |
-
|
| 81 |
|
| 82 |
-
JoyAI-Video-Edit
|
|
|
|
| 1 |
---
|
| 2 |
license: apache-2.0
|
| 3 |
language:
|
| 4 |
+
- en
|
| 5 |
+
- zh
|
| 6 |
pipeline_tag: video-to-video
|
| 7 |
+
tags:
|
| 8 |
+
- video-editing
|
| 9 |
+
- video-to-video
|
| 10 |
+
- streaming-video
|
| 11 |
+
- real-time-video
|
| 12 |
+
- autoregressive-diffusion
|
| 13 |
+
- multimodal
|
| 14 |
+
- joyai
|
| 15 |
---
|
|
|
|
| 16 |
|
| 17 |
+
<h1 align="center">JoyAI-Video-Edit</h1>
|
| 18 |
|
| 19 |
+
<h3 align="center">
|
| 20 |
+
Real-Time Open-Ended Video Editing with Autoregressive Diffusion
|
| 21 |
+
</h3>
|
|
|
|
|
|
|
| 22 |
|
| 23 |
+
<p align="center">
|
| 24 |
+
<a href="https://arxiv.org/abs/2608.03974">
|
| 25 |
+
<img src="https://img.shields.io/badge/Paper-arXiv-red" alt="Paper">
|
| 26 |
+
</a>
|
| 27 |
+
<a href="https://github.com/jd-opensource/JoyAI-Video-Edit">
|
| 28 |
+
<img src="https://img.shields.io/badge/Code-GitHub-black" alt="GitHub">
|
| 29 |
+
</a>
|
| 30 |
+
<a href="https://huggingface.co/jdopensource/JoyAI-Video-Edit">
|
| 31 |
+
<img src="https://img.shields.io/badge/%F0%9F%A4%97%20Model-JoyAI--Video--Edit-yellow" alt="Hugging Face">
|
| 32 |
+
</a>
|
| 33 |
+
<a href="https://joyai-labs.jd.com/v2v/">
|
| 34 |
+
<img src="https://img.shields.io/badge/%F0%9F%9A%80%20Demo-Streaming--V2V-orange" alt="Demo">
|
| 35 |
+
</a>
|
| 36 |
+
<a href="https://github.com/jd-opensource/JoyAI-Video-Edit/blob/main/LICENSE">
|
| 37 |
+
<img src="https://img.shields.io/badge/License-Apache_2.0-blue.svg" alt="License">
|
| 38 |
+
</a>
|
| 39 |
+
</p>
|
| 40 |
|
| 41 |
+
<p align="center">
|
| 42 |
+
<img
|
| 43 |
+
src="https://raw.githubusercontent.com/jd-opensource/JoyAI-Video-Edit/main/assets/teaser.jpg"
|
| 44 |
+
width="96%"
|
| 45 |
+
alt="JoyAI-Video-Edit teaser"
|
| 46 |
+
>
|
| 47 |
+
</p>
|
| 48 |
|
| 49 |
## πΆ JoyAI-Video-Edit
|
| 50 |
|
| 51 |
+
**JoyAI-Video-Edit** is a real-time, instruction-guided video editing framework designed for open-ended video streams.
|
| 52 |
|
| 53 |
+
Unlike conventional offline video editing models that require a complete video before inference, JoyAI-Video-Edit processes frames **causally as they arrive**. It can continuously edit a live camera stream or an uploaded video according to natural-language instructions without accessing future frames or requiring a predefined video length.
|
| 54 |
+
|
| 55 |
+
The framework combines:
|
| 56 |
+
|
| 57 |
+
- an **MLLM-based condition encoder** for understanding editing instructions,
|
| 58 |
+
- a **causal video VAE** for streaming visual representation,
|
| 59 |
+
- and a **16B multimodal diffusion transformer** for high-quality video editing.
|
| 60 |
+
|
| 61 |
+
Through autoregressive diffusion modeling, aligned autoregressive distribution matching distillation, long-horizon optimization, bounded KV-state inference, and deployment-oriented scheduling, JoyAI-Video-Edit achieves stable long-range editing while substantially reducing inference latency.
|
| 62 |
+
|
| 63 |
+
Our deployment system reaches **30.19 FPS end-to-end at 720 Γ 1280 resolution**, enabling real-time streaming video editing.
|
| 64 |
+
|
| 65 |
+
---
|
| 66 |
+
|
| 67 |
+
## π₯ News
|
| 68 |
+
|
| 69 |
+
- **2026.08.06** β π We released the live demo of JoyAI-Video-Edit.
|
| 70 |
+
Try it here: **[Streaming V2V Demo](https://joyai-labs.jd.com/v2v/)**
|
| 71 |
+
|
| 72 |
+
- **2026.08.05** β π We released the model checkpoints, deployment code, online demo, and technical report.
|
| 73 |
+
|
| 74 |
+
---
|
| 75 |
|
| 76 |
## π Highlights
|
| 77 |
|
| 78 |
+
### β‘ Real-Time Streaming Editing
|
| 79 |
+
|
| 80 |
+
JoyAI-Video-Edit edits frames continuously as they arrive instead of waiting for the entire video.
|
| 81 |
+
|
| 82 |
+
It supports open-ended streams and does not require a predefined video duration.
|
| 83 |
+
|
| 84 |
+
### π― Instruction-Guided Video Editing
|
| 85 |
+
|
| 86 |
+
The model supports a broad range of editing instructions, including:
|
| 87 |
+
|
| 88 |
+
- Subject modification
|
| 89 |
+
- Subject addition
|
| 90 |
+
- Subject removal
|
| 91 |
+
- Subject replacement
|
| 92 |
+
- Local object editing
|
| 93 |
+
- Background replacement
|
| 94 |
+
- Style transfer
|
| 95 |
+
- Appearance modification
|
| 96 |
+
- Motion editing
|
| 97 |
+
- Reference-guided video editing
|
| 98 |
+
|
| 99 |
+
### π Autoregressive Diffusion
|
| 100 |
+
|
| 101 |
+
JoyAI-Video-Edit introduces an autoregressive diffusion framework consisting of:
|
| 102 |
+
|
| 103 |
+
- MLLM condition encoder
|
| 104 |
+
- Causal video VAE
|
| 105 |
+
- 16B multimodal diffusion transformer
|
| 106 |
+
- Chunk-wise autoregressive generation
|
| 107 |
+
- Long-horizon temporal optimization
|
| 108 |
+
- Bounded KV-state inference
|
| 109 |
+
|
| 110 |
+
### π Real-Time 720p Deployment
|
| 111 |
+
|
| 112 |
+
The full deployment pipeline achieves:
|
| 113 |
+
|
| 114 |
+
**30.19 FPS @ 720 Γ 1280**
|
| 115 |
+
|
| 116 |
+
with end-to-end streaming inference.
|
| 117 |
+
|
| 118 |
+
---
|
| 119 |
+
|
| 120 |
+
## π¬ Demo
|
| 121 |
+
|
| 122 |
+
Try our online real-time video editing demo:
|
| 123 |
+
|
| 124 |
+
π **https://joyai-labs.jd.com/v2v/**
|
| 125 |
+
|
| 126 |
+
Project repository:
|
| 127 |
+
|
| 128 |
+
π **https://github.com/jd-opensource/JoyAI-Video-Edit**
|
| 129 |
+
|
| 130 |
+
Technical report:
|
| 131 |
+
|
| 132 |
+
π **https://arxiv.org/abs/2608.03974**
|
| 133 |
+
|
| 134 |
+
---
|
| 135 |
+
|
| 136 |
+
## π¦ Model Download
|
| 137 |
+
|
| 138 |
+
The released JoyAI-Video-Edit checkpoints are hosted on Hugging Face.
|
| 139 |
+
|
| 140 |
+
### Hugging Face CLI
|
| 141 |
+
|
| 142 |
+
First install the Hugging Face CLI:
|
| 143 |
+
|
| 144 |
+
```bash
|
| 145 |
+
pip install -U huggingface_hub
|
| 146 |
+
```
|
| 147 |
+
|
| 148 |
+
Then download the complete model repository:
|
| 149 |
+
|
| 150 |
+
```bash
|
| 151 |
+
hf download jdopensource/JoyAI-Video-Edit \
|
| 152 |
+
--local-dir ./deploy/deps/checkpoints/JoyAI-Video-Edit
|
| 153 |
+
```
|
| 154 |
+
|
| 155 |
+
Alternatively, you can use:
|
| 156 |
+
|
| 157 |
+
```bash
|
| 158 |
+
huggingface-cli download jdopensource/JoyAI-Video-Edit \
|
| 159 |
+
--local-dir ./deploy/deps/checkpoints/JoyAI-Video-Edit
|
| 160 |
+
```
|
| 161 |
+
|
| 162 |
+
The downloaded checkpoint directory should look like:
|
| 163 |
+
|
| 164 |
+
```text
|
| 165 |
+
deploy/deps/checkpoints/JoyAI-Video-Edit/
|
| 166 |
+
βββ config.json
|
| 167 |
+
βββ dit/
|
| 168 |
+
β βββ joyai_video_edit_dit_0804.pth
|
| 169 |
+
βββ vae/
|
| 170 |
+
βββ config.json
|
| 171 |
+
βββ diffusion_pytorch_model.safetensors
|
| 172 |
+
```
|
| 173 |
+
|
| 174 |
+
> **Note**
|
| 175 |
+
>
|
| 176 |
+
> JoyAI-Video-Edit currently uses its own deployment and inference pipeline.
|
| 177 |
+
> The released checkpoint should **not** be loaded directly with
|
| 178 |
+
> `diffusers.DiffusionPipeline.from_pretrained()`.
|
| 179 |
+
|
| 180 |
+
MiMo-VL and the ONNX detector files are additional runtime dependencies. Please refer to the deployment documentation in the GitHub repository for details.
|
| 181 |
+
|
| 182 |
+
---
|
| 183 |
|
| 184 |
## π Quick Start
|
| 185 |
|
| 186 |
+
### 1. Clone the Repository
|
| 187 |
+
|
| 188 |
+
```bash
|
| 189 |
+
git clone https://github.com/jd-opensource/JoyAI-Video-Edit.git
|
| 190 |
+
cd JoyAI-Video-Edit
|
| 191 |
+
```
|
| 192 |
+
|
| 193 |
+
### 2. Create the Environment
|
| 194 |
|
| 195 |
```bash
|
| 196 |
conda create -n joyai-video-edit python=3.10 -y
|
| 197 |
conda activate joyai-video-edit
|
| 198 |
+
|
| 199 |
python -m pip install -r requirements.txt
|
| 200 |
```
|
| 201 |
|
| 202 |
+
### 3. Download JoyAI-Video-Edit
|
| 203 |
+
|
| 204 |
+
```bash
|
| 205 |
+
hf download jdopensource/JoyAI-Video-Edit \
|
| 206 |
+
--local-dir ./deploy/deps/checkpoints/JoyAI-Video-Edit
|
| 207 |
+
```
|
| 208 |
+
|
| 209 |
+
### 4. Prepare Runtime Dependencies
|
| 210 |
+
|
| 211 |
+
MiMo-VL and the required ONNX detector files are external runtime dependencies.
|
| 212 |
+
|
| 213 |
+
Please follow:
|
| 214 |
|
| 215 |
+
**[DEPLOYMENT.md](https://github.com/jd-opensource/JoyAI-Video-Edit/blob/main/DEPLOYMENT.md)**
|
| 216 |
|
| 217 |
+
for detailed checkpoint preparation and deployment instructions.
|
| 218 |
+
|
| 219 |
+
### 5. Launch
|
| 220 |
|
| 221 |
```bash
|
| 222 |
cd deploy
|
|
|
|
| 229 |
http://localhost:8080
|
| 230 |
```
|
| 231 |
|
| 232 |
+
For deployment on a remote server, bind the service to `0.0.0.0` and expose the selected port or use SSH port forwarding.
|
| 233 |
|
| 234 |
+
---
|
| 235 |
|
| 236 |
+
## π οΈ Custom Deployment
|
| 237 |
|
| 238 |
+
For custom deployment settings, edit:
|
| 239 |
|
| 240 |
```text
|
| 241 |
+
deploy/run_server.sh
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 242 |
```
|
| 243 |
|
| 244 |
+
You can configure:
|
| 245 |
+
|
| 246 |
+
- JoyAI-Video-Edit checkpoint paths
|
| 247 |
+
- CUDA device placement
|
| 248 |
+
- Server host
|
| 249 |
+
- Server port
|
| 250 |
+
- Runtime cache directories
|
| 251 |
+
|
| 252 |
+
The default deployment script uses persistent TorchInductor, Triton, and CUDA cache directories so that compiled artifacts can be reused across launches.
|
| 253 |
+
|
| 254 |
+
`TORCHINDUCTOR_AUTOGRAD_CACHE` is not required for inference-only serving.
|
| 255 |
+
|
| 256 |
+
---
|
| 257 |
+
|
| 258 |
+
## π§ Roadmap
|
| 259 |
+
|
| 260 |
+
- [ ] **Consumer GPU support**
|
| 261 |
+
Optimize deployment for consumer GPUs such as NVIDIA GeForce RTX 5090.
|
| 262 |
+
|
| 263 |
+
- [ ] **Stronger JoyAI-Video-Edit model**
|
| 264 |
+
Improve overall editing quality with a particular focus on reference-image-guided video editing (RV2V).
|
| 265 |
+
|
| 266 |
+
- [ ] **Training framework**
|
| 267 |
+
Release the complete training pipeline.
|
| 268 |
+
|
| 269 |
+
- [ ] **Data pipeline**
|
| 270 |
+
Release the data generation and processing framework.
|
| 271 |
+
|
| 272 |
+
---
|
| 273 |
+
|
| 274 |
+
## π Citation
|
| 275 |
+
|
| 276 |
+
If JoyAI-Video-Edit is useful for your research or project, please cite:
|
| 277 |
+
|
| 278 |
+
```bibtex
|
| 279 |
+
@article{xiao2026joyai,
|
| 280 |
+
title={JoyAI-Video-Edit: Real-Time Open-Ended Video Editing with Autoregressive Diffusion},
|
| 281 |
+
author={Xiao, Yicheng and Dai, Wenxun and Qin, Xinran and Song, Lin and Zhang, Maoquan and Xu, Hang and Chen, Yukang and Li, Yitong and Zhang, Guohui and Zhang, Yuan and Zhang, Xuying and Zhang, Tommy and Yuan, Jianlong and Li, Peihao and Lu, Shuai and Fu, Siming and Zhao, Chuyang and Han, Xin and Huang, Jie and Li, Wenbo and Ma, Guoqing and Huang, Wei and Qi, Xiaojuan and Huang, Haoyang and Duan, Nan},
|
| 282 |
+
journal={arXiv preprint arXiv:2608.03974},
|
| 283 |
+
year={2026}
|
| 284 |
+
}
|
| 285 |
+
```
|
| 286 |
+
|
| 287 |
+
---
|
| 288 |
+
|
| 289 |
+
## π License
|
| 290 |
|
| 291 |
+
JoyAI-Video-Edit is released under the **Apache License 2.0**.
|
| 292 |
|
| 293 |
+
Please refer to the project repository for the complete license:
|
| 294 |
|
| 295 |
+
https://github.com/jd-opensource/JoyAI-Video-Edit/blob/main/LICENSE
|