EggAPI/skills / eggapi-fashion-model
← all skills
e-commerce · clothing sellers

On-model fashion images

Turn flat-lay or hanger photos into on-model shots in several poses and scenes, with one consistent model across the set and the garment’s print, color and cut kept intact. Optional catwalk video.

Put the dress in ./dress-front.jpg and ./dress-back.jpg on a model: front, back and two street scenes

eggapi-fashion-model/SKILL.mdraw ↗

when the agent picks itPut 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 (服装模特图、上身图、虚拟试穿、模特换装、穿搭图).

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.

Edit your copy of this file to change the steps, defaults or models; the agent follows your version.

connected
mcp https://api.eggapi.ai/mcp
models ...
Claude Code · Codex · MCP
█