venice-ai
Venice AI: image/video generation, upscaling, AI editing.
Installation
npx clawhub@latest install venice-ai-mediaView 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 pythonor system Python) - Venice API key (free tier available)
- requests library (auto-installed by scripts if missing)
Setup
1. Get Your API Key
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
| Feature | Cost |
| 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 |
--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
- Use
--no-validatefor new or beta models not yet in the model list - Use
--quotefor 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_..."
- Verify your key at [venice.ai/settings/api]()
- Keys start with
vn_
- Run
--list-modelsto see available models - Use
--no-validatefor new/beta models
- Videos can take 1-5 minutes depending on model and duration
- Use
--timeout 600for longer videos - Check Venice status at [venice.ai]()
- Install it:
pip3 install requests