Image & Video GenerationDocumentedScanned

venice-ai

Venice AI: image/video generation, upscaling, AI editing.

Share:

Installation

npx clawhub@latest install venice-ai-media

View the full skill documentation and source below.

Documentation

Venice AI Media

Generate images and videos using Venice AI APIs. Venice is an uncensored AI platform with competitive pricing.

Prerequisites

  • Python 3.10+ (brew install python or system Python)
  • Venice API key (free tier available)
  • requests library (auto-installed by scripts if missing)

Setup

1. Get Your API Key

  • Create account at [venice.ai]()

  • Go to [venice.ai/settings/api]()

  • Click "Create API Key"

  • Copy the key (starts with vn_...)
  • 2. Configure the Key

    Option A: Environment variable

    export VENICE_API_KEY="vn_your_key_here"

    Option B: Clawdbot config (recommended - persists across sessions)

    Add to ~/.clawdbot/clawdbot.json:

    {
      skills: {
        entries: {
          "venice-ai-media": {
            env: {
              VENICE_API_KEY: "vn_your_key_here",
            },
          },
        },
      },
    }

    3. Verify Setup

    python3 {baseDir}/scripts/venice-image.py --list-models

    If you see a list of models, you're ready!

    Pricing Overview

    FeatureCost
    Image generation~$0.01-0.03 per image
    Image upscale~$0.02-0.04
    Image edit$0.04
    Video (WAN)~$0.10-0.50 depending on duration
    Video (Sora)~$0.50-2.00 depending on duration
    Video (Runway)~$0.20-1.00
    Use --quote with video commands to check pricing before generation.

    Quick Start

    # Generate an image
    python3 {baseDir}/scripts/venice-image.py --prompt "a serene canal in Venice at sunset"
    
    # Upscale an image
    python3 {baseDir}/scripts/venice-upscale.py photo.jpg --scale 2
    
    # Edit an image with AI
    python3 {baseDir}/scripts/venice-edit.py photo.jpg --prompt "add sunglasses"
    
    # Create a video from an image
    python3 {baseDir}/scripts/venice-video.py --image photo.jpg --prompt "gentle camera pan" --duration 5s

    Image Generation

    python3 {baseDir}/scripts/venice-image.py --prompt "a serene canal in Venice at sunset"
    python3 {baseDir}/scripts/venice-image.py --prompt "cyberpunk city" --count 4
    python3 {baseDir}/scripts/venice-image.py --prompt "portrait" --width 768 --height 1024
    python3 {baseDir}/scripts/venice-image.py --prompt "abstract art" --out-dir /tmp/venice
    python3 {baseDir}/scripts/venice-image.py --list-models
    python3 {baseDir}/scripts/venice-image.py --list-styles
    python3 {baseDir}/scripts/venice-image.py --prompt "fantasy" --model flux-2-pro --no-validate
    python3 {baseDir}/scripts/venice-image.py --prompt "photo" --style-preset "Cinematic" --embed-exif

    Key flags: --prompt, --model (default: flux-2-max), --count (uses efficient batch API for same prompt), --width, --height, --format (webp/png/jpeg), --resolution (1K/2K/4K), --aspect-ratio, --negative-prompt, --style-preset (use --list-styles to see options), --cfg-scale (prompt adherence 0-20, default 7.5), --seed (for reproducible results), --safe-mode (disabled by default for uncensored output), --hide-watermark (only use if explicitly requested - watermark supports Venice), --embed-exif (embed prompt in image metadata), --lora-strength (0-100 for applicable models), --steps (inference steps, model-dependent), --enable-web-search, --no-validate (skip model check for new/beta models)

    Image Upscale

    python3 {baseDir}/scripts/venice-upscale.py photo.jpg --scale 2
    python3 {baseDir}/scripts/venice-upscale.py photo.jpg --scale 4 --enhance
    python3 {baseDir}/scripts/venice-upscale.py photo.jpg --enhance --enhance-prompt "sharpen details"
    python3 {baseDir}/scripts/venice-upscale.py --url "" --scale 2

    Key flags: --scale (1-4, default: 2), --enhance (AI enhancement), --enhance-prompt, --enhance-creativity (0.0-1.0), --replication (0.0-1.0, preserves lines/noise, default: 0.35), --url (use URL instead of local file), --output, --out-dir

    Image Edit

    python3 {baseDir}/scripts/venice-edit.py photo.jpg --prompt "add sunglasses"
    python3 {baseDir}/scripts/venice-edit.py photo.jpg --prompt "change the sky to sunset"
    python3 {baseDir}/scripts/venice-edit.py photo.jpg --prompt "remove the person in background"
    python3 {baseDir}/scripts/venice-edit.py --url "" --prompt "colorize"

    Key flags: --prompt (required - AI interprets what to modify), --url (use URL instead of local file), --output, --out-dir

    Note: The edit endpoint uses the Qwen-Image model which has some content restrictions (unlike other Venice endpoints).

    Video Generation

    # Get price quote first (no generation)
    python3 {baseDir}/scripts/venice-video.py --quote --model wan-2.6-image-to-video --duration 10s --resolution 720p
    
    # Image-to-video (WAN 2.6 - default)
    python3 {baseDir}/scripts/venice-video.py --image photo.jpg --prompt "camera pans slowly" --duration 10s
    
    # Image-to-video (Sora)
    python3 {baseDir}/scripts/venice-video.py --image photo.jpg --prompt "cinematic" \
      --model sora-2-image-to-video --duration 8s --aspect-ratio 16:9 --skip-audio-param
    
    # Video-to-video (Runway Gen4)
    python3 {baseDir}/scripts/venice-video.py --video input.mp4 --prompt "anime style" \
      --model runway-gen4-turbo-v2v
    
    # List models (shows available durations per model)
    python3 {baseDir}/scripts/venice-video.py --list-models
    
    # Clean up a video downloaded with --no-delete
    python3 {baseDir}/scripts/venice-video.py --complete <queue_id> --model <model>

    Key flags: --image or --video (required for generation), --prompt (required for generation), --model (default: wan-2.6-image-to-video), --duration (model-dependent, see --list-models), --resolution (480p/720p/1080p), --aspect-ratio, --audio/--no-audio, --skip-audio-param, --quote (price estimate), --timeout, --poll-interval, --no-delete (keep server media), --complete (cleanup previously downloaded video), --no-validate (skip model check)

    Progress: During generation, the script shows estimated progress based on Venice's average execution time.

    Model Notes

    Use --list-models to see current availability and status. Models change frequently.

    Image: Default is flux-2-max. Common options include flux, gpt-image, and nano-banana variants.

    Video:

    • WAN models: Image-to-video, configurable audio, various durations (5s-21s)
    • Sora models: Requires --aspect-ratio, use --skip-audio-param
    • Runway models: Video-to-video transformation
    Tips:
    • Use --no-validate for new or beta models not yet in the model list
    • Use --quote for video to check pricing before generation
    • Safe mode is disabled by default (Venice is an uncensored API)

    Output

    Scripts print a MEDIA: /path/to/file line for Clawdbot auto-attach.

    Tip: Use --out-dir /tmp/venice-$(date +%s) when generating media to send via iMessage (ensures accessibility across user accounts).

    Troubleshooting

    "VENICE_API_KEY not set"

    • Check your config in ~/.clawdbot/clawdbot.json
    • Or export the env var: export VENICE_API_KEY="vn_..."
    "Invalid API key"
    • Verify your key at [venice.ai/settings/api]()
    • Keys start with vn_
    "Model not found"
    • Run --list-models to see available models
    • Use --no-validate for new/beta models
    Video stuck/timeout
    • Videos can take 1-5 minutes depending on model and duration
    • Use --timeout 600 for longer videos
    • Check Venice status at [venice.ai]()
    "requests" module not found
    • Install it: pip3 install requests