---
title: "Generate pose variants of a fashion image"
method: POST
path: "/v2/workflow/model-pose-variants"
tags: ["edit-workflow"]
---

# Generate pose variants of a fashion image

`POST /v2/workflow/model-pose-variants`

Changes the model's pose or camera presentation while preserving the
source model, garment, styling, and scene. An optional pose-reference
image supplies body pose and gaze only; it does not supply identity,
clothing, or styling.

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

Supply the source as either an `AssetIdentifier` reference
(`source_asset_identifier`) or raw image bytes (`source_image`,
multipart requests only). Provide exactly one source form; supplying
both, or neither, is rejected with a 400.

## Request body

- ModelPoseVariantsRequest — Provide exactly one of `source_asset_identifier` or `source_image`. A pose reference can supplement the required instruction but cannot replace it. The edit is full-frame; scene preservation is best effort.
  - `source_asset_identifier` AssetIdentifier — An identifier for an ideogram asset.
    - `asset_type` 'ASSET' | 'CANVAS_ASSET' | 'LAYERED_ASSET' | 'RESPONSE' | 'UPLOAD', required
    - `asset_id` string, required
  - `source_image` string, binary — Fashion image to edit (max size 50MB), as raw bytes. JPEG, PNG, WEBP, HEIF, AVIF, GIF, BMP, TIFF, and MPO formats are supported. Multipart requests only. Provide exactly one of `source_asset_identifier` or `source_image`.
  - `pose_reference_asset_identifier` AssetIdentifier — An identifier for an ideogram asset.
    - `asset_type` 'ASSET' | 'CANVAS_ASSET' | 'LAYERED_ASSET' | 'RESPONSE' | 'UPLOAD', required
    - `asset_id` string, required
  - `instruction` string, required — Required plain-language pose or camera direction, such as a front-facing catalog stance or right-facing walking profile.
  - `aspect_ratio` string — Output aspect ratio. When omitted, the nearest supported ratio is derived from the source image. Supported values are `1:1`, `3:4`, `4:3`, `16:9`, and `9:16`.
  - `seed` integer — Optional seed for repeatable results.
  - `num_images` integer — Number of pose variants to create.
  - `private` boolean — If true, the user is requesting private generation. If omitted, this defaults to the user's plan entitlement. Enterprise generations are always private.
  - `webhook_url` string, 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.

## Response `200`

Pose-variant generation accepted for asynchronous processing.

- ModelPoseVariantsResponse — Acknowledgement that pose-variant generation was accepted. Poll `GET /v1/generations/{generation_id}` for status and results.
  - `generation_id` string, required — URL-safe base64 ID accepted by the generation polling endpoint.

## Other responses

- `400` — Invalid input provided.
- `401` — Unauthorized.
- `402` — Insufficient credits or quota.
- `403` — Not authorized to generate pose variants.
- `404` — An input asset was not found or is not readable.
- `422` — The instruction did not pass prompt safety checks.
- `429` — Too many requests.

---

[API](https://skmtc.net/ideogram/apis/ideogram-openapi-3-0.md) · [All operations](https://skmtc.net/ideogram/apis/ideogram-openapi-3-0/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/ideogram/ideogram-openapi-3-0/revisions/015774bae5bc/schema)
