Now liveThe Skillselion MCP - thousands of ranked skills, loaded into your agent mid-task. No install.Get it →
starchild-ai-agent avatar

Image Tryon

  • 1.6k installs
  • 18 repo stars
  • Updated July 27, 2026
  • starchild-ai-agent/official-skills

image-tryon is an AI-powered virtual try-on skill that renders two images (person + garment/item) into a single photorealistic preview showing how the item appears on the person.

About

Virtual try-on skill that synthesizes person and item photos to preview how garments and accessories appear on users. Supports eight try-on categories (clothing, accessory, hairstyle, makeup, glasses, hat, shoes, watch) via two models: nanopro (~25s, good quality) and gpt (~150s, best quality). Requires both person and garment/item images as local paths or URLs. Downloads results locally for reliable delivery; handles photo requirements, prompt engineering, and error cases. Best for fashion e-commerce, styling apps, and personal fashion exploration.

  • Eight dedicated try-on categories with auto-intent recognition from user queries
  • Dual-model support: nanopro (25s default) and gpt (150s for premium quality)
  • Always downloads output to local workspace; never relies on CSP-restricted fal.media URLs
  • Virtual try-on for clothing, accessories, hairstyles, makeup, glasses, hats, shoes, watches
  • Virtual try-on for clothing, accessories, hairstyles, makeup, glasses, hats, shoes, watches

Image Tryon by the numbers

  • 1,642 all-time installs (skills.sh)
  • +62 installs in the week ending Jul 28, 2026 (Skillselion tracking)
  • Ranked #178 of 1,340 Generative Media skills by installs in the Skillselion catalog
  • Data as of Jul 28, 2026 (Skillselion catalog sync)
At a glance

image-tryon capabilities & compatibility

Per-call FAL API pricing (nanopro ~$0.05-0.10 estimated, gpt ~$0.20-0.30 estimated)

Capabilities
clothing tryon · accessory preview · hairstyle simulation · makeup preview · glasses fitting · hat preview · shoes tryon · watch preview
Use cases
ui design · image generation
Runs
Remote server
Pricing
Bring your own API key
From the docs

What image-tryon says it does

Virtual try-on: clothing, accessories, hairstyles, makeup, glasses, hats, shoes, watches.
SKILL.md
npx skills add https://github.com/starchild-ai-agent/official-skills --skill image-tryon

Add your badge

Show developers this skill is listed on Skillselion. Paste this into your README.

Listed on Skillselion
Installs1.6k
repo stars18
Last updatedJuly 27, 2026
Repositorystarchild-ai-agent/official-skills

What it does

Virtual try-on for clothing, accessories, hairstyles, makeup, glasses, hats, shoes, watches

Who is it for?

Fashion e-commerce platforms, personal styling apps, retail virtual try-on, accessory preview, hairstyle/makeup consultation, watch/glasses fitting

Skip if: Single-image editing (use image-edit), portrait generation from one reference (use image-portrait), text-to-image synthesis (use image-create), fashion model generation from scratch (use image-create)

When should I use this skill?

User requests to visualize how clothing, accessories, hairstyles, makeup, glasses, hats, shoes, or watches look on them — e.g. 'try on this dress', 'put these glasses on me', 'show me with this hairstyle'

What you get

User receives realistic photorealistic preview of the item worn by them, enabling faster purchase decisions and style exploration.

  • Local PNG/JPG image file in output/images/ directory
  • Result object with success status and local_path
  • Workspace-viewable file panel display

By the numbers

  • Eight try-on categories: clothing, accessory, hairstyle, makeup, glasses, hat, shoes, watch
  • nanopro model: ~25 seconds execution time
  • gpt model: ~150 seconds execution time

Files

SKILL.mdMarkdownGitHub ↗

image-tryon

Use this skill for all virtual try-on requests on Starchild.

Covers: clothing try-on, accessory try-on, hairstyle preview, makeup preview, glasses try-on, hat try-on, shoes try-on, watch try-on.

Core principle: call the provided script. Do not re-implement proxy/billing plumbing.

Key difference from image-edit: try-on always requires two images — a person photo and a garment/item photo.

---

1. Quick start — clothing try-on (most common)

exec(open('skills/image-tryon/try_on.py').read())
result = try_on(
    person_path="uploads/person.jpg",
    garment_path="uploads/dress.jpg",
    category="clothing",
)
# result -> {"success": True, "images": [{"local_path": "output/images/..."}], ...}

The script reads both local files, base64-encodes them, and sends them to fal.ai as data URIs — no manual URL publishing needed.

2. Quick start — URL inputs

exec(open('skills/image-tryon/try_on.py').read())
result = try_on(
    person_url="https://example.com/person.jpg",
    garment_url="https://example.com/jacket.jpg",
    category="clothing",
)

3. Quick start — glasses try-on

exec(open('skills/image-tryon/try_on.py').read())
result = try_on(
    person_path="uploads/face.jpg",
    garment_path="uploads/sunglasses.jpg",
    category="glasses",
)

Delivering the result to the user — IMPORTANT

Never hand the user the raw fal.media URL. fal serves files with restrictive CSP headers. The only reliable delivery path is the already-downloaded local file:

1. Use each image's local_path (e.g. output/images/xxx.png) — the script always downloads on success. 2. Tell the user the files are saved to output/images/ and viewable in the workspace file panel. 3. On Web channel, embed inline so the user can preview in chat:

   ![try-on result](output/images/<filename>.png)

4. On Telegram / WeChat: send via send_to_telegram(file_path="output/images/...", message_type="image") or send_to_wechat(file_path="output/images/...", message_type="image").

---

4. Parameters

ParameterRequiredDefaultDescription
person_pathyes*Local workspace file path to the person's photo
person_urlyes*Public HTTPS URL of the person's photo
garment_pathyes*Local workspace file path to the garment/item photo
garment_urlyes*Public HTTPS URL of the garment/item photo
categoryno"clothing"Try-on category key (see §5)
promptnoNoneCustom prompt — overrides category default when set
modelno"nanopro"Model: "nanopro" (fast ~25s) or "gpt" (best quality ~150s)
aspect_rationo"3:4"Output ratio: 1:1, 3:4, 4:3, 9:16, 16:9

Image input rules:

  • Person image: provide person_path OR person_url (one is required).
  • Garment/item image: provide garment_path OR garment_url (one is required).
  • If both path and URL are given for the same image, path takes priority.
  • Both images are required — try-on cannot work with only one image.

Prompt priority: prompt (full override) > category default prompt.

---

5. Try-on categories

Intent recognition — what the user says → which category to use

User saysCategoryKey
"try on this dress/shirt/jacket/outfit"Clothingclothing
"put this necklace/scarf/bag on me"Accessoryaccessory
"show me with this hairstyle/hair color"Hairstylehairstyle
"apply this makeup/lipstick look"Makeupmakeup
"try on these glasses/sunglasses"Glassesglasses
"put this hat/cap/beanie on me"Hathat
"try on these shoes/sneakers/boots"Shoesshoes
"put this watch on my wrist"Watchwatch

Category details

CategoryKeyBest forPhoto requirements
ClothingclothingShirts, dresses, jackets, pants, coats, full outfitsFull body or upper body person photo
AccessoryaccessoryScarves, bags, belts, jewelry, necklaces, earringsRelevant body area visible
HairstylehairstyleHaircuts, hair colors, styling changesClear face/head photo
MakeupmakeupLipstick, eyeshadow, foundation, blush, full looksClear face close-up
GlassesglassesPrescription glasses, sunglasses, reading glassesClear face photo, front-facing
HathatCaps, beanies, fedoras, sun hats, helmetsHead and shoulders visible
ShoesshoesSneakers, heels, boots, sandals, loafersFull body or lower body photo
WatchwatchAnalog, smartwatches, luxury watchesWrist/arm visible

---

6. Model selection guide

ModelKeySpeedQualityBest for
NanoPronanopro~25sGoodDefault for all requests. Fast iteration.
GPT Image 2gpt~150sBestWhen user explicitly asks for "highest quality" or "best quality".

Decision rules: 1. Default: always use nanopro unless the user explicitly requests higher quality. 2. Use `gpt` when: user says "highest quality", "best quality", "premium", or the result needs to be photorealistic for professional use. 3. Use `nanopro` when: user wants fast results, is trying multiple items, or iterating on looks.

# Default (fast)
result = try_on(person_path="me.jpg", garment_path="dress.jpg", category="clothing")

# High quality (user requested)
result = try_on(person_path="me.jpg", garment_path="dress.jpg", category="clothing", model="gpt")

---

7. Usage examples by category

Clothing try-on

exec(open('skills/image-tryon/try_on.py').read())
result = try_on(
    person_path="uploads/person_fullbody.jpg",
    garment_path="uploads/summer_dress.jpg",
    category="clothing",
)

Accessory try-on

exec(open('skills/image-tryon/try_on.py').read())
result = try_on(
    person_path="uploads/portrait.jpg",
    garment_path="uploads/gold_necklace.jpg",
    category="accessory",
)

Hairstyle preview

exec(open('skills/image-tryon/try_on.py').read())
result = try_on(
    person_path="uploads/face.jpg",
    garment_path="uploads/bob_hairstyle.jpg",
    category="hairstyle",
)

Makeup preview

exec(open('skills/image-tryon/try_on.py').read())
result = try_on(
    person_path="uploads/face_closeup.jpg",
    garment_path="uploads/evening_makeup.jpg",
    category="makeup",
)

Glasses try-on

exec(open('skills/image-tryon/try_on.py').read())
result = try_on(
    person_path="uploads/face_front.jpg",
    garment_path="uploads/aviator_sunglasses.jpg",
    category="glasses",
)

Hat try-on

exec(open('skills/image-tryon/try_on.py').read())
result = try_on(
    person_path="uploads/head_shoulders.jpg",
    garment_path="uploads/fedora_hat.jpg",
    category="hat",
)

Shoes try-on

exec(open('skills/image-tryon/try_on.py').read())
result = try_on(
    person_path="uploads/person_fullbody.jpg",
    garment_path="uploads/white_sneakers.jpg",
    category="shoes",
)

Watch try-on

exec(open('skills/image-tryon/try_on.py').read())
result = try_on(
    person_path="uploads/wrist_photo.jpg",
    garment_path="uploads/luxury_watch.jpg",
    category="watch",
)

Custom prompt (override default)

exec(open('skills/image-tryon/try_on.py').read())
result = try_on(
    person_path="uploads/person.jpg",
    garment_path="uploads/vintage_jacket.jpg",
    category="clothing",
    prompt="The person is wearing the vintage leather jacket from the second image, styled with a casual street fashion look. Keep the person's face and body exactly the same. Add realistic leather texture and natural draping.",
)

Different aspect ratio

exec(open('skills/image-tryon/try_on.py').read())
result = try_on(
    person_path="uploads/person.jpg",
    garment_path="uploads/outfit.jpg",
    category="clothing",
    aspect_ratio="9:16",  # Full-length portrait
)

---

8. Photo requirements — best practices

Person photo guidelines

CategoryRecommended photo typeTips
ClothingFull body, front-facingArms slightly away from body, neutral pose
AccessoryRelevant body area visibleGood lighting on the area where accessory goes
HairstyleClear head/face, front or 3/4 viewHair pulled back or current style clearly visible
MakeupFace close-up, front-facingClean face, good even lighting, no heavy makeup
GlassesFace front-facing, eyes visibleNo existing glasses, clear eye area
HatHead and shoulders, front-facingNo existing hat, hair visible
ShoesFull body or legs/feet visibleStanding pose, current shoes visible
WatchWrist/forearm visibleBare wrist or current watch visible

General photo quality rules

1. Lighting: well-lit, even lighting works best. Avoid harsh shadows on the face/body. 2. Resolution: 1024×1024 or higher recommended. Low-res photos produce poor results. 3. Angle: front-facing photos work best for most categories. 4. Background: any background works, but clean backgrounds produce cleaner results. 5. Pose: natural, relaxed poses. Avoid extreme angles or heavy cropping.

Garment/item photo guidelines

1. Product shots work best: official product images on white/neutral backgrounds. 2. Clear visibility: the item should be the main focus, not obscured. 3. Multiple angles: front view is most important for clothing. 4. Color accuracy: ensure the photo shows true colors (no heavy filters). 5. High resolution: detailed product images produce better try-on results.

---

9. Prompt engineering for custom try-on

When the default category prompt doesn't produce the desired result, use a custom prompt. Follow these guidelines:

The 5-element try-on prompt structure

[person preservation] + [item description] + [fit/positioning] + [style/mood] + [quality anchors]

Key principles

1. Always preserve identity: "Keep the person's face, body shape, and pose exactly the same." 2. Describe the item clearly: "wearing the red leather jacket from the second image" 3. Specify fit and positioning: "natural draping, proper shoulder fit, realistic wrinkles" 4. Add style context: "casual street style look", "formal business attire" 5. Quality anchors: "professional fashion photography", "editorial quality", "realistic shadows"

Example custom prompts

Formal outfit:

The person is wearing the navy blue suit from the second image. Keep the person's face, body, and pose exactly the same. The suit should fit perfectly with proper tailoring — clean shoulder line, correct sleeve length, natural lapel lay. Professional fashion photography quality with studio lighting.

Casual street style:

The person is wearing the oversized hoodie from the second image in a relaxed street style. Keep the person's identity and pose the same. The hoodie should drape naturally with realistic fabric weight and casual fit. Urban photography style.

Jewelry combination:

The person is wearing the diamond pendant necklace from the second image. Keep everything about the person the same. The necklace should sit naturally on the collarbone with realistic sparkle and light reflections. The chain length and pendant size should be proportional to the person's frame.

---

10. Error handling

ErrorCauseSolution
"Person image error: Either person_path or person_url must be provided"Missing person photoAsk user for their photo
"Garment/item image error: Either garment_path or garment_url must be provided"Missing item photoAsk user for the item photo
"File not found"Invalid file pathCheck the file path and try again
"Unsupported image format"Non-image fileUse JPG, PNG, or WebP
"Image too large"File > 10 MBResize or compress the image
"Unknown category"Invalid category keyUse one of the 8 valid categories
Low quality resultPoor input photosUse higher resolution, well-lit photos
Wrong item placementUnclear body positioningUse front-facing photos with target area visible

---

11. When NOT to use this skill

  • Single image editing (no garment/item reference) → use image-edit skill
  • Portrait generation (styled photos from one reference) → use image-portrait skill
  • Text-to-image (no reference photos at all) → use image-create skill
  • Fashion model generation (creating models from scratch) → use image-create skill

Related skills

FAQ

Can I use just one image or do I need both person and item?

Both images are required — try-on cannot work with only one image. You must provide a person photo and a garment/item photo.

What is the difference between nanopro and gpt models?

nanopro is the default model (~25s, good quality) best for fast iteration. gpt is slower (~150s, best quality) and should be used only when the user explicitly requests 'highest quality' or 'best quality'.

How do I deliver the result to the user?

Never use the raw fal.media URL (restrictive CSP headers). Always use the downloaded local_path from output/images/. Embed inline as markdown ![try-on result](output/images/<filename>.png) or send via platform-specific methods (send_to_telegram, send_to_wechat).

This week in AI coding

Five minutes, every Monday - the tools, releases and tactics for developers.

unsubscribe anytime.