virtual try-on
npx skills add https://github.com/eachlabs/skills --skill 'Virtual Try-On'
Skill 文档
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://sense.eachlabs.run/chat" \
-H "Content-Type: application/json" \
-H "X-API-Key: $EACHLABS_API_KEY" \
-H "Accept: text/event-stream" \
-d '{
"message": "Show me wearing this dress",
"image_urls": [
"https://example.com/person-photo.jpg",
"https://example.com/dress-product.jpg"
],
"mode": "max"
}'
Try-On Categories
| Category | Description | Example Items |
|---|---|---|
| Clothing | Apparel and garments | Shirts, dresses, jackets, pants, coats |
| Shoes | Footwear | Sneakers, heels, boots, sandals, loafers |
| Glasses | Eyewear | Prescription glasses, sunglasses, reading glasses |
| Jewelry | Decorative accessories | Necklaces, earrings, bracelets, rings |
| Makeup | Cosmetic products | Lipstick, eyeshadow, foundation, blush |
| Hairstyles | Hair modifications | Haircuts, hair colors, styling |
| Watches | Wristwear | Analog 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://sense.eachlabs.run/chat" \
-H "Content-Type: application/json" \
-H "X-API-Key: $EACHLABS_API_KEY" \
-H "Accept: text/event-stream" \
-d '{
"message": "Show me wearing this blue blazer. Keep my face and body proportions accurate.",
"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://sense.eachlabs.run/chat" \
-H "Content-Type: application/json" \
-H "X-API-Key: $EACHLABS_API_KEY" \
-H "Accept: text/event-stream" \
-d '{
"message": "Put these round tortoiseshell glasses on me. Make sure the fit looks natural on my face shape.",
"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://sense.eachlabs.run/chat" \
-H "Content-Type: application/json" \
-H "X-API-Key: $EACHLABS_API_KEY" \
-H "Accept: text/event-stream" \
-d '{
"message": "Show me wearing this gold necklace. Position it naturally on my neckline.",
"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://sense.eachlabs.run/chat" \
-H "Content-Type: application/json" \
-H "X-API-Key: $EACHLABS_API_KEY" \
-H "Accept: text/event-stream" \
-d '{
"message": "Put this luxury watch on my wrist. Show how it looks from a natural angle.",
"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://sense.eachlabs.run/chat" \
-H "Content-Type: application/json" \
-H "X-API-Key: $EACHLABS_API_KEY" \
-H "Accept: text/event-stream" \
-d '{
"message": "Apply this red lipstick shade to my lips. Keep the rest of my makeup natural.",
"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://sense.eachlabs.run/chat" \
-H "Content-Type: application/json" \
-H "X-API-Key: $EACHLABS_API_KEY" \
-H "Accept: text/event-stream" \
-d '{
"message": "Give me this bob haircut style. Match the hair color to the reference image.",
"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://sense.eachlabs.run/chat" \
-H "Content-Type: application/json" \
-H "X-API-Key: $EACHLABS_API_KEY" \
-H "Accept: text/event-stream" \
-d '{
"message": "Show me wearing these white sneakers. Display a full body view.",
"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://sense.eachlabs.run/chat" \
-H "Content-Type: application/json" \
-H "X-API-Key: $EACHLABS_API_KEY" \
-H "Accept: text/event-stream" \
-d '{
"message": "Style me in this complete outfit - the jacket, pants, and shoes together. Create a cohesive look.",
"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://sense.eachlabs.run/chat" \
-H "Content-Type: application/json" \
-H "X-API-Key: $EACHLABS_API_KEY" \
-H "Accept: text/event-stream" \
-d '{
"message": "Put these sunglasses and this scarf on me together. Make the accessories complement each other.",
"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://sense.eachlabs.run/chat" \
-H "Content-Type: application/json" \
-H "X-API-Key: $EACHLABS_API_KEY" \
-H "Accept: text/event-stream" \
-d '{
"message": "Dress me for a formal wedding. Use this evening gown and add elegant jewelry to complete the look.",
"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:
| Position | Purpose | Requirements |
|---|---|---|
| First image | Person photo | Clear, well-lit photo of the person |
| Second image | Product/item photo | Clear product image on neutral background |
| Additional images | Multiple products | For 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: 1024×1024 or higher for best results
Best Practices
Photo Quality
-
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
-
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
| Mode | Description | Best For |
|---|---|---|
max |
Highest quality, detailed rendering | Final visualizations, important decisions |
eco |
Faster processing, good quality | Quick previews, browsing multiple options |
# High quality for final decision
curl -X POST "https://sense.eachlabs.run/chat" \
-H "Content-Type: application/json" \
-H "X-API-Key: $EACHLABS_API_KEY" \
-H "Accept: text/event-stream" \
-d '{
"message": "Show me in this wedding dress with maximum detail",
"image_urls": ["https://example.com/me.jpg", "https://example.com/dress.jpg"],
"mode": "max"
}'
# Quick preview mode
curl -X POST "https://sense.eachlabs.run/chat" \
-H "Content-Type: application/json" \
-H "X-API-Key: $EACHLABS_API_KEY" \
-H "Accept: text/event-stream" \
-d '{
"message": "Quick preview of this t-shirt on me",
"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://sense.eachlabs.run/chat" \
-H "Content-Type: application/json" \
-H "X-API-Key: $EACHLABS_API_KEY" \
-H "Accept: text/event-stream" \
-d '{
"message": "This is my photo. I want to try on several outfits for a job interview.",
"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://sense.eachlabs.run/chat" \
-H "Content-Type: application/json" \
-H "X-API-Key: $EACHLABS_API_KEY" \
-H "Accept: text/event-stream" \
-d '{
"message": "Now show me in this navy suit",
"image_urls": ["https://example.com/navy-suit.jpg"],
"session_id": "tryon-session-12345",
"mode": "max"
}'
# Try second outfit
curl -X POST "https://sense.eachlabs.run/chat" \
-H "Content-Type: application/json" \
-H "X-API-Key: $EACHLABS_API_KEY" \
-H "Accept: text/event-stream" \
-d '{
"message": "How about this charcoal blazer with khakis instead?",
"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://sense.eachlabs.run/chat" \
-H "Content-Type: application/json" \
-H "X-API-Key: $EACHLABS_API_KEY" \
-H "Accept: text/event-stream" \
-d '{
"message": "Which outfit looked more professional on me?",
"session_id": "tryon-session-12345",
"mode": "max"
}'
Error Handling
Common Issues and Solutions
| Error | Cause | Solution |
|---|---|---|
| Low quality result | Poor input image quality | Use higher resolution, well-lit photos |
| Incorrect placement | Unclear body positioning | Use front-facing photos with visible target area |
| Color mismatch | Product image has color cast | Use product images with accurate color representation |
| Item not visible | Product obscured in image | Use 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://sense.eachlabs.run/chat" \
-H "Content-Type: application/json" \
-H "X-API-Key: $EACHLABS_API_KEY" \
-H "Accept: text/event-stream" \
-d '{
"message": "Show me in this jacket",
"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
- Fashion AI – AI-powered fashion recommendations and styling
- Image Edit – General image editing and manipulation
- Image Generation – Generate fashion and product images
- Product Visuals – Create professional product photography