Venice AI Media

v1.0.2

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.

6· 2.3k·6 current·6 all-time
byNeil@nhannah
Security Scan
VirusTotalVirusTotal
Benign
View report →
OpenClawOpenClaw
Benign
high confidence
Purpose & Capability
The name/description (image/video generation, upscaling, editing) align with required items: python3 and a Venice API key. Requested binaries and the single primary credential are appropriate and expected for a Venice API client.
Instruction Scope
SKILL.md instructions stay within the media generation scope (prompts, upscales, video options). Two items to be aware of: (1) scripts support a --url flag (they will fetch remote images) and a --enable-web-search flag — these enable additional network activity beyond calls to Venice's API; (2) the doc recommends persisting the API key in ~/.clawdbot/clawdbot.json, which stores a secret on disk. Both behaviors are plausible for the described functionality but are worth conscious consideration.
Install Mechanism
Registry install spec only asks to install Python via Homebrew (reasonable). SKILL.md also says the scripts will auto-install the 'requests' library if missing — meaning the scripts may run pip install at runtime. Runtime dependency installation is common but increases disk/network activity and should be expected.
Credentials
Only VENICE_API_KEY is required and declared as the primary credential. That single secret is proportionate to the skill's purpose. The instructions surface a recommended persistent storage location for the key (~/.clawdbot/clawdbot.json), so users should be aware the secret could be stored on disk if they follow that option.
Persistence & Privilege
No 'always: true' flag is set (good). However, disable-model-invocation is not set, so the model could invoke the skill autonomously under default policies. Given the skill has access to an API key, users who want to avoid autonomous calls should consider disabling model invocation for this skill.
Assessment
This skill appears to do what it says: a Python-based Venice.ai client needing only a Venice API key. Before installing: (1) decide whether you are comfortable storing your VENICE_API_KEY on disk (the README suggests adding it to ~/.clawdbot/clawdbot.json); (2) expect the scripts to fetch remote images if you use --url and to possibly perform web searches if you use --enable-web-search — these flags cause extra network activity beyond Venice.ai API calls; (3) the scripts may auto-install Python packages (requests) at runtime, which will write to disk and contact package registries; (4) if you do not want the AI model to call this skill autonomously (which would allow the agent to use your VENICE_API_KEY without an explicit user action), disable model invocation for the skill. If you want extra assurance, review the provided Python scripts (scripts/*.py) to confirm exactly what network endpoints are contacted and how your API key is used.

Like a lobster shell, security has layers — review code before you run it.

Runtime requirements

🎨 Clawdis
Binspython3
EnvVENICE_API_KEY
Primary envVENICE_API_KEY

Install

Install Python (brew)
Bins: python3
brew install python
latestvk97atg14z56jwa5cfb3qg177eh80kch7
2.3kdownloads
6stars
3versions
Updated 1mo ago
v1.0.2
MIT-0

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

  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

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

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 "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 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.

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

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"

"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

Comments

Loading comments...