- Add comprehensive body_figure component to analyze: - Nudity/exposure level (clothed to nude) - Breast exposure details (covered/cleavage/sideboob/underboob) - Cup size estimation (AA/A through G+) - Body type, bust shape, cleavage visibility and shadows - Waist definition, hip curves, buttocks shape - Thigh fullness and body contour shadows - Update DETAIL_MODES to include body_figure in Standard/Detailed/Extreme - Update component order array for prompt assembly 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
862 lines
31 KiB
Python
862 lines
31 KiB
Python
"""
|
|
Standalone Prompt Components
|
|
|
|
Extracted from sid_zimage_prompt_generator_advanced_v2.py for testing without ComfyUI.
|
|
"""
|
|
|
|
# Component definitions for analysis
|
|
COMPONENTS = {
|
|
"framing": {
|
|
"name": "Framing & Composition",
|
|
"prompt": """Analyze ONLY the framing and composition of this image:
|
|
|
|
1. COLOR MODE (CRITICAL):
|
|
- Is this a COLOR photo or BLACK AND WHITE / MONOCHROME?
|
|
- If B&W: is it high contrast, soft, sepia-toned?
|
|
|
|
2. SHOT TYPE (choose one):
|
|
- ECU (Extreme Close-Up): Only eyes/lips visible
|
|
- BCU (Big Close-Up): Face fills frame
|
|
- CU (Close-Up): Head and neck
|
|
- MCU (Medium Close-Up): Head and shoulders, upper chest
|
|
- MS (Medium Shot): Waist up
|
|
- MFS (Medium Full Shot): Knees up
|
|
- FS (Full Shot): Full body, head to toe
|
|
- LS (Long Shot): Full body with environment
|
|
|
|
3. SUBJECT POSE (CRITICAL):
|
|
- STANDING: Subject is upright on feet
|
|
- SEATED: Subject is sitting (on chair, floor, stool, etc.)
|
|
- LYING: Subject is lying down
|
|
- KNEELING: Subject is on knees
|
|
- LEANING: Subject is leaning against something
|
|
|
|
4. SUBJECT POSITION: Where in frame? (centered, left third, right third)
|
|
|
|
5. FRAME FILL: What percentage of frame height does subject fill? (30%, 50%, 70%, 90%)
|
|
|
|
6. CAMERA ANGLE: Eye level, slightly above, slightly below, dramatic angle?
|
|
|
|
7. DEPTH OF FIELD: Shallow (blurred background), medium, deep (all in focus)?
|
|
|
|
Output JSON:
|
|
{
|
|
"color_mode": "<color/black_and_white/sepia>",
|
|
"color_style": "<if B&W: high contrast, soft, film noir, etc.>",
|
|
"shot_type": "<code>",
|
|
"shot_description": "<describe what body parts are visible in THIS image>",
|
|
"subject_pose": "<standing/seated/lying/kneeling/leaning>",
|
|
"subject_position": "<position>",
|
|
"frame_fill_percent": <number>,
|
|
"camera_angle": "<angle>",
|
|
"depth_of_field": "<shallow/medium/deep>",
|
|
"background_blur": "<description of blur level>",
|
|
"prompt_description": "<YOUR framing description - DO NOT copy the example, describe THIS image>"
|
|
}"""
|
|
},
|
|
|
|
"ethnicity": {
|
|
"name": "Ethnicity & Demographics",
|
|
"prompt": """Analyze ONLY the subject's ethnicity and demographics:
|
|
|
|
CRITICAL: Look carefully at facial structure, eye shape, and features before deciding.
|
|
|
|
1. APPARENT ETHNICITY (be specific - check EACH category):
|
|
|
|
ASIAN FEATURES TO CHECK:
|
|
- East Asian (Chinese, Japanese, Korean): epicanthic fold, flatter nose bridge, straight black hair
|
|
- Southeast Asian (Thai, Vietnamese, Filipino): similar to East Asian but often darker skin
|
|
- South Asian (Indian, Pakistani): larger eyes, higher nose bridge, can have lighter or darker skin
|
|
|
|
NON-ASIAN FEATURES:
|
|
- European: deeper-set eyes, higher nose bridge, varied hair colors
|
|
- Middle Eastern: can look similar to South Asian or Mediterranean
|
|
- African: varied features by region
|
|
- Latin American/Hispanic: mixed features
|
|
- Mixed heritage: specify which mix
|
|
|
|
2. KEY DISTINGUISHING FEATURES:
|
|
- Eye shape: Does the eye have an epicanthic fold? Monolid? Double lid?
|
|
- Nose bridge: Flat, medium, or high?
|
|
- Face shape: Round, oval, heart, square?
|
|
- Cheekbone position: High, medium, flat?
|
|
|
|
3. SKIN TONE (be precise):
|
|
- Base: porcelain, ivory, fair, light, light-medium, medium, medium-tan, tan, caramel, brown, dark brown, deep, ebony
|
|
- Undertone: warm (golden/yellow/peachy), cool (pink/blue), neutral, olive
|
|
|
|
4. AGE RANGE: child, teen, young adult (20s), adult (30s), middle-aged (40s-50s), senior
|
|
|
|
5. GENDER PRESENTATION: female, male, androgynous
|
|
|
|
Output JSON:
|
|
{
|
|
"ethnicity": "<specific ethnicity>",
|
|
"ethnicity_features": "<distinctive features that led to this conclusion>",
|
|
"eye_shape_details": "<epicanthic fold present? monolid? etc.>",
|
|
"skin_tone_base": "<base tone>",
|
|
"skin_tone_undertone": "<undertone>",
|
|
"skin_description": "<full description for prompt>",
|
|
"age_range": "<range>",
|
|
"gender": "<gender>",
|
|
"prompt_description": "<YOUR ethnicity/demographics description for THIS image - DO NOT copy examples>"
|
|
}"""
|
|
},
|
|
|
|
"hair": {
|
|
"name": "Hair Analysis",
|
|
"prompt": """Analyze ONLY the hair in this image:
|
|
|
|
CRITICAL: Start your description with the OVERALL ARRANGEMENT (how hair is styled on top of head) BEFORE describing any flowing parts.
|
|
|
|
1. HAIR ARRANGEMENT (CRITICAL - choose one):
|
|
- UPDO/BUN: Hair pulled up and secured (bun, chignon, top knot) - NO hair hanging loose
|
|
- PONYTAIL: Hair gathered and hanging from one point
|
|
- BRAIDED: Any braid style (French, Dutch, fishtail, box braids)
|
|
- HALF-UP: Top/crown pulled back and secured, bottom portion hangs down
|
|
- LOOSE/DOWN: ALL hair flowing freely, nothing secured or pulled back
|
|
- PINNED/STYLED: Elaborately styled with pins/accessories
|
|
- SHORT: Too short to be styled up
|
|
|
|
2. CROWN/TOP DESCRIPTION (CRITICAL):
|
|
- Is hair at the crown pulled back, slicked, volumized, or loose?
|
|
- Is there a visible parting? Center, side, none?
|
|
- Are any pins, clips, or elastic visible?
|
|
|
|
3. HAIR COLOR (be specific):
|
|
- Base color: black, dark brown, medium brown, light brown, dark blonde, etc.
|
|
- Highlights/lowlights: describe if present
|
|
|
|
4. HAIR TEXTURE: straight, wavy, curly, coily, kinky
|
|
|
|
5. HAIR LENGTH: pixie, short, chin-length, shoulder-length, mid-back, waist-length
|
|
|
|
6. HAIR CONDITION: glossy, matte, frizzy, sleek, volumized
|
|
|
|
Output JSON:
|
|
{
|
|
"arrangement": "<updo/ponytail/braided/half-up/loose/pinned/short>",
|
|
"crown_description": "<how hair is styled at top/crown of head>",
|
|
"arrangement_details": "<specific style description>",
|
|
"base_color": "<color>",
|
|
"highlights": "<if any>",
|
|
"texture": "<texture>",
|
|
"length": "<length>",
|
|
"condition": "<condition>",
|
|
"prompt_description": "<YOUR hair description - START with arrangement, then color/texture/length>"
|
|
}"""
|
|
},
|
|
|
|
"face": {
|
|
"name": "Face Shape & Position",
|
|
"prompt": """Analyze ONLY the face shape and positioning:
|
|
|
|
1. FACE SHAPE: oval, round, heart, square, oblong, diamond, rectangle
|
|
|
|
2. FACE ANGLE:
|
|
- Frontal (looking straight at camera)
|
|
- 3/4 left (turned slightly left, showing right side more)
|
|
- 3/4 right (turned slightly right, showing left side more)
|
|
- Profile left (side view, facing left)
|
|
- Profile right (side view, facing right)
|
|
|
|
3. HEAD TILT: level, tilted left, tilted right, chin up, chin down
|
|
|
|
4. FACE PROPORTIONS: Any notable features? High cheekbones, defined jaw, etc.
|
|
|
|
Output JSON:
|
|
{
|
|
"shape": "<shape>",
|
|
"angle": "<angle>",
|
|
"angle_degrees": "<approximate degrees from frontal>",
|
|
"tilt": "<tilt>",
|
|
"notable_features": "<features>",
|
|
"prompt_description": "<description for prompt>"
|
|
}"""
|
|
},
|
|
|
|
"eyes": {
|
|
"name": "Eyes Analysis",
|
|
"prompt": """Analyze ONLY the eyes in this image:
|
|
|
|
1. EYE COLOR (be very specific):
|
|
- Base: dark brown, medium brown, light brown, hazel, green, blue-green, blue, gray, black
|
|
- Variations: lighter ring around pupil? Darker limbal ring? Flecks of other colors?
|
|
|
|
2. EYE SHAPE: almond, round, hooded, monolid, upturned, downturned, deep-set, prominent
|
|
|
|
3. GAZE DIRECTION:
|
|
- Direct at camera
|
|
- Looking left/right/up/down
|
|
- Looking at something specific
|
|
|
|
4. EYE EXPRESSION: soft, intense, playful, serious, sultry, tired, alert
|
|
|
|
5. EYE MAKEUP (if any):
|
|
- Eyeshadow: colors, placement
|
|
- Eyeliner: style (winged, tight-line, smudged), color
|
|
- Mascara: natural, dramatic, false lashes?
|
|
- Brows: shape, thickness, groomed/natural
|
|
|
|
Output JSON:
|
|
{
|
|
"color": "<specific color>",
|
|
"color_details": "<variations, flecks, rings>",
|
|
"shape": "<shape>",
|
|
"gaze": "<direction>",
|
|
"expression": "<expression>",
|
|
"makeup_eyeshadow": "<if any>",
|
|
"makeup_eyeliner": "<if any>",
|
|
"makeup_lashes": "<description>",
|
|
"eyebrows": "<description>",
|
|
"prompt_description": "<full description for prompt>"
|
|
}"""
|
|
},
|
|
|
|
"nose_lips": {
|
|
"name": "Nose & Lips",
|
|
"prompt": """Analyze ONLY the nose and lips:
|
|
|
|
NOSE:
|
|
1. Shape: straight, Roman/aquiline, button, upturned, hooked, flat, wide, narrow
|
|
2. Bridge: high, medium, low
|
|
3. Tip: rounded, pointed, upturned
|
|
4. Size relative to face: small, medium, large
|
|
|
|
LIPS:
|
|
1. Shape: full, thin, heart-shaped, wide, bow-shaped
|
|
2. Upper vs lower lip: balanced, fuller upper, fuller lower
|
|
3. Cupid's bow: defined, subtle, flat
|
|
4. Natural color: pink, nude, red, berry, coral
|
|
5. State: closed, slightly parted, smiling, pursed
|
|
6. Lip makeup: lipstick color and finish if worn (matte, glossy, satin)
|
|
|
|
Output JSON:
|
|
{
|
|
"nose_shape": "<shape>",
|
|
"nose_details": "<other details>",
|
|
"lip_shape": "<shape>",
|
|
"lip_fullness": "<description>",
|
|
"lip_color": "<natural or makeup color>",
|
|
"lip_state": "<state>",
|
|
"lip_finish": "<if makeup: matte/glossy/satin>",
|
|
"prompt_description": "<combined description for prompt>"
|
|
}"""
|
|
},
|
|
|
|
"body_pose": {
|
|
"name": "Body & Pose",
|
|
"prompt": """Analyze ONLY the visible body and pose:
|
|
|
|
1. VISIBLE BODY PARTS: List what's visible (head, neck, shoulders, arms, hands, torso, legs, feet)
|
|
|
|
2. POSTURE: straight/upright, relaxed, slouched, leaning
|
|
|
|
3. SHOULDER POSITION: level, one raised, squared to camera, angled
|
|
|
|
4. ARM POSITIONS (if visible):
|
|
- Left arm: position and gesture
|
|
- Right arm: position and gesture
|
|
|
|
5. HAND POSITIONS (if visible):
|
|
- Left hand: where placed, gesture
|
|
- Right hand: where placed, gesture
|
|
|
|
6. BODY ANGLE: Facing camera directly, angled left, angled right, torso twist
|
|
|
|
7. WEIGHT DISTRIBUTION: centered, on left leg, on right leg
|
|
|
|
Output JSON:
|
|
{
|
|
"visible_parts": ["<list>"],
|
|
"posture": "<posture>",
|
|
"shoulders": "<description>",
|
|
"left_arm": "<if visible>",
|
|
"right_arm": "<if visible>",
|
|
"left_hand": "<if visible>",
|
|
"right_hand": "<if visible>",
|
|
"body_angle": "<angle>",
|
|
"overall_pose": "<description>",
|
|
"prompt_description": "<pose description for prompt>"
|
|
}"""
|
|
},
|
|
|
|
"body_figure": {
|
|
"name": "Body Figure & Proportions",
|
|
"prompt": """Analyze the BODY FIGURE, PROPORTIONS, and EXPOSURE LEVEL visible in this image.
|
|
|
|
CRITICAL: Only describe what is ACTUALLY VISIBLE. Do not invent or assume hidden body parts.
|
|
|
|
1. NUDITY/EXPOSURE LEVEL (CRITICAL - identify accurately):
|
|
- Fully clothed: no skin exposed beyond face/hands
|
|
- Partially clothed: some skin exposed (arms, legs, midriff)
|
|
- Revealing clothing: significant skin, cleavage, short shorts, etc.
|
|
- Swimwear/Lingerie: bikini, underwear, bra visible
|
|
- Topless: chest/breasts exposed, no top garment
|
|
- Nude: fully naked, no clothing
|
|
- Implied nude: appears nude but strategic covering/cropping
|
|
|
|
2. BREAST/CHEST EXPOSURE (be specific):
|
|
- Covered: fully covered by clothing
|
|
- Cleavage only: upper breast curves visible between/above garment
|
|
- Sideboob: side curve of breast visible (left, right, or both)
|
|
- Underboob: lower curve of breast visible below garment
|
|
- Partial exposure: significant breast visible but not nipple
|
|
- Full exposure: entire breast visible including nipple
|
|
- Nipple visibility: covered, showing through fabric, partially visible, fully visible
|
|
|
|
3. OVERALL BODY TYPE (if visible):
|
|
- Slim/Slender: narrow frame, lean build
|
|
- Athletic/Toned: muscular definition, fit appearance
|
|
- Average: moderate proportions
|
|
- Curvy/Voluptuous: pronounced curves, fuller figure
|
|
- Petite: small frame overall
|
|
- Plus-size: larger frame
|
|
|
|
4. BUST/CHEST DETAILS (if visible - be specific):
|
|
- Cup size estimate (use standard sizing):
|
|
* AA/A: Very small, minimal projection
|
|
* B: Small, subtle curve
|
|
* C: Medium, moderate projection
|
|
* D: Large, noticeable projection
|
|
* DD/E: Very large, significant projection
|
|
* DDD/F: Extra large, prominent projection
|
|
* G+: Extremely large, very prominent
|
|
- Size relative to frame: small, medium, large, very large
|
|
- Shape: natural, rounded, teardrop, projected, perky, full, pendulous
|
|
- Cleavage visibility: none, minimal, moderate, prominent, deep
|
|
- Cleavage shadow: none, subtle, defined, dramatic
|
|
- Upper curve visibility: how much of upper breast curve is visible
|
|
- Side curve visibility: visible from side angle? how much?
|
|
- Underboob visibility: visible? how much?
|
|
- Lift/Position: natural, lifted, pushed together, separated
|
|
- Fullness distribution: top-heavy, bottom-heavy, even
|
|
- Projection: flat, slight, moderate, projected, very projected
|
|
|
|
5. WAIST (if visible):
|
|
- Definition: undefined, slight, defined, very defined (hourglass)
|
|
- Width relative to bust/hips: narrow, proportional, wide
|
|
- Midriff visible: yes/no, how much
|
|
- Waist shadows: soft shadows, defined shadows, dramatic contour
|
|
|
|
6. HIPS & BUTTOCKS (if visible):
|
|
- Hip width: narrow, medium, wide, very wide
|
|
- Hip curve: subtle, moderate, pronounced, dramatic
|
|
- Hip-to-waist ratio: slight, moderate, dramatic hourglass
|
|
- Buttocks shape (if visible): flat, moderate, rounded, prominent, heart-shaped
|
|
- Buttocks exposure: covered, partially visible, fully visible
|
|
- Buttocks curve shadow: none, subtle, defined
|
|
|
|
7. THIGHS (if visible):
|
|
- Fullness: slim, toned, moderate, full, thick
|
|
- Gap: thigh gap present, touching, close together
|
|
- Curve: straight, slight curve, curved, very curved
|
|
|
|
8. BODY SHADOWS & CONTOURS:
|
|
- Shadow under bust: none, subtle, defined, dramatic
|
|
- Abdominal shadows: flat, subtle definition, defined abs, shadows in curves
|
|
- Hip/waist shadow: how shadows define the waist curve
|
|
- Overall body contour definition: soft/flat lighting, moderate shadows, dramatic sculpting
|
|
|
|
9. SKIN EXPOSURE SUMMARY:
|
|
- Upper body: covered, arms exposed, shoulders exposed, cleavage shown, midriff shown, breasts exposed
|
|
- Lower body: covered, thighs visible, legs visible, buttocks visible, genitals covered/exposed
|
|
- Back: covered, upper back, lower back, full back
|
|
|
|
Output JSON:
|
|
{
|
|
"nudity_level": "<fully_clothed/partially_clothed/revealing/swimwear_lingerie/topless/nude/implied_nude>",
|
|
"breast_exposure": {
|
|
"level": "<covered/cleavage_only/sideboob/underboob/partial/full>",
|
|
"sideboob_visible": "<none/left/right/both>",
|
|
"underboob_visible": true/false,
|
|
"nipple_visibility": "<covered/through_fabric/partial/full>",
|
|
"exposure_details": "<specific description of what's visible>"
|
|
},
|
|
"body_type": "<overall body type>",
|
|
"bust": {
|
|
"visible": true/false,
|
|
"cup_size": "<AA/A/B/C/D/DD/DDD/F/G+>",
|
|
"size": "<small/medium/large/very_large>",
|
|
"shape": "<natural/rounded/teardrop/projected/perky/full>",
|
|
"cleavage_visibility": "<none/minimal/moderate/prominent/deep>",
|
|
"cleavage_shadow": "<none/subtle/defined/dramatic>",
|
|
"upper_curve": "<visibility description>",
|
|
"side_curve": "<visibility description>",
|
|
"underboob_curve": "<visibility description>",
|
|
"position": "<natural/lifted/pushed_together/separated>",
|
|
"fullness_distribution": "<top-heavy/bottom-heavy/even>"
|
|
},
|
|
"waist": {
|
|
"visible": true/false,
|
|
"definition": "<undefined/slight/defined/very_defined>",
|
|
"width": "<narrow/proportional/wide>",
|
|
"midriff_exposed": true/false,
|
|
"shadows": "<shadow description>"
|
|
},
|
|
"hips": {
|
|
"visible": true/false,
|
|
"width": "<narrow/medium/wide/very_wide>",
|
|
"curve": "<subtle/moderate/pronounced/dramatic>",
|
|
"waist_ratio": "<slight/moderate/dramatic_hourglass>",
|
|
"shadow_definition": "<shadow description>"
|
|
},
|
|
"buttocks": {
|
|
"visible": true/false,
|
|
"exposure": "<covered/partial/full>",
|
|
"shape": "<flat/moderate/rounded/prominent/heart-shaped>",
|
|
"curve_shadow": "<none/subtle/defined>"
|
|
},
|
|
"thighs": {
|
|
"visible": true/false,
|
|
"fullness": "<slim/toned/moderate/full/thick>",
|
|
"curve": "<straight/slight/curved/very_curved>",
|
|
"gap": "<present/touching/close>"
|
|
},
|
|
"body_contour_shadows": {
|
|
"under_bust_shadow": "<none/subtle/defined/dramatic>",
|
|
"abdominal_shadows": "<flat/subtle/defined_abs/curved_shadows>",
|
|
"hip_waist_shadow": "<description>",
|
|
"overall_sculpting": "<soft/moderate/dramatic>"
|
|
},
|
|
"skin_exposure": {
|
|
"upper_body": "<what's exposed>",
|
|
"lower_body": "<what's exposed>",
|
|
"back": "<what's exposed>"
|
|
},
|
|
"prompt_description": "<complete body figure description for prompt - include nudity level, all visible proportions, curves, exposure details, and shadow details>"
|
|
}"""
|
|
},
|
|
|
|
"clothing": {
|
|
"name": "Clothing Analysis",
|
|
"prompt": """Analyze ONLY the clothing ACTUALLY VISIBLE in this image.
|
|
|
|
CRITICAL RULES:
|
|
- ONLY describe what you can ACTUALLY SEE in the image
|
|
- Do NOT invent, assume, or imagine parts of garments that are not visible
|
|
- If you can only see the top of a dress, just describe the visible neckline/bodice
|
|
- Do NOT describe cutouts, midriff, sleeves, or features that are NOT in frame
|
|
- If clothing is cut off by the frame, say "visible portion only" or "cropped at [location]"
|
|
|
|
For EACH visible garment, describe:
|
|
|
|
1. GARMENT TYPE: dress, top, blouse, etc.
|
|
- If unsure if dress or top (cropped at frame), say "dress or top"
|
|
|
|
2. NECKLINE (what you can see):
|
|
- sweetheart, V-neck, scoop, strapless, off-shoulder, halter, etc.
|
|
|
|
3. COLOR: Be specific
|
|
|
|
4. MATERIAL/FABRIC: silk, satin, cotton, crepe, etc.
|
|
|
|
5. FIT: fitted, loose, structured, etc.
|
|
|
|
6. VISIBLE FEATURES ONLY:
|
|
- What straps/sleeves can you actually see?
|
|
- Is midriff actually visible or is image cropped above it?
|
|
|
|
Output JSON:
|
|
{
|
|
"garments": [
|
|
{
|
|
"type": "<type or 'dress or top - cropped'>",
|
|
"neckline": "<visible neckline style>",
|
|
"color": "<specific color>",
|
|
"material": "<material>",
|
|
"fit": "<fit>",
|
|
"visible_features": "<only what you can see>",
|
|
"cropped_at": "<where image cuts off garment, or 'fully visible'>"
|
|
}
|
|
],
|
|
"overall_style": "<formal/casual/elegant/etc>",
|
|
"prompt_description": "<describe ONLY visible portions - do not invent details>"
|
|
}"""
|
|
},
|
|
|
|
"accessories": {
|
|
"name": "Accessories",
|
|
"prompt": """Analyze ONLY the accessories/jewelry in this image:
|
|
|
|
For EACH visible accessory:
|
|
|
|
1. TYPE: necklace, earrings, bracelet, ring, watch, hair accessory, glasses, hat, etc.
|
|
|
|
2. STYLE:
|
|
- Necklace: choker, pendant, chain, statement, layered
|
|
- Earrings: studs, hoops, dangles, drops, chandeliers
|
|
- Other: describe style
|
|
|
|
3. MATERIAL: gold, silver, platinum, crystals, diamonds, pearls, beads, fabric
|
|
|
|
4. SIZE: delicate, medium, statement/large
|
|
|
|
5. DETAILS: specific design elements, stones, patterns
|
|
|
|
Output JSON:
|
|
{
|
|
"accessories": [
|
|
{
|
|
"type": "<type>",
|
|
"style": "<style>",
|
|
"material": "<material>",
|
|
"color": "<color>",
|
|
"size": "<size>",
|
|
"details": "<specific details>",
|
|
"position": "<where on body>"
|
|
}
|
|
],
|
|
"prompt_description": "<accessories description for prompt>"
|
|
}"""
|
|
},
|
|
|
|
"lighting": {
|
|
"name": "Lighting & Environment",
|
|
"prompt": """Analyze ONLY the lighting and background:
|
|
|
|
LIGHTING:
|
|
1. Type: natural (sun, window), artificial (studio), mixed
|
|
2. Direction: front, side left, side right, back, top, bottom (use clock positions)
|
|
3. Quality: soft/diffused, hard/harsh, dramatic
|
|
4. Color temperature: warm (golden), neutral, cool (blue)
|
|
5. Key light position: Where is main light coming from?
|
|
6. Fill light: Is there fill? Shadow density?
|
|
7. Rim/hair light: Any backlighting on edges?
|
|
|
|
SHADOWS:
|
|
1. Density: minimal, moderate, dramatic
|
|
2. Direction: where do shadows fall?
|
|
3. Softness: soft edges, hard edges
|
|
|
|
BACKGROUND:
|
|
1. Type: solid color, gradient, environment, bokeh
|
|
2. Color: specific color description
|
|
3. Blur level: sharp, slightly soft, soft bokeh, very blurred
|
|
4. Elements: any visible elements in background?
|
|
|
|
Output JSON:
|
|
{
|
|
"light_type": "<type>",
|
|
"light_direction": "<direction with clock position>",
|
|
"light_quality": "<quality>",
|
|
"color_temperature": "<temperature>",
|
|
"shadow_density": "<density>",
|
|
"shadow_direction": "<direction>",
|
|
"background_type": "<type>",
|
|
"background_color": "<color>",
|
|
"background_blur": "<blur level>",
|
|
"background_elements": "<any elements>",
|
|
"prompt_description": "<lighting and background for prompt>"
|
|
}"""
|
|
},
|
|
|
|
"intimate_apparel": {
|
|
"name": "Intimate Apparel Details",
|
|
"prompt": """Analyze ALL intimate apparel/lingerie in this image in detail:
|
|
|
|
For EACH visible intimate garment, describe:
|
|
|
|
1. BRA/BRALETTE/BUSTIER (if visible):
|
|
- Style: push-up, balconette, bralette, sports bra, bustier, corset, bandeau, triangle
|
|
- Cup coverage: full coverage, demi, plunge, sheer
|
|
- Straps: thick, thin, spaghetti, strapless, halter, racerback, convertible
|
|
- Material: lace, satin, silk, cotton, mesh, velvet, leather
|
|
- Color and pattern: solid, printed, embroidered
|
|
- Details: underwire, boning, padding, hooks, clasps, ribbons, bows
|
|
- Trim: lace trim, scalloped edges, piping
|
|
|
|
2. PANTIES/BOTTOMS (if visible):
|
|
- Style: thong, G-string, bikini, hipster, boyshort, high-waist, cheeky
|
|
- Coverage: minimal, moderate, full
|
|
- Material: lace, satin, silk, cotton, mesh
|
|
- Color and pattern
|
|
- Waistband: thin elastic, wide band, string ties
|
|
- Details: bows, ribbons, cutouts
|
|
|
|
3. GARTER BELT/SUSPENDERS (if visible):
|
|
- Style: classic, modern, high-waist
|
|
- Number of straps: 4, 6, 8
|
|
- Material: lace, satin, elastic
|
|
- Clip style: metal, plastic
|
|
- Color
|
|
|
|
4. STOCKINGS/HOSIERY (if visible):
|
|
- Type: thigh-high, pantyhose, knee-high
|
|
- Pattern: solid, fishnet (small/large), seamed, patterned
|
|
- Denier: sheer, semi-opaque, opaque
|
|
- Top band: lace, silicone, plain
|
|
- Color
|
|
|
|
5. BODYSUIT/TEDDY (if visible):
|
|
- Style: plunge, high-neck, halter
|
|
- Coverage: sheer, opaque, cut-outs
|
|
- Closure: snap, hook, open
|
|
|
|
Output JSON:
|
|
{
|
|
"bra": {
|
|
"style": "<style>",
|
|
"coverage": "<coverage>",
|
|
"straps": "<strap type>",
|
|
"material": "<material>",
|
|
"color": "<color>",
|
|
"details": "<trim, embellishments>",
|
|
"description": "<full description>"
|
|
},
|
|
"bottoms": {
|
|
"style": "<style>",
|
|
"coverage": "<coverage>",
|
|
"material": "<material>",
|
|
"color": "<color>",
|
|
"details": "<details>",
|
|
"description": "<full description>"
|
|
},
|
|
"garter": {
|
|
"present": true/false,
|
|
"style": "<style>",
|
|
"straps": "<number>",
|
|
"color": "<color>",
|
|
"description": "<full description>"
|
|
},
|
|
"stockings": {
|
|
"present": true/false,
|
|
"type": "<type>",
|
|
"pattern": "<pattern>",
|
|
"color": "<color>",
|
|
"description": "<full description>"
|
|
},
|
|
"bodysuit": {
|
|
"present": true/false,
|
|
"description": "<if present>"
|
|
},
|
|
"prompt_description": "<complete intimate apparel description for prompt>"
|
|
}"""
|
|
},
|
|
|
|
"tattoos": {
|
|
"name": "Tattoos & Body Art",
|
|
"prompt": """Analyze ALL visible tattoos and body art in this image:
|
|
|
|
For EACH visible tattoo, describe:
|
|
|
|
1. LOCATION on body:
|
|
- Specific placement (e.g., "left upper arm", "right ribcage", "lower back", "chest", "thigh", "ankle", "wrist", "shoulder blade", "neck", "behind ear")
|
|
|
|
2. SIZE:
|
|
- Small (coin-sized), Medium (palm-sized), Large (hand-sized+), Sleeve, Full back piece
|
|
|
|
3. STYLE:
|
|
- Traditional/Old School
|
|
- Neo-traditional
|
|
- Realism/Photorealistic
|
|
- Watercolor
|
|
- Blackwork/Tribal
|
|
- Fine line/Minimalist
|
|
- Japanese/Irezumi
|
|
- Geometric
|
|
- Script/Lettering
|
|
- Dotwork
|
|
|
|
4. SUBJECT MATTER:
|
|
- What does the tattoo depict? (flowers, animals, portraits, symbols, text, abstract)
|
|
|
|
5. COLORS:
|
|
- Black and gray only
|
|
- Full color (list main colors)
|
|
- Red and black
|
|
- Single color accent
|
|
|
|
6. VISIBILITY:
|
|
- Fully visible, partially visible, glimpse only
|
|
|
|
If NO tattoos visible, state "no visible tattoos".
|
|
|
|
Output JSON:
|
|
{
|
|
"has_tattoos": true/false,
|
|
"tattoos": [
|
|
{
|
|
"location": "<body location>",
|
|
"size": "<size>",
|
|
"style": "<tattoo style>",
|
|
"subject": "<what it depicts>",
|
|
"colors": "<colors>",
|
|
"visibility": "<how visible>",
|
|
"description": "<full description>"
|
|
}
|
|
],
|
|
"prompt_description": "<all tattoos description for prompt, or 'no visible tattoos'>"
|
|
}"""
|
|
},
|
|
|
|
"subject_detection": {
|
|
"name": "Subject Detection",
|
|
"prompt": """Analyze this image and identify the PRIMARY SUBJECT TYPE.
|
|
|
|
Choose ONE primary subject type:
|
|
|
|
1. WOMAN - Adult female human as primary subject
|
|
2. MAN - Adult male human as primary subject
|
|
3. COUPLE - Two people (romantic/intimate context)
|
|
4. GROUP - Multiple people (3+)
|
|
5. CHILD - Child or teenager as primary subject
|
|
6. ANIMAL - Animal as primary subject (pet, wildlife)
|
|
7. VEHICLE - Car, motorcycle, plane, boat, etc.
|
|
8. PRODUCT - Commercial product photography
|
|
9. FOOD - Food/beverage photography
|
|
10. ARCHITECTURE - Building, interior, structure
|
|
11. LANDSCAPE - Nature, scenery, outdoor environment
|
|
12. ABSTRACT - Abstract art, patterns, textures
|
|
13. OTHER - None of the above
|
|
|
|
Also identify:
|
|
- Is there ANY human visible (even partially)?
|
|
- What is the main focus of the image?
|
|
|
|
Output JSON:
|
|
{
|
|
"subject_type": "<one of the types above>",
|
|
"has_human": true/false,
|
|
"human_gender": "<female/male/multiple/none>",
|
|
"human_visible_parts": "<what parts visible: face, body, hands only, silhouette, etc.>",
|
|
"main_focus": "<brief description of main subject>",
|
|
"secondary_elements": "<other notable elements>"
|
|
}"""
|
|
},
|
|
|
|
"object_description": {
|
|
"name": "Object/Vehicle Description",
|
|
"prompt": """Describe this object/vehicle in detail:
|
|
|
|
1. TYPE: What is it exactly? (make, model if identifiable)
|
|
2. COLOR: Primary and secondary colors
|
|
3. CONDITION: New, worn, vintage, damaged?
|
|
4. STYLE: Modern, classic, futuristic, industrial?
|
|
5. NOTABLE FEATURES: Distinctive elements, modifications, details
|
|
6. POSITION/ANGLE: How is it positioned in frame?
|
|
7. MOTION: Static, moving, motion blur?
|
|
8. ENVIRONMENT: Where is it? What surrounds it?
|
|
|
|
Output JSON:
|
|
{
|
|
"type": "<specific type>",
|
|
"make_model": "<if identifiable>",
|
|
"colors": {"primary": "<color>", "secondary": "<color>"},
|
|
"condition": "<condition>",
|
|
"style": "<style>",
|
|
"notable_features": ["<feature1>", "<feature2>"],
|
|
"position": "<position in frame>",
|
|
"motion": "<static/moving/motion blur>",
|
|
"environment": "<surroundings>",
|
|
"prompt_description": "<full description for prompt>"
|
|
}"""
|
|
},
|
|
|
|
"scenery_description": {
|
|
"name": "Scenery/Landscape Description",
|
|
"prompt": """Describe this landscape/scenery in detail:
|
|
|
|
1. TYPE: Beach, mountain, forest, urban, desert, etc.
|
|
2. TIME OF DAY: Dawn, morning, noon, afternoon, sunset, dusk, night
|
|
3. WEATHER: Clear, cloudy, rainy, foggy, stormy, snowy
|
|
4. SEASON: Spring, summer, autumn, winter
|
|
5. KEY ELEMENTS: Water, trees, buildings, sky features
|
|
6. COLORS: Dominant color palette
|
|
7. MOOD: Serene, dramatic, mysterious, vibrant
|
|
8. DEPTH: Foreground, midground, background elements
|
|
|
|
Output JSON:
|
|
{
|
|
"type": "<landscape type>",
|
|
"time_of_day": "<time>",
|
|
"weather": "<conditions>",
|
|
"season": "<season>",
|
|
"key_elements": ["<element1>", "<element2>"],
|
|
"color_palette": ["<color1>", "<color2>"],
|
|
"mood": "<mood>",
|
|
"foreground": "<description>",
|
|
"midground": "<description>",
|
|
"background": "<description>",
|
|
"prompt_description": "<full description for prompt>"
|
|
}"""
|
|
}
|
|
}
|
|
|
|
|
|
# Subject type to component mapping
|
|
SUBJECT_COMPONENTS = {
|
|
"WOMAN": {
|
|
"Standard": ["framing", "ethnicity", "hair", "face", "eyes", "body_pose", "body_figure", "clothing", "lighting"],
|
|
"Detailed": ["framing", "ethnicity", "hair", "face", "eyes", "nose_lips", "body_pose", "body_figure", "clothing", "intimate_apparel", "tattoos", "accessories", "lighting"],
|
|
"Extreme": ["framing", "ethnicity", "hair", "face", "eyes", "nose_lips", "body_pose", "body_figure", "clothing", "intimate_apparel", "tattoos", "accessories", "lighting"],
|
|
},
|
|
"MAN": {
|
|
"Standard": ["framing", "ethnicity", "hair", "face", "eyes", "body_pose", "clothing", "lighting"],
|
|
"Detailed": ["framing", "ethnicity", "hair", "face", "eyes", "nose_lips", "body_pose", "clothing", "tattoos", "accessories", "lighting"],
|
|
"Extreme": ["framing", "ethnicity", "hair", "face", "eyes", "nose_lips", "body_pose", "clothing", "tattoos", "accessories", "lighting"],
|
|
},
|
|
"COUPLE": {
|
|
"Standard": ["framing", "ethnicity", "hair", "face", "body_pose", "clothing", "lighting"],
|
|
"Detailed": ["framing", "ethnicity", "hair", "face", "eyes", "body_pose", "clothing", "intimate_apparel", "accessories", "lighting"],
|
|
"Extreme": ["framing", "ethnicity", "hair", "face", "eyes", "nose_lips", "body_pose", "clothing", "intimate_apparel", "tattoos", "accessories", "lighting"],
|
|
},
|
|
"GROUP": {
|
|
"Standard": ["framing", "lighting"],
|
|
"Detailed": ["framing", "clothing", "lighting"],
|
|
"Extreme": ["framing", "clothing", "accessories", "lighting"],
|
|
},
|
|
"VEHICLE": {
|
|
"Standard": ["framing", "object_description", "lighting"],
|
|
"Detailed": ["framing", "object_description", "lighting"],
|
|
"Extreme": ["framing", "object_description", "lighting"],
|
|
},
|
|
"LANDSCAPE": {
|
|
"Standard": ["framing", "scenery_description", "lighting"],
|
|
"Detailed": ["framing", "scenery_description", "lighting"],
|
|
"Extreme": ["framing", "scenery_description", "lighting"],
|
|
},
|
|
"ANIMAL": {
|
|
"Standard": ["framing", "object_description", "lighting"],
|
|
"Detailed": ["framing", "object_description", "lighting"],
|
|
"Extreme": ["framing", "object_description", "lighting"],
|
|
},
|
|
"PRODUCT": {
|
|
"Standard": ["framing", "object_description", "lighting"],
|
|
"Detailed": ["framing", "object_description", "lighting"],
|
|
"Extreme": ["framing", "object_description", "lighting"],
|
|
},
|
|
"ARCHITECTURE": {
|
|
"Standard": ["framing", "scenery_description", "lighting"],
|
|
"Detailed": ["framing", "scenery_description", "lighting"],
|
|
"Extreme": ["framing", "scenery_description", "lighting"],
|
|
},
|
|
"OTHER": {
|
|
"Standard": ["framing", "object_description", "lighting"],
|
|
"Detailed": ["framing", "object_description", "lighting"],
|
|
"Extreme": ["framing", "object_description", "lighting"],
|
|
},
|
|
}
|
|
|
|
|
|
# Detail mode configurations
|
|
DETAIL_MODES = {
|
|
"Standard": {
|
|
"components": ["framing", "ethnicity", "hair", "face", "eyes", "body_pose", "body_figure", "clothing", "lighting"],
|
|
"description": "Balanced analysis - main features including body proportions",
|
|
"include_measurements": False,
|
|
},
|
|
"Detailed": {
|
|
"components": ["framing", "ethnicity", "hair", "face", "eyes", "nose_lips", "body_pose", "body_figure", "clothing", "intimate_apparel", "tattoos", "accessories", "lighting"],
|
|
"description": "Comprehensive analysis - all features including body figure, intimate apparel and tattoos",
|
|
"include_measurements": True,
|
|
},
|
|
"Extreme": {
|
|
"components": ["framing", "ethnicity", "hair", "face", "eyes", "nose_lips", "body_pose", "body_figure", "clothing", "intimate_apparel", "tattoos", "accessories", "lighting"],
|
|
"description": "Maximum detail - all components including body proportions, explicit descriptions, raw output",
|
|
"include_measurements": True,
|
|
"include_exposure": True,
|
|
"raw_mode": True,
|
|
},
|
|
}
|