AI Image Generation and Editing
zhayujie/CowAgent
Generates or edits images from text prompts through a Python script that picks an image backend based on which API keys are configured.
Transform existing images with Venice. An agent skill from veniceai/skills.
$ npx skills add veniceai/skills --skill venice-image-edit -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install veniceai/skills venice-image-edit --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/veniceai/skills.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/venice-image-edit .claude/skills/venice-image-edit && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "venice-image-edit" agent skill from https://github.com/veniceai/skills/tree/main/skills/venice-image-edit into .claude/skills/venice-image-edit/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "venice-image-edit", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/veniceai/skills/tree/main/skills/venice-image-editType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add veniceai/skills --skill venice-image-edit -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install veniceai/skills venice-image-edit --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/veniceai/skills.git skills-src && mkdir -p .agents/skills && cp -r skills-src/skills/venice-image-edit .agents/skills/venice-image-edit && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "venice-image-edit" agent skill from https://github.com/veniceai/skills/tree/main/skills/venice-image-edit into .agents/skills/venice-image-edit/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "venice-image-edit", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add veniceai/skills --skill venice-image-edit -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install veniceai/skills venice-image-edit --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/veniceai/skills.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/skills/venice-image-edit .cursor/skills/venice-image-edit && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "venice-image-edit" agent skill from https://github.com/veniceai/skills/tree/main/skills/venice-image-edit into .cursor/skills/venice-image-edit/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "venice-image-edit", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/veniceai/skills.git --path skills/venice-image-edit--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add veniceai/skills --skill venice-image-edit -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install veniceai/skills venice-image-edit --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/veniceai/skills.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/skills/venice-image-edit .gemini/skills/venice-image-edit && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "venice-image-edit" agent skill from https://github.com/veniceai/skills/tree/main/skills/venice-image-edit into .gemini/skills/venice-image-edit/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "venice-image-edit", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install veniceai/skills venice-image-editInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add veniceai/skills --skill venice-image-edit -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/veniceai/skills.git skills-src && mkdir -p .github/skills && cp -r skills-src/skills/venice-image-edit .github/skills/venice-image-edit && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "venice-image-edit" agent skill from https://github.com/veniceai/skills/tree/main/skills/venice-image-edit into .github/skills/venice-image-edit/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "venice-image-edit", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add veniceai/skills --skill venice-image-edit -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install veniceai/skills venice-image-edit --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/veniceai/skills.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/skills/venice-image-edit .opencode/skills/venice-image-edit && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "venice-image-edit" agent skill from https://github.com/veniceai/skills/tree/main/skills/venice-image-edit into .opencode/skills/venice-image-edit/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "venice-image-edit", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
venice-image-editTransform existing images with Venice. An agent skill from veniceai/skills.
Venice Image Edit is an agent skill from veniceai/skills. Transform existing images with Venice. Covers POST /image/edit (prompt-driven single-image edit), /image/multi-edit (compose several images, per-model input cap, quality tiers), /image/upscale (2x–4x upscale with creativity), and /image/background-remove (transparent PNG cutout). Input formats (base64, data URI, URL, multipart), per-model constraints from GET /models?type=inpaint, response headers, and errors.
Its SKILL.md is about 4.1k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.
It sits in Media & Creative, covering Image editing. The repository describes itself as: Agent Skills for the Venice.ai API. One folder per surface area, each with a SKILL.md for agent runtimes (Cursor, Claude, Codex, etc.). The licence is MIT.
Read from SKILL.md and the folder at commit 5eaeac5. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
Shell commands in SKILL.md call:
curlFrom the folder's file list and the shell code blocks in SKILL.md.
Hosts in commands or code, which the agent is likely to contact:
api.venice.aiFrom URLs in SKILL.md, links to its own repository left out.
Names these keys or tokens, usually read from environment variables:
VENICE_API_KEYFrom names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Venice Image Edit loads about 4.1k tokens when it runs. Until then it costs about 108 tokens; SKILL.md has 1,759 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from veniceai/skills at commit 5eaeac5, republished under its MIT licence (© veniceai). 1,759 words, ~4,148 tokens.
.claude/skills/venice-image-edit/SKILL.md (or your agent's skills folder).Four endpoints, all operating on existing images:
| Endpoint | Purpose |
|---|---|
POST /image/edit | Transform one image with a text prompt. JSON or multipart/form-data. |
POST /image/multi-edit | Composite / layer several images with a single prompt. JSON or multipart/form-data. |
POST /image/upscale | Upscale 2×–4×. JSON or multipart/form-data. |
POST /image/background-remove | Produce a transparent PNG cutout. JSON or multipart/form-data. |
For text-to-image generation, see venice-image-generate.
/image/edit | /image/multi-edit | /image/upscale | /image/background-remove | |
|---|---|---|---|---|
| JSON input | image: raw base64, data URI, or http(s):// URL | images[]: raw base64, data URI, or http(s):// URLs | image: raw base64 only | image (base64 / data URI) or image_url |
| Multipart input | one file in image | files in repeated images parts | one file in image | one file in image |
| Min size | ≥ 65,536 px total and ≥ 64 px per side | same | same | not checked by Venice |
| Max size | ≤ 33,177,600 px (7680×4320) | same | output ≤ 16,777,216 px (4096×4096) | not checked by Venice |
| Response | edited image bytes (PNG/JPEG/WebP) | edited image bytes | image/png | image/png with alpha |
| Model | model (default firered-image-edit) | modelId (default firered-image-edit) | fixed: upscaler | fixed: bria-bg-remover |
413). URLs fetched for edit and multi-edit are capped at 25 MB too. JSON bodies over 35 MB (for example a large base64 image) return 413.400).return_binary field (that flag only exists on /image/generate).400. /image/upscale ignores unknown fields.anon_user_id (printable ASCII, ≤ 128 chars, no ||) for upstream end-user attribution.curl "https://api.venice.ai/api/v1/models?type=inpaint"Per model, read model_spec.constraints:
aspectRatios[] — allowed aspect_ratio values. Not every model lists auto (e.g. gpt-image-2-edit, qwen-image-2-edit); wan-2-7-pro-edit only accepts auto.resolutions[] + defaultResolution — present when the model accepts resolution.qualities[] + defaultQuality — present when the model accepts quality (multi-edit only).promptCharacterLimit — enforced per model (1,500 for firered-image-edit, up to 32,768 for Nano Banana edits).combineImages — false means the model takes exactly one input image.maxInputImages — input-image cap for multi-edit. When it's absent and combineImages is true, the cap is 3.supportsOptimizePromptThinking — whether disable_prompt_optimization_thinking does anything.Pricing: pricing.inpaint.usd per edit, pricing.resolutions[tier] / pricing.quality[tier][level] on tiered models, and pricing.inputImages (included + additional.usd per extra image) on models that charge per additional input image. When included is 0 (e.g. qwen-image-3-edit, the Grok Imagine edits), every input image is surcharged, including the single image on /image/edit.
Representative edit IDs today (the list changes often, so read it from /models): firered-image-edit (default), qwen-image-3-edit, qwen-image-3-pro-edit, nano-banana-2-edit, nano-banana-pro-edit, gpt-image-2-5-flare-edit, gpt-image-2-5-sunburst-edit, gpt-image-2-edit, seedream-v5-pro-edit, seedream-v5-lite-edit, muse-image-edit, flux-2-max-edit, grok-imagine-image-2-0-edit, luma-uni-1-edit (single image only). The old qwen-edit ID still works as an alias and runs qwen-edit-uncensored.
/image/editEdit one image with a short, descriptive prompt.
curl https://api.venice.ai/api/v1/image/edit \
-H "Authorization: Bearer $VENICE_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "qwen-image-3-edit",
"prompt": "Change the color of the sky to a sunrise",
"image": "https://example.com/photo.jpg",
"aspect_ratio": "16:9",
"resolution": "2K",
"safe_mode": true
}'Multipart equivalent: send image as a file part and the other fields as text parts (-F image=@photo.jpg -F prompt=... -F model=...). Only one file is allowed.
| Field | Notes |
|---|---|
model | Default firered-image-edit. Must be an ID from GET /models?type=inpaint (otherwise 400 Invalid model id). modelId is still accepted as a deprecated alias; model wins if both are sent. |
prompt | Required. ≤ the model's promptCharacterLimit (hard ceiling 32,768). Short and specific works best. |
image | Required. See the shared rules for accepted input formats. |
aspect_ratio | Optional: auto, 1:1, 3:2, 16:9, 21:9, 9:16, 2:3, 3:4, 4:3, 4:5. Must be in the model's constraints.aspectRatios, or you get 400. Omit it (or send auto where listed) to infer from the input image. |
resolution | Optional, e.g. "1K", "2K", "4K". Must be in the model's constraints.resolutions. Sending any resolution to a model without resolutions is a 400 on this endpoint. Defaults to the model's defaultResolution. |
output_format | Optional jpeg (or jpg) | png | webp. When omitted: PNG for 1K (or no resolution), JPEG for 2K/4K. |
enhance_prompt | Optional bool, default false. Rewrites your prompt against the input image before editing. Adds up to ~30 s and a $0.04 charge when a rewrite is produced. The rewritten prompt comes back URL-encoded in the x-venice-enhanced-prompt response header. |
disable_prompt_optimization_thinking | Optional bool. Only honored by models with supportsOptimizePromptThinking: true; ignored elsewhere. |
safe_mode | Default true; blurs adult content. |
There is no quality field on /image/edit; sending it is a 400, and quality-tier models are billed at their defaultQuality. To pick a quality tier (GPT Image models, ideogram-v4-5-edit), use /image/multi-edit with a single image.
Good prompts: "remove the tree", "add sunglasses to the cat", "make the sky a vivid orange sunrise".
/image/multi-editCombine several images into one with a prompt. The first image is the base; the rest are layers or references. Minimum 1 image. The maximum is per model: constraints.maxInputImages (6 on most current models), 3 if that field is absent, and 1 when combineImages is false.
Field name:
/image/multi-edittakesmodelId, notmodel. Sendingmodelis a400(unknown field).
{
"modelId": "nano-banana-2-edit",
"prompt": "Place the person from image 2 onto the beach in image 1",
"images": [
"https://example.com/beach.jpg",
"data:image/png;base64,iVBOR..."
],
"resolution": "2K",
"safe_mode": true
}POST /image/multi-edit
Content-Type: multipart/form-data
--boundary
Content-Disposition: form-data; name="modelId"
nano-banana-2-edit
--boundary
Content-Disposition: form-data; name="prompt"
Place the person from image 2 onto the beach in image 1
--boundary
Content-Disposition: form-data; name="images"; filename="base.jpg"
Content-Type: image/jpeg
<bytes>
--boundary
Content-Disposition: form-data; name="images"; filename="subject.png"
Content-Type: image/png
<bytes>
--boundary--Multipart accepts only file parts for images (no URLs or base64), and at most 10 files at the transport layer.
| Field | Notes |
|---|---|
modelId | Default firered-image-edit. Must be an inpaint model ID. |
prompt | Required. ≤ the model's promptCharacterLimit. |
images | Required, 1..per-model max. More than one image on a combineImages: false model (e.g. luma-uni-1-edit) is a 400. |
aspect_ratio | Optional, same enum as /image/edit. Must be in the model's aspectRatios. auto or omitted infers it from the first image. |
resolution | Optional. Must be in the model's resolutions if it has any. Silently dropped for models without resolutions (unlike /image/edit). Defaults to defaultResolution. |
quality | Optional low | medium | high, for models with constraints.qualities (GPT Image 2 / 2.5 edits, ideogram-v4-5-edit; Grok Imagine 2.0 edit takes low/medium). A value outside the list is 400; ignored on other models. Omitted → defaultQuality. Changes the price. |
output_format | Optional jpeg/jpg | png | webp. Omitted → PNG for 1K, JPEG for 2K/4K. |
enhance_prompt | Optional bool, default false. Same behavior, $0.04 charge, and x-venice-enhanced-prompt header as /image/edit. |
disable_prompt_optimization_thinking | Optional bool. |
safe_mode | Default true. |
| Header | Meaning |
|---|---|
Content-Type | Detected from the output bytes (image/png, image/jpeg, or image/webp). |
x-venice-model-id, x-venice-model-name | The model that ran. |
x-venice-is-blurred | "true" if safe_mode blurred the output. |
x-venice-is-content-violation | Always "false" on a 200. Flagged edits return 422 instead (see errors). |
x-venice-enhanced-prompt | URL-encoded rewritten prompt (only when enhance_prompt produced one). |
x-venice-model-deprecation-warning, x-venice-model-deprecation-date, x-venice-deprecated, x-venice-deprecated-replacement | Deprecation signals for the model. |
/image/upscaleUpscale 2×–4× with Venice's private upscaler (model ID upscaler). It takes three fields.
curl https://api.venice.ai/api/v1/image/upscale \
-H "Authorization: Bearer $VENICE_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"image": "iVBORw0KGgo...",
"scale": 4,
"creativity": 0.01
}'| Field | Type | Default | Notes |
|---|---|---|---|
image | raw base64 string (JSON) or file (multipart field image) | — | Required. URLs are not accepted. ≥ 65,536 px and < 25 MB. |
scale | number, 2–4 | 2 | Documented as 2 or 4. Anything below 2 (including the old scale: 1) is a 400. If width × height × scale² would exceed 16,777,216 px, the scale is reduced automatically. If no real upscale fits, you get a 400. |
creativity | number | 0.01 | How much detail and texture the upscaler adds. Clamped to 0–0.02, so 0.5 behaves as 0.02. null is coerced to 0. |
Response: image/png bytes. Every successful upscale is charged.
Billing (from /models pricing.upscale): $0.02 when the effective scale is ≤ 2, $0.08 when it is above 2. For example, scale: 3 bills at the 4× rate.
Breaking change (upscaler rewrite): the old
enhance,enhanceCreativity,enhancePrompt, andreplicationfields no longer do anything. They are silently ignored, not rejected, so remove them to avoid confusion.creativityis notenhanceCreativityrenamed: its range is only 0–0.02, so an oldenhanceCreativity: 0.5sent ascreativity: 0.5just behaves as0.02(the max).
/image/background-removeProduce a transparent PNG cutout with bria-bg-remover (an anonymized model, $0.03 per call per /models).
# With base64 (raw or data URI)
curl https://api.venice.ai/api/v1/image/background-remove \
-H "Authorization: Bearer $VENICE_API_KEY" \
-H "Content-Type: application/json" \
-d '{"image": "iVBOR..."}'
# With a URL
curl https://api.venice.ai/api/v1/image/background-remove \
-H "Authorization: Bearer $VENICE_API_KEY" \
-H "Content-Type: application/json" \
-d '{"image_url": "https://example.com/photo.jpg"}'
# With a file
curl https://api.venice.ai/api/v1/image/background-remove \
-H "Authorization: Bearer $VENICE_API_KEY" \
-F image=@photo.jpgimage (non-empty base64; raw base64 is treated as PNG) or image_url. Sending both, neither, or an empty/whitespace image is a 400.image. image_url is not accepted in multipart.image/png with alpha, plus x-venice-model-id / x-venice-model-name headers.| Code | Cause |
|---|---|
400 | Bad params: schema violation or unknown field, invalid or corrupt image, image too small, multi-edit image over 8K, unknown/non-edit model (Invalid model id), prompt over the model limit, aspect_ratio/resolution/quality not supported by the model, too many input images, blocked URL, unsupported Content-Type (edit, upscale, background-remove). |
401 | Auth failed. |
402 | No credentials at all (x402 payment-requirements body + PAYMENT-REQUIRED header), insufficient balance (Bearer: "Insufficient USD or Diem balance…"; x402 wallet: PAYMENT_REQUIRED body + header), or the API key's USD/DIEM spend limit is reached. |
403 | The API key's modelPrivacy setting blocks the model. A PRIVATE_ONLY key can't use anonymized models, which includes most edit models and bria-bg-remover. |
404 | Edit / multi-edit: the provider couldn't find or fetch the input media (the body carries the provider's message). |
413 | Multipart file over 25 MB, or request body too large. |
415 | /image/multi-edit only, when the body is empty. A wrong Content-Type on any route is a 400 ("'Content-Type' must be 'application/json'") — send JSON or multipart. |
422 | Content-policy violation on edit / multi-edit ({"error":"Your prompt violates the content policy of Venice.ai or the model provider"}, no code field), or an image exceeds a pixel limit during processing (e.g. an /image/edit input over 8K). |
429 | Rate limited, or the upstream provider is overloaded. |
500 | Edit / upscale / background removal failed. |
503 | Model at capacity — retry with jitter. |
A 422 content-policy rejection is normally not charged. If Venice's own moderation blocks an image after the provider already generated it, the edit is charged. See venice-errors for body shapes and retry strategy.
/image/edit uses model (modelId is a deprecated alias). /image/multi-edit accepts only modelId.resolution behaves differently per endpoint. On /image/edit, sending it to a model without resolutions is a 400. On /image/multi-edit, it is silently dropped.quality exists on /image/multi-edit but not on /image/edit.aspect_ratio: "auto" to a model whose aspectRatios don't include it (e.g. gpt-image-2-edit). Omit the field instead./image/multi-edit, send multiple parts with the same field name images. Order matters: the base image goes first./image/upscale needs raw base64 in JSON. Strip any data:image/...;base64, prefix. Edit, multi-edit, and background-remove accept data URIs./image/upscale with scale: 4 on a large input is silently reduced to stay under 16 MP, and it still bills at the 4× rate if the effective scale is above 2.enhance_prompt on edit / multi-edit bills $0.04 whenever a rewrite is produced. Leave it off for latency- or cost-sensitive calls.safe_mode: true can blur otherwise valid outputs; check x-venice-is-blurred. Switch to false only when you control the input and accept the ToS consequences.pricing.inputImages). Where included is 0, even a single-image /image/edit pays the surcharge.© veniceai, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
Just SKILL.md in skills/venice-image-edit of veniceai/skills.
Open the folder on GitHubat commit 5eaeac5
Venice Image Edit next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Venice Image Edit this skillveniceai/skills | 144 | — | ~4.1k | Automated safety check: Pass | MIT | |
| AI Image Generation and Editingzhayujie/CowAgent | 47k | — | ~1.3k | Automated safety check: Pass | MIT | |
| Generate Imageynulihao/AgentSkillOS | 618 | 10 repos | ~1.7k | Automated safety check: Notes | None | |
| GPT Image Generation CLIwuyoscar/GPT-Image2-Skill | 5.7k | — | ~2.5k | Automated safety check: Notes | MIT | |
| HyperFrames Media Useheygen-com/hyperframes | 60k | — | ~2.4k | Automated safety check: Pass | Apache-2.0 | |
| Media Useedenfunf/reelmimic | 1.9k | 1 repos | ~2k | Automated safety check: Pass | MIT |
zhayujie/CowAgent
Generates or edits images from text prompts through a Python script that picks an image backend based on which API keys are configured.
ynulihao/AgentSkillOS
Generate or edit images using AI models (FLUX, Gemini). An agent skill from ynulihao/AgentSkillOS.
wuyoscar/GPT-Image2-Skill
Generates and edits images with GPT Image 2 or 2.5 through a packaged CLI and a prompt gallery, after settling which model fits the request.
heygen-com/hyperframes
Finds, generates and edits media for HyperFrames video projects: music, sound effects, images, icons, logos, voiceovers, captions and color grades.
edenfunf/reelmimic
Agent Media OS, the single skill for every media need in a HyperFrames project.
BlockRunAI/ClawRouter
Generates or edits images through ClawRouter's local image API, with a choice of models and sizes and payment handled automatically through x402.
veniceai/skills
Picks which Venice text model to call for a prompt based on privacy tier, input modality, capabilities and cost, and decides when to escalate from a local agent.
veniceai/skills
Documents Venice's model discovery endpoints, GET /models, /models/traits and /models/compatibility_mapping, so an agent can pick a model by capability, constraint or price.
veniceai/skills
Manages Venice API keys through the /api_keys endpoints: create, list, update and revoke keys, set spending limits, and read rate limits.
veniceai/skills
High-level map of the Venice.ai API: base URL, auth modes per endpoint, endpoint categories, response headers, pricing model, error shape and versioning.
veniceai/skills
Async music, sound-effect and long-form voice generation via Venice.
veniceai/skills
Generate speech from text via POST /audio/speech, and clone a voice via POST /audio/voices.
Categories
Transform existing images with Venice. An agent skill from veniceai/skills. Venice Image Edit is an agent skill from veniceai/skills. Transform existing images with Venice.
Venice Image Edit fits situations like: tasks that involve Image editing.
Run `npx skills add veniceai/skills --skill venice-image-edit -a claude-code`. Or copy the skill folder (skills/venice-image-edit in veniceai/skills) into .claude/skills/venice-image-edit in your project. Claude Code loads it when a task matches its description.
Run `npx skills add veniceai/skills --skill venice-image-edit -a codex`. Or copy the skill folder (skills/venice-image-edit in veniceai/skills) into .agents/skills/venice-image-edit in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add veniceai/skills --skill venice-image-edit -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/venice-image-edit, .gemini/skills/venice-image-edit, .github/skills/venice-image-edit and .opencode/skills/venice-image-edit in your project.
Going by SKILL.md and its folder, Venice Image Edit needs the command-line tools its instructions call (curl) and credentials named VENICE_API_KEY. Our summary lists: A credential in VENICE_API_KEY.
SKILL.md names 1 domain. In commands or code: api.venice.ai; the agent is likely to contact it when it follows the instructions. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.
Venice Image Edit is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 4.1k tokens (SKILL.md is roughly 17k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Venice Image Edit: AI Image Generation and Editing (zhayujie/CowAgent, 47k stars), Generate Image (ynulihao/AgentSkillOS, 618 stars), GPT Image Generation CLI (wuyoscar/GPT-Image2-Skill, 5.7k stars) and HyperFrames Media Use (heygen-com/hyperframes, 60k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
veniceai (a GitHub organization) maintains it in veniceai/skills, which has 144 GitHub stars. The repository holds 22 skills in this directory. The repository was last updated on October 5, 2026.
Source: veniceai/skills on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.