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
1---2name: product-analysis-styling3description: Analyze product images to extract attributes (category, style, materials, colors, design details) and generate appropriate styling recommendations for photography. Use when preparing product shoots, fashion photography, or creating styled product compositions.4license: Apache-2.05---67# Product Analysis and Styling89## When to Use This Skill1011Use this skill when you need to:12- Analyze product images before creating photography13- Extract product attributes for accurate representation14- Generate styling recommendations for product shoots15- Determine appropriate complementary items16- Understand product positioning and target audience17- Create cohesive styled product compositions1819## Core Concepts2021### Three-Level Material Specificity2223Always analyze materials with three levels:241. **Base Material**: Cotton, leather, polyester, metal, ceramic252. **Construction**: Weave type, grain pattern, metal type263. **Surface Finish**: Texture, treatment, appearance2728Example: "cotton denim with right-hand twill weave and stone-washed matte finish"2930### Analysis Categories3132**Product Classification:**33- Category (top, bottom, fullbody, accessory, home goods)34- Specific type (silk blouse, leather boots, ceramic vase)35- Gender/target demographic36- Age category (infant, child, teen, adult)3738**Style Assessment:**39- Style classification (casual, formal, sporty, elegant, minimalist)40- Occasion suitability41- Brand positioning (budget, mid-market, premium, luxury)4243**Material Analysis:**44- Base materials45- Construction methods46- Surface treatments and finishes4748**Design Details:**49- Silhouette and fit50- Key design elements51- Construction details52- Brand indicators5354## Step-by-Step Instructions5556### Step 1: Visual Product Analysis5758Examine product images to identify:59- Product category and specific type60- Gender/target demographic61- Age category62- Style classification63- Occasion suitability6465### Step 2: Material and Construction Analysis6667Apply three-level specificity:68- Identify base materials69- Determine construction methods70- Assess surface finishes and treatments7172### Step 3: Color and Pattern Analysis7374Extract:75- Primary colors (specific names: "navy blue" not "blue")76- Secondary/accent colors77- Pattern type (solid, striped, floral, geometric)78- Color temperature (warm, cool, neutral)79- Finish (matte, glossy, metallic)8081### Step 4: Design Details Extraction8283Document:84- Silhouette and fit characteristics85- Key design elements (buttons, zippers, pockets)86- Construction details (stitching, seams, hardware)87- Brand indicators and distinctive features8889### Step 5: Generate Styling Recommendations9091Based on analysis, recommend:9293**For Garments:**94- Complementary topwear (if bottom analyzed)95- Complementary bottomwear (if top analyzed)96- Appropriate footwear (specific style and color)97- Accessories (minimal, statement, or none)98- Overall styling approach99100**For Accessories:**101- Outfit context (what to pair with)102- Styling placement (how to wear/display)103- Complementary pieces104- Occasion suitability105106**For Products:**107- Display context (environment, props)108- Complementary items109- Lifestyle integration110111### Step 6: Create Structured Output112113Format as JSON:114```json115{116 "product_category": "top|bottom|fullbody|accessory",117 "product_type": "specific item name",118 "gender": "male|female|unisex",119 "age_category": "infant|child|teen|adult",120 "style_classification": "casual|formal|sporty|elegant",121 "materials": {122 "base": "primary material",123 "construction": "weave/grain/type",124 "finish": "surface treatment"125 },126 "colors": {127 "primary": "specific color name",128 "secondary": ["color1", "color2"],129 "temperature": "warm|cool|neutral"130 },131 "design_details": ["feature1", "feature2"],132 "styling_recommendations": {133 "topwear": "recommendation or N/A",134 "bottomwear": "recommendation or N/A",135 "footwear": "specific style and color",136 "accessories": "minimal|statement|none",137 "overall_approach": "styling philosophy"138 }139}140```141142## Examples143144### Example 1: Denim Jacket Analysis145146**Input:** Image of blue denim jacket147148**Analysis Output:**149```json150{151 "product_category": "top",152 "product_type": "denim trucker jacket",153 "gender": "unisex",154 "age_category": "adult",155 "style_classification": "casual",156 "materials": {157 "base": "cotton denim",158 "construction": "right-hand twill weave",159 "finish": "stone-washed with slight fading, matte surface"160 },161 "colors": {162 "primary": "medium indigo blue",163 "secondary": ["brass hardware", "white contrast stitching"],164 "temperature": "cool"165 },166 "design_details": [167 "Classic trucker silhouette with pointed collar",168 "Brass button closure and rivets",169 "Two chest pockets with button flaps",170 "Adjustable side tabs at waist"171 ],172 "styling_recommendations": {173 "topwear": "N/A (this is the top)",174 "bottomwear": "Black or dark grey slim-fit chinos, or light wash jeans for contrast",175 "footwear": "White leather sneakers or tan suede desert boots",176 "accessories": "Minimal - simple watch, no competing denim",177 "overall_approach": "Classic casual Americana - keep styling clean and unfussy, let the jacket be the statement piece"178 }179}180```181182### Example 2: Statement Earrings Analysis183184**Input:** Image of gold chandelier earrings185186**Analysis Output:**187```json188{189 "product_category": "accessory",190 "product_type": "chandelier drop earrings",191 "gender": "female",192 "age_category": "adult",193 "style_classification": "elegant",194 "materials": {195 "base": "gold-plated brass",196 "construction": "multi-tier chandelier structure",197 "finish": "polished with high shine"198 },199 "colors": {200 "primary": "warm gold",201 "secondary": ["clear crystal accents"],202 "temperature": "warm"203 },204 "design_details": [205 "Three-tier cascading design with crystal embellishments",206 "Approximately 3 inches in length",207 "Post back closure",208 "Intricate filigree metalwork"209 ],210 "styling_recommendations": {211 "topwear": "N/A",212 "bottomwear": "N/A",213 "footwear": "N/A",214 "accessories": "Keep other jewelry minimal - these are statement pieces",215 "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."216 }217}218```219220### Example 3: Ceramic Vase Analysis221222**Input:** Image of white ceramic vase223224**Analysis Output:**225```json226{227 "product_category": "home_decor",228 "product_type": "minimalist ceramic vase",229 "gender": "unisex",230 "age_category": "adult",231 "style_classification": "minimalist",232 "materials": {233 "base": "ceramic stoneware",234 "construction": "wheel-thrown with hand-finished rim",235 "finish": "matte white glaze with subtle texture"236 },237 "colors": {238 "primary": "warm off-white",239 "secondary": [],240 "temperature": "warm neutral"241 },242 "design_details": [243 "Organic asymmetrical form",244 "Narrow neck opening to wide body",245 "Approximately 10 inches tall",246 "Visible throwing lines add handcrafted character"247 ],248 "styling_recommendations": {249 "topwear": "N/A",250 "bottomwear": "N/A",251 "footwear": "N/A",252 "accessories": "N/A",253 "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."254 }255}256```257258## Key Principles2592601. **Precision Over Generalization**: "Navy blue cotton twill" not "blue pants"2612. **Three-Level Material Specificity**: Always base + construction + finish2623. **Actionable Recommendations**: Specific items, not vague suggestions2634. **Style Consistency**: Recommendations match product's aesthetic level2645. **Avoid Redundancy**: Don't recommend competing items2656. **Context Awareness**: Consider occasion, season, target audience266267## Common Mistakes to Avoid268269- ❌ Generic descriptions: "nice fabric" instead of specific material270- ❌ Vague colors: "blue" instead of "navy blue" or "cobalt blue"271- ❌ Missing construction details: "leather" instead of "full-grain leather with pebbled finish"272- ❌ Inconsistent styling: Recommending formal shoes with casual garment273- ❌ Over-styling: Too many competing elements274- ❌ Ignoring target audience: Adult styling for children's products275276## Integration Pattern277278```python279# Analyze product280analysis = await analyze_product(281 product_images=["url1", "url2"],282 model_category="default" # or "male", "female", "child"283)284285# Use analysis for prompt generation286prompt = f"""287Professional fashion photography of {analysis['product_type']}.288289PRODUCT DETAILS:290- Material: {analysis['materials']['base']} with {analysis['materials']['finish']}291- Color: {analysis['colors']['primary']}292- Style: {analysis['style_classification']}293294STYLING:295- {analysis['styling_recommendations']['bottomwear']}296- {analysis['styling_recommendations']['footwear']}297- Accessories: {analysis['styling_recommendations']['accessories']}298299{analysis['styling_recommendations']['overall_approach']}300301Shot on professional camera, editorial quality, 8K resolution.302"""303304# Generate image305result = await image_gen(306 prompt=prompt,307 images=[{"url": product_image, "name": "Product"}],308 aspect_ratio="2:3"309)310```311312## Output Schema313314```python315from pydantic import BaseModel, Field316from typing import List, Optional317from enum import Enum318319class GarmentCategory(str, Enum):320 TOP = "top"321 BOTTOM = "bottom"322 FULLBODY = "fullbody"323 ACCESSORY = "accessory"324325class Gender(str, Enum):326 MALE = "male"327 FEMALE = "female"328 UNISEX = "unisex"329330class StyleCategory(str, Enum):331 CASUAL = "casual"332 FORMAL = "formal"333 SPORTY = "sporty"334 ELEGANT = "elegant"335 MINIMALIST = "minimalist"336337class StylingRecommendations(BaseModel):338 topwear: str339 bottomwear: str340 footwear: str341 accessories: str342 overall_approach: str343344class ProductAnalysis(BaseModel):345 product_category: GarmentCategory346 product_type: str347 gender: Gender348 age_category: str349 style_classification: StyleCategory350 materials: dict351 colors: dict352 design_details: List[str]353 styling_recommendations: StylingRecommendations354```355356## References357358- Source: `workflow_garments_v2/implementation/utils/garment_analysis.py`359- Related Skills: product-background-generation, fashion-model-photography360- Material Terminology Guide: See references/materials.md