edit-workflow

Create ghost-mannequin garment photography

Transforms one or more photographs of the same garment into a polished ghost-mannequin product image on a clean white studio background. The garment keeps its identity and construction while the source person, mannequin, hanger, environment, and other clothing are removed.

The request is processed asynchronously. Poll GET /v1/generations/{generation_id} with the returned generation_id until the generation is completed or failed.

Supply one or more garment references. Use the directional fields when the camera direction is known; each direction accepts either an existing AssetIdentifier or one raw image, but not both. Additional unlabeled references can be supplied through exactly one transport: garment_asset_identifiers, or multipart garment_images.

post/v2/tool/ghost-mannequin

Query parameters

dry_runboolean

When true, the request is validated and priced but not run: nothing is generated, stored, or billed, and no safety review is performed. The response is a PriceQuote object instead of the usual response for this endpoint. Send exactly the request you would send to generate, so the quote reflects the same options.

Request body

garment_imagesstring[]

Raw images of the same garment, up to 50 MB each. JPEG, PNG, WEBP, HEIF, AVIF, GIF, BMP, TIFF, and MPO are supported. Multipart requests only. Mutually exclusive with garment_asset_identifiers.

front_imagestring binary

Optional raw front-view garment reference, up to 50 MB. Multipart requests only. Mutually exclusive with front_asset_identifier.

back_imagestring binary

Optional raw back-view garment reference, up to 50 MB. Multipart requests only. Mutually exclusive with back_asset_identifier.

left_imagestring binary

Optional raw left-view garment reference, up to 50 MB. Multipart requests only. Mutually exclusive with left_asset_identifier.

right_imagestring binary

Optional raw right-view garment reference, up to 50 MB. Multipart requests only. Mutually exclusive with right_asset_identifier.

top_imagestring binary

Optional raw top-view garment reference, up to 50 MB. Multipart requests only. Mutually exclusive with top_asset_identifier.

bottom_imagestring binary

Optional raw bottom-view garment reference, up to 50 MB. Multipart requests only. Mutually exclusive with bottom_asset_identifier.

view'front' | 'three_quarter' | 'back' required

Camera view for the output garment.

instructionstring

Optional reconstruction guidance or identity-critical garment details for the analyzer to verify. The output always uses the workflow's clean white studio presentation.

metadatastring

Optional JSON object serialized as a string containing factual product context, such as title, brand, category, color, material, item code, and exact printed text. Metadata helps disambiguate the garment references but does not add unsupported visual features.

aspect_ratiostring

Output aspect ratio. Defaults to 1:1 when omitted. Supported values are 1:1, 3:4, 4:3, 16:9, and 9:16.

quality'low' | 'medium' | 'high'

The quality tier for the image edit. Higher tiers may improve detail and take longer to complete.

seedinteger

Optional seed for repeatable results.

privateboolean

When true or omitted, the output is kept private to your account. Set to false to publish the output to the public feed. Enterprise accounts always generate privately.

webhook_urlstring uri

HTTPS URL that Ideogram delivers the generated result to. Ideogram sends a JSON POST to this URL once all images for the request have finished generating. The body mirrors the synchronous generate response: request_id, created, and a data array containing every generated image (url, prompt, resolution, seed, is_image_safe). Each delivery is signed with Ed25519 and verifiable against the public keys at https://api.ideogram.ai/v1/.well-known/jwks.json. Must be HTTPS; private and loopback hosts and the cloud metadata service are rejected.

Example request

{
  "garment_asset_identifiers": [
    {
      "asset_type": "RESPONSE",
      "asset_id": "7uS_VESkRI6O3-sVgHQp_A"
    }
  ],
  "front_asset_identifier": {
    "asset_type": "RESPONSE",
    "asset_id": "7uS_VESkRI6O3-sVgHQp_A"
  },
  "back_asset_identifier": {
    "asset_type": "RESPONSE",
    "asset_id": "7uS_VESkRI6O3-sVgHQp_A"
  },
  "left_asset_identifier": {
    "asset_type": "RESPONSE",
    "asset_id": "7uS_VESkRI6O3-sVgHQp_A"
  },
  "right_asset_identifier": {
    "asset_type": "RESPONSE",
    "asset_id": "7uS_VESkRI6O3-sVgHQp_A"
  },
  "top_asset_identifier": {
    "asset_type": "RESPONSE",
    "asset_id": "7uS_VESkRI6O3-sVgHQp_A"
  },
  "bottom_asset_identifier": {
    "asset_type": "RESPONSE",
    "asset_id": "7uS_VESkRI6O3-sVgHQp_A"
  },
  "webhook_url": "https://api.example.com/webhooks/ideogram"
}

Response

Ghost-mannequin generation accepted for asynchronous processing.

generation_idstring required

URL-safe base64 ID accepted by the generation polling endpoint.

Example response

{
  "generation_id": "generation_id"
}

Changes