Model reference · open weights
Video-As-Prompt-CogVideoX is an open-weight video model from ByteDance. Video-As-Prompt-CogVideoX-5B (BF16) weighs 32.6 GB; the smallest configuration that runs it is RTX 4090 24 GB.
Summary of the ByteDance/Video-As-Prompt-CogVideoX-5B model card, 2026-10-01
What it is
| Released by | ByteDance |
|---|---|
| Released | 2025-10-22 |
| Parameters | 11.1B |
| VRAM | 32.6 GB for the weights |
What it runs on
| Card | Weights | Memory |
|---|---|---|
| RTX 3060 12 GB … RTX 4060 Ti 16 GB | does not fit | |
| RTX 3090 24 GB | tight (encoders offloaded) | 23.4 GB |
| RTX 4090 24 GB | tight (encoders offloaded) | 23.4 GB |
| RTX 5090 32 GB | fits (encoders offloaded) | 31.0 GB |
| L40S 48 GB | fits | 44.0 GB |
| A100 80 GB | fits | 78.2 GB |
| H100 80 GB | fits | 78.1 GB |
| RTX PRO 6000 Blackwell 96 GB | fits | 93.8 GB |
| DGX Spark (GB10) 128 GB unified | fits | 107 GB |
| H200 141 GB | fits | 138 GB |
| B200 180 GB | fits | 176 GB |
From the model card
Core idea: Given a reference video with wanted semantics as a video prompt, Video-As-Prompt animate a reference image with the same semantics as the reference video. controls autoplay playsinline muted loop src="https://github.com/user-attachments/assets/2e440927-5b16-4761-ad1f-46ac93de2d8e" width="60%"
Your browser does not support HTML5 video. Here is a link to the video instead.
Welcome to see our project page for more interesting results!
To demonstrate cross-architecture generality, Video-As-Prompt provides two variants, each with distinct trade-offs:
CogVideoX-I2V-5B
Wan2.1-I2V-14B
👏👏👏 Contributions and further optimization from the community are welcome.
| Model | Date | Size | Huggingface |
|---|---|---|---|
| Video-As-Prompt (CogVideoX-I2V-5B) | 2025-10-15 | 5B (Pretrained DiT) + 5B (VAP) | Download |
| Video-As-Prompt (Wan2.1-I2V-14B) | 2025-10-15 | 14B (Pretrained DiT) + 5B (VAP) | Download |
Please download the pre-trained video DiTs and our corresponding Video-As-Prompt models, and structure them as follows
ckpts/
├── Video-As-Prompt-CogVideoX-5B/
├── scheduler
├── vae
├── transformer
├── ...
├── Video-As-Prompt-Wan2.1-14B/
├── scheduler
├── vae
├── transformer
├── ...
Video-As-Prompt supports Macos, Windows, Linux. You may follow the next steps to use Video-As-Prompt via:
We test our model with Python 3.10 and PyTorch 2.7.1+cu124.
conda create -n video_as_prompt python=3.10 -y
conda activate video_as_prompt
pip install -r requirements.txt
pip install -e ./diffusers
conda install -c conda-forge ffmpeg -y
We have published the VAP-Data dataset used in our paper on VAP-Data. Please download it and put it in the data folder. The structure should look like:
data/
├── VAP-Data/
│ ├── vfx_videos/
│ ├── vfx_videos_hq/
│ ├── vfx_videos_hq_camera/
│ ├── benchmark/benchmark.csv
│ ├── vap_data.csv
We mainly implement our code based on diffusers and finetrainers for their modular design.
Below is a minimal demo of our CogVideoX-I2V-5B variant. The full code can be found in infer/cog_vap.py. The WAN2.1-I2V-14B variant is similar and can be found in infer/wan_vap.py.
import torch
from diffusers import (
AutoencoderKLCogVideoX,
CogVideoXImageToVideoMOTPipeline,
CogVideoXTransformer3DMOTModel,
)
from diffusers.utils import export_to_video, load_video
from PIL import Image
vae = AutoencoderKLCogVideoX.from_pretrained("ByteDance/Video-As-Prompt-CogVideoX-5B", subfolder="vae", torch_dtype=torch.bfloat16)
transformer = CogVideoXTransformer3DMOTModel.from_pretrained("ByteDance/Video-As-Prompt-CogVideoX-5B", torch_dtype=torch.bfloat16)
pipe = CogVideoXImageToVideoMOTPipeline.from_pretrained(
"ByteDance/Video-As-Prompt-CogVideoX-5B", vae=vae, transformer=transformer, torch_dtype=torch.bfloat16
).to("cuda")
ref_video = load_video("assets/videos/demo/object-725.mp4")
image = Image.open("assets/images/demo/animal-2.jpg").convert("RGB")
idx = torch.linspace(0, len(ref_video) - 1, 49).long().tolist()
ref_frames = [ref_video[i] for i in idx]
output_frames = pipe(
image=image,
ref_videos=[ref_frames],
prompt="A chestnut-colored horse stands on a grassy hill against a backdrop of distant, snow-dusted mountains. The horse begins to inflate, its defined, muscular body swelling and rounding into a smooth, balloon-like form while retaining its rich, brown hide color. Without changing its orientation, the now-buoyant horse lifts silently from the ground. It begins a steady vertical ascent, rising straight up and eventually floating out of the top of the frame. The camera remains completely static throughout the entire sequence, holding a fixed shot on the landscape as the horse transforms and departs, ensuring the verdant hill and mountain range in the background stay perfectly still.",
prompt_mot_ref=[
"A hand holds up a single beige sneaker decorated with gold calligraphy and floral illustrations, with small green plants tucked inside. The sneaQuoted from the model card on Hugging Face. The full card is behind the Hugging Face link above.
Running it yourself
Rent a machine by the hour. Runs as it is with diffusers, on the machine, in Python.
# on your rented machine: pip install diffusers transformers accelerate ftfy
import torch
from diffusers import DiffusionPipeline
from diffusers.utils import export_to_video
pipe = DiffusionPipeline.from_pretrained("ByteDance/Video-As-Prompt-CogVideoX-5B", torch_dtype=torch.bfloat16).to("cuda")
frames = pipe(prompt="a drone shot over a forest at sunrise").frames[0]
export_to_video(frames, "/workspace/out.mp4", fps=16)