JAVEdit: Joint Audio-Visual Instruction-Guided Video Editing with Agentic Data Curation
See the code
Yinan Chen 1★
·
Chuming Lin 2★
·
Zhennan Chen 3
·
Yuxiang Zeng 4
·
Junwei Zhu 2
·
Yali Bi 1
·
Xijie Huang 5
·
Chengming Xu 2
·
Donghao Luo 2
·
Zhucun Xue 1
·
Xiaobin Hu 6
·
Chengjie Wang 2
·
Yong Liu 1
·
Jiangning Zhang 1,2📧
·
Shuicheng Yan 6
1Zhejiang University
2YouTu Lab, Tencent
3Nanjing University
4University of Auckland
5Fudan University
6National University of Singapore
This repository is the official implementation of JAVEdit: Joint Audio-Visual Instruction-Guided Video Editing with Agentic Data Curation. It collects the dataset, model, and benchmark resources for instruction-guided joint audio-visual video editing. If you find any work missing or have any suggestions, feel free to open a pull request or contact us.
While instruction-based video editing has made significant progress, joint audio-visual editing remains constrained by the absence of dedicated datasets and benchmarks. We bridge this gap with three tightly-coupled contributions:
Data construction pipeline of JAVEdit-100k. Source videos from OpenHumanVid, VIDGEN-1M, and VGGSound undergo four stages: (1) Preprocessing — basic quality filtering (SyncNet A/V-sync + Koala-36M VTSS aesthetics), dense captioning (Qwen3-Omni), and audio source separation (SAM-Audio) into disentangled voice / music / ambient streams; (2) Instruction Generation — task selection, balanced least-frequently-used topic sampling from a curated vocabulary bank, and paired visual + audio instruction generation (Qwen3-235B); (3) Editing Pipelines — four dedicated pipelines covering five categories; (4) Agent-in-the-loop Quality Control — closed-loop detect → diagnose → repair → re-check.
An Inspector agent (Gemini) examines sampled outputs and produces structured quality reports, while an Orchestrator agent (Claude) classifies failures into three levels — L1 Systemic, L2 Modular, and L3 Instance — and applies targeted fixes. Verified solutions are stored in a Problem Pattern Library for cross-pipeline reuse, raising the overall qualification rate from 36% to 83% over three rounds.
Statistical distributions of JAVEdit-100k and JAVEditBench. JAVEdit-100k is the only dataset that jointly covers audio and visual editing with free-form natural-language instructions:
| Dataset | Scale | Audio | Instruction | Agent Control | Resolution | Frame Count |
|---|---|---|---|---|---|---|
| InsViE-1M | ~1M | ✘ | ✔ | ✘ | 1024×576 | 25 |
| Señorita-2M | ~2M | ✘ | ✔ | ✘ | 1984×1280 | 100 |
| Ditto-1M | ~1M | ✘ | ✔ | ✘ | 1280×720 | 101 |
| OpenVE-3M | ~3M | ✘ | ✔ | ✘ | 1280×720 | 65–129 |
| AVI-Edit | ~73K | ✔ | ✘ | ✘ | 1280×720 | ~240 |
| JAVEdit-100k (Ours) | ~103K | ✔ | ✔ | ✔ | 1280×720 | 121 |
git clone git@github.com:RyanChenYN/JAVEdit.git
cd JAVEdit
conda create -n javeditbench python=3.12 -y
conda activate javeditbench
pip install -r requirements.txt
System dependencies:
ffmpeg and ffprobe must be available on PATH.vllm==0.11.1; newer vLLM releases may require CUDA 13 and are not recommended for this setup.All checkpoint locations are configured in metrics/path.yml. Download the following pretrained models and update the corresponding paths:
fold0_s42_best_model.pth)latentsync_syncnet.pt). Face detection and 106-point landmarks use the insightface buffalo_l pack (det_10g.onnx + 2d106det.onnx), downloaded automatically by insightface on first run into <model_root>/models/buffalo_l/.After downloading, edit metrics/path.yml to point each entry to your local checkpoint directory. All paths are resolved relative to the location of path.yml.
The full training dataset and the JAVEditBench test set are hosted on Hugging Face:
huggingface-cli download --repo-type dataset --resume-download Coraxor/JAVEdit-100k --local-dir $YOUR_LOCAL_PATH
The benchmark metadata file benchmark_150.csv (150 rows, 147 unique videos) is already shipped with this repository at the project root, so you do not need to download it from Hugging Face. If you only need the JAVEditBench source videos for evaluation (≈437 MiB), pull the tarball alone instead of the full dataset and extract it next to the CSV (i.e., into the repo root):
# From the repo root
huggingface-cli download --repo-type dataset \
Coraxor/JAVEdit-100k benchmark_videos.tar.gz \
--local-dir .
# Extract — produces ./benchmark_videos/ with 147 .mp4 files alongside benchmark_150.csv
tar -xzf benchmark_videos.tar.gz
The CSV references each source video as a relative path benchmark_videos/<name>.mp4, so once the archive is extracted in the repo root the evaluation pipeline resolves paths automatically.
Run your own joint audio-visual editing model on the JAVEditBench source videos to produce edited (target) videos. Each edited video is matched to its source by the 32-character hash prefix in the filename, e.g.:
0a16d2122d7b9e9fe6c2a6aa65b658e6.mp4 # source
0a16d2122d7b9e9fe6c2a6aa65b658e6_0_edited_with_audio.mp4 # target
The benchmark CSV provides at least the following columns:
video,task,prompt,detailed_prompt_cn
JAVEditBench provides a unified entry point for six metrics across five dimensions:
Metric (--metric) | Dimension | Backbone |
|---|---|---|
vtss | Visual Quality | Koala-36M VTSS |
utmos | Audio Quality | UTMOSv2 |
syncnet | Audio-Visual Synchrony | LatentSync SyncNet |
instruction_compliance | Instruction Following | Qwen3-Omni |
video_fidelity | Video Fidelity | Qwen3-Omni |
av_quality | Holistic A/V Quality | Qwen3-Omni |
Run all metrics:
cd metrics
VLLM_WORKER_MULTIPROC_METHOD=spawn python evaluate.py \
--video_dir /path/to/edited_videos \
--bench_csv ../benchmark_150.csv \
--output_path /path/to/eval_results \
--metric syncnet vtss utmos av_quality instruction_compliance video_fidelity \
--num_gpus 8 \
--name javedit_eval
Run only the lightweight (non-MLLM) metrics on a single GPU:
python evaluate.py \
--video_dir /path/to/edited_videos \
--bench_csv ../benchmark_150.csv \
--metric utmos \
--num_gpus 1 \
--name javedit_utmos
Each run writes a detailed *_results.json and a *_summary.csv to --output_path; runtime logs are written to metrics/logs/. Use VLLM_WORKER_MULTIPROC_METHOD=spawn whenever the Qwen3-Omni metrics are involved.
Quantitative comparison on JAVEditBench across five evaluation dimensions. JAVEdit ranks first on five of six metrics. Best results are bolded.
| Method | Visual Quality ↑ | Audio Quality ↑ | A/V Sync ↑ | Instruction Compliance ↑ | Video Fidelity ↑ | A/V Quality ↑ |
|---|---|---|---|---|---|---|
| AVED | 0.0590 | 1.72 | 0.1641 | 2.95 | 3.87 | 2.93 |
| AVI-Edit | 0.0604 | 2.34 | 0.2721 | 3.49 | 3.89 | 3.86 |
| Sequential | 0.0563 | 2.35 | 0.2925 | 3.99 | 4.08 | 3.51 |
| JAVEdit (Ours) | 0.0596 | 2.42 | 0.3688 | 4.07 | 4.22 | 3.88 |
Compared with the strongest Sequential cascade (Kiwi-Edit + HunyuanVideo-Foley), joint modeling yields a 26% relative gain in audio-visual synchrony, validating the necessity of joint audio-visual modeling and agent-curated data.
Qualitative comparison on JAVEditBench. Rows correspond to the five editing categories; columns show the source video and the outputs of each method. JAVEdit consistently generates edits that are visually coherent, semantically faithful to the instruction, and temporally synchronized across both modalities.
If you find JAVEdit useful for your research, please consider giving a star ⭐ and citation 📝 :)
@article{chen2026javedit,
title={JAVEdit: Joint Audio-Visual Instruction-Guided Video Editing with Agentic Data Curation},
author={Chen, Yinan and Lin, Chuming and Chen, Zhennan and Zeng, Yuxiang and Zhu, Junwei and Bi, Yali and Huang, Xijie and Xu, Chengming and Luo, Donghao and Xue, Zhucun and Hu, Xiaobin and Wang, Chengjie and Liu, Yong and Zhang, Jiangning and Yan, Shuicheng},
journal={arXiv preprint arXiv:2606.03168},
year={2026}
}
yinan.chen@zju.edu.cn
JAVEdit is built upon and vendors components from many excellent open-source projects, including LTX-Video, Qwen3-Omni, Qwen3, Koala-36M, UTMOSv2, LatentSync, SAM-Audio, HunyuanImage-3.0, Wan2.2-Animate, OpenVE-3M, HunyuanVideo-Foley, MiniMax-Remover, and SAM3. We sincerely thank the authors for their contributions to the community.
6 commits
Python
100.0%
JAVEdit: Joint Audio-Visual Instruction-Guided Video Editing with Agentic Data Curation
See the code
Yinan Chen 1★
·
Chuming Lin 2★
·
Zhennan Chen 3
·
Yuxiang Zeng 4
·
Junwei Zhu 2
·
Yali Bi 1
·
Xijie Huang 5
·
Chengming Xu 2
·
Donghao Luo 2
·
Zhucun Xue 1
·
Xiaobin Hu 6
·
Chengjie Wang 2
·
Yong Liu 1
·
Jiangning Zhang 1,2📧
·
Shuicheng Yan 6
1Zhejiang University
2YouTu Lab, Tencent
3Nanjing University
4University of Auckland
5Fudan University
6National University of Singapore
This repository is the official implementation of JAVEdit: Joint Audio-Visual Instruction-Guided Video Editing with Agentic Data Curation. It collects the dataset, model, and benchmark resources for instruction-guided joint audio-visual video editing. If you find any work missing or have any suggestions, feel free to open a pull request or contact us.
While instruction-based video editing has made significant progress, joint audio-visual editing remains constrained by the absence of dedicated datasets and benchmarks. We bridge this gap with three tightly-coupled contributions:
Data construction pipeline of JAVEdit-100k. Source videos from OpenHumanVid, VIDGEN-1M, and VGGSound undergo four stages: (1) Preprocessing — basic quality filtering (SyncNet A/V-sync + Koala-36M VTSS aesthetics), dense captioning (Qwen3-Omni), and audio source separation (SAM-Audio) into disentangled voice / music / ambient streams; (2) Instruction Generation — task selection, balanced least-frequently-used topic sampling from a curated vocabulary bank, and paired visual + audio instruction generation (Qwen3-235B); (3) Editing Pipelines — four dedicated pipelines covering five categories; (4) Agent-in-the-loop Quality Control — closed-loop detect → diagnose → repair → re-check.
An Inspector agent (Gemini) examines sampled outputs and produces structured quality reports, while an Orchestrator agent (Claude) classifies failures into three levels — L1 Systemic, L2 Modular, and L3 Instance — and applies targeted fixes. Verified solutions are stored in a Problem Pattern Library for cross-pipeline reuse, raising the overall qualification rate from 36% to 83% over three rounds.
Statistical distributions of JAVEdit-100k and JAVEditBench. JAVEdit-100k is the only dataset that jointly covers audio and visual editing with free-form natural-language instructions:
| Dataset | Scale | Audio | Instruction | Agent Control | Resolution | Frame Count |
|---|---|---|---|---|---|---|
| InsViE-1M | ~1M | ✘ | ✔ | ✘ | 1024×576 | 25 |
| Señorita-2M | ~2M | ✘ | ✔ | ✘ | 1984×1280 | 100 |
| Ditto-1M | ~1M | ✘ | ✔ | ✘ | 1280×720 | 101 |
| OpenVE-3M | ~3M | ✘ | ✔ | ✘ | 1280×720 | 65–129 |
| AVI-Edit | ~73K | ✔ | ✘ | ✘ | 1280×720 | ~240 |
| JAVEdit-100k (Ours) | ~103K | ✔ | ✔ | ✔ | 1280×720 | 121 |
git clone git@github.com:RyanChenYN/JAVEdit.git
cd JAVEdit
conda create -n javeditbench python=3.12 -y
conda activate javeditbench
pip install -r requirements.txt
System dependencies:
ffmpeg and ffprobe must be available on PATH.vllm==0.11.1; newer vLLM releases may require CUDA 13 and are not recommended for this setup.All checkpoint locations are configured in metrics/path.yml. Download the following pretrained models and update the corresponding paths:
fold0_s42_best_model.pth)latentsync_syncnet.pt). Face detection and 106-point landmarks use the insightface buffalo_l pack (det_10g.onnx + 2d106det.onnx), downloaded automatically by insightface on first run into <model_root>/models/buffalo_l/.After downloading, edit metrics/path.yml to point each entry to your local checkpoint directory. All paths are resolved relative to the location of path.yml.
The full training dataset and the JAVEditBench test set are hosted on Hugging Face:
huggingface-cli download --repo-type dataset --resume-download Coraxor/JAVEdit-100k --local-dir $YOUR_LOCAL_PATH
The benchmark metadata file benchmark_150.csv (150 rows, 147 unique videos) is already shipped with this repository at the project root, so you do not need to download it from Hugging Face. If you only need the JAVEditBench source videos for evaluation (≈437 MiB), pull the tarball alone instead of the full dataset and extract it next to the CSV (i.e., into the repo root):
# From the repo root
huggingface-cli download --repo-type dataset \
Coraxor/JAVEdit-100k benchmark_videos.tar.gz \
--local-dir .
# Extract — produces ./benchmark_videos/ with 147 .mp4 files alongside benchmark_150.csv
tar -xzf benchmark_videos.tar.gz
The CSV references each source video as a relative path benchmark_videos/<name>.mp4, so once the archive is extracted in the repo root the evaluation pipeline resolves paths automatically.
Run your own joint audio-visual editing model on the JAVEditBench source videos to produce edited (target) videos. Each edited video is matched to its source by the 32-character hash prefix in the filename, e.g.:
0a16d2122d7b9e9fe6c2a6aa65b658e6.mp4 # source
0a16d2122d7b9e9fe6c2a6aa65b658e6_0_edited_with_audio.mp4 # target
The benchmark CSV provides at least the following columns:
video,task,prompt,detailed_prompt_cn
JAVEditBench provides a unified entry point for six metrics across five dimensions:
Metric (--metric) | Dimension | Backbone |
|---|---|---|
vtss | Visual Quality | Koala-36M VTSS |
utmos | Audio Quality | UTMOSv2 |
syncnet | Audio-Visual Synchrony | LatentSync SyncNet |
instruction_compliance | Instruction Following | Qwen3-Omni |
video_fidelity | Video Fidelity | Qwen3-Omni |
av_quality | Holistic A/V Quality | Qwen3-Omni |
Run all metrics:
cd metrics
VLLM_WORKER_MULTIPROC_METHOD=spawn python evaluate.py \
--video_dir /path/to/edited_videos \
--bench_csv ../benchmark_150.csv \
--output_path /path/to/eval_results \
--metric syncnet vtss utmos av_quality instruction_compliance video_fidelity \
--num_gpus 8 \
--name javedit_eval
Run only the lightweight (non-MLLM) metrics on a single GPU:
python evaluate.py \
--video_dir /path/to/edited_videos \
--bench_csv ../benchmark_150.csv \
--metric utmos \
--num_gpus 1 \
--name javedit_utmos
Each run writes a detailed *_results.json and a *_summary.csv to --output_path; runtime logs are written to metrics/logs/. Use VLLM_WORKER_MULTIPROC_METHOD=spawn whenever the Qwen3-Omni metrics are involved.
Quantitative comparison on JAVEditBench across five evaluation dimensions. JAVEdit ranks first on five of six metrics. Best results are bolded.
| Method | Visual Quality ↑ | Audio Quality ↑ | A/V Sync ↑ | Instruction Compliance ↑ | Video Fidelity ↑ | A/V Quality ↑ |
|---|---|---|---|---|---|---|
| AVED | 0.0590 | 1.72 | 0.1641 | 2.95 | 3.87 | 2.93 |
| AVI-Edit | 0.0604 | 2.34 | 0.2721 | 3.49 | 3.89 | 3.86 |
| Sequential | 0.0563 | 2.35 | 0.2925 | 3.99 | 4.08 | 3.51 |
| JAVEdit (Ours) | 0.0596 | 2.42 | 0.3688 | 4.07 | 4.22 | 3.88 |
Compared with the strongest Sequential cascade (Kiwi-Edit + HunyuanVideo-Foley), joint modeling yields a 26% relative gain in audio-visual synchrony, validating the necessity of joint audio-visual modeling and agent-curated data.
Qualitative comparison on JAVEditBench. Rows correspond to the five editing categories; columns show the source video and the outputs of each method. JAVEdit consistently generates edits that are visually coherent, semantically faithful to the instruction, and temporally synchronized across both modalities.
If you find JAVEdit useful for your research, please consider giving a star ⭐ and citation 📝 :)
@article{chen2026javedit,
title={JAVEdit: Joint Audio-Visual Instruction-Guided Video Editing with Agentic Data Curation},
author={Chen, Yinan and Lin, Chuming and Chen, Zhennan and Zeng, Yuxiang and Zhu, Junwei and Bi, Yali and Huang, Xijie and Xu, Chengming and Luo, Donghao and Xue, Zhucun and Hu, Xiaobin and Wang, Chengjie and Liu, Yong and Zhang, Jiangning and Yan, Shuicheng},
journal={arXiv preprint arXiv:2606.03168},
year={2026}
}
yinan.chen@zju.edu.cn
JAVEdit is built upon and vendors components from many excellent open-source projects, including LTX-Video, Qwen3-Omni, Qwen3, Koala-36M, UTMOSv2, LatentSync, SAM-Audio, HunyuanImage-3.0, Wan2.2-Animate, OpenVE-3M, HunyuanVideo-Foley, MiniMax-Remover, and SAM3. We sincerely thank the authors for their contributions to the community.
6 commits
Python
100.0%