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