Video Generation (t2v & i2v)

AI Video generation toolkit — generate videos from text prompts or input images using multiple AI models (Veo 3.1, Veo 3, Seedance 1.5 Pro, Wan 2.5, Grok Imagine Video, etc.). Support both text-to-video and image-to-video generation. Use when users ask for video creation, AI video, text to video, image to video, animate image, video generation.

Audits

Pending

Install

openclaw skills install video-generation-t2v-i2v

Video Generation Toolkit

Generate AI videos from text prompts or images using 40+ models including Veo 3.1, Veo 3, Seedance 1.5 Pro, Wan 2.5, Grok Imagine Video, etc.

Prerequisites

IMPORTANT: This skill requires the inference.sh CLI to be installed and available in your PATH. The CLI provides access to 40+ AI video generation models.

To install inference.sh:

npm install -g @inference.sh/cli

Or visit https://inference.sh for installation instructions.

Constraints

  • Always output absolute paths for generated files so the web UI can render them.
  • Web UI auto-renders local paths: output .mp4/.mov paths as plain text (NOT in code blocks or markdown links), so the UI can render a video player inline. Same for .jpg/.png → inline image.
  • Uploaded files arrive as [附件: /absolute/path/to/file] in the message.
  • For image-to-video, images must be accessible via public URL. Provide your own API key for ImgBB/SM.MS, or ensure images are already publicly accessible.

Tool 1 — text_to_video.py (Text to Video)

Generate video from text prompt.

python nanobot/skills/VideoGeneration/scripts/text_to_video.py [options]
FlagDescription
--prompt TEXT(required) Video description in English
--model NAMEModel name, default veo-3.1
--duration NVideo duration in seconds, default 5
--width NVideo width, default 1280
--height NVideo height, default 720
--fps NFrames per second, default 24
--save-dir DIROutput dir, default ./outputs/videos
--timeout NRequest timeout in seconds, default 600
--dry-runPrint request and exit

Available models:

  • veo-3.1 - Google Veo 3.1 (recommended)
  • veo-3 - Google Veo 3
  • seedance-1.5-pro - Seedance 1.5 Pro
  • wan-2.5 - Wan 2.5
  • grok-imagine-video - Grok Imagine Video
  • omnihuman - OmniHuman

Output JSON example:

{
  "ok": true,
  "downloaded_files": ["D:/project/.../outputs/videos/video_20260315_1.mp4"]
}

Tool 2 — image_to_video.py (Image to Video)

Generate video from input image.

python nanobot/skills/VideoGeneration/scripts/image_to_video.py [options]
FlagDescription
--image PATH(required) Input image path
--prompt TEXT(required) Video description in English
--model NAMEModel name, default veo-3.1
--duration NVideo duration in seconds, default 5
--save-dir DIROutput dir, default ./outputs/videos
--upload-serviceImage upload service (smms/imgbb), default imgbb
--api-tokenAPI token for image upload (REQUIRED for ImgBB, optional for SM.MS)
--timeout NRequest timeout in seconds, default 1000
--dry-runPrint request and exit

Process:

  1. Upload local image to cloud storage (SM.MS or ImgBB) OR use a publicly accessible image URL
  2. Generate video using the image URL
  3. Download and save locally

IMPORTANT: For ImgBB, you must provide an API token via --api-token or set IMGBB_API_KEY environment variable. Get your free API key at https://api.imgbb.com/

Output JSON example:

{
  "ok": true,
  "downloaded_files": ["D:/project/.../outputs/videos/video_20260315_1.mp4"]
}