Back to Tool Reference
MCP

mockup.generate

Quote or dispatch mockup generation for a completed product design.

EffectwritesReachesoutside VaybelScopemockup:writePlanStarter+Rate limit20/minIdempotent

Parameters

design_idstringRequired

UUID of the product design. Must belong to the session org for session-token callers.

kindsstring[]

What to make. Individual shots — product_front, product_back, print_front, print_back, fabric_details, model_front, model_side, model_back, lifestyle_model, lifestyle_product — or groups of them: "flat" (both product photos), "detail_closeup" (every close-up this design supports), "vto" (all three model views), "lifestyle". Defaults to ["flat"]. Shots that need another image (a model photo needs the product photo of that side) pull it in and it is quoted too. A shot or group that cannot be made for this design is refused with the reason; call with dry_run=true to see every shot's availability.

audience_keystring

Required for model and lifestyle-model shots — the audience whose virtual model wears the design (see brand_dna.get for keys). Call virtual_model.generate first if no model exists.

genderstring

Optional model gender ("men" or "women") — useful for unisex products that support both. Must be a gender the audience and product share and that has a CREATED model. Omit to use the first such gender. One gender per call, matching the studio.

qualitystringDefault: "pro"

"pro" (AI-enhanced product photos) is the recommended default. Keep Pro unless the user explicitly requests Standard or basic, non-AI product flats. "standard" is the basic free-tier quality, using provider or native flats without AI enhancement. Do not choose it merely to reduce a quote or because the user asks to see front/back images. Applies to product photos, including prerequisite flats for print close-ups. To show existing artwork, use the saved design's images without generating mockups.

environment_idstring

Use an environment_options id from the quote: automatic for saved Brand DNA, a preset, or an adopted custom environment. Defaults to the brand's selected environment, then its Brand DNA. Existing product sets keep their frozen scene. Never changes the saved brand default.

dry_runbooleanDefault: false

Return the quote without creating or generating anything: every shot's availability (with a reason when unavailable), which images already exist and are reused free, which prerequisite images are added, and the credit total.

max_creditsinteger

Refuse, without generating anything, if the quote exceeds this. Pass the credits from a dry run to never pay more than you reviewed.

idempotency_keystring

Send the same key when retrying this exact call. A completed request replays for 24 hours without running or billing again.

callback_urlstring

An https URL that receives a signed completion event when the work finishes, so you can skip polling. See Webhooks.

Returns

handlestring | null

Pass to mockup.get_generation. null when every requested mockup already existed (status complete) — their ids are in mockup_ids, so no polling is needed. Call mockup.show once with those IDs to display the saved images. Absent on a dry run.

status"pending" | "complete" | "quote"
mockup_idsstring[]

The mockup uuids this call covers (dispatched or already existing).

credit_unitsint

Mockups dispatched. 0 on a no-op or dry run.

creditsint

Credits quoted for the new images. The worker bills each image only when it renders successfully, so failures aren't charged.

quoteobject

Per-shot lines (shots), new_images, existing_images, model and environment.

messagestring

Describes the mockup.get_generation(..., wait_sec=...) contract.

Request
json
{
  "name": "mockup.generate",
  "arguments": {
    "design_id": "a26c06d3-32dc-5e33-9f63-b5d453ede96a"
  }
}