AI paper doll cutouts: transparent outfits that fit one body, via API
Make paper-doll dress-up pieces: one body pose as the anchor, each outfit as a transparent PNG using the body as a reference, then print them at a shared scale.

For paper-doll cutouts, generate the doll body once in a neutral front-facing pose, then request each outfit as a separate transparent PNG using the body as an input_reference so the shoulders and hem line up. Use background: "transparent" on openai/gpt-image-2.5 for every piece.
Add small tabs to the garments in the prompt, and keep every piece at one image size so a single scale factor prints them all.
One outfit request
Name the garment, the body pose to match and the tab. Ask for the garment alone, not the doll wearing it.
{
"model": "openai/gpt-image-2.5",
"prompt": "The red raincoat only, drawn to fit the doll in the reference at the same size and position, with a small fold-over tab at each shoulder. Same flat cartoon style. Nothing behind it, no doll, no text.",
"input_references": [
{"type": "image_url", "image_url": {"url": "https://example.com/doll-body.png"}}
],
"background": "transparent",
"output_format": "png",
"aspect_ratio": "2:3"
}Print sizes (read 2026-10-04)
At 300 dpi, a 2:3 piece of 2336x3504 pixels (the largest 2:3 size in gpt-image-2.5's documented rule) prints about 7.8 x 11.7 inches. A doll of about 6 inches fits comfortably on a letter sheet.
| Pixels | Inches at 300 dpi | Inches at 200 dpi |
|---|---|---|
| 2336x3504 | 7.79 x 11.68 | 11.68 x 17.52 |
| 1024x1536 | 3.41 x 5.12 | 5.12 x 7.68 |
Scale and tab check
This places the pieces on one sheet at a shared scale. It runs as is with placeholder rectangles.
from PIL import Image
pieces = [Image.new("RGBA", (1024, 1536), (200, 40 * i, 60, 255)) for i in range(1, 4)]
scale = 0.5
sheet = Image.new("RGBA", (3 * 540, 780), (255, 255, 255, 255))
for i, piece in enumerate(pieces):
small = piece.resize((int(piece.width * scale), int(piece.height * scale)))
sheet.paste(small, (i * 540 + 14, 6))
sheet.save("sheet.png")
print(sheet.size)Consistency
Fit drifts when the body and outfit are sent with different framing. Reuse the same aspect ratio for the body and every outfit, and regenerate only the piece that misses.
Sources
Related posts
More in Use cases
- AI pet portrait in a costume: keep the markings with a reference
Put your dog or cat in a regal costume portrait: one pet photo as an input reference, a keep-the-markings prompt, and a retry plan for the coat pattern.
- AI playing card deck art: 54 faces cost $1.62 to $11.88 on Ideogram
A 54-card deck is 54 image calls. On Ideogram 4.5 list prices that is $1.62 at low, $3.24 at medium and $11.88 at high, with the corner indices drawn in code.
- AI Polaroid or VHS photo look on your own photo: an edit call
Give a photo the Polaroid or VHS look with one reference edit instead of a filter, then draw the date stamp or caption in code so the digits are exact.
- AI postcard via API: 3:2 front art, address side drawn in code
Make a postcard front at 3:2 with GPT Image 2.5 custom pixels, then draw the back with message, address lines and a stamp box in Pillow. Code runs as written.
Written by Sume