agentsclimarketplace

Vllm omni video gen

Skill hsliuustc0106/vllm-omni-skills/skills/vllm-omni-video-gen

Generate videos with vLLM-Omni using Wan2.2 and other video generation models. Use when generating videos from text, creating videos from images, configuring video generation parameters, or working with text-to-video or image-to-video models.From its SKILL.md

Install
npx -y skills add hsliuustc0106/vllm-omni-skills --skill vllm-omni-video-gen

Assembled from the repository path, not quoted from the project. Check it against their README if it does not work.

SKILL.md

4.4 KB, as published. Nobody here has run it

vLLM-Omni Video Generation

Overview

vLLM-Omni supports video generation through diffusion transformer models, primarily the Wan2.2 family. Three modes are supported: text-to-video (T2V), image-to-video (I2V), and text+image-to-video (TI2V).

Supported Video Models

ModelHF IDModeMin VRAM
Wan2.2-T2V-A14BWan-AI/Wan2.2-T2V-A14B-DiffusersText-to-video48 GB
Wan2.2-TI2V-5BWan-AI/Wan2.2-TI2V-5B-DiffusersText+Image-to-video24 GB
Wan2.2-I2V-A14BWan-AI/Wan2.2-I2V-A14B-DiffusersImage-to-video48 GB
NextStep-1.1stepfun-ai/NextStep-1.1Text-to-video24 GB
Helios-Distillednaver-ai/Helios-DistilledText-to-video24 GB
daVinci-MagiHumanSII-GAIR/daVinci-MagiHuman-Base-1080pImage-to-video + audio24 GB

daVinci-MagiHuman is an image-to-video model that also generates audio (44100 Hz, 25 fps). Use --enable-diffusion-pipeline-profiler to get per-stage timing (stage_durations) and peak memory (peak_memory_mb) in video responses (async poll JSON or sync HTTP headers).

Quick Start: Text-to-Video

Offline

from vllm_omni.entrypoints.omni import Omni

omni = Omni(model="Wan-AI/Wan2.2-T2V-A14B-Diffusers")
outputs = omni.generate("A dog running on a beach at sunset")
video = outputs[0].request_output[0].video
video.save("dog_beach.mp4")

Online API

vllm serve Wan-AI/Wan2.2-T2V-A14B-Diffusers --omni --port 8091

curl -s http://localhost:8091/v1/chat/completions \
  -H "Content-Type: application/json" \
  -d '{
    "messages": [{"role": "user", "content": "A dog running on a beach at sunset"}],
    "extra_body": {
      "num_inference_steps": 50,
      "guidance_scale": 5.0,
      "seed": 42
    }
  }'

Image-to-Video

Animate a static image into a video:

from vllm_omni.entrypoints.omni import Omni

omni = Omni(model="Wan-AI/Wan2.2-I2V-A14B-Diffusers")
outputs = omni.generate(
    prompt="The person starts walking forward",
    images=["portrait.jpg"],
)
outputs[0].request_output[0].video.save("animated.mp4")

Text+Image-to-Video (TI2V)

Combine a text description and reference image:

omni = Omni(model="Wan-AI/Wan2.2-TI2V-5B-Diffusers")
outputs = omni.generate(
    prompt="The city lights up at night with moving traffic",
    images=["cityscape.jpg"],
)
outputs[0].request_output[0].video.save("city_night.mp4")

Video Generation Parameters

ParameterDescriptionTypical Range
num_inference_stepsDenoising steps30-100
guidance_scaleCFG scale3.0-7.0
seedRandom seedAny integer
num_framesNumber of output framesModel-dependent
fpsFrames per second8-24

Performance Considerations

Video generation is significantly more compute-intensive than image generation:

  • A single video may take 2-10 minutes on a single GPU
  • Multi-GPU tensor parallelism strongly recommended for 14B models
  • Multi-thread weight loading (enabled by default) significantly reduces cold-start time for Wan2.2 models
  • Enable TeaCache for diffusion acceleration (see vllm-omni-perf skill)
  • CPU offloading can help fit larger models:
    vllm serve <model> --omni --cpu-offload-gb 20
    
  • For multi-transformer pipelines (e.g., Wan2.2-T2V has transformer + transformer-2), the sequential offloader now offloads all other DiTs to CPU when any one is running. This allows Wan2.2-T2V to fit on 64GB GPUs with --enable-cpu-offload --tensor-parallel-size 2.

Troubleshooting

Generation too slow: Use tensor parallelism or enable TeaCache/Cache-DiT acceleration. Helios supports cache-dit (--enable-cache-dit) for ~20% speedup.

LTX-2 error with diffusers>=0.38.0: Fixed in #3661. Text encoder normalization moved into the diffusers connector. Update vllm-omni to the latest version when upgrading diffusers to 0.38.0+.

Out of memory: Reduce resolution/frame count or use CPU offloading.

Choppy output: Increase num_inference_steps and num_frames.

References

Keep looking

Skills are one crate of 627,801. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.