Venice AI Media
by @nhannah
Generate, edit, and upscale images; create videos from images via Venice AI. Supports text-to-image, image-to-video (Sora, WAN), upscaling, and AI editing.
clawhub install venice-ai-mediaπ About This Skill
name: venice-ai-media description: Generate, edit, and upscale images; create videos from images via Venice AI. Supports text-to-image, image-to-video (Sora, WAN), upscaling, and AI editing. homepage: https://venice.ai metadata: { "clawdbot": { "emoji": "π¨", "requires": { "bins": ["python3"], "env": ["VENICE_API_KEY"] }, "primaryEnv": "VENICE_API_KEY", "notes": "Requires Python 3.10+", "install": [ { "id": "python-brew", "kind": "brew", "formula": "python", "bins": ["python3"], "label": "Install Python (brew)", }, ], }, }
Venice AI Media
Generate images and videos using Venice AI APIs. Venice is an uncensored AI platform with competitive pricing.
Prerequisites
brew install python or system Python)Setup
1. Get Your API Key
1. Create account at venice.ai
2. Go to venice.ai/settings/api
3. Click "Create API Key"
4. 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
| 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 |
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 2Edit 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 "https://example.com/image.jpg" --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 "https://example.com/image.jpg" --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 720pImage-to-video (WAN 2.6 - default)
python3 {baseDir}/scripts/venice-video.py --image photo.jpg --prompt "camera pans slowly" --duration 10sImage-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-paramList models (shows available durations per model)
python3 {baseDir}/scripts/venice-video.py --list-modelsClean up a video downloaded with --no-delete
python3 {baseDir}/scripts/venice-video.py --complete --model
Key flags: --image (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:
--aspect-ratio, use --skip-audio-paramTips:
--no-validate for new or beta models not yet in the model list--quote for video to check pricing before generationOutput
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"
~/.clawdbot/clawdbot.jsonexport VENICE_API_KEY="vn_...""Invalid API key"
vn_"Model not found"
--list-models to see available models--no-validate for new/beta modelsVideo stuck/timeout
--timeout 600 for longer videos"requests" module not found
pip3 install requestsπ‘ Examples
# 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 2Edit 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
βοΈ Configuration
1. Get Your API Key
1. Create account at venice.ai
2. Go to venice.ai/settings/api
3. Click "Create API Key"
4. 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!
π Tips & Best Practices
"VENICE_API_KEY not set"
~/.clawdbot/clawdbot.jsonexport VENICE_API_KEY="vn_...""Invalid API key"
vn_"Model not found"
--list-models to see available models--no-validate for new/beta modelsVideo stuck/timeout
--timeout 600 for longer videos"requests" module not found
pip3 install requests