---
name: eggapi-fashion-model
description: Put real garments on models with EggAPI - turn flat-lay, hanger or mannequin photos into on-model images in several poses and scenes, keep one consistent model across the set, and optionally add a short catwalk or turn-around video. Use when the user wants on-model photos, model shots, virtual try-on, lookbook images or fashion e-commerce images for clothing, shoes, bags or accessories (服装模特图、上身图、虚拟试穿、模特换装、穿搭图).
---

# On-model fashion images

Turn photos of a real garment into on-model images while keeping the garment exactly as it is: cut, length, color, print, logo, fabric and details. Reply in the user's language. Write model prompts in English; put any text that should appear in an image in quotes, in its target language.

## EggAPI basics

This skill uses the EggAPI MCP server, usually added under the name `eggapi`: `list_models`, `generate_image`, `generate_video` and `get_task` (in Claude Code they show up as `mcp__eggapi__*`). If these tools are missing, stop and send the user to https://eggapi.ai/connect to add the server.

- **Models.** Call `list_models` once at the start. Use the model IDs this skill names when they are listed; otherwise pick the closest model with the same `generation_type`. `unit_price_usd` is the price per image, or per second of video; `unit_price_by_resolution` overrides it for a given `resolution`.
- **Local files.** The generate tools only accept public `http(s)` URLs. Upload local files first (up to 20 MB per image):

  ```bash
  curl -sS https://api.eggapi.ai/v1/uploads \
    -H "Authorization: Bearer $EGGAPI_API_KEY" \
    -F "files[]=@./photo-1.jpg" -F "files[]=@./photo-2.jpg"
  ```

  The URLs are in `data.files[].url`. If `EGGAPI_API_KEY` is empty in the shell, ask the user to export it; never ask for the key in the chat. Uploaded files can be opened by anyone who has the URL, so say so before uploading anything private.
- **Tasks are async.** `generate_image` and `generate_video` return a `task_id` at once. Submit every independent task first, then poll `get_task` for each until `done` is true: every 5-10 s for images, 10-15 s for videos (usually 1-3 min). If a generate call already returns `urls`, no polling is needed.
- **Always pass** `aspect_ratio` (the default is 16:9) and, for video, `duration` (4-15 s). Supported ratios: `1:1`, `3:4`, `4:3`, `9:16`, `16:9`, `21:9`.
- **Edit models return one image per call.** For more variants, call again; `num_outputs` only applies to text-to-image models.
- **Output URLs work as inputs.** Pass a finished image's URL straight into the next edit or video call; no re-upload needed.
- **Save everything.** Download each output as soon as its task completes, into `eggapi-output/<project>/` under the current directory, with `curl -sSL -o <file> <url>`: some output links expire after 24 hours, and some file hosts reject other HTTP clients. Keep the extension from the URL and use descriptive file names.
- **Cost.** Show the plan with an estimated cost before generating and wait for a go-ahead, unless the user already said to go ahead. At the end, report each task's `cost` and the total.
- **Errors.** `insufficient balance`: ask the user to top up at https://eggapi.ai/dashboard. `temporarily unavailable`: switch to another model of the same type. A `failed` task: read `error`, adjust the prompt if it points at the content, and retry once.

## 1. Collect the inputs

Ask only for what is missing:

- **Garment photos**: flat lay, on a hanger or on a mannequin. Front and back, plus close-ups of any print, logo, label or hardware. For an outfit, one set of photos per item.
- **Garment facts**: type, fabric, fit (slim, regular, oversized), where the hem and sleeves end, and how it is worn (tucked in, open, belted, sleeves rolled).
- **The model**: either the user's own photo of a model, or a description to generate one (gender presentation, age range, build, skin tone, hair, expression). Sellers with a size range often want two or three body types.
- **Platform**, and **the set**. Default: front full body, back, three-quarter view, two lifestyle scenes, one detail shot on the body. A 5-8 second video on request.

If the user supplies a photo of a real person, confirm they have that person's permission to use their likeness commercially. Never dress a celebrity or other public figure.

## 2. Plan the set and confirm

Write a table with one row per output: file name, shot, pose, background or scene, aspect ratio, model, estimated cost. Most fashion stores use `3:4` portrait images; use `1:1` where the platform wants square images (Amazon, TikTok Shop) and `9:16` for video. Use `resolution: "2k"`. Wait for the go-ahead.

## 3. Lock the model first

Consistency across the set comes from one reference image of the model, not from repeating a description in every prompt.

- **User's photo**: upload it; it is the model reference.
- **Generated model**: call `generate_image` with `google/nano-banana-pro/text-to-image`, `aspect_ratio: "3:4"`, `resolution: "2k"`, `num_outputs: 3`:

  > Full-body fashion model reference photo of {description}, standing straight facing the camera, arms relaxed, neutral expression, plain light grey studio background, soft even light, wearing a simple fitted plain grey top and leggings, plain white sneakers.

  Plain, fitted clothes make the garment swap cleaner. Let the user pick one, and generate more body types the same way if needed.

Keep the chosen URL: it goes into every call below.

## 4. Generate the on-model images

Use an edit model with the model reference first, then the garment photos, as `images` (8 at most):

- Default: `google/nano-banana-pro/edit`.
- Alternative when the garment drifts: `bytedance/seedream-v5.0-pro/edit`.
- Do not use `openai/gpt-image-2/edit` here: it takes only one input image.

Refer to the images by their order in the prompt:

> The first image shows the model; the other images show one garment. Dress the model in exactly this garment: same cut, length, color, print and its placement, logo, buttons, pockets and fabric texture as in the garment photos. Keep the model's face, hair, skin tone and body exactly as in the first image. {Pose}. {Background}. {Lighting}. Full body in frame, feet included.

- **Poses**: standing front, three-quarter turn, walking mid-stride, hand in pocket, seated, looking over the shoulder.
- **Backgrounds**: seamless studio (white #FFFFFF or light grey) for main images; street, café, office, beach or park for lifestyle shots, matched to the buyer.
- **Back view**: pass the back photo of the garment and add "seen from behind".
- **Outfits**: one or two photos per item, and say how each item is worn ("the shirt is tucked into the trousers").
- **Detail on body**: "Close crop on the {collar, cuff, print, buckle}, showing it clearly", with the garment's close-up photo included.

Submit every shot together once the model is approved, then poll.

## 5. Check before delivering

If you can view images, compare every output with the garment photos: print and where it sits, logo, number of buttons and pockets, neckline, sleeve and hem length, color. Compare the face and build with the model reference across the whole set. Common fixes, then regenerate once:

- Print redrawn or simplified: add a close-up photo of the print and say "copy the print exactly, including its scale and position".
- Color shifted: name the color precisely, with its hex code if the user knows it.
- Length or fit changed: state it ("hem ends at mid-thigh", "loose oversized fit").

If an image still does not match, leave it out and say why. Never deliver an image where the garment differs from the real product: buyers return what does not match the photos.

## 6. Video (optional)

Animate an approved full-body image with `generate_video`:

- Model: `bytedance/seedance-2.5/image-to-video`; alternative `alibaba/wan-3.0/image-to-video`.
- `image`: the approved image's URL. `aspect_ratio`: `9:16` (or the image's ratio). `duration`: 5-8. `resolution`: `1080p`.
- Prompt slow, simple motion: "The model turns slowly from the front to a three-quarter view, the fabric moving naturally, static camera" or "The model walks two steps toward the camera, catwalk style". Fast motion warps prints and patterns.
- Add `parameters: {"generate_audio": true}` only when the user wants sound.

## 7. Deliver

Save to `eggapi-output/<garment-slug>/` with names such as `model-reference.png`, `front-3x4.png`, `back-3x4.png`, `three-quarter-3x4.png`, `scene-street-3x4.png`, `detail-collar-3x4.png`, `video-turn-9x16.mp4`. List each file with its purpose and cost, then the total.
