mcpField
V
Virtual Try-On

Virtual Try-On

github.com/eachlabsCreative & media44215 installsUpdated today
Repository

About Virtual Try-On

Virtual Try-On uses the each::sense API to show clothing, accessories, makeup, or hairstyles on a person’s photo. It is suited to exploring looks or previewing products, including combinations of items and successive options in a session.

Key features

  1. 01Virtually try on clothing and shoes
  2. 02Preview glasses, jewelry, and watches
  3. 03Test makeup and hairstyle changes
  4. 04Combine multiple items in one look
  5. 05Try successive looks in a session

Use cases

  1. 01Compare how different suits look
  2. 02Preview glasses or jewelry on a person
  3. 03Assemble a complete look for a formal event

Install

Copy the command and run it in a terminal.

$npx skills add https://github.com/eachlabs/skills --skill virtual-try-on

After installing, type/virtual-try-onin Claude Code to confirm it loaded.

Bundled filesreferences/SSE-EVENTS.md

Details

From the project README

Virtual Try-On

AI-powered virtual try-on solution that allows users to visualize how clothing, accessories, makeup, and hairstyles look on them without physically trying items on.

Overview

The Virtual Try-On skill leverages each::sense API to provide realistic visualization of:

  • Clothing Try-On: Shirts, dresses, jackets, pants, and full outfits
  • Accessories: Glasses, sunglasses, jewelry, watches, scarves, hats
  • Makeup: Lipstick, eyeshadow, foundation, blush, complete makeup looks
  • Hairstyles: Different haircuts, colors, and styling options
  • Shoes: Sneakers, heels, boots, sandals
  • Jewelry: Necklaces, earrings, bracelets, rings

Quick Start

curl -X POST "https://eachsense-agent.core.eachlabs.run/v1/chat/completions" \
  -H "Content-Type: application/json" \
  -H "X-API-Key: $EACHLABS_API_KEY" \
  -H "Accept: text/event-stream" \
  -d '{
    "messages": [{"role": "user", "content": "Show me wearing this dress"}],
    "model": "eachsense/beta",
    "stream": true,
    "image_urls": [
      "https://example.com/person-photo.jpg",
      "https://example.com/dress-product.jpg"
    ],
    "mode": "max"
  }'

Try-On Categories

CategoryDescriptionExample Items
ClothingApparel and garmentsShirts, dresses, jackets, pants, coats
ShoesFootwearSneakers, heels, boots, sandals, loafers
GlassesEyewearPrescription glasses, sunglasses, reading glasses
JewelryDecorative accessoriesNecklaces, earrings, bracelets, rings
MakeupCosmetic productsLipstick, eyeshadow, foundation, blush
HairstylesHair modificationsHaircuts, hair colors, styling
WatchesWristwearAnalog watches, smartwatches, luxury watches

Use Case Examples

1. Clothing Try-On

Visualize how a specific clothing item looks on a person.

curl -X POST "https://eachsense-agent.core.eachlabs.run/v1/chat/completions" \
  -H "Content-Type: application/json" \
  -H "X-API-Key: $EACHLABS_API_KEY" \
  -H "Accept: text/event-stream" \
  -d '{
    "messages": [{"role": "user", "content": "Show me wearing this blue blazer. Keep my face and body proportions accurate."}],
    "model": "eachsense/beta",
    "stream": true,
    "image_urls": [
      "https://example.com/my-photo.jpg",
      "https://example.com/blue-blazer.jpg"
    ],
    "mode": "max"
  }'
2. Glasses/Eyewear Try-On

Try on different eyewear styles virtually.

curl -X POST "https://eachsense-agent.core.eachlabs.run/v1/chat/completions" \
  -H "Content-Type: application/json" \
  -H "X-API-Key: $EACHLABS_API_KEY" \
  -H "Accept: text/event-stream" \
  -d '{
    "messages": [{"role": "user", "content": "Put these round tortoiseshell glasses on me. Make sure the fit looks natural on my face shape."}],
    "model": "eachsense/beta",
    "stream": true,
    "image_urls": [
      "https://example.com/face-photo.jpg",
      "https://example.com/tortoiseshell-glasses.jpg"
    ],
    "mode": "max"
  }'
3. Jewelry Try-On

Visualize jewelry items like necklaces, earrings, or bracelets.

curl -X POST "https://eachsense-agent.core.eachlabs.run/v1/chat/completions" \
  -H "Content-Type: application/json" \
  -H "X-API-Key: $EACHLABS_API_KEY" \
  -H "Accept: text/event-stream" \
  -d '{
    "messages": [{"role": "user", "content": "Show me wearing this gold necklace. Position it naturally on my neckline."}],
    "model": "eachsense/beta",
    "stream": true,
    "image_urls": [
      "https://example.com/portrait-photo.jpg",
      "https://example.com/gold-necklace.jpg"
    ],
    "mode": "max"
  }'
4. Watch Try-On

Try on watches to see how they fit your wrist.

curl -X POST "https://eachsense-agent.core.eachlabs.run/v1/chat/completions" \
  -H "Content-Type: application/json" \
  -H "X-API-Key: $EACHLABS_API_KEY" \
  -H "Accept: text/event-stream" \
  -d '{
    "messages": [{"role": "user", "content": "Put this luxury watch on my wrist. Show how it looks from a natural angle."}],
    "model": "eachsense/beta",
    "stream": true,
    "image_urls": [
      "https://example.com/wrist-photo.jpg",
      "https://example.com/luxury-watch.jpg"
    ],
    "mode": "max"
  }'
5. Makeup Try-On

Apply virtual makeup looks or specific cosmetic products.

curl -X POST "https://eachsense-agent.core.eachlabs.run/v1/chat/completions" \
  -H "Content-Type: application/json" \
  -H "X-API-Key: $EACHLABS_API_KEY" \
  -H "Accept: text/event-stream" \
  -d '{
    "messages": [{"role": "user", "content": "Apply this red lipstick shade to my lips. Keep the rest of my makeup natural."}],
    "model": "eachsense/beta",
    "stream": true,
    "image_urls": [
      "https://example.com/face-closeup.jpg",
      "https://example.com/red-lipstick-product.jpg"
    ],
    "mode": "max"
  }'
6. Hairstyle Try-On

Experiment with different hairstyles and hair colors.

curl -X POST "https://eachsense-agent.core.eachlabs.run/v1/chat/completions" \
  -H "Content-Type: application/json" \
  -H "X-API-Key: $EACHLABS_API_KEY" \
  -H "Accept: text/event-stream" \
  -d '{
    "messages": [{"role": "user", "content": "Give me this bob haircut style. Match the hair color to the reference image."}],
    "model": "eachsense/beta",
    "stream": true,
    "image_urls": [
      "https://example.com/my-current-photo.jpg",
      "https://example.com/bob-hairstyle-reference.jpg"
    ],
    "mode": "max"
  }'
7. Shoes Try-On

Visualize how different footwear looks.

curl -X POST "https://eachsense-agent.core.eachlabs.run/v1/chat/completions" \
  -H "Content-Type: application/json" \
  -H "X-API-Key: $EACHLABS_API_KEY" \
  -H "Accept: text/event-stream" \
  -d '{
    "messages": [{"role": "user", "content": "Show me wearing these white sneakers. Display a full body view."}],
    "model": "eachsense/beta",
    "stream": true,
    "image_urls": [
      "https://example.com/full-body-photo.jpg",
      "https://example.com/white-sneakers.jpg"
    ],
    "mode": "max"
  }'
8. Full Outfit Styling

Create a complete look with multiple clothing items.

curl -X POST "https://eachsense-agent.core.eachlabs.run/v1/chat/completions" \
  -H "Content-Type: application/json" \
  -H "X-API-Key: $EACHLABS_API_KEY" \
  -H "Accept: text/event-stream" \
  -d '{
    "messages": [{"role": "user", "content": "Style me in this complete outfit - the jacket, pants, and shoes together. Create a cohesive look."}],
    "model": "eachsense/beta",
    "stream": true,
    "image_urls": [
      "https://example.com/my-photo.jpg",
      "https://example.com/leather-jacket.jpg",
      "https://example.com/black-jeans.jpg",
      "https://example.com/boots.jpg"
    ],
    "mode": "max"
  }'
9. Accessory Combination

Combine multiple accessories for a complete look.

curl -X POST "https://eachsense-agent.core.eachlabs.run/v1/chat/completions" \
  -H "Content-Type: application/json" \
  -H "X-API-Key: $EACHLABS_API_KEY" \
  -H "Accept: text/event-stream" \
  -d '{
    "messages": [{"role": "user", "content": "Put these sunglasses and this scarf on me together. Make the accessories complement each other."}],
    "model": "eachsense/beta",
    "stream": true,
    "image_urls": [
      "https://example.com/portrait.jpg",
      "https://example.com/aviator-sunglasses.jpg",
      "https://example.com/silk-scarf.jpg"
    ],
    "mode": "max"
  }'
10. Event-Ready Styling

Create looks for specific occasions.

curl -X POST "https://eachsense-agent.core.eachlabs.run/v1/chat/completions" \
  -H "Content-Type: application/json" \
  -H "X-API-Key: $EACHLABS_API_KEY" \
  -H "Accept: text/event-stream" \
  -d '{
    "messages": [{"role": "user", "content": "Dress me for a formal wedding. Use this evening gown and add elegant jewelry to complete the look."}],
    "model": "eachsense/beta",
    "stream": true,
    "image_urls": [
      "https://example.com/my-photo.jpg",
      "https://example.com/evening-gown.jpg",
      "https://example.com/pearl-earrings.jpg"
    ],
    "mode": "max"
  }'

Using image_urls

The image_urls parameter accepts an array of image URLs for virtual try-on:

PositionPurposeRequirements
First imagePerson photoClear, well-lit photo of the person
Second imageProduct/item photoClear product image on neutral background
Additional imagesMultiple productsFor combining multiple items in one try-on
Image Guidelines
  • Person Photo: Front-facing, good lighting, relevant body parts visible
  • Product Photo: High resolution, clear product details, minimal background clutter
  • Supported Formats: JPEG, PNG, WebP
  • Recommended Resolution: 1024x1024 or higher for best results

Best Practices

Photo Quality
  1. Person Photo Requirements:

    • Use well-lit, high-resolution images
    • Ensure the relevant body part is clearly visible (face for glasses, full body for clothing)
    • Avoid heavy filters or extreme angles
    • Front-facing photos work best for most try-ons
  2. Product Photo Requirements:

    • Use official product images when available
    • Ensure the item is clearly visible and not obscured
    • White or neutral backgrounds work best
    • Multiple angles can improve accuracy
Prompt Tips
  • Be Specific: Describe exactly how you want the item positioned
  • Mention Fit: Ask for natural fit and proportions
  • Reference Colors: Specify if color matching is important
  • Include Context: Mention the occasion or style goal

Good Prompts:

  • "Show me wearing this navy blazer with natural shoulder fit"
  • "Apply this eyeshadow palette for an evening look"
  • "Put these glasses on me, adjusting for my face shape"

Less Effective Prompts:

  • "Try this on" (too vague)
  • "Put clothes" (no specific item reference)

Mode Selection

ModeDescriptionBest For
maxHighest quality, detailed renderingFinal visualizations, important decisions
ecoFaster processing, good qualityQuick previews, browsing multiple options
# High quality for final decision
curl -X POST "https://eachsense-agent.core.eachlabs.run/v1/chat/completions" \
  -H "Content-Type: application/json" \
  -H "X-API-Key: $EACHLABS_API_KEY" \
  -H "Accept: text/event-stream" \
  -d '{
    "messages": [{"role": "user", "content": "Show me in this wedding dress with maximum detail"}],
    "model": "eachsense/beta",
    "stream": true,
    "image_urls": ["https://example.com/me.jpg", "https://example.com/dress.jpg"],
    "mode": "max"
  }'

# Quick preview mode
curl -X POST "https://eachsense-agent.core.eachlabs.run/v1/chat/completions" \
  -H "Content-Type: application/json" \
  -H "X-API-Key: $EACHLABS_API_KEY" \
  -H "Accept: text/event-stream" \
  -d '{
    "messages": [{"role": "user", "content": "Quick preview of this t-shirt on me"}],
    "model": "eachsense/beta",
    "stream": true,
    "image_urls": ["https://example.com/me.jpg", "https://example.com/tshirt.jpg"],
    "mode": "eco"
  }'

Multi-Turn Sessions

Use session_id to try multiple items in a continuous session, maintaining context from previous interactions.

Starting a Session
curl -X POST "https://eachsense-agent.core.eachlabs.run/v1/chat/completions" \
  -H "Content-Type: application/json" \
  -H "X-API-Key: $EACHLABS_API_KEY" \
  -H "Accept: text/event-stream" \
  -d '{
    "messages": [{"role": "user", "content": "This is my photo. I want to try on several outfits for a job interview."}],
    "model": "eachsense/beta",
    "stream": true,
    "image_urls": ["https://example.com/my-photo.jpg"],
    "session_id": "tryon-session-12345",
    "mode": "max"
  }'
Continuing the Session
# Try first outfit
curl -X POST "https://eachsense-agent.core.eachlabs.run/v1/chat/completions" \
  -H "Content-Type: application/json" \
  -H "X-API-Key: $EACHLABS_API_KEY" \
  -H "Accept: text/event-stream" \
  -d '{
    "messages": [{"role": "user", "content": "Now show me in this navy suit"}],
    "model": "eachsense/beta",
    "stream": true,
    "image_urls": ["https://example.com/navy-suit.jpg"],
    "session_id": "tryon-session-12345",
    "mode": "max"
  }'

# Try second outfit
curl -X POST "https://eachsense-agent.core.eachlabs.run/v1/chat/completions" \
  -H "Content-Type: application/json" \
  -H "X-API-Key: $EACHLABS_API_KEY" \
  -H "Accept: text/event-stream" \
  -d '{
    "messages": [{"role": "user", "content": "How about this charcoal blazer with khakis instead?"}],
    "model": "eachsense/beta",
    "stream": true,
    "image_urls": ["https://example.com/charcoal-blazer.jpg", "https://example.com/khakis.jpg"],
    "session_id": "tryon-session-12345",
    "mode": "max"
  }'

# Compare options
curl -X POST "https://eachsense-agent.core.eachlabs.run/v1/chat/completions" \
  -H "Content-Type: application/json" \
  -H "X-API-Key: $EACHLABS_API_KEY" \
  -H "Accept: text/event-stream" \
  -d '{
    "messages": [{"role": "user", "content": "Which outfit looked more professional on me?"}],
    "model": "eachsense/beta",
    "stream": true,
    "session_id": "tryon-session-12345",
    "mode": "max"
  }'

Error Handling

Common Issues and Solutions
ErrorCauseSolution
Low quality resultPoor input image qualityUse higher resolution, well-lit photos
Incorrect placementUnclear body positioningUse front-facing photos with visible target area
Color mismatchProduct image has color castUse product images with accurate color representation
Item not visibleProduct obscured in imageUse clear product images on neutral backgrounds
Handling API Errors
# Check response status and handle errors
response=$(curl -s -w "\n%{http_code}" -X POST "https://eachsense-agent.core.eachlabs.run/v1/chat/completions" \
  -H "Content-Type: application/json" \
  -H "X-API-Key: $EACHLABS_API_KEY" \
  -H "Accept: text/event-stream" \
  -d '{
    "messages": [{"role": "user", "content": "Show me in this jacket"}],
    "model": "eachsense/beta",
    "stream": true,
    "image_urls": ["https://example.com/me.jpg", "https://example.com/jacket.jpg"],
    "mode": "max"
  }')

http_code=$(echo "$response" | tail -n 1)
body=$(echo "$response" | head -n -1)

if [ "$http_code" -eq 200 ]; then
  echo "Success: $body"
elif [ "$http_code" -eq 401 ]; then
  echo "Error: Invalid API key"
elif [ "$http_code" -eq 400 ]; then
  echo "Error: Invalid request - check image URLs and parameters"
else
  echo "Error $http_code: $body"
fi

Related Skills

Comments

Markdown supported