Requirements
- Target platform
- OpenClaw
- Install method
- Manual import
- Extraction
- Extract archive
- Prerequisites
- OpenClaw
- Primary doc
- SKILL.md
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.
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.
Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.
I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Tell me what you changed and call out any manual steps you could not complete.
I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Summarize what changed and any follow-up checks I should run.
Generate images and videos using Venice AI APIs. Venice is an uncensored AI platform with competitive pricing.
Python 3.10+ (brew install python or system Python) Venice API key (free tier available) requests library (auto-installed by scripts if missing)
Create account at venice.ai Go to venice.ai/settings/api Click "Create API Key" Copy the key (starts with vn_...)
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", }, }, }, }, }
python3 {baseDir}/scripts/venice-image.py --list-models If you see a list of models, you're ready!
FeatureCostImage generation~$0.01-0.03 per imageImage upscale~$0.02-0.04Image edit$0.04Video (WAN)~$0.10-0.50 depending on durationVideo (Sora)~$0.50-2.00 depending on duration Use --quote with video commands to check pricing before generation.
# 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
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)
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
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).
# 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 # 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 (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.
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 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)
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).
"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
Agent frameworks, memory systems, reasoning layers, and model-native orchestration.
Largest current source with strong distribution and engagement signals.