product-analysis-styling
SKILL.md
Product Analysis and Styling
When to Use This Skill
Use this skill when you need to:
- Analyze product images before creating photography
- Extract product attributes for accurate representation
- Generate styling recommendations for product shoots
- Determine appropriate complementary items
- Understand product positioning and target audience
- Create cohesive styled product compositions
Core Concepts
Three-Level Material Specificity
Always analyze materials with three levels:
- Base Material: Cotton, leather, polyester, metal, ceramic
- Construction: Weave type, grain pattern, metal type
- Surface Finish: Texture, treatment, appearance
Example: "cotton denim with right-hand twill weave and stone-washed matte finish"
Analysis Categories
Product Classification:
- Category (top, bottom, fullbody, accessory, home goods)
- Specific type (silk blouse, leather boots, ceramic vase)
- Gender/target demographic
- Age category (infant, child, teen, adult)
Style Assessment:
- Style classification (casual, formal, sporty, elegant, minimalist)
- Occasion suitability
- Brand positioning (budget, mid-market, premium, luxury)
Material Analysis:
- Base materials
- Construction methods
- Surface treatments and finishes
Design Details:
- Silhouette and fit
- Key design elements
- Construction details
- Brand indicators
Step-by-Step Instructions
Step 1: Visual Product Analysis
Examine product images to identify:
- Product category and specific type
- Gender/target demographic
- Age category
- Style classification
- Occasion suitability
Step 2: Material and Construction Analysis
Apply three-level specificity:
- Identify base materials
- Determine construction methods
- Assess surface finishes and treatments
Step 3: Color and Pattern Analysis
Extract:
- Primary colors (specific names: "navy blue" not "blue")
- Secondary/accent colors
- Pattern type (solid, striped, floral, geometric)
- Color temperature (warm, cool, neutral)
- Finish (matte, glossy, metallic)
Step 4: Design Details Extraction
Document:
- Silhouette and fit characteristics
- Key design elements (buttons, zippers, pockets)
- Construction details (stitching, seams, hardware)
- Brand indicators and distinctive features
Step 5: Generate Styling Recommendations
Based on analysis, recommend:
For Garments:
- Complementary topwear (if bottom analyzed)
- Complementary bottomwear (if top analyzed)
- Appropriate footwear (specific style and color)
- Accessories (minimal, statement, or none)
- Overall styling approach
For Accessories:
- Outfit context (what to pair with)
- Styling placement (how to wear/display)
- Complementary pieces
- Occasion suitability
For Products:
- Display context (environment, props)
- Complementary items
- Lifestyle integration
Step 6: Create Structured Output
Format as JSON:
{
"product_category": "top|bottom|fullbody|accessory",
"product_type": "specific item name",
"gender": "male|female|unisex",
"age_category": "infant|child|teen|adult",
"style_classification": "casual|formal|sporty|elegant",
"materials": {
"base": "primary material",
"construction": "weave/grain/type",
"finish": "surface treatment"
},
"colors": {
"primary": "specific color name",
"secondary": ["color1", "color2"],
"temperature": "warm|cool|neutral"
},
"design_details": ["feature1", "feature2"],
"styling_recommendations": {
"topwear": "recommendation or N/A",
"bottomwear": "recommendation or N/A",
"footwear": "specific style and color",
"accessories": "minimal|statement|none",
"overall_approach": "styling philosophy"
}
}
Examples
Example 1: Denim Jacket Analysis
Input: Image of blue denim jacket
Analysis Output:
{
"product_category": "top",
"product_type": "denim trucker jacket",
"gender": "unisex",
"age_category": "adult",
"style_classification": "casual",
"materials": {
"base": "cotton denim",
"construction": "right-hand twill weave",
"finish": "stone-washed with slight fading, matte surface"
},
"colors": {
"primary": "medium indigo blue",
"secondary": ["brass hardware", "white contrast stitching"],
"temperature": "cool"
},
"design_details": [
"Classic trucker silhouette with pointed collar",
"Brass button closure and rivets",
"Two chest pockets with button flaps",
"Adjustable side tabs at waist"
],
"styling_recommendations": {
"topwear": "N/A (this is the top)",
"bottomwear": "Black or dark grey slim-fit chinos, or light wash jeans for contrast",
"footwear": "White leather sneakers or tan suede desert boots",
"accessories": "Minimal - simple watch, no competing denim",
"overall_approach": "Classic casual Americana - keep styling clean and unfussy, let the jacket be the statement piece"
}
}
Example 2: Statement Earrings Analysis
Input: Image of gold chandelier earrings
Analysis Output:
{
"product_category": "accessory",
"product_type": "chandelier drop earrings",
"gender": "female",
"age_category": "adult",
"style_classification": "elegant",
"materials": {
"base": "gold-plated brass",
"construction": "multi-tier chandelier structure",
"finish": "polished with high shine"
},
"colors": {
"primary": "warm gold",
"secondary": ["clear crystal accents"],
"temperature": "warm"
},
"design_details": [
"Three-tier cascading design with crystal embellishments",
"Approximately 3 inches in length",
"Post back closure",
"Intricate filigree metalwork"
],
"styling_recommendations": {
"topwear": "N/A",
"bottomwear": "N/A",
"footwear": "N/A",
"accessories": "Keep other jewelry minimal - these are statement pieces",
"overall_approach": "Pair with updo or swept-back hair to showcase earrings. Wear with elegant neckline (off-shoulder, V-neck, or strapless) in solid colors. Avoid competing patterns or necklaces. Suitable for formal events, weddings, or evening occasions."
}
}
Example 3: Ceramic Vase Analysis
Input: Image of white ceramic vase
Analysis Output:
{
"product_category": "home_decor",
"product_type": "minimalist ceramic vase",
"gender": "unisex",
"age_category": "adult",
"style_classification": "minimalist",
"materials": {
"base": "ceramic stoneware",
"construction": "wheel-thrown with hand-finished rim",
"finish": "matte white glaze with subtle texture"
},
"colors": {
"primary": "warm off-white",
"secondary": [],
"temperature": "warm neutral"
},
"design_details": [
"Organic asymmetrical form",
"Narrow neck opening to wide body",
"Approximately 10 inches tall",
"Visible throwing lines add handcrafted character"
],
"styling_recommendations": {
"topwear": "N/A",
"bottomwear": "N/A",
"footwear": "N/A",
"accessories": "N/A",
"overall_approach": "Display on natural wood surface or light-colored shelf. Pair with single stem or small dried arrangement - avoid overcrowding. Complement with other neutral tones and natural materials. Suitable for Scandinavian, minimalist, or modern organic interiors. Photograph with soft natural light and clean background."
}
}
Key Principles
- Precision Over Generalization: "Navy blue cotton twill" not "blue pants"
- Three-Level Material Specificity: Always base + construction + finish
- Actionable Recommendations: Specific items, not vague suggestions
- Style Consistency: Recommendations match product's aesthetic level
- Avoid Redundancy: Don't recommend competing items
- Context Awareness: Consider occasion, season, target audience
Common Mistakes to Avoid
- ❌ Generic descriptions: "nice fabric" instead of specific material
- ❌ Vague colors: "blue" instead of "navy blue" or "cobalt blue"
- ❌ Missing construction details: "leather" instead of "full-grain leather with pebbled finish"
- ❌ Inconsistent styling: Recommending formal shoes with casual garment
- ❌ Over-styling: Too many competing elements
- ❌ Ignoring target audience: Adult styling for children's products
Integration Pattern
# Analyze product
analysis = await analyze_product(
product_images=["url1", "url2"],
model_category="default" # or "male", "female", "child"
)
# Use analysis for prompt generation
prompt = f"""
Professional fashion photography of {analysis['product_type']}.
PRODUCT DETAILS:
- Material: {analysis['materials']['base']} with {analysis['materials']['finish']}
- Color: {analysis['colors']['primary']}
- Style: {analysis['style_classification']}
STYLING:
- {analysis['styling_recommendations']['bottomwear']}
- {analysis['styling_recommendations']['footwear']}
- Accessories: {analysis['styling_recommendations']['accessories']}
{analysis['styling_recommendations']['overall_approach']}
Shot on professional camera, editorial quality, 8K resolution.
"""
# Generate image
result = await image_gen(
prompt=prompt,
images=[{"url": product_image, "name": "Product"}],
aspect_ratio="2:3"
)
Output Schema
from pydantic import BaseModel, Field
from typing import List, Optional
from enum import Enum
class GarmentCategory(str, Enum):
TOP = "top"
BOTTOM = "bottom"
FULLBODY = "fullbody"
ACCESSORY = "accessory"
class Gender(str, Enum):
MALE = "male"
FEMALE = "female"
UNISEX = "unisex"
class StyleCategory(str, Enum):
CASUAL = "casual"
FORMAL = "formal"
SPORTY = "sporty"
ELEGANT = "elegant"
MINIMALIST = "minimalist"
class StylingRecommendations(BaseModel):
topwear: str
bottomwear: str
footwear: str
accessories: str
overall_approach: str
class ProductAnalysis(BaseModel):
product_category: GarmentCategory
product_type: str
gender: Gender
age_category: str
style_classification: StyleCategory
materials: dict
colors: dict
design_details: List[str]
styling_recommendations: StylingRecommendations
References
- Source:
workflow_garments_v2/implementation/utils/garment_analysis.py - Related Skills: product-background-generation, fashion-model-photography
- Material Terminology Guide: See references/materials.md
Weekly Installs
10
Repository
tara-shopos/sho…rototypeFirst Seen
Jan 26, 2026
Security Audits
Installed on
gemini-cli9
github-copilot9
opencode8
codex8
kimi-cli7
amp7