Skip to content
Skill Authoring
Skill

/venice-product-photoshoot

Product photography workflow with Venice. Use when a user has a product (a photo of it, or a clear description) and wants brand-quality shots - studio packshots on white, lifestyle scenes, flat lays, hero banners, seasonal campaigns, transparent cutouts, and sizes for

From plugin
venice
17028 skills

Claude Code

$ npx -y skills add veniceai/skills --skill venice-product-photoshoot --agent claude-code

SKILL.md

venice-product-photoshoot.SKILL.md
name: venice-product-photoshoot
description: Product photography workflow with Venice. Use when a user has a product (a photo of it, or a clear description) and wants brand-quality shots - studio packshots on white, lifestyle scenes, flat lays, hero banners, seasonal campaigns, transparent cutouts, and sizes for marketplaces, social and web. Covers keeping the product faithful while changing the scene, edit vs multi-edit vs generate, aspect ratios per channel, upscaling final picks, and saving files. Uses venice_image_edit, venice_image_multi_edit, venice_image_remove_bg, venice_image_upscale and venice_image_generate from the Venice MCP server, or POST /image/edit, /image/multi-edit, /image/background-remove and /image/upscale.

Product photoshoot with Venice

Turns one product photo into a set of on-brand shots. The product itself should stay exactly as it is; only the scene, light and framing change. Built on [`venice-create-image`](../venice-create-image/SKILL.md); request fields are in [`venice-image-edit`](../venice-image-edit/SKILL.md).

| Shot | Venice MCP tool | REST endpoint | |---|---|---| | Same product, new scene or background | `venice_image_edit` | `POST /api/v1/image/edit` | | Product combined with a scene or style reference | `venice_image_multi_edit` | `POST /api/v1/image/multi-edit` | | Transparent cutout | `venice_image_remove_bg` | `POST /api/v1/image/background-remove` | | Final size for print or large screens | `venice_image_upscale` | `POST /api/v1/image/upscale` | | Concept shots when there is no photo yet | `venice_image_generate` | `POST /api/v1/image/generate` |

Use when

  • A user has a product photo and wants packshots, lifestyle images or ad creatives.
  • A store listing needs a clean main image plus supporting shots.
  • A campaign needs the same product in several seasonal or themed scenes.

Workflow

1. Collect the inputs

  • **The product photo:** a public `https://` URL, or a `data:` URL for edit and multi-edit. A sharp, well-lit photo on a plain background gives the best results. Through the MCP tools, cutouts and upscales need a public URL.
  • **Brand cues:** colors, mood, target customer, and any reference images whose look should be matched.
  • **Where each shot goes**, which sets the aspect ratio (see below).

2. Pick an edit model

Edit models are listed under `venice_list_models` with `type: "inpaint"`; `venice_model_details` shows each one's aspect ratios and resolutions. Without a `model`, the edit tools use `firered-image-edit`.

3. Shoot the set

Edit the original photo once per shot, with an instruction that says what changes and what must not:

| Shot | Prompt pattern | |---|---| | Studio packshot | "Place the product on a seamless pure white background with soft, even studio lighting and a subtle shadow. Keep the product, its label and colors unchanged." | | Lifestyle | "Put the product on a sunlit marble kitchen counter with blurred plants behind it, morning light. Keep the product unchanged." | | Flat lay | "Top-down flat lay of the product on linen with a few matching props around it. Keep the product unchanged." | | Hero banner | "Wide hero shot, product on the right third, clean empty space on the left for a headline, brand colors navy and coral." | | Seasonal | "Same product in a cozy winter scene with warm string lights and soft snow outside a window. Keep the product unchanged." |

To match a specific look, use `venice_image_multi_edit` with the product photo and a style or scene reference in `image_urls`, and describe how to combine them.

4. Check every shot

Compare each result with the original before showing it: label text, logo, shape, color and proportions must match. Edits can drift on small text. Redo any shot that changed the product, and never present a changed product as the real one.

5. Size for each channel

| Channel | Aspect ratio | |---|---| | Marketplace main image, social square | `1:1` | | Social feed portrait | `4:5` | | Stories, reels, vertical ads | `9:16` | | Website hero, banner | `16:9` or `21:9` |

Pass `aspect_ratio` on the edit when the model supports it. Check each marketplace's current rules for main images, such as background color, how much of the frame the product fills, and minimum size.

6. Cut out and upscale

Run `venice_image_remove_bg` for a transparent PNG to place on any background. Upscale only the final picks with `venice_image_upscale` (`scale` 2-4, low `creativity` so details stay true).

Save files

The MCP tools return images inline. To work from a local photo and save results, call the REST endpoint from a shell with `VENICE_API_KEY` set. `jq` reads the data URL from a file, because a photo of a few megabytes is too long to pass as a command-line argument:

{ printf 'data:image/jpeg;base64,'; base64 < product.jpg | tr -d '\n'; } > product.b64

code=$(jq -n --rawfile img product.b64 \
  --arg prompt "Place the product on a seamless pure white background with soft studio lighting. Keep the product, its label and colors unchanged." \
  '{model: "firered-image-edit", image: $img, prompt: $prompt, output_format: "png"}' \
| curl -sS https://api.venice.ai/api/v1/image/edit \
    -H "Authorization: Bearer $VENICE_API_KEY" \
    -H "Content-Type: application/json" \
    -d @- --output packshot.png -w '%{http_code}')
[ "$code" = 200 ] || { echo "edit failed ($code):"; cat packshot.png; rm -f packshot.png; }

The edit, multi-edit, background-removal and upscale endpoints all return the image bytes, so `--output` writes the file directly. An error body would land in the same file, which is why the snippet checks the status.

Cost

Every edit, cutout and upscale is billed per image. A full set (five shots, a cutout and two upscales) is eight calls; say so before starting, and upscale only the picks.

Errors

| Status | Likely cause | What to do | |---|---|---| | `400` | Image under the minimum size, an unsupported format (SVG), an unreacha

Read more
@veniceai
Ships withvenice

Agent Skills for the Venice API. Skills are self-contained folders of instructions (one SKILL.md each) that an LLM agent loads on demand to work correctly against a specific surface area of the API.

Stars on GitHub

Momentum

stars in total
170
Star history of veniceai/skills on GitHub, a chart by star-history.com

Other skills on venice.

venice-api-keys

venice-api-keys

Manage Venice API keys. Covers GET/POST/PATCH/DELETE /api_keys, GET /api_keys/{id}, GET /api_keys/rate_limits, GET…

@veniceai@veniceaiInstall Skill
venice-api-overview

venice-api-overview

High-level map of the Venice AI API - base URL, which auth mode each endpoint accepts (API key, x402 wallet, or none), endpoint…

@veniceai@veniceaiInstall Skill
venice-audio-music

venice-audio-music

Async music, sound-effect and long-form voice generation via Venice. Covers the /audio/quote + /audio/queue + /audio/retrieve +…

@veniceai@veniceaiInstall Skill
venice-audio-speech

venice-audio-speech

Generate speech from text via POST /audio/speech, and clone a voice via POST /audio/voices. Covers TTS models (Kokoro, Qwen 3,…

@veniceai@veniceaiInstall Skill
venice-audio-transcription

venice-audio-transcrip…

Transcribe audio files to text via POST /audio/transcriptions. Covers supported models (Parakeet, Whisper, Wizper, Scribe, xAI…

@veniceai@veniceaiInstall Skill
venice-audio-voice-changer

venice-audio-voice-cha…

Async speech-to-speech voice conversion via Venice — re-record a source recording in a different voice while keeping delivery and…

@veniceai@veniceaiInstall Skill

More skills from other plugins.

gstack-openclaw-ceo-review

gstack-openclaw-ceo-re…

Use when asked to review a plan, challenge a proposal, run a CEO review, poke holes in an approach, think bigger about scope, or…

gstack2w138k
@garrytan@garrytanInstall Skill
book-to-skill

book-to-skill

Converts books and documents (PDF, EPUB, DOCX, HTML, Markdown, plain text, RTF, MOBI/AZW with Calibre) into structured agent…

@virgiliojr94@virgiliojr94Install Skill
distilly

distilly

Set up the owner profile so a personal agent knows who it works for (first-run setup, \"get to know me\"), or distill colleague,…

@titanwings@titanwingsInstall Skill

Questions about venice-product-photoshoot.

Which coding agents can use venice-product-photoshoot?
venice-product-photoshoot installs in Claude Code, Codex, Cursor, Gemini CLI, GitHub Copilot, OpenCode and Windsurf with the skills CLI, using each agent's flag shown on this page. Flowy's auto-invocation, which fires a skill when your prompt matches, runs in Claude Code only.