Views
No views yet
1conda create -n omnicap_if python=3.12
2conda activate omnicap_if
3pip install torch torchvision
4pip install transformers==4.57.1
5pip install accelerate
6pip install flash-attn --no-build-isolation
7pip install qwen-omni-utils[decord] -U1import torch
2from transformers import Qwen2_5OmniForConditionalGeneration, Qwen2_5OmniProcessor
3from qwen_omni_utils import process_mm_info
4
5MODEL_ID = "NJU-LINK/OmniCaptioner-IF-7B"
6VIDEO_PATH = "example_video.mp4"
7INSTRUCTION = (
8 "Please describe this video in a Markdown table with columns "
9 "'Timestamp', 'Visual Action', and 'Audio Content'. Include precise timestamps "
10 "and mention the key audio-visual events."
11)
12
13MAX_PIXELS = 297920
14VIDEO_MAX_PIXELS = 297920
15
16model = Qwen2_5OmniForConditionalGeneration.from_pretrained(
17 MODEL_ID,
18 torch_dtype=torch.bfloat16,
19 device_map="cuda",
20 attn_implementation="flash_attention_2"
21)
22processor = Qwen2_5OmniProcessor.from_pretrained(MODEL_ID)
23model.disable_talker()
24
25conversation = [
26 {
27 "role": "user",
28 "content": [
29 {"type": "text", "text": INSTRUCTION},
30 {
31 "type": "video",
32 "video": VIDEO_PATH,
33 "max_pixels": MAX_PIXELS,
34 "max_frames": 160,
35 "fps": 1.0,
36 "video_max_pixels": VIDEO_MAX_PIXELS
37 }
38 ],
39 },
40]
41
42text = processor.apply_chat_template(conversation, add_generation_prompt=True, tokenize=False)
43audios, images, videos = process_mm_info(conversation, use_audio_in_video=True)
44
45inputs = processor(
46 text=text,
47 audio=audios,
48 images=images,
49 videos=videos,
50 return_tensors="pt",
51 padding=True,
52 use_audio_in_video=True
53)
54inputs = inputs.to(model.device).to(model.dtype)
55
56with torch.inference_mode():
57 text_ids = model.generate(
58 **inputs,
59 use_audio_in_video=True,
60 return_audio=False,
61 thinker_max_new_tokens=1536,
62 talker_max_tokens=1536
63 )
64
65response = processor.decode(text_ids[0][inputs.input_ids[0].size(0):], skip_special_tokens=True)
66print(response)1@misc{wang2026omnicapifbenchmarkingimprovinginstruction,
2 title={OmniCap-IF: Benchmarking and Improving Instruction Following Abilities for Omni-Video Captioning},
3 author={Jiahao Wang and An Ping and Yanghai Wang and Yuanxing Zhang and Shihao Li and Hanyan Bian and Yichi Ren and Yize Zhang and Han Wang and Haowen Chen and Junze Li and Jiaqi Wang and Yiyang Hu and Zhuze Xu and Zijie Zhang and Jiaheng Liu},
4 year={2026},
5 eprint={2606.08572},
6 archivePrefix={arXiv},
7 primaryClass={cs.CV},
8 url={https://arxiv.org/abs/2606.08572},
9}