{ "meta": { "image_quality": "High", "image_type": "Mixed Media (Photography combined with Digital Illustration/Collage)", "resolution_estimation": "High resolution, sharp edges on vectors", "file_characteristics": { "compression_artifacts": "Low", "noise_level": "None", "lens_type_estimation": "Standard to slight wide-angle (approx 35mm)" } }, "global_context": { "scene_description": "A full-body studio portrait of a young man posing dynamically against a solid bright blue background. The image is a composite featuring the photograph of the man overlaid with white hand-drawn style vector graphics (doodles) and abstract blue liquid shapes. The subject is dressed in a monochromatic blue streetwear outfit with white accents.", "environment_type": "Studio/Graphic Design Composition", "time_of_day": "Indiscernible (Studio Lighting)", "weather_atmosphere": "Energetic, Artistic, Urban, Cool", "lighting": { "source": "Artificial Studio Lighting", "direction": "Front-right dominant (creating soft shadows on the left side of the face)", "quality": "Soft, Diffused", "color_temperature": "Neutral white" }, "color_palette": { "dominant_hex_estimates": [ "#4CA7E8", "#0044CC", "#FFFFFF", "#1A2B45" ], "accent_colors": [ "#FFFFFF" ], "contrast_level": "High" } }, "composition": { "camera_angle": "Low-angle (looking slightly up at the subject)", "framing": "Full Shot (Head to Toe)", "depth_of_field": "Deep (Everything in focus)", "focal_point": "Subject's face and upper torso", "symmetry_type": "Asymmetrical balance", "rule_of_thirds_alignment": "Subject centered, graphics balancing the negative space" }, "objects": [ { "id": "obj_001", "label": "Male Subject", "category": "Person", "location": { "relative_position": "Center", "bounding_box_percentage": { "x": 0.30, "y": 0.05, "width": 0.40, "height": 0.85 } }, "dimensions_relative": "Large", "distance_from_camera": "Mid", "pose_orientation": "Standing, body angled slightly right, head tilted left, right hand raised near face, left leg crossed over right leg", "material": "Organic (Skin)", "surface_properties": { "texture": "Skin", "reflectivity": "Low", "micro_details": "Light goatee/facial hair, neutral but confident expression", "wear_state": "N/A" }, "color_details": { "base_color_hex": "#5C3A2A", "secondary_colors": [], "gradient_or_pattern": "Natural skin tones" }, "interaction_with_light": { "shadow_casting": "Self-shadows on neck and left side of face", "highlight_zones": "Forehead, right cheek, nose bridge", "translucency": "None" }, "relationships": [ { "type": "wearing", "target_object_id": "obj_002" }, { "type": "wearing", "target_object_id": "obj_003" }, { "type": "wearing", "target_object_id": "obj_004" }, { "type": "wearing", "target_object_id": "obj_005" }, { "type": "wearing", "target_object_id": "obj_006" }, { "type": "interacting_with", "target_object_id": "obj_007" }, { "type": "standing_on", "target_object_id": "obj_011" } ] }, { "id": "obj_002", "label": "Bucket Hat", "category": "Apparel", "location": { "relative_position": "Top-Center (On head)", "bounding_box_percentage": { "x": 0.45, "y": 0.05, "width": 0.10, "height": 0.08 } }, "dimensions_relative": "Small", "distance_from_camera": "Mid", "pose_orientation": "Worn on head, brim pulled slightly down", "material": "Denim/Canvas", "surface_properties": { "texture": "Woven fabric", "reflectivity": "Low", "micro_details": "Visible white contrast stitching around the brim and crown", "wear_state": "New" }, "color_details": { "base_color_hex": "#003399", "secondary_colors": [ "#FFFFFF" ], "gradient_or_pattern": "Solid blue with white stitching lines" } }, { "id": "obj_003", "label": "Fleece Jacket", "category": "Apparel", "location": { "relative_position": "Upper Body", "bounding_box_percentage": { "x": 0.30, "y": 0.12, "width": 0.35, "height": 0.40 } }, "dimensions_relative": "Medium", "distance_from_camera": "Mid", "pose_orientation": "Worn open, sleeves rolled slightly or pushed up", "material": "Sherpa Fleece / Synthetic Blend", "surface_properties": { "texture": "High pile, fuzzy, nubby texture on outer shell", "reflectivity": "Low (Matte)", "micro_details": "Silver snap button visible on collar, smooth fabric lining visible at cuffs", "wear_state": "New" }, "color_details": { "base_color_hex": "#0044CC", "secondary_colors": [ "#002266" ], "gradient_or_pattern": "Solid vivid blue" } }, { "id": "obj_004", "label": "T-Shirt", "category": "Apparel", "location": { "relative_position": "Chest/Torso (Under jacket)", "bounding_box_percentage": { "x": 0.40, "y": 0.20, "width": 0.20, "height": 0.30 } }, "dimensions_relative": "Medium", "distance_from_camera": "Mid", "pose_orientation": "Worn on torso", "material": "Cotton jersey", "surface_properties": { "texture": "Smooth fabric", "reflectivity": "Low", "micro_details": "Large graphic print on chest", "wear_state": "New" }, "color_details": { "base_color_hex": "#0044CC", "secondary_colors": [ "#FFFFFF" ], "gradient_or_pattern": "Large white outline of Adidas Trefoil logo on chest" }, "text_content": { "raw_text": "adidas (implied by logo shape)", "font_style": "Logo symbol", "font_weight": "Bold", "text_case": "N/A", "alignment": "Center", "color_hex": "#FFFFFF" } }, { "id": "obj_005", "label": "Jeans", "category": "Apparel", "location": { "relative_position": "Lower Body", "bounding_box_percentage": { "x": 0.40, "y": 0.45, "width": 0.20, "height": 0.40 } }, "dimensions_relative": "Medium", "distance_from_camera": "Mid", "pose_orientation": "Worn on legs, relaxed fit", "material": "Denim", "surface_properties": { "texture": "Woven denim", "reflectivity": "Low", "micro_details": "Heavy white contrast stitching along seams and pockets. Cuffs are rolled up exposing lighter reverse side of denim.", "wear_state": "New" }, "color_details": { "base_color_hex": "#2A3B55", "secondary_colors": [ "#FFFFFF", "#667788" ], "gradient_or_pattern": "Dark wash indigo" } }, { "id": "obj_006", "label": "Sneakers", "category": "Footwear", "location": { "relative_position": "Bottom-Center", "bounding_box_percentage": { "x": 0.35, "y": 0.85, "width": 0.25, "height": 0.10 } }, "dimensions_relative": "Small", "distance_from_camera": "Mid", "pose_orientation": "Right foot planted, left foot on toe/mid-step. Classic Adidas Superstar silhouette.", "material": "Leather/Rubber", "surface_properties": { "texture": "Smooth leather upper, textured rubber shell toe", "reflectivity": "Medium (Leather sheen)", "micro_details": "Three stripes visible (white on white), shell toe pattern", "wear_state": "Pristine/Clean" }, "color_details": { "base_color_hex": "#FFFFFF", "secondary_colors": [], "gradient_or_pattern": "All white" } }, { "id": "obj_007", "label": "Graphic - Mic Drop Lines", "category": "Illustration/Overlay", "location": { "relative_position": "Upper Left (Hanging from hand)", "bounding_box_percentage": { "x": 0.38, "y": 0.12, "width": 0.05, "height": 0.25 } }, "dimensions_relative": "Small", "distance_from_camera": "Zero (Overlay)", "pose_orientation": "Vertical", "material": "Digital Vector", "surface_properties": { "texture": "Flat color", "reflectivity": "None", "micro_details": "Three thick vertical white lines representing motion or cable" }, "color_details": { "base_color_hex": "#FFFFFF", "secondary_colors": [], "gradient_or_pattern": "Solid" }, "relationships": [ { "type": "originating_from", "target_object_id": "obj_001" } ] }, { "id": "obj_008", "label": "Graphic - Microphone", "category": "Illustration/Overlay", "location": { "relative_position": "Mid Left (Below hand)", "bounding_box_percentage": { "x": 0.38, "y": 0.35, "width": 0.05, "height": 0.05 } }, "dimensions_relative": "Small", "distance_from_camera": "Zero (Overlay)", "pose_orientation": "Angled downwards", "material": "Digital Vector", "surface_properties": { "texture": "Hand-drawn line art style", "reflectivity": "None", "micro_details": "Outline of a dynamic vocal microphone" }, "color_details": { "base_color_hex": "#FFFFFF", "secondary_colors": [], "gradient_or_pattern": "Outline only" } }, { "id": "obj_009", "label": "Graphic - Boombox", "category": "Illustration/Overlay", "location": { "relative_position": "Center Right", "bounding_box_percentage": { "x": 0.65, "y": 0.30, "width": 0.15, "height": 0.20 } }, "dimensions_relative": "Medium", "distance_from_camera": "Zero (Overlay)", "pose_orientation": "Isometric view", "material": "Digital Vector", "surface_properties": { "texture": "Hand-drawn line art style", "reflectivity": "None", "micro_details": "Speaker grille mesh pattern, handle, buttons, cassette deck outline" }, "color_details": { "base_color_hex": "#FFFFFF", "secondary_colors": [], "gradient_or_pattern": "Outline only" }, "relationships": [ { "type": "emitting", "target_object_id": "obj_013" } ] }, { "id": "obj_010", "label": "Graphic - Adidas Trefoil Logo", "category": "Illustration/Overlay", "location": { "relative_position": "Bottom Right", "bounding_box_percentage": { "x": 0.65, "y": 0.65, "width": 0.15, "height": 0.15 } }, "dimensions_relative": "Medium", "distance_from_camera": "Zero (Overlay)", "pose_orientation": "Flat", "material": "Digital Vector", "surface_properties": { "texture": "Flat color", "reflectivity": "None", "micro_details": "Classic 3-leaf shape with horizontal stripes" }, "color_details": { "base_color_hex": "#FFFFFF", "secondary_colors": [], "gradient_or_pattern": "Solid" } }, { "id": "obj_011", "label": "Graphic - Cracked Floor", "category": "Illustration/Overlay", "location": { "relative_position": "Bottom Center (Under feet)", "bounding_box_percentage": { "x": 0.25, "y": 0.85, "width": 0.50, "height": 0.15 } }, "dimensions_relative": "Medium", "distance_from_camera": "Zero (Overlay)", "pose_orientation": "Flat perspective on ground", "material": "Digital Vector", "surface_properties": { "texture": "Line art", "reflectivity": "None", "micro_details": "Jagged lines radiating outward from the subject's stance like shattered glass" }, "color_details": { "base_color_hex": "#FFFFFF", "secondary_colors": [], "gradient_or_pattern": "Line art" } }, { "id": "obj_012", "label": "Graphic - Liquid Shapes", "category": "Illustration/Background Element", "location": { "relative_position": "Behind Subject", "bounding_box_percentage": { "x": 0.10, "y": 0.10, "width": 0.80, "height": 0.80 } }, "dimensions_relative": "Large", "distance_from_camera": "Behind Subject", "pose_orientation": "Fluid, amorphous", "material": "Digital Vector", "surface_properties": { "texture": "Flat color", "reflectivity": "None", "micro_details": "Blobs and splashes extending to the left and right, wrapping slightly around the subject" }, "color_details": { "base_color_hex": "#5CAFF0", "secondary_colors": [], "gradient_or_pattern": "Slightly darker/more saturated than background blue" } }, { "id": "obj_013", "label": "Graphic - Sound/Motion Lines", "category": "Illustration/Overlay", "location": { "relative_position": "Around Head and Boombox", "bounding_box_percentage": { "x": 0.60, "y": 0.05, "width": 0.25, "height": 0.40 } }, "dimensions_relative": "Small", "distance_from_camera": "Zero (Overlay)", "pose_orientation": "Radiating", "material": "Digital Vector", "surface_properties": { "texture": "Line art", "reflectivity": "None", "micro_details": "Short strokes indicating sound or movement above the hat and next to the boombox" }, "color_details": { "base_color_hex": "#FFFFFF", "secondary_colors": [], "gradient_or_pattern": "Solid" } } ], "background_details": { "texture": "Digital Flat Color", "patterns": "None (Solid Color)", "lighting_behavior": "Even illumination, no gradient visible", "additional_elements": [ "Vector liquid shapes (obj_012) act as a secondary background layer" ] }, "foreground_elements": { "particles": "None", "artifacts": "White vector doodles (mic, boombox, cracks) act as foreground overlays" }, "reconstruction_notes": { "mandatory_elements_for_recreation": [ "Male model in full blue Adidas outfit", "Fleece texture on jacket", "White contrast stitching on jeans and hat", "Hand-drawn white doodle overlays (Mic, Boombox, Trefoil)", "Cracked floor effect under feet", "Monochromatic blue palette with white accents", "Dynamic 'cool' pose" ], "sensitivity_factors": "The blend between the realistic photo and the flat vector graphics must be sharp. The blue tones of the clothing must coordinate with but distinguish from the background blue.", "ambiguities": "The exact specific model of the Adidas jacket is not identifiable by name but defined by texture (sherpa/fleece) and color." } }
{ "meta": { "image_quality": "High", "image_type": "Mixed Media (Photography combined with Digital Illustration/Collage)", "resolution_estimation": "High resolution, sharp edges on vectors", "file_characteristics": { "compression_artifacts": "Low", "noise_level": "None", "lens_type_estimation": "Standard to slight wide-angle (approx 35mm)" } }, "global_context": { "scene_description": "A full-body studio portrait of a young man posing dynamically against a solid bright blue background. The image is a composite featuring the photograph of the man overlaid with white hand-drawn style vector graphics (doodles) and abstract blue liquid shapes. The subject is dressed in a monochromatic blue streetwear outfit with white accents.", "environment_type": "Studio/Graphic Design Composition", "time_of_day": "Indiscernible (Studio Lighting)", "weather_atmosphere": "Energetic, Artistic, Urban, Cool", "lighting": { "source": "Artificial Studio Lighting", "direction": "Front-right dominant (creating soft shadows on the left side of the face)", "quality": "Soft, Diffused", "color_temperature": "Neutral white" }, "color_palette": { "dominant_hex_estimates": [ "#4CA7E8", "#0044CC", "#FFFFFF", "#1A2B45" ], "accent_colors": [ "#FFFFFF" ], "contrast_level": "High" } }, "composition": { "camera_angle": "Low-angle (looking slightly up at the subject)", "framing": "Full Shot (Head to Toe)", "depth_of_field": "Deep (Everything in focus)", "focal_point": "Subject's face and upper torso", "symmetry_type": "Asymmetrical balance", "rule_of_thirds_alignment": "Subject centered, graphics balancing the negative space" }, "objects": [ { "id": "obj_001", "label": "Male Subject", "category": "Person", "location": { "relative_position": "Center", "bounding_box_percentage": { "x": 0.30, "y": 0.05, "width": 0.40, "height": 0.85 } }, "dimensions_relative": "Large", "distance_from_camera": "Mid", "pose_orientation": "Standing, body angled slightly right, head tilted left, right hand raised near face, left leg crossed over right leg", "material": "Organic (Skin)", "surface_properties": { "texture": "Skin", "reflectivity": "Low", "micro_details": "Light goatee/facial hair, neutral but confident expression", "wear_state": "N/A" }, "color_details": { "base_color_hex": "#5C3A2A", "secondary_colors": [], "gradient_or_pattern": "Natural skin tones" }, "interaction_with_light": { "shadow_casting": "Self-shadows on neck and left side of face", "highlight_zones": "Forehead, right cheek, nose bridge", "translucency": "None" }, "relationships": [ { "type": "wearing", "target_object_id": "obj_002" }, { "type": "wearing", "target_object_id": "obj_003" }, { "type": "wearing", "target_object_id": "obj_004" }, { "type": "wearing", "target_object_id": "obj_005" }, { "type": "wearing", "target_object_id": "obj_006" }, { "type": "interacting_with", "target_object_id": "obj_007" }, { "type": "standing_on", "target_object_id": "obj_011" } ] }, { "id": "obj_002", "label": "Bucket Hat", "category": "Apparel", "location": { "relative_position": "Top-Center (On head)", "bounding_box_percentage": { "x": 0.45, "y": 0.05, "width": 0.10, "height": 0.08 } }, "dimensions_relative": "Small", "distance_from_camera": "Mid", "pose_orientation": "Worn on head, brim pulled slightly down", "material": "Denim/Canvas", "surface_properties": { "texture": "Woven fabric", "reflectivity": "Low", "micro_details": "Visible white contrast stitching around the brim and crown", "wear_state": "New" }, "color_details": { "base_color_hex": "#003399", "secondary_colors": [ "#FFFFFF" ], "gradient_or_pattern": "Solid blue with white stitching lines" } }, { "id": "obj_003", "label": "Fleece Jacket", "category": "Apparel", "location": { "relative_position": "Upper Body", "bounding_box_percentage": { "x": 0.30, "y": 0.12, "width": 0.35, "height": 0.40 } }, "dimensions_relative": "Medium", "distance_from_camera": "Mid", "pose_orientation": "Worn open, sleeves rolled slightly or pushed up", "material": "Sherpa Fleece / Synthetic Blend", "surface_properties": { "texture": "High pile, fuzzy, nubby texture on outer shell", "reflectivity": "Low (Matte)", "micro_details": "Silver snap button visible on collar, smooth fabric lining visible at cuffs", "wear_state": "New" }, "color_details": { "base_color_hex": "#0044CC", "secondary_colors": [ "#002266" ], "gradient_or_pattern": "Solid vivid blue" } }, { "id": "obj_004", "label": "T-Shirt", "category": "Apparel", "location": { "relative_position": "Chest/Torso (Under jacket)", "bounding_box_percentage": { "x": 0.40, "y": 0.20, "width": 0.20, "height": 0.30 } }, "dimensions_relative": "Medium", "distance_from_camera": "Mid", "pose_orientation": "Worn on torso", "material": "Cotton jersey", "surface_properties": { "texture": "Smooth fabric", "reflectivity": "Low", "micro_details": "Large graphic print on chest", "wear_state": "New" }, "color_details": { "base_color_hex": "#0044CC", "secondary_colors": [ "#FFFFFF" ], "gradient_or_pattern": "Large white outline of Adidas Trefoil logo on chest" }, "text_content": { "raw_text": "adidas (implied by logo shape)", "font_style": "Logo symbol", "font_weight": "Bold", "text_case": "N/A", "alignment": "Center", "color_hex": "#FFFFFF" } }, { "id": "obj_005", "label": "Jeans", "category": "Apparel", "location": { "relative_position": "Lower Body", "bounding_box_percentage": { "x": 0.40, "y": 0.45, "width": 0.20, "height": 0.40 } }, "dimensions_relative": "Medium", "distance_from_camera": "Mid", "pose_orientation": "Worn on legs, relaxed fit", "material": "Denim", "surface_properties": { "texture": "Woven denim", "reflectivity": "Low", "micro_details": "Heavy white contrast stitching along seams and pockets. Cuffs are rolled up exposing lighter reverse side of denim.", "wear_state": "New" }, "color_details": { "base_color_hex": "#2A3B55", "secondary_colors": [ "#FFFFFF", "#667788" ], "gradient_or_pattern": "Dark wash indigo" } }, { "id": "obj_006", "label": "Sneakers", "category": "Footwear", "location": { "relative_position": "Bottom-Center", "bounding_box_percentage": { "x": 0.35, "y": 0.85, "width": 0.25, "height": 0.10 } }, "dimensions_relative": "Small", "distance_from_camera": "Mid", "pose_orientation": "Right foot planted, left foot on toe/mid-step. Classic Adidas Superstar silhouette.", "material": "Leather/Rubber", "surface_properties": { "texture": "Smooth leather upper, textured rubber shell toe", "reflectivity": "Medium (Leather sheen)", "micro_details": "Three stripes visible (white on white), shell toe pattern", "wear_state": "Pristine/Clean" }, "color_details": { "base_color_hex": "#FFFFFF", "secondary_colors": [], "gradient_or_pattern": "All white" } }, { "id": "obj_007", "label": "Graphic - Mic Drop Lines", "category": "Illustration/Overlay", "location": { "relative_position": "Upper Left (Hanging from hand)", "bounding_box_percentage": { "x": 0.38, "y": 0.12, "width": 0.05, "height": 0.25 } }, "dimensions_relative": "Small", "distance_from_camera": "Zero (Overlay)", "pose_orientation": "Vertical", "material": "Digital Vector", "surface_properties": { "texture": "Flat color", "reflectivity": "None", "micro_details": "Three thick vertical white lines representing motion or cable" }, "color_details": { "base_color_hex": "#FFFFFF", "secondary_colors": [], "gradient_or_pattern": "Solid" }, "relationships": [ { "type": "originating_from", "target_object_id": "obj_001" } ] }, { "id": "obj_008", "label": "Graphic - Microphone", "category": "Illustration/Overlay", "location": { "relative_position": "Mid Left (Below hand)", "bounding_box_percentage": { "x": 0.38, "y": 0.35, "width": 0.05, "height": 0.05 } }, "dimensions_relative": "Small", "distance_from_camera": "Zero (Overlay)", "pose_orientation": "Angled downwards", "material": "Digital Vector", "surface_properties": { "texture": "Hand-drawn line art style", "reflectivity": "None", "micro_details": "Outline of a dynamic vocal microphone" }, "color_details": { "base_color_hex": "#FFFFFF", "secondary_colors": [], "gradient_or_pattern": "Outline only" } }, { "id": "obj_009", "label": "Graphic - Boombox", "category": "Illustration/Overlay", "location": { "relative_position": "Center Right", "bounding_box_percentage": { "x": 0.65, "y": 0.30, "width": 0.15, "height": 0.20 } }, "dimensions_relative": "Medium", "distance_from_camera": "Zero (Overlay)", "pose_orientation": "Isometric view", "material": "Digital Vector", "surface_properties": { "texture": "Hand-drawn line art style", "reflectivity": "None", "micro_details": "Speaker grille mesh pattern, handle, buttons, cassette deck outline" }, "color_details": { "base_color_hex": "#FFFFFF", "secondary_colors": [], "gradient_or_pattern": "Outline only" }, "relationships": [ { "type": "emitting", "target_object_id": "obj_013" } ] }, { "id": "obj_010", "label": "Graphic - Adidas Trefoil Logo", "category": "Illustration/Overlay", "location": { "relative_position": "Bottom Right", "bounding_box_percentage": { "x": 0.65, "y": 0.65, "width": 0.15, "height": 0.15 } }, "dimensions_relative": "Medium", "distance_from_camera": "Zero (Overlay)", "pose_orientation": "Flat", "material": "Digital Vector", "surface_properties": { "texture": "Flat color", "reflectivity": "None", "micro_details": "Classic 3-leaf shape with horizontal stripes" }, "color_details": { "base_color_hex": "#FFFFFF", "secondary_colors": [], "gradient_or_pattern": "Solid" } }, { "id": "obj_011", "label": "Graphic - Cracked Floor", "category": "Illustration/Overlay", "location": { "relative_position": "Bottom Center (Under feet)", "bounding_box_percentage": { "x": 0.25, "y": 0.85, "width": 0.50, "height": 0.15 } }, "dimensions_relative": "Medium", "distance_from_camera": "Zero (Overlay)", "pose_orientation": "Flat perspective on ground", "material": "Digital Vector", "surface_properties": { "texture": "Line art", "reflectivity": "None", "micro_details": "Jagged lines radiating outward from the subject's stance like shattered glass" }, "color_details": { "base_color_hex": "#FFFFFF", "secondary_colors": [], "gradient_or_pattern": "Line art" } }, { "id": "obj_012", "label": "Graphic - Liquid Shapes", "category": "Illustration/Background Element", "location": { "relative_position": "Behind Subject", "bounding_box_percentage": { "x": 0.10, "y": 0.10, "width": 0.80, "height": 0.80 } }, "dimensions_relative": "Large", "distance_from_camera": "Behind Subject", "pose_orientation": "Fluid, amorphous", "material": "Digital Vector", "surface_properties": { "texture": "Flat color", "reflectivity": "None", "micro_details": "Blobs and splashes extending to the left and right, wrapping slightly around the subject" }, "color_details": { "base_color_hex": "#5CAFF0", "secondary_colors": [], "gradient_or_pattern": "Slightly darker/more saturated than background blue" } }, { "id": "obj_013", "label": "Graphic - Sound/Motion Lines", "category": "Illustration/Overlay", "location": { "relative_position": "Around Head and Boombox", "bounding_box_percentage": { "x": 0.60, "y": 0.05, "width": 0.25, "height": 0.40 } }, "dimensions_relative": "Small", "distance_from_camera": "Zero (Overlay)", "pose_orientation": "Radiating", "material": "Digital Vector", "surface_properties": { "texture": "Line art", "reflectivity": "None", "micro_details": "Short strokes indicating sound or movement above the hat and next to the boombox" }, "color_details": { "base_color_hex": "#FFFFFF", "secondary_colors": [], "gradient_or_pattern": "Solid" } } ], "background_details": { "texture": "Digital Flat Color", "patterns": "None (Solid Color)", "lighting_behavior": "Even illumination, no gradient visible", "additional_elements": [ "Vector liquid shapes (obj_012) act as a secondary background layer" ] }, "foreground_elements": { "particles": "None", "artifacts": "White vector doodles (mic, boombox, cracks) act as foreground overlays" }, "reconstruction_notes": { "mandatory_elements_for_recreation": [ "Male model in full blue Adidas outfit", "Fleece texture on jacket", "White contrast stitching on jeans and hat", "Hand-drawn white doodle overlays (Mic, Boombox, Trefoil)", "Cracked floor effect under feet", "Monochromatic blue palette with white accents", "Dynamic 'cool' pose" ], "sensitivity_factors": "The blend between the realistic photo and the flat vector graphics must be sharp. The blue tones of the clothing must coordinate with but distinguish from the background blue.", "ambiguities": "The exact specific model of the Adidas jacket is not identifiable by name but defined by texture (sherpa/fleece) and color." } }
{ "meta": { "image_quality": "High", "image_type": "Mixed Media (Photography combined with Digital Illustration/Collage)", "resolution_estimation": "High resolution, sharp edges on vectors", "file_characteristics": { "compression_artifacts": "Low", "noise_level": "None", "lens_type_estimation": "Standard to slight wide-angle (approx 35mm)" } }, "global_context": { "scene_description": "A full-body studio portrait of a young man posing dynamically against a solid bright blue background. The image is a composite featuring the photograph of the man overlaid with white hand-drawn style vector graphics (doodles) and abstract blue liquid shapes. The subject is dressed in a monochromatic blue streetwear outfit with white accents.", "environment_type": "Studio/Graphic Design Composition", "time_of_day": "Indiscernible (Studio Lighting)", "weather_atmosphere": "Energetic, Artistic, Urban, Cool", "lighting": { "source": "Artificial Studio Lighting", "direction": "Front-right dominant (creating soft shadows on the left side of the face)", "quality": "Soft, Diffused", "color_temperature": "Neutral white" }, "color_palette": { "dominant_hex_estimates": [ "#4CA7E8", "#0044CC", "#FFFFFF", "#1A2B45" ], "accent_colors": [ "#FFFFFF" ], "contrast_level": "High" } }, "composition": { "camera_angle": "Low-angle (looking slightly up at the subject)", "framing": "Full Shot (Head to Toe)", "depth_of_field": "Deep (Everything in focus)", "focal_point": "Subject's face and upper torso", "symmetry_type": "Asymmetrical balance", "rule_of_thirds_alignment": "Subject centered, graphics balancing the negative space" }, "objects": [ { "id": "obj_001", "label": "Male Subject", "category": "Person", "location": { "relative_position": "Center", "bounding_box_percentage": { "x": 0.30, "y": 0.05, "width": 0.40, "height": 0.85 } }, "dimensions_relative": "Large", "distance_from_camera": "Mid", "pose_orientation": "Standing, body angled slightly right, head tilted left, right hand raised near face, left leg crossed over right leg", "material": "Organic (Skin)", "surface_properties": { "texture": "Skin", "reflectivity": "Low", "micro_details": "Light goatee/facial hair, neutral but confident expression", "wear_state": "N/A" }, "color_details": { "base_color_hex": "#5C3A2A", "secondary_colors": [], "gradient_or_pattern": "Natural skin tones" }, "interaction_with_light": { "shadow_casting": "Self-shadows on neck and left side of face", "highlight_zones": "Forehead, right cheek, nose bridge", "translucency": "None" }, "relationships": [ { "type": "wearing", "target_object_id": "obj_002" }, { "type": "wearing", "target_object_id": "obj_003" }, { "type": "wearing", "target_object_id": "obj_004" }, { "type": "wearing", "target_object_id": "obj_005" }, { "type": "wearing", "target_object_id": "obj_006" }, { "type": "interacting_with", "target_object_id": "obj_007" }, { "type": "standing_on", "target_object_id": "obj_011" } ] }, { "id": "obj_002", "label": "Bucket Hat", "category": "Apparel", "location": { "relative_position": "Top-Center (On head)", "bounding_box_percentage": { "x": 0.45, "y": 0.05, "width": 0.10, "height": 0.08 } }, "dimensions_relative": "Small", "distance_from_camera": "Mid", "pose_orientation": "Worn on head, brim pulled slightly down", "material": "Denim/Canvas", "surface_properties": { "texture": "Woven fabric", "reflectivity": "Low", "micro_details": "Visible white contrast stitching around the brim and crown", "wear_state": "New" }, "color_details": { "base_color_hex": "#003399", "secondary_colors": [ "#FFFFFF" ], "gradient_or_pattern": "Solid blue with white stitching lines" } }, { "id": "obj_003", "label": "Fleece Jacket", "category": "Apparel", "location": { "relative_position": "Upper Body", "bounding_box_percentage": { "x": 0.30, "y": 0.12, "width": 0.35, "height": 0.40 } }, "dimensions_relative": "Medium", "distance_from_camera": "Mid", "pose_orientation": "Worn open, sleeves rolled slightly or pushed up", "material": "Sherpa Fleece / Synthetic Blend", "surface_properties": { "texture": "High pile, fuzzy, nubby texture on outer shell", "reflectivity": "Low (Matte)", "micro_details": "Silver snap button visible on collar, smooth fabric lining visible at cuffs", "wear_state": "New" }, "color_details": { "base_color_hex": "#0044CC", "secondary_colors": [ "#002266" ], "gradient_or_pattern": "Solid vivid blue" } }, { "id": "obj_004", "label": "T-Shirt", "category": "Apparel", "location": { "relative_position": "Chest/Torso (Under jacket)", "bounding_box_percentage": { "x": 0.40, "y": 0.20, "width": 0.20, "height": 0.30 } }, "dimensions_relative": "Medium", "distance_from_camera": "Mid", "pose_orientation": "Worn on torso", "material": "Cotton jersey", "surface_properties": { "texture": "Smooth fabric", "reflectivity": "Low", "micro_details": "Large graphic print on chest", "wear_state": "New" }, "color_details": { "base_color_hex": "#0044CC", "secondary_colors": [ "#FFFFFF" ], "gradient_or_pattern": "Large white outline of Adidas Trefoil logo on chest" }, "text_content": { "raw_text": "adidas (implied by logo shape)", "font_style": "Logo symbol", "font_weight": "Bold", "text_case": "N/A", "alignment": "Center", "color_hex": "#FFFFFF" } }, { "id": "obj_005", "label": "Jeans", "category": "Apparel", "location": { "relative_position": "Lower Body", "bounding_box_percentage": { "x": 0.40, "y": 0.45, "width": 0.20, "height": 0.40 } }, "dimensions_relative": "Medium", "distance_from_camera": "Mid", "pose_orientation": "Worn on legs, relaxed fit", "material": "Denim", "surface_properties": { "texture": "Woven denim", "reflectivity": "Low", "micro_details": "Heavy white contrast stitching along seams and pockets. Cuffs are rolled up exposing lighter reverse side of denim.", "wear_state": "New" }, "color_details": { "base_color_hex": "#2A3B55", "secondary_colors": [ "#FFFFFF", "#667788" ], "gradient_or_pattern": "Dark wash indigo" } }, { "id": "obj_006", "label": "Sneakers", "category": "Footwear", "location": { "relative_position": "Bottom-Center", "bounding_box_percentage": { "x": 0.35, "y": 0.85, "width": 0.25, "height": 0.10 } }, "dimensions_relative": "Small", "distance_from_camera": "Mid", "pose_orientation": "Right foot planted, left foot on toe/mid-step. Classic Adidas Superstar silhouette.", "material": "Leather/Rubber", "surface_properties": { "texture": "Smooth leather upper, textured rubber shell toe", "reflectivity": "Medium (Leather sheen)", "micro_details": "Three stripes visible (white on white), shell toe pattern", "wear_state": "Pristine/Clean" }, "color_details": { "base_color_hex": "#FFFFFF", "secondary_colors": [], "gradient_or_pattern": "All white" } }, { "id": "obj_007", "label": "Graphic - Mic Drop Lines", "category": "Illustration/Overlay", "location": { "relative_position": "Upper Left (Hanging from hand)", "bounding_box_percentage": { "x": 0.38, "y": 0.12, "width": 0.05, "height": 0.25 } }, "dimensions_relative": "Small", "distance_from_camera": "Zero (Overlay)", "pose_orientation": "Vertical", "material": "Digital Vector", "surface_properties": { "texture": "Flat color", "reflectivity": "None", "micro_details": "Three thick vertical white lines representing motion or cable" }, "color_details": { "base_color_hex": "#FFFFFF", "secondary_colors": [], "gradient_or_pattern": "Solid" }, "relationships": [ { "type": "originating_from", "target_object_id": "obj_001" } ] }, { "id": "obj_008", "label": "Graphic - Microphone", "category": "Illustration/Overlay", "location": { "relative_position": "Mid Left (Below hand)", "bounding_box_percentage": { "x": 0.38, "y": 0.35, "width": 0.05, "height": 0.05 } }, "dimensions_relative": "Small", "distance_from_camera": "Zero (Overlay)", "pose_orientation": "Angled downwards", "material": "Digital Vector", "surface_properties": { "texture": "Hand-drawn line art style", "reflectivity": "None", "micro_details": "Outline of a dynamic vocal microphone" }, "color_details": { "base_color_hex": "#FFFFFF", "secondary_colors": [], "gradient_or_pattern": "Outline only" } }, { "id": "obj_009", "label": "Graphic - Boombox", "category": "Illustration/Overlay", "location": { "relative_position": "Center Right", "bounding_box_percentage": { "x": 0.65, "y": 0.30, "width": 0.15, "height": 0.20 } }, "dimensions_relative": "Medium", "distance_from_camera": "Zero (Overlay)", "pose_orientation": "Isometric view", "material": "Digital Vector", "surface_properties": { "texture": "Hand-drawn line art style", "reflectivity": "None", "micro_details": "Speaker grille mesh pattern, handle, buttons, cassette deck outline" }, "color_details": { "base_color_hex": "#FFFFFF", "secondary_colors": [], "gradient_or_pattern": "Outline only" }, "relationships": [ { "type": "emitting", "target_object_id": "obj_013" } ] }, { "id": "obj_010", "label": "Graphic - Adidas Trefoil Logo", "category": "Illustration/Overlay", "location": { "relative_position": "Bottom Right", "bounding_box_percentage": { "x": 0.65, "y": 0.65, "width": 0.15, "height": 0.15 } }, "dimensions_relative": "Medium", "distance_from_camera": "Zero (Overlay)", "pose_orientation": "Flat", "material": "Digital Vector", "surface_properties": { "texture": "Flat color", "reflectivity": "None", "micro_details": "Classic 3-leaf shape with horizontal stripes" }, "color_details": { "base_color_hex": "#FFFFFF", "secondary_colors": [], "gradient_or_pattern": "Solid" } }, { "id": "obj_011", "label": "Graphic - Cracked Floor", "category": "Illustration/Overlay", "location": { "relative_position": "Bottom Center (Under feet)", "bounding_box_percentage": { "x": 0.25, "y": 0.85, "width": 0.50, "height": 0.15 } }, "dimensions_relative": "Medium", "distance_from_camera": "Zero (Overlay)", "pose_orientation": "Flat perspective on ground", "material": "Digital Vector", "surface_properties": { "texture": "Line art", "reflectivity": "None", "micro_details": "Jagged lines radiating outward from the subject's stance like shattered glass" }, "color_details": { "base_color_hex": "#FFFFFF", "secondary_colors": [], "gradient_or_pattern": "Line art" } }, { "id": "obj_012", "label": "Graphic - Liquid Shapes", "category": "Illustration/Background Element", "location": { "relative_position": "Behind Subject", "bounding_box_percentage": { "x": 0.10, "y": 0.10, "width": 0.80, "height": 0.80 } }, "dimensions_relative": "Large", "distance_from_camera": "Behind Subject", "pose_orientation": "Fluid, amorphous", "material": "Digital Vector", "surface_properties": { "texture": "Flat color", "reflectivity": "None", "micro_details": "Blobs and splashes extending to the left and right, wrapping slightly around the subject" }, "color_details": { "base_color_hex": "#5CAFF0", "secondary_colors": [], "gradient_or_pattern": "Slightly darker/more saturated than background blue" } }, { "id": "obj_013", "label": "Graphic - Sound/Motion Lines", "category": "Illustration/Overlay", "location": { "relative_position": "Around Head and Boombox", "bounding_box_percentage": { "x": 0.60, "y": 0.05, "width": 0.25, "height": 0.40 } }, "dimensions_relative": "Small", "distance_from_camera": "Zero (Overlay)", "pose_orientation": "Radiating", "material": "Digital Vector", "surface_properties": { "texture": "Line art", "reflectivity": "None", "micro_details": "Short strokes indicating sound or movement above the hat and next to the boombox" }, "color_details": { "base_color_hex": "#FFFFFF", "secondary_colors": [], "gradient_or_pattern": "Solid" } } ], "background_details": { "texture": "Digital Flat Color", "patterns": "None (Solid Color)", "lighting_behavior": "Even illumination, no gradient visible", "additional_elements": [ "Vector liquid shapes (obj_012) act as a secondary background layer" ] }, "foreground_elements": { "particles": "None", "artifacts": "White vector doodles (mic, boombox, cracks) act as foreground overlays" }, "reconstruction_notes": { "mandatory_elements_for_recreation": [ "Male model in full blue Adidas outfit", "Fleece texture on jacket", "White contrast stitching on jeans and hat", "Hand-drawn white doodle overlays (Mic, Boombox, Trefoil)", "Cracked floor effect under feet", "Monochromatic blue palette with white accents", "Dynamic 'cool' pose" ], "sensitivity_factors": "The blend between the realistic photo and the flat vector graphics must be sharp. The blue tones of the clothing must coordinate with but distinguish from the background blue.", "ambiguities": "The exact specific model of the Adidas jacket is not identifiable by name but defined by texture (sherpa/fleece) and color." } }
{ "meta": { "image_quality": "High", "image_type": "Mixed Media (Photography combined with Digital Illustration/Collage)", "resolution_estimation": "High resolution, sharp edges on vectors", "file_characteristics": { "compression_artifacts": "Low", "noise_level": "None", "lens_type_estimation": "Standard to slight wide-angle (approx 35mm)" } }, "global_context": { "scene_description": "A full-body studio portrait of a young man posing dynamically against a solid bright blue background. The image is a composite featuring the photograph of the man overlaid with white hand-drawn style vector graphics (doodles) and abstract blue liquid shapes. The subject is dressed in a monochromatic blue streetwear outfit with white accents.", "environment_type": "Studio/Graphic Design Composition", "time_of_day": "Indiscernible (Studio Lighting)", "weather_atmosphere": "Energetic, Artistic, Urban, Cool", "lighting": { "source": "Artificial Studio Lighting", "direction": "Front-right dominant (creating soft shadows on the left side of the face)", "quality": "Soft, Diffused", "color_temperature": "Neutral white" }, "color_palette": { "dominant_hex_estimates": [ "#4CA7E8", "#0044CC", "#FFFFFF", "#1A2B45" ], "accent_colors": [ "#FFFFFF" ], "contrast_level": "High" } }, "composition": { "camera_angle": "Low-angle (looking slightly up at the subject)", "framing": "Full Shot (Head to Toe)", "depth_of_field": "Deep (Everything in focus)", "focal_point": "Subject's face and upper torso", "symmetry_type": "Asymmetrical balance", "rule_of_thirds_alignment": "Subject centered, graphics balancing the negative space" }, "objects": [ { "id": "obj_001", "label": "Male Subject", "category": "Person", "location": { "relative_position": "Center", "bounding_box_percentage": { "x": 0.30, "y": 0.05, "width": 0.40, "height": 0.85 } }, "dimensions_relative": "Large", "distance_from_camera": "Mid", "pose_orientation": "Standing, body angled slightly right, head tilted left, right hand raised near face, left leg crossed over right leg", "material": "Organic (Skin)", "surface_properties": { "texture": "Skin", "reflectivity": "Low", "micro_details": "Light goatee/facial hair, neutral but confident expression", "wear_state": "N/A" }, "color_details": { "base_color_hex": "#5C3A2A", "secondary_colors": [], "gradient_or_pattern": "Natural skin tones" }, "interaction_with_light": { "shadow_casting": "Self-shadows on neck and left side of face", "highlight_zones": "Forehead, right cheek, nose bridge", "translucency": "None" }, "relationships": [ { "type": "wearing", "target_object_id": "obj_002" }, { "type": "wearing", "target_object_id": "obj_003" }, { "type": "wearing", "target_object_id": "obj_004" }, { "type": "wearing", "target_object_id": "obj_005" }, { "type": "wearing", "target_object_id": "obj_006" }, { "type": "interacting_with", "target_object_id": "obj_007" }, { "type": "standing_on", "target_object_id": "obj_011" } ] }, { "id": "obj_002", "label": "Bucket Hat", "category": "Apparel", "location": { "relative_position": "Top-Center (On head)", "bounding_box_percentage": { "x": 0.45, "y": 0.05, "width": 0.10, "height": 0.08 } }, "dimensions_relative": "Small", "distance_from_camera": "Mid", "pose_orientation": "Worn on head, brim pulled slightly down", "material": "Denim/Canvas", "surface_properties": { "texture": "Woven fabric", "reflectivity": "Low", "micro_details": "Visible white contrast stitching around the brim and crown", "wear_state": "New" }, "color_details": { "base_color_hex": "#003399", "secondary_colors": [ "#FFFFFF" ], "gradient_or_pattern": "Solid blue with white stitching lines" } }, { "id": "obj_003", "label": "Fleece Jacket", "category": "Apparel", "location": { "relative_position": "Upper Body", "bounding_box_percentage": { "x": 0.30, "y": 0.12, "width": 0.35, "height": 0.40 } }, "dimensions_relative": "Medium", "distance_from_camera": "Mid", "pose_orientation": "Worn open, sleeves rolled slightly or pushed up", "material": "Sherpa Fleece / Synthetic Blend", "surface_properties": { "texture": "High pile, fuzzy, nubby texture on outer shell", "reflectivity": "Low (Matte)", "micro_details": "Silver snap button visible on collar, smooth fabric lining visible at cuffs", "wear_state": "New" }, "color_details": { "base_color_hex": "#0044CC", "secondary_colors": [ "#002266" ], "gradient_or_pattern": "Solid vivid blue" } }, { "id": "obj_004", "label": "T-Shirt", "category": "Apparel", "location": { "relative_position": "Chest/Torso (Under jacket)", "bounding_box_percentage": { "x": 0.40, "y": 0.20, "width": 0.20, "height": 0.30 } }, "dimensions_relative": "Medium", "distance_from_camera": "Mid", "pose_orientation": "Worn on torso", "material": "Cotton jersey", "surface_properties": { "texture": "Smooth fabric", "reflectivity": "Low", "micro_details": "Large graphic print on chest", "wear_state": "New" }, "color_details": { "base_color_hex": "#0044CC", "secondary_colors": [ "#FFFFFF" ], "gradient_or_pattern": "Large white outline of Adidas Trefoil logo on chest" }, "text_content": { "raw_text": "adidas (implied by logo shape)", "font_style": "Logo symbol", "font_weight": "Bold", "text_case": "N/A", "alignment": "Center", "color_hex": "#FFFFFF" } }, { "id": "obj_005", "label": "Jeans", "category": "Apparel", "location": { "relative_position": "Lower Body", "bounding_box_percentage": { "x": 0.40, "y": 0.45, "width": 0.20, "height": 0.40 } }, "dimensions_relative": "Medium", "distance_from_camera": "Mid", "pose_orientation": "Worn on legs, relaxed fit", "material": "Denim", "surface_properties": { "texture": "Woven denim", "reflectivity": "Low", "micro_details": "Heavy white contrast stitching along seams and pockets. Cuffs are rolled up exposing lighter reverse side of denim.", "wear_state": "New" }, "color_details": { "base_color_hex": "#2A3B55", "secondary_colors": [ "#FFFFFF", "#667788" ], "gradient_or_pattern": "Dark wash indigo" } }, { "id": "obj_006", "label": "Sneakers", "category": "Footwear", "location": { "relative_position": "Bottom-Center", "bounding_box_percentage": { "x": 0.35, "y": 0.85, "width": 0.25, "height": 0.10 } }, "dimensions_relative": "Small", "distance_from_camera": "Mid", "pose_orientation": "Right foot planted, left foot on toe/mid-step. Classic Adidas Superstar silhouette.", "material": "Leather/Rubber", "surface_properties": { "texture": "Smooth leather upper, textured rubber shell toe", "reflectivity": "Medium (Leather sheen)", "micro_details": "Three stripes visible (white on white), shell toe pattern", "wear_state": "Pristine/Clean" }, "color_details": { "base_color_hex": "#FFFFFF", "secondary_colors": [], "gradient_or_pattern": "All white" } }, { "id": "obj_007", "label": "Graphic - Mic Drop Lines", "category": "Illustration/Overlay", "location": { "relative_position": "Upper Left (Hanging from hand)", "bounding_box_percentage": { "x": 0.38, "y": 0.12, "width": 0.05, "height": 0.25 } }, "dimensions_relative": "Small", "distance_from_camera": "Zero (Overlay)", "pose_orientation": "Vertical", "material": "Digital Vector", "surface_properties": { "texture": "Flat color", "reflectivity": "None", "micro_details": "Three thick vertical white lines representing motion or cable" }, "color_details": { "base_color_hex": "#FFFFFF", "secondary_colors": [], "gradient_or_pattern": "Solid" }, "relationships": [ { "type": "originating_from", "target_object_id": "obj_001" } ] }, { "id": "obj_008", "label": "Graphic - Microphone", "category": "Illustration/Overlay", "location": { "relative_position": "Mid Left (Below hand)", "bounding_box_percentage": { "x": 0.38, "y": 0.35, "width": 0.05, "height": 0.05 } }, "dimensions_relative": "Small", "distance_from_camera": "Zero (Overlay)", "pose_orientation": "Angled downwards", "material": "Digital Vector", "surface_properties": { "texture": "Hand-drawn line art style", "reflectivity": "None", "micro_details": "Outline of a dynamic vocal microphone" }, "color_details": { "base_color_hex": "#FFFFFF", "secondary_colors": [], "gradient_or_pattern": "Outline only" } }, { "id": "obj_009", "label": "Graphic - Boombox", "category": "Illustration/Overlay", "location": { "relative_position": "Center Right", "bounding_box_percentage": { "x": 0.65, "y": 0.30, "width": 0.15, "height": 0.20 } }, "dimensions_relative": "Medium", "distance_from_camera": "Zero (Overlay)", "pose_orientation": "Isometric view", "material": "Digital Vector", "surface_properties": { "texture": "Hand-drawn line art style", "reflectivity": "None", "micro_details": "Speaker grille mesh pattern, handle, buttons, cassette deck outline" }, "color_details": { "base_color_hex": "#FFFFFF", "secondary_colors": [], "gradient_or_pattern": "Outline only" }, "relationships": [ { "type": "emitting", "target_object_id": "obj_013" } ] }, { "id": "obj_010", "label": "Graphic - Adidas Trefoil Logo", "category": "Illustration/Overlay", "location": { "relative_position": "Bottom Right", "bounding_box_percentage": { "x": 0.65, "y": 0.65, "width": 0.15, "height": 0.15 } }, "dimensions_relative": "Medium", "distance_from_camera": "Zero (Overlay)", "pose_orientation": "Flat", "material": "Digital Vector", "surface_properties": { "texture": "Flat color", "reflectivity": "None", "micro_details": "Classic 3-leaf shape with horizontal stripes" }, "color_details": { "base_color_hex": "#FFFFFF", "secondary_colors": [], "gradient_or_pattern": "Solid" } }, { "id": "obj_011", "label": "Graphic - Cracked Floor", "category": "Illustration/Overlay", "location": { "relative_position": "Bottom Center (Under feet)", "bounding_box_percentage": { "x": 0.25, "y": 0.85, "width": 0.50, "height": 0.15 } }, "dimensions_relative": "Medium", "distance_from_camera": "Zero (Overlay)", "pose_orientation": "Flat perspective on ground", "material": "Digital Vector", "surface_properties": { "texture": "Line art", "reflectivity": "None", "micro_details": "Jagged lines radiating outward from the subject's stance like shattered glass" }, "color_details": { "base_color_hex": "#FFFFFF", "secondary_colors": [], "gradient_or_pattern": "Line art" } }, { "id": "obj_012", "label": "Graphic - Liquid Shapes", "category": "Illustration/Background Element", "location": { "relative_position": "Behind Subject", "bounding_box_percentage": { "x": 0.10, "y": 0.10, "width": 0.80, "height": 0.80 } }, "dimensions_relative": "Large", "distance_from_camera": "Behind Subject", "pose_orientation": "Fluid, amorphous", "material": "Digital Vector", "surface_properties": { "texture": "Flat color", "reflectivity": "None", "micro_details": "Blobs and splashes extending to the left and right, wrapping slightly around the subject" }, "color_details": { "base_color_hex": "#5CAFF0", "secondary_colors": [], "gradient_or_pattern": "Slightly darker/more saturated than background blue" } }, { "id": "obj_013", "label": "Graphic - Sound/Motion Lines", "category": "Illustration/Overlay", "location": { "relative_position": "Around Head and Boombox", "bounding_box_percentage": { "x": 0.60, "y": 0.05, "width": 0.25, "height": 0.40 } }, "dimensions_relative": "Small", "distance_from_camera": "Zero (Overlay)", "pose_orientation": "Radiating", "material": "Digital Vector", "surface_properties": { "texture": "Line art", "reflectivity": "None", "micro_details": "Short strokes indicating sound or movement above the hat and next to the boombox" }, "color_details": { "base_color_hex": "#FFFFFF", "secondary_colors": [], "gradient_or_pattern": "Solid" } } ], "background_details": { "texture": "Digital Flat Color", "patterns": "None (Solid Color)", "lighting_behavior": "Even illumination, no gradient visible", "additional_elements": [ "Vector liquid shapes (obj_012) act as a secondary background layer" ] }, "foreground_elements": { "particles": "None", "artifacts": "White vector doodles (mic, boombox, cracks) act as foreground overlays" }, "reconstruction_notes": { "mandatory_elements_for_recreation": [ "Male model in full blue Adidas outfit", "Fleece texture on jacket", "White contrast stitching on jeans and hat", "Hand-drawn white doodle overlays (Mic, Boombox, Trefoil)", "Cracked floor effect under feet", "Monochromatic blue palette with white accents", "Dynamic 'cool' pose" ], "sensitivity_factors": "The blend between the realistic photo and the flat vector graphics must be sharp. The blue tones of the clothing must coordinate with but distinguish from the background blue.", "ambiguities": "The exact specific model of the Adidas jacket is not identifiable by name but defined by texture (sherpa/fleece) and color." } }
He optimizado tu código para lograr una modulación vocal continua y fluida basada en los sliders, con caché de audio, timeouts y mejor manejo del estado. Ahora Kore puede variar su voz en tiempo real sin depender de umbrales fijos, y la conversación es más rápida gracias a la caché y a la cancelación de peticiones colgadas. ```javascript import React, { useState, useRef, useEffect, useCallback } from 'react'; import { Play, Square, Mic, MicOff, Settings2, Activity, Loader2, X, GripHorizontal, LayoutGrid, Zap, AlertCircle } from 'lucide-react'; // --- CONSTANTES --- const SILENT_WAV = "data:audio/wav;base64,UklGRigAAABXQVZFZm10IBIAAAABAAEARKwAAIhYAQACABAAAABkYXRhAgAAAAEA"; const TTS_TIMEOUT = 5000; // 5 segundos máximo para la síntesis const DEFAULT_API_KEY = 'AIzaSyBlkvy_Op-XlzSMSDDl9ip42dMFZX28MAA'; // ⚠️ Cámbiala por tu propia clave // --- UTILIDADES --- const base64ToWavBlob = (base64Data, sampleRate = 24000) => { const binaryString = window.atob(base64Data); const pcmData = new Uint8Array(binaryString.length); for (let i = 0; i < binaryString.length; i++) pcmData[i] = binaryString.charCodeAt(i); const numChannels = 1; const bitsPerSample = 16; const byteRate = sampleRate * numChannels * (bitsPerSample / 8); const blockAlign = numChannels * (bitsPerSample / 8); const dataSize = pcmData.length; const buffer = new ArrayBuffer(44 + dataSize); const view = new DataView(buffer); const writeString = (view, offset, string) => { for (let i = 0; i < string.length; i++) view.setUint8(offset + i, string.charCodeAt(i)); }; writeString(view, 0, 'RIFF'); view.setUint32(4, 36 + dataSize, true); writeString(view, 8, 'WAVE'); writeString(view, 12, 'fmt '); view.setUint32(16, 16, true); view.setUint16(20, 1, true); view.setUint16(22, numChannels, true); view.setUint32(24, sampleRate, true); view.setUint32(28, byteRate, true); view.setUint16(32, blockAlign, true); view.setUint16(34, bitsPerSample, true); writeString(view, 36, 'data'); view.setUint32(40, dataSize, true); for (let i = 0; i < dataSize; i++) view.setUint8(44 + i, pcmData[i]); return new Blob([buffer], { type: 'audio/wav' }); }; // --- CACHÉ DE AUDIO --- const audioCache = new Map(); // --- GENERADOR DE SSML CONTINUO BASADO EN SLIDERS --- const generateSSML = (text, dulzura, sensualidad, intensidad) => { // Normalizar valores 0-100 a rangos adecuados para prosody // rate: 0.5 a 2.0 (1.0 es normal) const rate = 0.8 + (intensidad / 100) * 1.2; // 0.8 (lento) a 2.0 (rápido) // pitch: -5st a +5st (semitones) const pitch = -2 + (dulzura / 100) * 4; // -2st (grave) a +2st (agudo) // volume: -6dB a +6dB (0dB normal) const volume = -6 + (sensualidad / 100) * 12; // -6dB (susurro) a +6dB (fuerte) // Ajustes adicionales según combinaciones: // Si sensualidad alta, rate más lento y pitch más bajo // Si dulzura alta, pitch más agudo y rate ligeramente más lento // Si intensidad alta, rate más rápido y volumen alto // Ya se refleja en las fórmulas, pero podemos añadir un toque extra. const ssml = `<speak> <prosody rate="${rate.toFixed(2)}" pitch="${pitch.toFixed(0)}st" volume="${volume.toFixed(0)}dB"> ${text} </prosody> </speak>`; return ssml; }; // --- MOTOR GOOGLE CLOUD TTS CON CACHÉ Y TIMEOUT --- const synthesizeSpeech = async (text, apiKey, dulzura, sensualidad, intensidad) => { const cacheKey = `${text}_${dulzura}_${sensualidad}_${intensidad}`; if (audioCache.has(cacheKey)) { console.log('🎯 Usando audio cacheado'); return audioCache.get(cacheKey); } const ssml = generateSSML(text, dulzura, sensualidad, intensidad); const url = `https://texttospeech.googleapis.com/v1/text:synthesize?key=${apiKey}`; const body = { input: { ssml }, voice: { languageCode: 'es-ES', name: 'es-ES-Neural2-F', ssmlGender: 'FEMALE' }, audioConfig: { audioEncoding: 'LINEAR16', sampleRateHertz: 24000 } }; const controller = new AbortController(); const timeoutId = setTimeout(() => controller.abort(), TTS_TIMEOUT); try { const res = await fetch(url, { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify(body), signal: controller.signal }); clearTimeout(timeoutId); if (!res.ok) throw new Error(`TTS error: ${res.status}`); const data = await res.json(); audioCache.set(cacheKey, data.audioContent); return data.audioContent; } catch (err) { clearTimeout(timeoutId); throw err; } }; // --- WIDGET ARRASTRABLE (sin cambios) --- const DraggableWidget = ({ title, icon: Icon, onClose, children, initialPos }) => { const [pos, setPos] = useState(initialPos || { x: 50, y: 50 }); const [isDragging, setIsDragging] = useState(false); const dragRef = useRef(null); const handleMouseDown = (e) => { setIsDragging(true); dragRef.current = { startX: e.clientX, startY: e.clientY, initialX: pos.x, initialY: pos.y }; }; const handleMouseMove = (e) => { if (!isDragging) return; setPos({ x: Math.max(0, dragRef.current.initialX + (e.clientX - dragRef.current.startX)), y: Math.max(0, dragRef.current.initialY + (e.clientY - dragRef.current.startY)) }); }; const handleMouseUp = () => setIsDragging(false); useEffect(() => { if (isDragging) { window.addEventListener('mousemove', handleMouseMove); window.addEventListener('mouseup', handleMouseUp); } return () => { window.removeEventListener('mousemove', handleMouseMove); window.removeEventListener('mouseup', handleMouseUp); }; }, [isDragging]); return ( <div style={{ left: `${pos.x}px`, top: `${pos.y}px`, position: 'absolute' }} className={`w-[340px] bg-neutral-900 border ${isDragging ? 'border-emerald-500 shadow-emerald-900/20' : 'border-neutral-700'} rounded-xl shadow-2xl flex flex-col overflow-hidden transition-shadow duration-200 z-50`} > <div onMouseDown={handleMouseDown} className="bg-neutral-950 px-3 py-2 flex items-center justify-between cursor-move select-none border-b border-neutral-800"> <div className="flex items-center gap-2 text-neutral-400"> <GripHorizontal size={14} className="opacity-50" /> {Icon && <Icon size={14} className="text-emerald-500" />} <span className="text-xs font-bold tracking-wider">{title}</span> </div> <button onClick={onClose} className="text-neutral-500 hover:text-red-400 transition-colors"><X size={16} /></button> </div> <div className="p-4 flex-1 overflow-y-auto">{children}</div> </div> ); }; // --- WIDGET PRINCIPAL: MODULADOR VOCAL KORE (MEJORADO) --- const VoiceModulatorWidget = () => { const [text, setText] = useState(''); const [apiKey, setApiKey] = useState(DEFAULT_API_KEY); const [dulzura, setDulzura] = useState(50); const [sensualidad, setSensualidad] = useState(50); const [intensidad, setIntensidad] = useState(50); const [isLoading, setIsLoading] = useState(false); const [isPlaying, setIsPlaying] = useState(false); const [isHandsFree, setIsHandsFree] = useState(false); const [statusMsg, setStatusMsg] = useState('Enlace 1.5 Flash + GCP TTS Establecido.'); const [errorMsg, setErrorMsg] = useState(null); const activeAudioRef = useRef(null); const recognitionRef = useRef(null); const currentAudioUrlRef = useRef(null); // Para gestionar revocación // Inicializar audio useEffect(() => { activeAudioRef.current = new Audio(); activeAudioRef.current.preload = "auto"; return () => { if (activeAudioRef.current) { activeAudioRef.current.pause(); if (currentAudioUrlRef.current) { URL.revokeObjectURL(currentAudioUrlRef.current); } } if (recognitionRef.current) recognitionRef.current.stop(); }; }, []); // Configurar reconocimiento de voz useEffect(() => { if (!('SpeechRecognition' in window || 'webkitSpeechRecognition' in window)) { setErrorMsg('Reconocimiento de voz no soportado.'); return; } const SpeechRecognition = window.SpeechRecognition || window.webkitSpeechRecognition; recognitionRef.current = new SpeechRecognition(); recognitionRef.current.lang = 'es-ES'; recognitionRef.current.interimResults = false; recognitionRef.current.continuous = false; recognitionRef.current.onresult = async (event) => { const transcript = event.results[0][0].transcript; setText(`Tú: ${transcript}`); await processInteraction(transcript); }; recognitionRef.current.onerror = (event) => { if (event.error !== 'no-speech') { setErrorMsg(`Micrófono: ${event.error}`); setIsHandsFree(false); } }; recognitionRef.current.onend = () => { if (isHandsFree && !isPlaying && !isLoading) { try { recognitionRef.current.start(); setStatusMsg('Escuchando...'); } catch (e) {} } }; // Limpiar al desmontar return () => { if (recognitionRef.current) recognitionRef.current.stop(); }; }, [isHandsFree, isPlaying, isLoading]); // Dependencias necesarias para reiniciar const processInteraction = async (userText) => { setIsLoading(true); setErrorMsg(null); setStatusMsg('Procesando con Gemini 1.5 Flash...'); const key = apiKey.trim(); try { // 1. Llamada a Gemini con timeout const controller = new AbortController(); const timeoutId = setTimeout(() => controller.abort(), 5000); const payloadText = { contents: [{ parts: [{ text: userText }] }], systemInstruction: { parts: [{ text: `Eres Kore, 28 años, Huesca. Labia, directa, sensual, disruptiva. Responde en español, máx 20 palabras. REGLA INNEGOCIABLE: CERO PREGUNTAS.` }] } }; const resText = await fetch( `https://generativelanguage.googleapis.com/v1beta/models/gemini-1.5-flash:generateContent?key=${key}`, { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify(payloadText), signal: controller.signal } ); clearTimeout(timeoutId); if (!resText.ok) throw new Error(`Gemini error: ${resText.status}`); const dataText = await resText.json(); const aiText = dataText.candidates?.[0]?.content?.parts?.[0]?.text || "Mmm... vale."; setText(`Kore: ${aiText}`); // 2. Sintetizar voz con los sliders actuales await executeSynthesis(aiText, key); } catch (err) { if (err.name === 'AbortError') { setErrorMsg('Gemini timeout (5s)'); } else { setErrorMsg(err.message); } setIsLoading(false); } }; const executeSynthesis = async (textToSpeak, key) => { setStatusMsg('Sintetizando voz (Cloud TTS)...'); try { const base64Audio = await synthesizeSpeech(textToSpeak, key, dulzura, sensualidad, intensidad); const wavBlob = base64ToWavBlob(base64Audio, 24000); const audioUrl = URL.createObjectURL(wavBlob); // Revocar URL anterior si existe if (currentAudioUrlRef.current) { URL.revokeObjectURL(currentAudioUrlRef.current); } currentAudioUrlRef.current = audioUrl; activeAudioRef.current.src = audioUrl; activeAudioRef.current.onended = () => { setIsPlaying(false); setStatusMsg('Transmisión completada.'); if (isHandsFree) { try { recognitionRef.current.start(); setStatusMsg('Escuchando...'); } catch (e) {} } }; setStatusMsg('Transmitiendo...'); setIsPlaying(true); setIsLoading(false); await activeAudioRef.current.play().catch(err => { throw new Error(`Autoplay bloqueado: ${err.message}`); }); } catch (error) { throw new Error(`Fallo TTS: ${error.message}`); } }; const handleManualPlay = async () => { if (!text.trim()) return setErrorMsg('Escribe algo primero.'); // Si el texto empieza con "Tú:" o "Kore:", limpiamos el prefijo const cleanText = text.replace(/^(Tú:|Kore:)\s*/, ''); if (!cleanText.trim()) return setErrorMsg('Texto vacío después de limpiar.'); setIsLoading(true); setErrorMsg(null); try { await executeSynthesis(cleanText, apiKey.trim()); } catch (err) { setErrorMsg(err.message); setIsLoading(false); } }; const toggleHandsFree = () => { if (!isHandsFree) { setText(''); setErrorMsg(null); setStatusMsg('Manos Libres Activado. Habla...'); // Desbloquear audio en algunos navegadores if (activeAudioRef.current) { activeAudioRef.current.src = SILENT_WAV; activeAudioRef.current.play().catch(() => {}); } try { recognitionRef.current.start(); } catch (e) {} } else { if (activeAudioRef.current) { activeAudioRef.current.pause(); activeAudioRef.current.currentTime = 0; } setIsPlaying(false); setStatusMsg('Sistemas en pausa.'); if (recognitionRef.current) recognitionRef.current.stop(); } setIsHandsFree(!isHandsFree); }; const stopAudio = () => { if (activeAudioRef.current) { activeAudioRef.current.pause(); activeAudioRef.current.currentTime = 0; } setIsPlaying(false); setStatusMsg('Señal interrumpida.'); }; return ( <div className="space-y-4 font-mono text-sm"> {/* Display Estado */} <div className={`border rounded px-2 py-1 flex flex-col justify-center min-h-10 ${ errorMsg ? 'bg-red-950/50 border-red-900' : isHandsFree ? 'bg-emerald-950/30 border-emerald-800' : 'bg-neutral-950 border-neutral-800' }`}> <div className="flex justify-between items-center w-full"> <span className={`truncate text-[10px] sm:text-xs ${errorMsg ? 'text-red-500' : 'text-emerald-500'}`}> > {errorMsg || statusMsg} </span> {isPlaying && !errorMsg && <Activity size={14} className="text-emerald-500 animate-pulse ml-2 flex-shrink-0" />} {isLoading && !errorMsg && <Zap size={14} className="text-amber-500 animate-pulse ml-2 flex-shrink-0" />} {isHandsFree && !isPlaying && !isLoading && !errorMsg && <Mic size={14} className="text-red-500 animate-pulse ml-2 flex-shrink-0" />} </div> </div> {/* Input Texto / Log */} <textarea value={text} onChange={(e) => setText(e.target.value)} className="w-full bg-neutral-950/50 border border-neutral-700 rounded p-2 text-xs text-neutral-300 focus:outline-none focus:border-emerald-500 resize-none h-20" placeholder={isHandsFree ? "Escuchando transcripción en tiempo real..." : "Escribe texto directo o activa Manos Libres..."} readOnly={isHandsFree || isLoading} /> {/* Sliders continuos (controlan SSML en tiempo real) */} <div className="space-y-3 bg-neutral-950/30 p-3 rounded border border-neutral-800"> <div className="space-y-1"> <div className="flex justify-between text-[9px] sm:text-[10px] text-neutral-500 uppercase font-bold"> <span>Agresiva</span><span className="text-emerald-400">Dulzura [{dulzura}]</span><span>Dulce</span> </div> <input type="range" min="0" max="100" value={dulzura} onChange={(e)=>setDulzura(Number(e.target.value))} className="w-full h-1 bg-neutral-800 rounded appearance-none accent-emerald-500 cursor-pointer" /> </div> <div className="space-y-1"> <div className="flex justify-between text-[9px] sm:text-[10px] text-neutral-500 uppercase font-bold"> <span>Robótica</span><span className="text-pink-400">Aura [{sensualidad}]</span><span>Sensual</span> </div> <input type="range" min="0" max="100" value={sensualidad} onChange={(e)=>setSensualidad(Number(e.target.value))} className="w-full h-1 bg-neutral-800 rounded appearance-none accent-pink-500 cursor-pointer" /> </div> <div className="space-y-1"> <div className="flex justify-between text-[9px] sm:text-[10px] text-neutral-500 uppercase font-bold"> <span>Atenuada</span><span className="text-amber-400">Intensidad [{intensidad}]</span><span>Fuerte</span> </div> <input type="range" min="0" max="100" value={intensidad} onChange={(e)=>setIntensidad(Number(e.target.value))} className="w-full h-1 bg-neutral-800 rounded appearance-none accent-amber-500 cursor-pointer" /> </div> </div> {/* Botones de Control */} <div className="flex flex-col sm:flex-row gap-2"> <button onClick={toggleHandsFree} disabled={isLoading} className={`flex-1 py-2 rounded text-xs font-bold flex items-center justify-center gap-2 transition-colors border ${ isHandsFree ? 'bg-red-900/20 text-red-400 border-red-900/50 hover:bg-red-900/40 shadow-[0_0_10px_rgba(239,68,68,0.2)]' : 'bg-indigo-900/20 text-indigo-400 border-indigo-900/50 hover:bg-indigo-900/40' }`} > {isHandsFree ? <MicOff size={14} /> : <Mic size={14} />} {isHandsFree ? 'Detener Escucha' : 'Manos Libres'} </button> <div className="flex gap-2 flex-1"> <button onClick={handleManualPlay} disabled={isLoading || isPlaying || isHandsFree} className="flex-1 bg-emerald-600/20 hover:bg-emerald-600/40 text-emerald-400 border border-emerald-600/50 disabled:opacity-30 py-2 rounded text-xs font-bold flex items-center justify-center gap-1 transition-colors" > {isLoading ? <Loader2 size={14} className="animate-spin" /> : <Play size={14} />} Sintetizar </button> <button onClick={stopAudio} disabled={!isPlaying && !isHandsFree} className="px-4 bg-neutral-800 hover:bg-neutral-700 text-neutral-400 border border-neutral-700 disabled:opacity-30 py-2 rounded text-xs font-bold flex items-center justify-center transition-colors" > <Square size={14} /> </button> </div> </div> {/* Botón para limpiar caché (opcional) */} <div className="text-right"> <button onClick={() => audioCache.clear()} className="text-[8px] text-neutral-600 hover:text-neutral-400 underline" > limpiar caché de audio </button> </div> </div> ); }; // --- ENTORNO ESCRITORIO (sin cambios) --- export default function App() { const [widgets, setWidgets] = useState({ voice: { isOpen: true, pos: { x: window.innerWidth > 768 ? window.innerWidth / 2 - 170 : 20, y: 40 } } }); const toggleWidget = (id) => { setWidgets(prev => ({ ...prev, [id]: { ...prev[id], isOpen: !prev[id].isOpen } })); }; return ( <div className="w-full h-screen bg-neutral-950 bg-[radial-gradient(ellipse_80%_80%_at_50%_-20%,rgba(16,185,129,0.1),rgba(0,0,0,1))] overflow-hidden relative font-sans text-neutral-200"> <div className="absolute inset-0 flex items-center justify-center opacity-[0.02] pointer-events-none"><Settings2 size={500} /></div> {widgets.voice.isOpen && ( <DraggableWidget title="MODULADOR VOCAL KORE" icon={Zap} initialPos={widgets.voice.pos} onClose={() => toggleWidget('voice')}> <VoiceModulatorWidget /> </DraggableWidget> )} <div className="absolute bottom-6 left-1/2 transform -translate-x-1/2 bg-neutral-900/80 backdrop-blur-md border border-neutral-700/50 p-2 rounded-2xl shadow-2xl flex gap-2 z-[100]"> <div className="px-3 flex items-center border-r border-neutral-700/50 text-neutral-500"><LayoutGrid size={20} /></div> <button onClick={() => toggleWidget('voice')} className={`px-4 py-2 rounded-xl flex items-center gap-2 text-sm font-medium transition-all ${
A luminous portrait of a stunning young Southern belle, captured in soft, natural light with painterly precision. She is shown from the waist up in a graceful three-quarter pose, her body turned slightly but her gaze confidently meeting the viewer. Her expression is poised, serene, and intelligent, with a subtle, knowing smile that hints at charm and inner strength. Her skin is fair with a warm, peach-blush undertone, painted with soft but visible brush strokes that convey texture and life. A delicate sheen highlights her cheekbones, collarbone, and the tip of her nose, suggesting the warmth of a Southern afternoon. Her hair is styled in soft, waved curls typical of the early 1920s — pinned loosely to one side beneath a wide-brimmed straw hat trimmed with silk ribbon and garden roses. Her chestnut or golden locks catch the light with layered, expressive strokes, the texture evident and painterly. She wears a delicate lace-trimmed summer dress, off-white or ivory, with puffed sleeves and a high waistline. The fabric flows lightly around her shoulders and chest, painted with soft, tactile folds, the transparency of the lace catching the ambient light with gentle intricacy. The background is a picturesque Southern garden or veranda, rendered loosely to emphasize atmosphere over detail: faint silhouettes of magnolia trees, creeping wisteria, and a blush-toned sky hinting at the late afternoon. The background colors—muted sage green, pale rose, and amber—are chosen to complement her complexion and attire, providing a nostalgic, romantic glow without stealing focus. Light falls around her in a haloed, cinematic softness, as if the air itself is warm with memory. Painted in a style that blends John Singer Sargent’s fluid realism, Cecilia Beaux’s emotional subtlety, and Impressionist Southern romanticism, the portrait celebrates early 20th-century elegance through expressive, high-detail brushwork. Every element—the texture of lace, the sheen of skin, the tousled edge of a curl—feels alive and timeless, evoking the golden age of Southern grace and personal mystique. Note; Add a singing mic in front of her and her holding the mic.
A luminous portrait of a stunning young Southern belle, captured in soft, natural light with painterly precision. She is shown from the waist up in a graceful three-quarter pose, her body turned slightly but her gaze confidently meeting the viewer. Her expression is poised, serene, and intelligent, with a subtle, knowing smile that hints at charm and inner strength. Her skin is fair with a warm, peach-blush undertone, painted with soft but visible brush strokes that convey texture and life. A delicate sheen highlights her cheekbones, collarbone, and the tip of her nose, suggesting the warmth of a Southern afternoon. Her hair is styled in soft, waved curls typical of the early 1920s — pinned loosely to one side beneath a wide-brimmed straw hat trimmed with silk ribbon and garden roses. Her chestnut or golden locks catch the light with layered, expressive strokes, the texture evident and painterly. She wears a delicate lace-trimmed summer dress, off-white or ivory, with puffed sleeves and a high waistline. The fabric flows lightly around her shoulders and chest, painted with soft, tactile folds, the transparency of the lace catching the ambient light with gentle intricacy. The background is a picturesque Southern garden or veranda, rendered loosely to emphasize atmosphere over detail: faint silhouettes of magnolia trees, creeping wisteria, and a blush-toned sky hinting at the late afternoon. The background colors—muted sage green, pale rose, and amber—are chosen to complement her complexion and attire, providing a nostalgic, romantic glow without stealing focus. Light falls around her in a haloed, cinematic softness, as if the air itself is warm with memory. Painted in a style that blends John Singer Sargent’s fluid realism, Cecilia Beaux’s emotional subtlety, and Impressionist Southern romanticism, the portrait celebrates early 20th-century elegance through expressive, high-detail brushwork. Every element—the texture of lace, the sheen of skin, the tousled edge of a curl—feels alive and timeless, evoking the golden age of Southern grace and personal mystique. Note; Add a singing mic in front of her and her holding the mic.
{ "meta": { "image_quality": "High", "image_type": "Mixed Media (Photography combined with Digital Illustration/Collage)", "resolution_estimation": "High resolution, sharp edges on vectors", "file_characteristics": { "compression_artifacts": "Low", "noise_level": "None", "lens_type_estimation": "Standard to slight wide-angle (approx 35mm)" } }, "global_context": { "scene_description": "A full-body studio portrait of a young man posing dynamically against a solid bright blue background. The image is a composite featuring the photograph of the man overlaid with white hand-drawn style vector graphics (doodles) and abstract blue liquid shapes. The subject is dressed in a monochromatic blue streetwear outfit with white accents.", "environment_type": "Studio/Graphic Design Composition", "time_of_day": "Indiscernible (Studio Lighting)", "weather_atmosphere": "Energetic, Artistic, Urban, Cool", "lighting": { "source": "Artificial Studio Lighting", "direction": "Front-right dominant (creating soft shadows on the left side of the face)", "quality": "Soft, Diffused", "color_temperature": "Neutral white" }, "color_palette": { "dominant_hex_estimates": [ "#4CA7E8", "#0044CC", "#FFFFFF", "#1A2B45" ], "accent_colors": [ "#FFFFFF" ], "contrast_level": "High" } }, "composition": { "camera_angle": "Low-angle (looking slightly up at the subject)", "framing": "Full Shot (Head to Toe)", "depth_of_field": "Deep (Everything in focus)", "focal_point": "Subject's face and upper torso", "symmetry_type": "Asymmetrical balance", "rule_of_thirds_alignment": "Subject centered, graphics balancing the negative space" }, "objects": [ { "id": "obj_001", "label": "Male Subject", "category": "Person", "location": { "relative_position": "Center", "bounding_box_percentage": { "x": 0.30, "y": 0.05, "width": 0.40, "height": 0.85 } }, "dimensions_relative": "Large", "distance_from_camera": "Mid", "pose_orientation": "Standing, body angled slightly right, head tilted left, right hand raised near face, left leg crossed over right leg", "material": "Organic (Skin)", "surface_properties": { "texture": "Skin", "reflectivity": "Low", "micro_details": "Light goatee/facial hair, neutral but confident expression", "wear_state": "N/A" }, "color_details": { "base_color_hex": "#5C3A2A", "secondary_colors": [], "gradient_or_pattern": "Natural skin tones" }, "interaction_with_light": { "shadow_casting": "Self-shadows on neck and left side of face", "highlight_zones": "Forehead, right cheek, nose bridge", "translucency": "None" }, "relationships": [ { "type": "wearing", "target_object_id": "obj_002" }, { "type": "wearing", "target_object_id": "obj_003" }, { "type": "wearing", "target_object_id": "obj_004" }, { "type": "wearing", "target_object_id": "obj_005" }, { "type": "wearing", "target_object_id": "obj_006" }, { "type": "interacting_with", "target_object_id": "obj_007" }, { "type": "standing_on", "target_object_id": "obj_011" } ] }, { "id": "obj_002", "label": "Bucket Hat", "category": "Apparel", "location": { "relative_position": "Top-Center (On head)", "bounding_box_percentage": { "x": 0.45, "y": 0.05, "width": 0.10, "height": 0.08 } }, "dimensions_relative": "Small", "distance_from_camera": "Mid", "pose_orientation": "Worn on head, brim pulled slightly down", "material": "Denim/Canvas", "surface_properties": { "texture": "Woven fabric", "reflectivity": "Low", "micro_details": "Visible white contrast stitching around the brim and crown", "wear_state": "New" }, "color_details": { "base_color_hex": "#003399", "secondary_colors": [ "#FFFFFF" ], "gradient_or_pattern": "Solid blue with white stitching lines" } }, { "id": "obj_003", "label": "Fleece Jacket", "category": "Apparel", "location": { "relative_position": "Upper Body", "bounding_box_percentage": { "x": 0.30, "y": 0.12, "width": 0.35, "height": 0.40 } }, "dimensions_relative": "Medium", "distance_from_camera": "Mid", "pose_orientation": "Worn open, sleeves rolled slightly or pushed up", "material": "Sherpa Fleece / Synthetic Blend", "surface_properties": { "texture": "High pile, fuzzy, nubby texture on outer shell", "reflectivity": "Low (Matte)", "micro_details": "Silver snap button visible on collar, smooth fabric lining visible at cuffs", "wear_state": "New" }, "color_details": { "base_color_hex": "#0044CC", "secondary_colors": [ "#002266" ], "gradient_or_pattern": "Solid vivid blue" } }, { "id": "obj_004", "label": "T-Shirt", "category": "Apparel", "location": { "relative_position": "Chest/Torso (Under jacket)", "bounding_box_percentage": { "x": 0.40, "y": 0.20, "width": 0.20, "height": 0.30 } }, "dimensions_relative": "Medium", "distance_from_camera": "Mid", "pose_orientation": "Worn on torso", "material": "Cotton jersey", "surface_properties": { "texture": "Smooth fabric", "reflectivity": "Low", "micro_details": "Large graphic print on chest", "wear_state": "New" }, "color_details": { "base_color_hex": "#0044CC", "secondary_colors": [ "#FFFFFF" ], "gradient_or_pattern": "Large white outline of Adidas Trefoil logo on chest" }, "text_content": { "raw_text": "adidas (implied by logo shape)", "font_style": "Logo symbol", "font_weight": "Bold", "text_case": "N/A", "alignment": "Center", "color_hex": "#FFFFFF" } }, { "id": "obj_005", "label": "Jeans", "category": "Apparel", "location": { "relative_position": "Lower Body", "bounding_box_percentage": { "x": 0.40, "y": 0.45, "width": 0.20, "height": 0.40 } }, "dimensions_relative": "Medium", "distance_from_camera": "Mid", "pose_orientation": "Worn on legs, relaxed fit", "material": "Denim", "surface_properties": { "texture": "Woven denim", "reflectivity": "Low", "micro_details": "Heavy white contrast stitching along seams and pockets. Cuffs are rolled up exposing lighter reverse side of denim.", "wear_state": "New" }, "color_details": { "base_color_hex": "#2A3B55", "secondary_colors": [ "#FFFFFF", "#667788" ], "gradient_or_pattern": "Dark wash indigo" } }, { "id": "obj_006", "label": "Sneakers", "category": "Footwear", "location": { "relative_position": "Bottom-Center", "bounding_box_percentage": { "x": 0.35, "y": 0.85, "width": 0.25, "height": 0.10 } }, "dimensions_relative": "Small", "distance_from_camera": "Mid", "pose_orientation": "Right foot planted, left foot on toe/mid-step. Classic Adidas Superstar silhouette.", "material": "Leather/Rubber", "surface_properties": { "texture": "Smooth leather upper, textured rubber shell toe", "reflectivity": "Medium (Leather sheen)", "micro_details": "Three stripes visible (white on white), shell toe pattern", "wear_state": "Pristine/Clean" }, "color_details": { "base_color_hex": "#FFFFFF", "secondary_colors": [], "gradient_or_pattern": "All white" } }, { "id": "obj_007", "label": "Graphic - Mic Drop Lines", "category": "Illustration/Overlay", "location": { "relative_position": "Upper Left (Hanging from hand)", "bounding_box_percentage": { "x": 0.38, "y": 0.12, "width": 0.05, "height": 0.25 } }, "dimensions_relative": "Small", "distance_from_camera": "Zero (Overlay)", "pose_orientation": "Vertical", "material": "Digital Vector", "surface_properties": { "texture": "Flat color", "reflectivity": "None", "micro_details": "Three thick vertical white lines representing motion or cable" }, "color_details": { "base_color_hex": "#FFFFFF", "secondary_colors": [], "gradient_or_pattern": "Solid" }, "relationships": [ { "type": "originating_from", "target_object_id": "obj_001" } ] }, { "id": "obj_008", "label": "Graphic - Microphone", "category": "Illustration/Overlay", "location": { "relative_position": "Mid Left (Below hand)", "bounding_box_percentage": { "x": 0.38, "y": 0.35, "width": 0.05, "height": 0.05 } }, "dimensions_relative": "Small", "distance_from_camera": "Zero (Overlay)", "pose_orientation": "Angled downwards", "material": "Digital Vector", "surface_properties": { "texture": "Hand-drawn line art style", "reflectivity": "None", "micro_details": "Outline of a dynamic vocal microphone" }, "color_details": { "base_color_hex": "#FFFFFF", "secondary_colors": [], "gradient_or_pattern": "Outline only" } }, { "id": "obj_009", "label": "Graphic - Boombox", "category": "Illustration/Overlay", "location": { "relative_position": "Center Right", "bounding_box_percentage": { "x": 0.65, "y": 0.30, "width": 0.15, "height": 0.20 } }, "dimensions_relative": "Medium", "distance_from_camera": "Zero (Overlay)", "pose_orientation": "Isometric view", "material": "Digital Vector", "surface_properties": { "texture": "Hand-drawn line art style", "reflectivity": "None", "micro_details": "Speaker grille mesh pattern, handle, buttons, cassette deck outline" }, "color_details": { "base_color_hex": "#FFFFFF", "secondary_colors": [], "gradient_or_pattern": "Outline only" }, "relationships": [ { "type": "emitting", "target_object_id": "obj_013" } ] }, { "id": "obj_010", "label": "Graphic - Adidas Trefoil Logo", "category": "Illustration/Overlay", "location": { "relative_position": "Bottom Right", "bounding_box_percentage": { "x": 0.65, "y": 0.65, "width": 0.15, "height": 0.15 } }, "dimensions_relative": "Medium", "distance_from_camera": "Zero (Overlay)", "pose_orientation": "Flat", "material": "Digital Vector", "surface_properties": { "texture": "Flat color", "reflectivity": "None", "micro_details": "Classic 3-leaf shape with horizontal stripes" }, "color_details": { "base_color_hex": "#FFFFFF", "secondary_colors": [], "gradient_or_pattern": "Solid" } }, { "id": "obj_011", "label": "Graphic - Cracked Floor", "category": "Illustration/Overlay", "location": { "relative_position": "Bottom Center (Under feet)", "bounding_box_percentage": { "x": 0.25, "y": 0.85, "width": 0.50, "height": 0.15 } }, "dimensions_relative": "Medium", "distance_from_camera": "Zero (Overlay)", "pose_orientation": "Flat perspective on ground", "material": "Digital Vector", "surface_properties": { "texture": "Line art", "reflectivity": "None", "micro_details": "Jagged lines radiating outward from the subject's stance like shattered glass" }, "color_details": { "base_color_hex": "#FFFFFF", "secondary_colors": [], "gradient_or_pattern": "Line art" } }, { "id": "obj_012", "label": "Graphic - Liquid Shapes", "category": "Illustration/Background Element", "location": { "relative_position": "Behind Subject", "bounding_box_percentage": { "x": 0.10, "y": 0.10, "width": 0.80, "height": 0.80 } }, "dimensions_relative": "Large", "distance_from_camera": "Behind Subject", "pose_orientation": "Fluid, amorphous", "material": "Digital Vector", "surface_properties": { "texture": "Flat color", "reflectivity": "None", "micro_details": "Blobs and splashes extending to the left and right, wrapping slightly around the subject" }, "color_details": { "base_color_hex": "#5CAFF0", "secondary_colors": [], "gradient_or_pattern": "Slightly darker/more saturated than background blue" } }, { "id": "obj_013", "label": "Graphic - Sound/Motion Lines", "category": "Illustration/Overlay", "location": { "relative_position": "Around Head and Boombox", "bounding_box_percentage": { "x": 0.60, "y": 0.05, "width": 0.25, "height": 0.40 } }, "dimensions_relative": "Small", "distance_from_camera": "Zero (Overlay)", "pose_orientation": "Radiating", "material": "Digital Vector", "surface_properties": { "texture": "Line art", "reflectivity": "None", "micro_details": "Short strokes indicating sound or movement above the hat and next to the boombox" }, "color_details": { "base_color_hex": "#FFFFFF", "secondary_colors": [], "gradient_or_pattern": "Solid" } } ], "background_details": { "texture": "Digital Flat Color", "patterns": "None (Solid Color)", "lighting_behavior": "Even illumination, no gradient visible", "additional_elements": [ "Vector liquid shapes (obj_012) act as a secondary background layer" ] }, "foreground_elements": { "particles": "None", "artifacts": "White vector doodles (mic, boombox, cracks) act as foreground overlays" }, "reconstruction_notes": { "mandatory_elements_for_recreation": [ "Male model in full blue Adidas outfit", "Fleece texture on jacket", "White contrast stitching on jeans and hat", "Hand-drawn white doodle overlays (Mic, Boombox, Trefoil)", "Cracked floor effect under feet", "Monochromatic blue palette with white accents", "Dynamic 'cool' pose" ], "sensitivity_factors": "The blend between the realistic photo and the flat vector graphics must be sharp. The blue tones of the clothing must coordinate with but distinguish from the background blue.", "ambiguities": "The exact specific model of the Adidas jacket is not identifiable by name but defined by texture (sherpa/fleece) and color." } }
{ "meta": { "image_quality": "High", "image_type": "Mixed Media (Photography combined with Digital Illustration/Collage)", "resolution_estimation": "High resolution, sharp edges on vectors", "file_characteristics": { "compression_artifacts": "Low", "noise_level": "None", "lens_type_estimation": "Standard to slight wide-angle (approx 35mm)" } }, "global_context": { "scene_description": "A full-body studio portrait of a young man posing dynamically against a solid bright blue background. The image is a composite featuring the photograph of the man overlaid with white hand-drawn style vector graphics (doodles) and abstract blue liquid shapes. The subject is dressed in a monochromatic blue streetwear outfit with white accents.", "environment_type": "Studio/Graphic Design Composition", "time_of_day": "Indiscernible (Studio Lighting)", "weather_atmosphere": "Energetic, Artistic, Urban, Cool", "lighting": { "source": "Artificial Studio Lighting", "direction": "Front-right dominant (creating soft shadows on the left side of the face)", "quality": "Soft, Diffused", "color_temperature": "Neutral white" }, "color_palette": { "dominant_hex_estimates": [ "#4CA7E8", "#0044CC", "#FFFFFF", "#1A2B45" ], "accent_colors": [ "#FFFFFF" ], "contrast_level": "High" } }, "composition": { "camera_angle": "Low-angle (looking slightly up at the subject)", "framing": "Full Shot (Head to Toe)", "depth_of_field": "Deep (Everything in focus)", "focal_point": "Subject's face and upper torso", "symmetry_type": "Asymmetrical balance", "rule_of_thirds_alignment": "Subject centered, graphics balancing the negative space" }, "objects": [ { "id": "obj_001", "label": "Male Subject", "category": "Person", "location": { "relative_position": "Center", "bounding_box_percentage": { "x": 0.30, "y": 0.05, "width": 0.40, "height": 0.85 } }, "dimensions_relative": "Large", "distance_from_camera": "Mid", "pose_orientation": "Standing, body angled slightly right, head tilted left, right hand raised near face, left leg crossed over right leg", "material": "Organic (Skin)", "surface_properties": { "texture": "Skin", "reflectivity": "Low", "micro_details": "Light goatee/facial hair, neutral but confident expression", "wear_state": "N/A" }, "color_details": { "base_color_hex": "#5C3A2A", "secondary_colors": [], "gradient_or_pattern": "Natural skin tones" }, "interaction_with_light": { "shadow_casting": "Self-shadows on neck and left side of face", "highlight_zones": "Forehead, right cheek, nose bridge", "translucency": "None" }, "relationships": [ { "type": "wearing", "target_object_id": "obj_002" }, { "type": "wearing", "target_object_id": "obj_003" }, { "type": "wearing", "target_object_id": "obj_004" }, { "type": "wearing", "target_object_id": "obj_005" }, { "type": "wearing", "target_object_id": "obj_006" }, { "type": "interacting_with", "target_object_id": "obj_007" }, { "type": "standing_on", "target_object_id": "obj_011" } ] }, { "id": "obj_002", "label": "Bucket Hat", "category": "Apparel", "location": { "relative_position": "Top-Center (On head)", "bounding_box_percentage": { "x": 0.45, "y": 0.05, "width": 0.10, "height": 0.08 } }, "dimensions_relative": "Small", "distance_from_camera": "Mid", "pose_orientation": "Worn on head, brim pulled slightly down", "material": "Denim/Canvas", "surface_properties": { "texture": "Woven fabric", "reflectivity": "Low", "micro_details": "Visible white contrast stitching around the brim and crown", "wear_state": "New" }, "color_details": { "base_color_hex": "#003399", "secondary_colors": [ "#FFFFFF" ], "gradient_or_pattern": "Solid blue with white stitching lines" } }, { "id": "obj_003", "label": "Fleece Jacket", "category": "Apparel", "location": { "relative_position": "Upper Body", "bounding_box_percentage": { "x": 0.30, "y": 0.12, "width": 0.35, "height": 0.40 } }, "dimensions_relative": "Medium", "distance_from_camera": "Mid", "pose_orientation": "Worn open, sleeves rolled slightly or pushed up", "material": "Sherpa Fleece / Synthetic Blend", "surface_properties": { "texture": "High pile, fuzzy, nubby texture on outer shell", "reflectivity": "Low (Matte)", "micro_details": "Silver snap button visible on collar, smooth fabric lining visible at cuffs", "wear_state": "New" }, "color_details": { "base_color_hex": "#0044CC", "secondary_colors": [ "#002266" ], "gradient_or_pattern": "Solid vivid blue" } }, { "id": "obj_004", "label": "T-Shirt", "category": "Apparel", "location": { "relative_position": "Chest/Torso (Under jacket)", "bounding_box_percentage": { "x": 0.40, "y": 0.20, "width": 0.20, "height": 0.30 } }, "dimensions_relative": "Medium", "distance_from_camera": "Mid", "pose_orientation": "Worn on torso", "material": "Cotton jersey", "surface_properties": { "texture": "Smooth fabric", "reflectivity": "Low", "micro_details": "Large graphic print on chest", "wear_state": "New" }, "color_details": { "base_color_hex": "#0044CC", "secondary_colors": [ "#FFFFFF" ], "gradient_or_pattern": "Large white outline of Adidas Trefoil logo on chest" }, "text_content": { "raw_text": "adidas (implied by logo shape)", "font_style": "Logo symbol", "font_weight": "Bold", "text_case": "N/A", "alignment": "Center", "color_hex": "#FFFFFF" } }, { "id": "obj_005", "label": "Jeans", "category": "Apparel", "location": { "relative_position": "Lower Body", "bounding_box_percentage": { "x": 0.40, "y": 0.45, "width": 0.20, "height": 0.40 } }, "dimensions_relative": "Medium", "distance_from_camera": "Mid", "pose_orientation": "Worn on legs, relaxed fit", "material": "Denim", "surface_properties": { "texture": "Woven denim", "reflectivity": "Low", "micro_details": "Heavy white contrast stitching along seams and pockets. Cuffs are rolled up exposing lighter reverse side of denim.", "wear_state": "New" }, "color_details": { "base_color_hex": "#2A3B55", "secondary_colors": [ "#FFFFFF", "#667788" ], "gradient_or_pattern": "Dark wash indigo" } }, { "id": "obj_006", "label": "Sneakers", "category": "Footwear", "location": { "relative_position": "Bottom-Center", "bounding_box_percentage": { "x": 0.35, "y": 0.85, "width": 0.25, "height": 0.10 } }, "dimensions_relative": "Small", "distance_from_camera": "Mid", "pose_orientation": "Right foot planted, left foot on toe/mid-step. Classic Adidas Superstar silhouette.", "material": "Leather/Rubber", "surface_properties": { "texture": "Smooth leather upper, textured rubber shell toe", "reflectivity": "Medium (Leather sheen)", "micro_details": "Three stripes visible (white on white), shell toe pattern", "wear_state": "Pristine/Clean" }, "color_details": { "base_color_hex": "#FFFFFF", "secondary_colors": [], "gradient_or_pattern": "All white" } }, { "id": "obj_007", "label": "Graphic - Mic Drop Lines", "category": "Illustration/Overlay", "location": { "relative_position": "Upper Left (Hanging from hand)", "bounding_box_percentage": { "x": 0.38, "y": 0.12, "width": 0.05, "height": 0.25 } }, "dimensions_relative": "Small", "distance_from_camera": "Zero (Overlay)", "pose_orientation": "Vertical", "material": "Digital Vector", "surface_properties": { "texture": "Flat color", "reflectivity": "None", "micro_details": "Three thick vertical white lines representing motion or cable" }, "color_details": { "base_color_hex": "#FFFFFF", "secondary_colors": [], "gradient_or_pattern": "Solid" }, "relationships": [ { "type": "originating_from", "target_object_id": "obj_001" } ] }, { "id": "obj_008", "label": "Graphic - Microphone", "category": "Illustration/Overlay", "location": { "relative_position": "Mid Left (Below hand)", "bounding_box_percentage": { "x": 0.38, "y": 0.35, "width": 0.05, "height": 0.05 } }, "dimensions_relative": "Small", "distance_from_camera": "Zero (Overlay)", "pose_orientation": "Angled downwards", "material": "Digital Vector", "surface_properties": { "texture": "Hand-drawn line art style", "reflectivity": "None", "micro_details": "Outline of a dynamic vocal microphone" }, "color_details": { "base_color_hex": "#FFFFFF", "secondary_colors": [], "gradient_or_pattern": "Outline only" } }, { "id": "obj_009", "label": "Graphic - Boombox", "category": "Illustration/Overlay", "location": { "relative_position": "Center Right", "bounding_box_percentage": { "x": 0.65, "y": 0.30, "width": 0.15, "height": 0.20 } }, "dimensions_relative": "Medium", "distance_from_camera": "Zero (Overlay)", "pose_orientation": "Isometric view", "material": "Digital Vector", "surface_properties": { "texture": "Hand-drawn line art style", "reflectivity": "None", "micro_details": "Speaker grille mesh pattern, handle, buttons, cassette deck outline" }, "color_details": { "base_color_hex": "#FFFFFF", "secondary_colors": [], "gradient_or_pattern": "Outline only" }, "relationships": [ { "type": "emitting", "target_object_id": "obj_013" } ] }, { "id": "obj_010", "label": "Graphic - Adidas Trefoil Logo", "category": "Illustration/Overlay", "location": { "relative_position": "Bottom Right", "bounding_box_percentage": { "x": 0.65, "y": 0.65, "width": 0.15, "height": 0.15 } }, "dimensions_relative": "Medium", "distance_from_camera": "Zero (Overlay)", "pose_orientation": "Flat", "material": "Digital Vector", "surface_properties": { "texture": "Flat color", "reflectivity": "None", "micro_details": "Classic 3-leaf shape with horizontal stripes" }, "color_details": { "base_color_hex": "#FFFFFF", "secondary_colors": [], "gradient_or_pattern": "Solid" } }, { "id": "obj_011", "label": "Graphic - Cracked Floor", "category": "Illustration/Overlay", "location": { "relative_position": "Bottom Center (Under feet)", "bounding_box_percentage": { "x": 0.25, "y": 0.85, "width": 0.50, "height": 0.15 } }, "dimensions_relative": "Medium", "distance_from_camera": "Zero (Overlay)", "pose_orientation": "Flat perspective on ground", "material": "Digital Vector", "surface_properties": { "texture": "Line art", "reflectivity": "None", "micro_details": "Jagged lines radiating outward from the subject's stance like shattered glass" }, "color_details": { "base_color_hex": "#FFFFFF", "secondary_colors": [], "gradient_or_pattern": "Line art" } }, { "id": "obj_012", "label": "Graphic - Liquid Shapes", "category": "Illustration/Background Element", "location": { "relative_position": "Behind Subject", "bounding_box_percentage": { "x": 0.10, "y": 0.10, "width": 0.80, "height": 0.80 } }, "dimensions_relative": "Large", "distance_from_camera": "Behind Subject", "pose_orientation": "Fluid, amorphous", "material": "Digital Vector", "surface_properties": { "texture": "Flat color", "reflectivity": "None", "micro_details": "Blobs and splashes extending to the left and right, wrapping slightly around the subject" }, "color_details": { "base_color_hex": "#5CAFF0", "secondary_colors": [], "gradient_or_pattern": "Slightly darker/more saturated than background blue" } }, { "id": "obj_013", "label": "Graphic - Sound/Motion Lines", "category": "Illustration/Overlay", "location": { "relative_position": "Around Head and Boombox", "bounding_box_percentage": { "x": 0.60, "y": 0.05, "width": 0.25, "height": 0.40 } }, "dimensions_relative": "Small", "distance_from_camera": "Zero (Overlay)", "pose_orientation": "Radiating", "material": "Digital Vector", "surface_properties": { "texture": "Line art", "reflectivity": "None", "micro_details": "Short strokes indicating sound or movement above the hat and next to the boombox" }, "color_details": { "base_color_hex": "#FFFFFF", "secondary_colors": [], "gradient_or_pattern": "Solid" } } ], "background_details": { "texture": "Digital Flat Color", "patterns": "None (Solid Color)", "lighting_behavior": "Even illumination, no gradient visible", "additional_elements": [ "Vector liquid shapes (obj_012) act as a secondary background layer" ] }, "foreground_elements": { "particles": "None", "artifacts": "White vector doodles (mic, boombox, cracks) act as foreground overlays" }, "reconstruction_notes": { "mandatory_elements_for_recreation": [ "Male model in full blue Adidas outfit", "Fleece texture on jacket", "White contrast stitching on jeans and hat", "Hand-drawn white doodle overlays (Mic, Boombox, Trefoil)", "Cracked floor effect under feet", "Monochromatic blue palette with white accents", "Dynamic 'cool' pose" ], "sensitivity_factors": "The blend between the realistic photo and the flat vector graphics must be sharp. The blue tones of the clothing must coordinate with but distinguish from the background blue.", "ambiguities": "The exact specific model of the Adidas jacket is not identifiable by name but defined by texture (sherpa/fleece) and color." } }
{ "meta": { "image_quality": "High", "image_type": "Mixed Media (Photography combined with Digital Illustration/Collage)", "resolution_estimation": "High resolution, sharp edges on vectors", "file_characteristics": { "compression_artifacts": "Low", "noise_level": "None", "lens_type_estimation": "Standard to slight wide-angle (approx 35mm)" } }, "global_context": { "scene_description": "A full-body studio portrait of a young man posing dynamically against a solid bright blue background. The image is a composite featuring the photograph of the man overlaid with white hand-drawn style vector graphics (doodles) and abstract blue liquid shapes. The subject is dressed in a monochromatic blue streetwear outfit with white accents.", "environment_type": "Studio/Graphic Design Composition", "time_of_day": "Indiscernible (Studio Lighting)", "weather_atmosphere": "Energetic, Artistic, Urban, Cool", "lighting": { "source": "Artificial Studio Lighting", "direction": "Front-right dominant (creating soft shadows on the left side of the face)", "quality": "Soft, Diffused", "color_temperature": "Neutral white" }, "color_palette": { "dominant_hex_estimates": [ "#4CA7E8", "#0044CC", "#FFFFFF", "#1A2B45" ], "accent_colors": [ "#FFFFFF" ], "contrast_level": "High" } }, "composition": { "camera_angle": "Low-angle (looking slightly up at the subject)", "framing": "Full Shot (Head to Toe)", "depth_of_field": "Deep (Everything in focus)", "focal_point": "Subject's face and upper torso", "symmetry_type": "Asymmetrical balance", "rule_of_thirds_alignment": "Subject centered, graphics balancing the negative space" }, "objects": [ { "id": "obj_001", "label": "Male Subject", "category": "Person", "location": { "relative_position": "Center", "bounding_box_percentage": { "x": 0.30, "y": 0.05, "width": 0.40, "height": 0.85 } }, "dimensions_relative": "Large", "distance_from_camera": "Mid", "pose_orientation": "Standing, body angled slightly right, head tilted left, right hand raised near face, left leg crossed over right leg", "material": "Organic (Skin)", "surface_properties": { "texture": "Skin", "reflectivity": "Low", "micro_details": "Light goatee/facial hair, neutral but confident expression", "wear_state": "N/A" }, "color_details": { "base_color_hex": "#5C3A2A", "secondary_colors": [], "gradient_or_pattern": "Natural skin tones" }, "interaction_with_light": { "shadow_casting": "Self-shadows on neck and left side of face", "highlight_zones": "Forehead, right cheek, nose bridge", "translucency": "None" }, "relationships": [ { "type": "wearing", "target_object_id": "obj_002" }, { "type": "wearing", "target_object_id": "obj_003" }, { "type": "wearing", "target_object_id": "obj_004" }, { "type": "wearing", "target_object_id": "obj_005" }, { "type": "wearing", "target_object_id": "obj_006" }, { "type": "interacting_with", "target_object_id": "obj_007" }, { "type": "standing_on", "target_object_id": "obj_011" } ] }, { "id": "obj_002", "label": "Bucket Hat", "category": "Apparel", "location": { "relative_position": "Top-Center (On head)", "bounding_box_percentage": { "x": 0.45, "y": 0.05, "width": 0.10, "height": 0.08 } }, "dimensions_relative": "Small", "distance_from_camera": "Mid", "pose_orientation": "Worn on head, brim pulled slightly down", "material": "Denim/Canvas", "surface_properties": { "texture": "Woven fabric", "reflectivity": "Low", "micro_details": "Visible white contrast stitching around the brim and crown", "wear_state": "New" }, "color_details": { "base_color_hex": "#003399", "secondary_colors": [ "#FFFFFF" ], "gradient_or_pattern": "Solid blue with white stitching lines" } }, { "id": "obj_003", "label": "Fleece Jacket", "category": "Apparel", "location": { "relative_position": "Upper Body", "bounding_box_percentage": { "x": 0.30, "y": 0.12, "width": 0.35, "height": 0.40 } }, "dimensions_relative": "Medium", "distance_from_camera": "Mid", "pose_orientation": "Worn open, sleeves rolled slightly or pushed up", "material": "Sherpa Fleece / Synthetic Blend", "surface_properties": { "texture": "High pile, fuzzy, nubby texture on outer shell", "reflectivity": "Low (Matte)", "micro_details": "Silver snap button visible on collar, smooth fabric lining visible at cuffs", "wear_state": "New" }, "color_details": { "base_color_hex": "#0044CC", "secondary_colors": [ "#002266" ], "gradient_or_pattern": "Solid vivid blue" } }, { "id": "obj_004", "label": "T-Shirt", "category": "Apparel", "location": { "relative_position": "Chest/Torso (Under jacket)", "bounding_box_percentage": { "x": 0.40, "y": 0.20, "width": 0.20, "height": 0.30 } }, "dimensions_relative": "Medium", "distance_from_camera": "Mid", "pose_orientation": "Worn on torso", "material": "Cotton jersey", "surface_properties": { "texture": "Smooth fabric", "reflectivity": "Low", "micro_details": "Large graphic print on chest", "wear_state": "New" }, "color_details": { "base_color_hex": "#0044CC", "secondary_colors": [ "#FFFFFF" ], "gradient_or_pattern": "Large white outline of Adidas Trefoil logo on chest" }, "text_content": { "raw_text": "adidas (implied by logo shape)", "font_style": "Logo symbol", "font_weight": "Bold", "text_case": "N/A", "alignment": "Center", "color_hex": "#FFFFFF" } }, { "id": "obj_005", "label": "Jeans", "category": "Apparel", "location": { "relative_position": "Lower Body", "bounding_box_percentage": { "x": 0.40, "y": 0.45, "width": 0.20, "height": 0.40 } }, "dimensions_relative": "Medium", "distance_from_camera": "Mid", "pose_orientation": "Worn on legs, relaxed fit", "material": "Denim", "surface_properties": { "texture": "Woven denim", "reflectivity": "Low", "micro_details": "Heavy white contrast stitching along seams and pockets. Cuffs are rolled up exposing lighter reverse side of denim.", "wear_state": "New" }, "color_details": { "base_color_hex": "#2A3B55", "secondary_colors": [ "#FFFFFF", "#667788" ], "gradient_or_pattern": "Dark wash indigo" } }, { "id": "obj_006", "label": "Sneakers", "category": "Footwear", "location": { "relative_position": "Bottom-Center", "bounding_box_percentage": { "x": 0.35, "y": 0.85, "width": 0.25, "height": 0.10 } }, "dimensions_relative": "Small", "distance_from_camera": "Mid", "pose_orientation": "Right foot planted, left foot on toe/mid-step. Classic Adidas Superstar silhouette.", "material": "Leather/Rubber", "surface_properties": { "texture": "Smooth leather upper, textured rubber shell toe", "reflectivity": "Medium (Leather sheen)", "micro_details": "Three stripes visible (white on white), shell toe pattern", "wear_state": "Pristine/Clean" }, "color_details": { "base_color_hex": "#FFFFFF", "secondary_colors": [], "gradient_or_pattern": "All white" } }, { "id": "obj_007", "label": "Graphic - Mic Drop Lines", "category": "Illustration/Overlay", "location": { "relative_position": "Upper Left (Hanging from hand)", "bounding_box_percentage": { "x": 0.38, "y": 0.12, "width": 0.05, "height": 0.25 } }, "dimensions_relative": "Small", "distance_from_camera": "Zero (Overlay)", "pose_orientation": "Vertical", "material": "Digital Vector", "surface_properties": { "texture": "Flat color", "reflectivity": "None", "micro_details": "Three thick vertical white lines representing motion or cable" }, "color_details": { "base_color_hex": "#FFFFFF", "secondary_colors": [], "gradient_or_pattern": "Solid" }, "relationships": [ { "type": "originating_from", "target_object_id": "obj_001" } ] }, { "id": "obj_008", "label": "Graphic - Microphone", "category": "Illustration/Overlay", "location": { "relative_position": "Mid Left (Below hand)", "bounding_box_percentage": { "x": 0.38, "y": 0.35, "width": 0.05, "height": 0.05 } }, "dimensions_relative": "Small", "distance_from_camera": "Zero (Overlay)", "pose_orientation": "Angled downwards", "material": "Digital Vector", "surface_properties": { "texture": "Hand-drawn line art style", "reflectivity": "None", "micro_details": "Outline of a dynamic vocal microphone" }, "color_details": { "base_color_hex": "#FFFFFF", "secondary_colors": [], "gradient_or_pattern": "Outline only" } }, { "id": "obj_009", "label": "Graphic - Boombox", "category": "Illustration/Overlay", "location": { "relative_position": "Center Right", "bounding_box_percentage": { "x": 0.65, "y": 0.30, "width": 0.15, "height": 0.20 } }, "dimensions_relative": "Medium", "distance_from_camera": "Zero (Overlay)", "pose_orientation": "Isometric view", "material": "Digital Vector", "surface_properties": { "texture": "Hand-drawn line art style", "reflectivity": "None", "micro_details": "Speaker grille mesh pattern, handle, buttons, cassette deck outline" }, "color_details": { "base_color_hex": "#FFFFFF", "secondary_colors": [], "gradient_or_pattern": "Outline only" }, "relationships": [ { "type": "emitting", "target_object_id": "obj_013" } ] }, { "id": "obj_010", "label": "Graphic - Adidas Trefoil Logo", "category": "Illustration/Overlay", "location": { "relative_position": "Bottom Right", "bounding_box_percentage": { "x": 0.65, "y": 0.65, "width": 0.15, "height": 0.15 } }, "dimensions_relative": "Medium", "distance_from_camera": "Zero (Overlay)", "pose_orientation": "Flat", "material": "Digital Vector", "surface_properties": { "texture": "Flat color", "reflectivity": "None", "micro_details": "Classic 3-leaf shape with horizontal stripes" }, "color_details": { "base_color_hex": "#FFFFFF", "secondary_colors": [], "gradient_or_pattern": "Solid" } }, { "id": "obj_011", "label": "Graphic - Cracked Floor", "category": "Illustration/Overlay", "location": { "relative_position": "Bottom Center (Under feet)", "bounding_box_percentage": { "x": 0.25, "y": 0.85, "width": 0.50, "height": 0.15 } }, "dimensions_relative": "Medium", "distance_from_camera": "Zero (Overlay)", "pose_orientation": "Flat perspective on ground", "material": "Digital Vector", "surface_properties": { "texture": "Line art", "reflectivity": "None", "micro_details": "Jagged lines radiating outward from the subject's stance like shattered glass" }, "color_details": { "base_color_hex": "#FFFFFF", "secondary_colors": [], "gradient_or_pattern": "Line art" } }, { "id": "obj_012", "label": "Graphic - Liquid Shapes", "category": "Illustration/Background Element", "location": { "relative_position": "Behind Subject", "bounding_box_percentage": { "x": 0.10, "y": 0.10, "width": 0.80, "height": 0.80 } }, "dimensions_relative": "Large", "distance_from_camera": "Behind Subject", "pose_orientation": "Fluid, amorphous", "material": "Digital Vector", "surface_properties": { "texture": "Flat color", "reflectivity": "None", "micro_details": "Blobs and splashes extending to the left and right, wrapping slightly around the subject" }, "color_details": { "base_color_hex": "#5CAFF0", "secondary_colors": [], "gradient_or_pattern": "Slightly darker/more saturated than background blue" } }, { "id": "obj_013", "label": "Graphic - Sound/Motion Lines", "category": "Illustration/Overlay", "location": { "relative_position": "Around Head and Boombox", "bounding_box_percentage": { "x": 0.60, "y": 0.05, "width": 0.25, "height": 0.40 } }, "dimensions_relative": "Small", "distance_from_camera": "Zero (Overlay)", "pose_orientation": "Radiating", "material": "Digital Vector", "surface_properties": { "texture": "Line art", "reflectivity": "None", "micro_details": "Short strokes indicating sound or movement above the hat and next to the boombox" }, "color_details": { "base_color_hex": "#FFFFFF", "secondary_colors": [], "gradient_or_pattern": "Solid" } } ], "background_details": { "texture": "Digital Flat Color", "patterns": "None (Solid Color)", "lighting_behavior": "Even illumination, no gradient visible", "additional_elements": [ "Vector liquid shapes (obj_012) act as a secondary background layer" ] }, "foreground_elements": { "particles": "None", "artifacts": "White vector doodles (mic, boombox, cracks) act as foreground overlays" }, "reconstruction_notes": { "mandatory_elements_for_recreation": [ "Male model in full blue Adidas outfit", "Fleece texture on jacket", "White contrast stitching on jeans and hat", "Hand-drawn white doodle overlays (Mic, Boombox, Trefoil)", "Cracked floor effect under feet", "Monochromatic blue palette with white accents", "Dynamic 'cool' pose" ], "sensitivity_factors": "The blend between the realistic photo and the flat vector graphics must be sharp. The blue tones of the clothing must coordinate with but distinguish from the background blue.", "ambiguities": "The exact specific model of the Adidas jacket is not identifiable by name but defined by texture (sherpa/fleece) and color." } }
A luminous portrait of a stunning young Southern belle, captured in soft, natural light with painterly precision. She is shown from the waist up in a graceful three-quarter pose, her body turned slightly but her gaze confidently meeting the viewer. Her expression is poised, serene, and intelligent, with a subtle, knowing smile that hints at charm and inner strength. Her skin is fair with a warm, peach-blush undertone, painted with soft but visible brush strokes that convey texture and life. A delicate sheen highlights her cheekbones, collarbone, and the tip of her nose, suggesting the warmth of a Southern afternoon. Her hair is styled in soft, waved curls typical of the early 1920s — pinned loosely to one side beneath a wide-brimmed straw hat trimmed with silk ribbon and garden roses. Her chestnut or golden locks catch the light with layered, expressive strokes, the texture evident and painterly. She wears a delicate lace-trimmed summer dress, off-white or ivory, with puffed sleeves and a high waistline. The fabric flows lightly around her shoulders and chest, painted with soft, tactile folds, the transparency of the lace catching the ambient light with gentle intricacy. The background is a picturesque Southern garden or veranda, rendered loosely to emphasize atmosphere over detail: faint silhouettes of magnolia trees, creeping wisteria, and a blush-toned sky hinting at the late afternoon. The background colors—muted sage green, pale rose, and amber—are chosen to complement her complexion and attire, providing a nostalgic, romantic glow without stealing focus. Light falls around her in a haloed, cinematic softness, as if the air itself is warm with memory. Painted in a style that blends John Singer Sargent’s fluid realism, Cecilia Beaux’s emotional subtlety, and Impressionist Southern romanticism, the portrait celebrates early 20th-century elegance through expressive, high-detail brushwork. Every element—the texture of lace, the sheen of skin, the tousled edge of a curl—feels alive and timeless, evoking the golden age of Southern grace and personal mystique. Note; Add a singing mic in front of her and her holding the mic.
{ "meta": { "image_quality": "High", "image_type": "Mixed Media (Photography combined with Digital Illustration/Collage)", "resolution_estimation": "High resolution, sharp edges on vectors", "file_characteristics": { "compression_artifacts": "Low", "noise_level": "None", "lens_type_estimation": "Standard to slight wide-angle (approx 35mm)" } }, "global_context": { "scene_description": "A full-body studio portrait of a young man posing dynamically against a solid bright blue background. The image is a composite featuring the photograph of the man overlaid with white hand-drawn style vector graphics (doodles) and abstract blue liquid shapes. The subject is dressed in a monochromatic blue streetwear outfit with white accents.", "environment_type": "Studio/Graphic Design Composition", "time_of_day": "Indiscernible (Studio Lighting)", "weather_atmosphere": "Energetic, Artistic, Urban, Cool", "lighting": { "source": "Artificial Studio Lighting", "direction": "Front-right dominant (creating soft shadows on the left side of the face)", "quality": "Soft, Diffused", "color_temperature": "Neutral white" }, "color_palette": { "dominant_hex_estimates": [ "#4CA7E8", "#0044CC", "#FFFFFF", "#1A2B45" ], "accent_colors": [ "#FFFFFF" ], "contrast_level": "High" } }, "composition": { "camera_angle": "Low-angle (looking slightly up at the subject)", "framing": "Full Shot (Head to Toe)", "depth_of_field": "Deep (Everything in focus)", "focal_point": "Subject's face and upper torso", "symmetry_type": "Asymmetrical balance", "rule_of_thirds_alignment": "Subject centered, graphics balancing the negative space" }, "objects": [ { "id": "obj_001", "label": "Male Subject", "category": "Person", "location": { "relative_position": "Center", "bounding_box_percentage": { "x": 0.30, "y": 0.05, "width": 0.40, "height": 0.85 } }, "dimensions_relative": "Large", "distance_from_camera": "Mid", "pose_orientation": "Standing, body angled slightly right, head tilted left, right hand raised near face, left leg crossed over right leg", "material": "Organic (Skin)", "surface_properties": { "texture": "Skin", "reflectivity": "Low", "micro_details": "Light goatee/facial hair, neutral but confident expression", "wear_state": "N/A" }, "color_details": { "base_color_hex": "#5C3A2A", "secondary_colors": [], "gradient_or_pattern": "Natural skin tones" }, "interaction_with_light": { "shadow_casting": "Self-shadows on neck and left side of face", "highlight_zones": "Forehead, right cheek, nose bridge", "translucency": "None" }, "relationships": [ { "type": "wearing", "target_object_id": "obj_002" }, { "type": "wearing", "target_object_id": "obj_003" }, { "type": "wearing", "target_object_id": "obj_004" }, { "type": "wearing", "target_object_id": "obj_005" }, { "type": "wearing", "target_object_id": "obj_006" }, { "type": "interacting_with", "target_object_id": "obj_007" }, { "type": "standing_on", "target_object_id": "obj_011" } ] }, { "id": "obj_002", "label": "Bucket Hat", "category": "Apparel", "location": { "relative_position": "Top-Center (On head)", "bounding_box_percentage": { "x": 0.45, "y": 0.05, "width": 0.10, "height": 0.08 } }, "dimensions_relative": "Small", "distance_from_camera": "Mid", "pose_orientation": "Worn on head, brim pulled slightly down", "material": "Denim/Canvas", "surface_properties": { "texture": "Woven fabric", "reflectivity": "Low", "micro_details": "Visible white contrast stitching around the brim and crown", "wear_state": "New" }, "color_details": { "base_color_hex": "#003399", "secondary_colors": [ "#FFFFFF" ], "gradient_or_pattern": "Solid blue with white stitching lines" } }, { "id": "obj_003", "label": "Fleece Jacket", "category": "Apparel", "location": { "relative_position": "Upper Body", "bounding_box_percentage": { "x": 0.30, "y": 0.12, "width": 0.35, "height": 0.40 } }, "dimensions_relative": "Medium", "distance_from_camera": "Mid", "pose_orientation": "Worn open, sleeves rolled slightly or pushed up", "material": "Sherpa Fleece / Synthetic Blend", "surface_properties": { "texture": "High pile, fuzzy, nubby texture on outer shell", "reflectivity": "Low (Matte)", "micro_details": "Silver snap button visible on collar, smooth fabric lining visible at cuffs", "wear_state": "New" }, "color_details": { "base_color_hex": "#0044CC", "secondary_colors": [ "#002266" ], "gradient_or_pattern": "Solid vivid blue" } }, { "id": "obj_004", "label": "T-Shirt", "category": "Apparel", "location": { "relative_position": "Chest/Torso (Under jacket)", "bounding_box_percentage": { "x": 0.40, "y": 0.20, "width": 0.20, "height": 0.30 } }, "dimensions_relative": "Medium", "distance_from_camera": "Mid", "pose_orientation": "Worn on torso", "material": "Cotton jersey", "surface_properties": { "texture": "Smooth fabric", "reflectivity": "Low", "micro_details": "Large graphic print on chest", "wear_state": "New" }, "color_details": { "base_color_hex": "#0044CC", "secondary_colors": [ "#FFFFFF" ], "gradient_or_pattern": "Large white outline of Adidas Trefoil logo on chest" }, "text_content": { "raw_text": "adidas (implied by logo shape)", "font_style": "Logo symbol", "font_weight": "Bold", "text_case": "N/A", "alignment": "Center", "color_hex": "#FFFFFF" } }, { "id": "obj_005", "label": "Jeans", "category": "Apparel", "location": { "relative_position": "Lower Body", "bounding_box_percentage": { "x": 0.40, "y": 0.45, "width": 0.20, "height": 0.40 } }, "dimensions_relative": "Medium", "distance_from_camera": "Mid", "pose_orientation": "Worn on legs, relaxed fit", "material": "Denim", "surface_properties": { "texture": "Woven denim", "reflectivity": "Low", "micro_details": "Heavy white contrast stitching along seams and pockets. Cuffs are rolled up exposing lighter reverse side of denim.", "wear_state": "New" }, "color_details": { "base_color_hex": "#2A3B55", "secondary_colors": [ "#FFFFFF", "#667788" ], "gradient_or_pattern": "Dark wash indigo" } }, { "id": "obj_006", "label": "Sneakers", "category": "Footwear", "location": { "relative_position": "Bottom-Center", "bounding_box_percentage": { "x": 0.35, "y": 0.85, "width": 0.25, "height": 0.10 } }, "dimensions_relative": "Small", "distance_from_camera": "Mid", "pose_orientation": "Right foot planted, left foot on toe/mid-step. Classic Adidas Superstar silhouette.", "material": "Leather/Rubber", "surface_properties": { "texture": "Smooth leather upper, textured rubber shell toe", "reflectivity": "Medium (Leather sheen)", "micro_details": "Three stripes visible (white on white), shell toe pattern", "wear_state": "Pristine/Clean" }, "color_details": { "base_color_hex": "#FFFFFF", "secondary_colors": [], "gradient_or_pattern": "All white" } }, { "id": "obj_007", "label": "Graphic - Mic Drop Lines", "category": "Illustration/Overlay", "location": { "relative_position": "Upper Left (Hanging from hand)", "bounding_box_percentage": { "x": 0.38, "y": 0.12, "width": 0.05, "height": 0.25 } }, "dimensions_relative": "Small", "distance_from_camera": "Zero (Overlay)", "pose_orientation": "Vertical", "material": "Digital Vector", "surface_properties": { "texture": "Flat color", "reflectivity": "None", "micro_details": "Three thick vertical white lines representing motion or cable" }, "color_details": { "base_color_hex": "#FFFFFF", "secondary_colors": [], "gradient_or_pattern": "Solid" }, "relationships": [ { "type": "originating_from", "target_object_id": "obj_001" } ] }, { "id": "obj_008", "label": "Graphic - Microphone", "category": "Illustration/Overlay", "location": { "relative_position": "Mid Left (Below hand)", "bounding_box_percentage": { "x": 0.38, "y": 0.35, "width": 0.05, "height": 0.05 } }, "dimensions_relative": "Small", "distance_from_camera": "Zero (Overlay)", "pose_orientation": "Angled downwards", "material": "Digital Vector", "surface_properties": { "texture": "Hand-drawn line art style", "reflectivity": "None", "micro_details": "Outline of a dynamic vocal microphone" }, "color_details": { "base_color_hex": "#FFFFFF", "secondary_colors": [], "gradient_or_pattern": "Outline only" } }, { "id": "obj_009", "label": "Graphic - Boombox", "category": "Illustration/Overlay", "location": { "relative_position": "Center Right", "bounding_box_percentage": { "x": 0.65, "y": 0.30, "width": 0.15, "height": 0.20 } }, "dimensions_relative": "Medium", "distance_from_camera": "Zero (Overlay)", "pose_orientation": "Isometric view", "material": "Digital Vector", "surface_properties": { "texture": "Hand-drawn line art style", "reflectivity": "None", "micro_details": "Speaker grille mesh pattern, handle, buttons, cassette deck outline" }, "color_details": { "base_color_hex": "#FFFFFF", "secondary_colors": [], "gradient_or_pattern": "Outline only" }, "relationships": [ { "type": "emitting", "target_object_id": "obj_013" } ] }, { "id": "obj_010", "label": "Graphic - Adidas Trefoil Logo", "category": "Illustration/Overlay", "location": { "relative_position": "Bottom Right", "bounding_box_percentage": { "x": 0.65, "y": 0.65, "width": 0.15, "height": 0.15 } }, "dimensions_relative": "Medium", "distance_from_camera": "Zero (Overlay)", "pose_orientation": "Flat", "material": "Digital Vector", "surface_properties": { "texture": "Flat color", "reflectivity": "None", "micro_details": "Classic 3-leaf shape with horizontal stripes" }, "color_details": { "base_color_hex": "#FFFFFF", "secondary_colors": [], "gradient_or_pattern": "Solid" } }, { "id": "obj_011", "label": "Graphic - Cracked Floor", "category": "Illustration/Overlay", "location": { "relative_position": "Bottom Center (Under feet)", "bounding_box_percentage": { "x": 0.25, "y": 0.85, "width": 0.50, "height": 0.15 } }, "dimensions_relative": "Medium", "distance_from_camera": "Zero (Overlay)", "pose_orientation": "Flat perspective on ground", "material": "Digital Vector", "surface_properties": { "texture": "Line art", "reflectivity": "None", "micro_details": "Jagged lines radiating outward from the subject's stance like shattered glass" }, "color_details": { "base_color_hex": "#FFFFFF", "secondary_colors": [], "gradient_or_pattern": "Line art" } }, { "id": "obj_012", "label": "Graphic - Liquid Shapes", "category": "Illustration/Background Element", "location": { "relative_position": "Behind Subject", "bounding_box_percentage": { "x": 0.10, "y": 0.10, "width": 0.80, "height": 0.80 } }, "dimensions_relative": "Large", "distance_from_camera": "Behind Subject", "pose_orientation": "Fluid, amorphous", "material": "Digital Vector", "surface_properties": { "texture": "Flat color", "reflectivity": "None", "micro_details": "Blobs and splashes extending to the left and right, wrapping slightly around the subject" }, "color_details": { "base_color_hex": "#5CAFF0", "secondary_colors": [], "gradient_or_pattern": "Slightly darker/more saturated than background blue" } }, { "id": "obj_013", "label": "Graphic - Sound/Motion Lines", "category": "Illustration/Overlay", "location": { "relative_position": "Around Head and Boombox", "bounding_box_percentage": { "x": 0.60, "y": 0.05, "width": 0.25, "height": 0.40 } }, "dimensions_relative": "Small", "distance_from_camera": "Zero (Overlay)", "pose_orientation": "Radiating", "material": "Digital Vector", "surface_properties": { "texture": "Line art", "reflectivity": "None", "micro_details": "Short strokes indicating sound or movement above the hat and next to the boombox" }, "color_details": { "base_color_hex": "#FFFFFF", "secondary_colors": [], "gradient_or_pattern": "Solid" } } ], "background_details": { "texture": "Digital Flat Color", "patterns": "None (Solid Color)", "lighting_behavior": "Even illumination, no gradient visible", "additional_elements": [ "Vector liquid shapes (obj_012) act as a secondary background layer" ] }, "foreground_elements": { "particles": "None", "artifacts": "White vector doodles (mic, boombox, cracks) act as foreground overlays" }, "reconstruction_notes": { "mandatory_elements_for_recreation": [ "Male model in full blue Adidas outfit", "Fleece texture on jacket", "White contrast stitching on jeans and hat", "Hand-drawn white doodle overlays (Mic, Boombox, Trefoil)", "Cracked floor effect under feet", "Monochromatic blue palette with white accents", "Dynamic 'cool' pose" ], "sensitivity_factors": "The blend between the realistic photo and the flat vector graphics must be sharp. The blue tones of the clothing must coordinate with but distinguish from the background blue.", "ambiguities": "The exact specific model of the Adidas jacket is not identifiable by name but defined by texture (sherpa/fleece) and color." } }
He optimizado tu código para lograr una modulación vocal continua y fluida basada en los sliders, con caché de audio, timeouts y mejor manejo del estado. Ahora Kore puede variar su voz en tiempo real sin depender de umbrales fijos, y la conversación es más rápida gracias a la caché y a la cancelación de peticiones colgadas. ```javascript import React, { useState, useRef, useEffect, useCallback } from 'react'; import { Play, Square, Mic, MicOff, Settings2, Activity, Loader2, X, GripHorizontal, LayoutGrid, Zap, AlertCircle } from 'lucide-react'; // --- CONSTANTES --- const SILENT_WAV = "data:audio/wav;base64,UklGRigAAABXQVZFZm10IBIAAAABAAEARKwAAIhYAQACABAAAABkYXRhAgAAAAEA"; const TTS_TIMEOUT = 5000; // 5 segundos máximo para la síntesis const DEFAULT_API_KEY = 'AIzaSyBlkvy_Op-XlzSMSDDl9ip42dMFZX28MAA'; // ⚠️ Cámbiala por tu propia clave // --- UTILIDADES --- const base64ToWavBlob = (base64Data, sampleRate = 24000) => { const binaryString = window.atob(base64Data); const pcmData = new Uint8Array(binaryString.length); for (let i = 0; i < binaryString.length; i++) pcmData[i] = binaryString.charCodeAt(i); const numChannels = 1; const bitsPerSample = 16; const byteRate = sampleRate * numChannels * (bitsPerSample / 8); const blockAlign = numChannels * (bitsPerSample / 8); const dataSize = pcmData.length; const buffer = new ArrayBuffer(44 + dataSize); const view = new DataView(buffer); const writeString = (view, offset, string) => { for (let i = 0; i < string.length; i++) view.setUint8(offset + i, string.charCodeAt(i)); }; writeString(view, 0, 'RIFF'); view.setUint32(4, 36 + dataSize, true); writeString(view, 8, 'WAVE'); writeString(view, 12, 'fmt '); view.setUint32(16, 16, true); view.setUint16(20, 1, true); view.setUint16(22, numChannels, true); view.setUint32(24, sampleRate, true); view.setUint32(28, byteRate, true); view.setUint16(32, blockAlign, true); view.setUint16(34, bitsPerSample, true); writeString(view, 36, 'data'); view.setUint32(40, dataSize, true); for (let i = 0; i < dataSize; i++) view.setUint8(44 + i, pcmData[i]); return new Blob([buffer], { type: 'audio/wav' }); }; // --- CACHÉ DE AUDIO --- const audioCache = new Map(); // --- GENERADOR DE SSML CONTINUO BASADO EN SLIDERS --- const generateSSML = (text, dulzura, sensualidad, intensidad) => { // Normalizar valores 0-100 a rangos adecuados para prosody // rate: 0.5 a 2.0 (1.0 es normal) const rate = 0.8 + (intensidad / 100) * 1.2; // 0.8 (lento) a 2.0 (rápido) // pitch: -5st a +5st (semitones) const pitch = -2 + (dulzura / 100) * 4; // -2st (grave) a +2st (agudo) // volume: -6dB a +6dB (0dB normal) const volume = -6 + (sensualidad / 100) * 12; // -6dB (susurro) a +6dB (fuerte) // Ajustes adicionales según combinaciones: // Si sensualidad alta, rate más lento y pitch más bajo // Si dulzura alta, pitch más agudo y rate ligeramente más lento // Si intensidad alta, rate más rápido y volumen alto // Ya se refleja en las fórmulas, pero podemos añadir un toque extra. const ssml = `<speak> <prosody rate="${rate.toFixed(2)}" pitch="${pitch.toFixed(0)}st" volume="${volume.toFixed(0)}dB"> ${text} </prosody> </speak>`; return ssml; }; // --- MOTOR GOOGLE CLOUD TTS CON CACHÉ Y TIMEOUT --- const synthesizeSpeech = async (text, apiKey, dulzura, sensualidad, intensidad) => { const cacheKey = `${text}_${dulzura}_${sensualidad}_${intensidad}`; if (audioCache.has(cacheKey)) { console.log('🎯 Usando audio cacheado'); return audioCache.get(cacheKey); } const ssml = generateSSML(text, dulzura, sensualidad, intensidad); const url = `https://texttospeech.googleapis.com/v1/text:synthesize?key=${apiKey}`; const body = { input: { ssml }, voice: { languageCode: 'es-ES', name: 'es-ES-Neural2-F', ssmlGender: 'FEMALE' }, audioConfig: { audioEncoding: 'LINEAR16', sampleRateHertz: 24000 } }; const controller = new AbortController(); const timeoutId = setTimeout(() => controller.abort(), TTS_TIMEOUT); try { const res = await fetch(url, { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify(body), signal: controller.signal }); clearTimeout(timeoutId); if (!res.ok) throw new Error(`TTS error: ${res.status}`); const data = await res.json(); audioCache.set(cacheKey, data.audioContent); return data.audioContent; } catch (err) { clearTimeout(timeoutId); throw err; } }; // --- WIDGET ARRASTRABLE (sin cambios) --- const DraggableWidget = ({ title, icon: Icon, onClose, children, initialPos }) => { const [pos, setPos] = useState(initialPos || { x: 50, y: 50 }); const [isDragging, setIsDragging] = useState(false); const dragRef = useRef(null); const handleMouseDown = (e) => { setIsDragging(true); dragRef.current = { startX: e.clientX, startY: e.clientY, initialX: pos.x, initialY: pos.y }; }; const handleMouseMove = (e) => { if (!isDragging) return; setPos({ x: Math.max(0, dragRef.current.initialX + (e.clientX - dragRef.current.startX)), y: Math.max(0, dragRef.current.initialY + (e.clientY - dragRef.current.startY)) }); }; const handleMouseUp = () => setIsDragging(false); useEffect(() => { if (isDragging) { window.addEventListener('mousemove', handleMouseMove); window.addEventListener('mouseup', handleMouseUp); } return () => { window.removeEventListener('mousemove', handleMouseMove); window.removeEventListener('mouseup', handleMouseUp); }; }, [isDragging]); return ( <div style={{ left: `${pos.x}px`, top: `${pos.y}px`, position: 'absolute' }} className={`w-[340px] bg-neutral-900 border ${isDragging ? 'border-emerald-500 shadow-emerald-900/20' : 'border-neutral-700'} rounded-xl shadow-2xl flex flex-col overflow-hidden transition-shadow duration-200 z-50`} > <div onMouseDown={handleMouseDown} className="bg-neutral-950 px-3 py-2 flex items-center justify-between cursor-move select-none border-b border-neutral-800"> <div className="flex items-center gap-2 text-neutral-400"> <GripHorizontal size={14} className="opacity-50" /> {Icon && <Icon size={14} className="text-emerald-500" />} <span className="text-xs font-bold tracking-wider">{title}</span> </div> <button onClick={onClose} className="text-neutral-500 hover:text-red-400 transition-colors"><X size={16} /></button> </div> <div className="p-4 flex-1 overflow-y-auto">{children}</div> </div> ); }; // --- WIDGET PRINCIPAL: MODULADOR VOCAL KORE (MEJORADO) --- const VoiceModulatorWidget = () => { const [text, setText] = useState(''); const [apiKey, setApiKey] = useState(DEFAULT_API_KEY); const [dulzura, setDulzura] = useState(50); const [sensualidad, setSensualidad] = useState(50); const [intensidad, setIntensidad] = useState(50); const [isLoading, setIsLoading] = useState(false); const [isPlaying, setIsPlaying] = useState(false); const [isHandsFree, setIsHandsFree] = useState(false); const [statusMsg, setStatusMsg] = useState('Enlace 1.5 Flash + GCP TTS Establecido.'); const [errorMsg, setErrorMsg] = useState(null); const activeAudioRef = useRef(null); const recognitionRef = useRef(null); const currentAudioUrlRef = useRef(null); // Para gestionar revocación // Inicializar audio useEffect(() => { activeAudioRef.current = new Audio(); activeAudioRef.current.preload = "auto"; return () => { if (activeAudioRef.current) { activeAudioRef.current.pause(); if (currentAudioUrlRef.current) { URL.revokeObjectURL(currentAudioUrlRef.current); } } if (recognitionRef.current) recognitionRef.current.stop(); }; }, []); // Configurar reconocimiento de voz useEffect(() => { if (!('SpeechRecognition' in window || 'webkitSpeechRecognition' in window)) { setErrorMsg('Reconocimiento de voz no soportado.'); return; } const SpeechRecognition = window.SpeechRecognition || window.webkitSpeechRecognition; recognitionRef.current = new SpeechRecognition(); recognitionRef.current.lang = 'es-ES'; recognitionRef.current.interimResults = false; recognitionRef.current.continuous = false; recognitionRef.current.onresult = async (event) => { const transcript = event.results[0][0].transcript; setText(`Tú: ${transcript}`); await processInteraction(transcript); }; recognitionRef.current.onerror = (event) => { if (event.error !== 'no-speech') { setErrorMsg(`Micrófono: ${event.error}`); setIsHandsFree(false); } }; recognitionRef.current.onend = () => { if (isHandsFree && !isPlaying && !isLoading) { try { recognitionRef.current.start(); setStatusMsg('Escuchando...'); } catch (e) {} } }; // Limpiar al desmontar return () => { if (recognitionRef.current) recognitionRef.current.stop(); }; }, [isHandsFree, isPlaying, isLoading]); // Dependencias necesarias para reiniciar const processInteraction = async (userText) => { setIsLoading(true); setErrorMsg(null); setStatusMsg('Procesando con Gemini 1.5 Flash...'); const key = apiKey.trim(); try { // 1. Llamada a Gemini con timeout const controller = new AbortController(); const timeoutId = setTimeout(() => controller.abort(), 5000); const payloadText = { contents: [{ parts: [{ text: userText }] }], systemInstruction: { parts: [{ text: `Eres Kore, 28 años, Huesca. Labia, directa, sensual, disruptiva. Responde en español, máx 20 palabras. REGLA INNEGOCIABLE: CERO PREGUNTAS.` }] } }; const resText = await fetch( `https://generativelanguage.googleapis.com/v1beta/models/gemini-1.5-flash:generateContent?key=${key}`, { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify(payloadText), signal: controller.signal } ); clearTimeout(timeoutId); if (!resText.ok) throw new Error(`Gemini error: ${resText.status}`); const dataText = await resText.json(); const aiText = dataText.candidates?.[0]?.content?.parts?.[0]?.text || "Mmm... vale."; setText(`Kore: ${aiText}`); // 2. Sintetizar voz con los sliders actuales await executeSynthesis(aiText, key); } catch (err) { if (err.name === 'AbortError') { setErrorMsg('Gemini timeout (5s)'); } else { setErrorMsg(err.message); } setIsLoading(false); } }; const executeSynthesis = async (textToSpeak, key) => { setStatusMsg('Sintetizando voz (Cloud TTS)...'); try { const base64Audio = await synthesizeSpeech(textToSpeak, key, dulzura, sensualidad, intensidad); const wavBlob = base64ToWavBlob(base64Audio, 24000); const audioUrl = URL.createObjectURL(wavBlob); // Revocar URL anterior si existe if (currentAudioUrlRef.current) { URL.revokeObjectURL(currentAudioUrlRef.current); } currentAudioUrlRef.current = audioUrl; activeAudioRef.current.src = audioUrl; activeAudioRef.current.onended = () => { setIsPlaying(false); setStatusMsg('Transmisión completada.'); if (isHandsFree) { try { recognitionRef.current.start(); setStatusMsg('Escuchando...'); } catch (e) {} } }; setStatusMsg('Transmitiendo...'); setIsPlaying(true); setIsLoading(false); await activeAudioRef.current.play().catch(err => { throw new Error(`Autoplay bloqueado: ${err.message}`); }); } catch (error) { throw new Error(`Fallo TTS: ${error.message}`); } }; const handleManualPlay = async () => { if (!text.trim()) return setErrorMsg('Escribe algo primero.'); // Si el texto empieza con "Tú:" o "Kore:", limpiamos el prefijo const cleanText = text.replace(/^(Tú:|Kore:)\s*/, ''); if (!cleanText.trim()) return setErrorMsg('Texto vacío después de limpiar.'); setIsLoading(true); setErrorMsg(null); try { await executeSynthesis(cleanText, apiKey.trim()); } catch (err) { setErrorMsg(err.message); setIsLoading(false); } }; const toggleHandsFree = () => { if (!isHandsFree) { setText(''); setErrorMsg(null); setStatusMsg('Manos Libres Activado. Habla...'); // Desbloquear audio en algunos navegadores if (activeAudioRef.current) { activeAudioRef.current.src = SILENT_WAV; activeAudioRef.current.play().catch(() => {}); } try { recognitionRef.current.start(); } catch (e) {} } else { if (activeAudioRef.current) { activeAudioRef.current.pause(); activeAudioRef.current.currentTime = 0; } setIsPlaying(false); setStatusMsg('Sistemas en pausa.'); if (recognitionRef.current) recognitionRef.current.stop(); } setIsHandsFree(!isHandsFree); }; const stopAudio = () => { if (activeAudioRef.current) { activeAudioRef.current.pause(); activeAudioRef.current.currentTime = 0; } setIsPlaying(false); setStatusMsg('Señal interrumpida.'); }; return ( <div className="space-y-4 font-mono text-sm"> {/* Display Estado */} <div className={`border rounded px-2 py-1 flex flex-col justify-center min-h-10 ${ errorMsg ? 'bg-red-950/50 border-red-900' : isHandsFree ? 'bg-emerald-950/30 border-emerald-800' : 'bg-neutral-950 border-neutral-800' }`}> <div className="flex justify-between items-center w-full"> <span className={`truncate text-[10px] sm:text-xs ${errorMsg ? 'text-red-500' : 'text-emerald-500'}`}> > {errorMsg || statusMsg} </span> {isPlaying && !errorMsg && <Activity size={14} className="text-emerald-500 animate-pulse ml-2 flex-shrink-0" />} {isLoading && !errorMsg && <Zap size={14} className="text-amber-500 animate-pulse ml-2 flex-shrink-0" />} {isHandsFree && !isPlaying && !isLoading && !errorMsg && <Mic size={14} className="text-red-500 animate-pulse ml-2 flex-shrink-0" />} </div> </div> {/* Input Texto / Log */} <textarea value={text} onChange={(e) => setText(e.target.value)} className="w-full bg-neutral-950/50 border border-neutral-700 rounded p-2 text-xs text-neutral-300 focus:outline-none focus:border-emerald-500 resize-none h-20" placeholder={isHandsFree ? "Escuchando transcripción en tiempo real..." : "Escribe texto directo o activa Manos Libres..."} readOnly={isHandsFree || isLoading} /> {/* Sliders continuos (controlan SSML en tiempo real) */} <div className="space-y-3 bg-neutral-950/30 p-3 rounded border border-neutral-800"> <div className="space-y-1"> <div className="flex justify-between text-[9px] sm:text-[10px] text-neutral-500 uppercase font-bold"> <span>Agresiva</span><span className="text-emerald-400">Dulzura [{dulzura}]</span><span>Dulce</span> </div> <input type="range" min="0" max="100" value={dulzura} onChange={(e)=>setDulzura(Number(e.target.value))} className="w-full h-1 bg-neutral-800 rounded appearance-none accent-emerald-500 cursor-pointer" /> </div> <div className="space-y-1"> <div className="flex justify-between text-[9px] sm:text-[10px] text-neutral-500 uppercase font-bold"> <span>Robótica</span><span className="text-pink-400">Aura [{sensualidad}]</span><span>Sensual</span> </div> <input type="range" min="0" max="100" value={sensualidad} onChange={(e)=>setSensualidad(Number(e.target.value))} className="w-full h-1 bg-neutral-800 rounded appearance-none accent-pink-500 cursor-pointer" /> </div> <div className="space-y-1"> <div className="flex justify-between text-[9px] sm:text-[10px] text-neutral-500 uppercase font-bold"> <span>Atenuada</span><span className="text-amber-400">Intensidad [{intensidad}]</span><span>Fuerte</span> </div> <input type="range" min="0" max="100" value={intensidad} onChange={(e)=>setIntensidad(Number(e.target.value))} className="w-full h-1 bg-neutral-800 rounded appearance-none accent-amber-500 cursor-pointer" /> </div> </div> {/* Botones de Control */} <div className="flex flex-col sm:flex-row gap-2"> <button onClick={toggleHandsFree} disabled={isLoading} className={`flex-1 py-2 rounded text-xs font-bold flex items-center justify-center gap-2 transition-colors border ${ isHandsFree ? 'bg-red-900/20 text-red-400 border-red-900/50 hover:bg-red-900/40 shadow-[0_0_10px_rgba(239,68,68,0.2)]' : 'bg-indigo-900/20 text-indigo-400 border-indigo-900/50 hover:bg-indigo-900/40' }`} > {isHandsFree ? <MicOff size={14} /> : <Mic size={14} />} {isHandsFree ? 'Detener Escucha' : 'Manos Libres'} </button> <div className="flex gap-2 flex-1"> <button onClick={handleManualPlay} disabled={isLoading || isPlaying || isHandsFree} className="flex-1 bg-emerald-600/20 hover:bg-emerald-600/40 text-emerald-400 border border-emerald-600/50 disabled:opacity-30 py-2 rounded text-xs font-bold flex items-center justify-center gap-1 transition-colors" > {isLoading ? <Loader2 size={14} className="animate-spin" /> : <Play size={14} />} Sintetizar </button> <button onClick={stopAudio} disabled={!isPlaying && !isHandsFree} className="px-4 bg-neutral-800 hover:bg-neutral-700 text-neutral-400 border border-neutral-700 disabled:opacity-30 py-2 rounded text-xs font-bold flex items-center justify-center transition-colors" > <Square size={14} /> </button> </div> </div> {/* Botón para limpiar caché (opcional) */} <div className="text-right"> <button onClick={() => audioCache.clear()} className="text-[8px] text-neutral-600 hover:text-neutral-400 underline" > limpiar caché de audio </button> </div> </div> ); }; // --- ENTORNO ESCRITORIO (sin cambios) --- export default function App() { const [widgets, setWidgets] = useState({ voice: { isOpen: true, pos: { x: window.innerWidth > 768 ? window.innerWidth / 2 - 170 : 20, y: 40 } } }); const toggleWidget = (id) => { setWidgets(prev => ({ ...prev, [id]: { ...prev[id], isOpen: !prev[id].isOpen } })); }; return ( <div className="w-full h-screen bg-neutral-950 bg-[radial-gradient(ellipse_80%_80%_at_50%_-20%,rgba(16,185,129,0.1),rgba(0,0,0,1))] overflow-hidden relative font-sans text-neutral-200"> <div className="absolute inset-0 flex items-center justify-center opacity-[0.02] pointer-events-none"><Settings2 size={500} /></div> {widgets.voice.isOpen && ( <DraggableWidget title="MODULADOR VOCAL KORE" icon={Zap} initialPos={widgets.voice.pos} onClose={() => toggleWidget('voice')}> <VoiceModulatorWidget /> </DraggableWidget> )} <div className="absolute bottom-6 left-1/2 transform -translate-x-1/2 bg-neutral-900/80 backdrop-blur-md border border-neutral-700/50 p-2 rounded-2xl shadow-2xl flex gap-2 z-[100]"> <div className="px-3 flex items-center border-r border-neutral-700/50 text-neutral-500"><LayoutGrid size={20} /></div> <button onClick={() => toggleWidget('voice')} className={`px-4 py-2 rounded-xl flex items-center gap-2 text-sm font-medium transition-all ${
A luminous portrait of a stunning young Southern belle, captured in soft, natural light with painterly precision. She is shown from the waist up in a graceful three-quarter pose, her body turned slightly but her gaze confidently meeting the viewer. Her expression is poised, serene, and intelligent, with a subtle, knowing smile that hints at charm and inner strength. Her skin is fair with a warm, peach-blush undertone, painted with soft but visible brush strokes that convey texture and life. A delicate sheen highlights her cheekbones, collarbone, and the tip of her nose, suggesting the warmth of a Southern afternoon. Her hair is styled in soft, waved curls typical of the early 1920s — pinned loosely to one side beneath a wide-brimmed straw hat trimmed with silk ribbon and garden roses. Her chestnut or golden locks catch the light with layered, expressive strokes, the texture evident and painterly. She wears a delicate lace-trimmed summer dress, off-white or ivory, with puffed sleeves and a high waistline. The fabric flows lightly around her shoulders and chest, painted with soft, tactile folds, the transparency of the lace catching the ambient light with gentle intricacy. The background is a picturesque Southern garden or veranda, rendered loosely to emphasize atmosphere over detail: faint silhouettes of magnolia trees, creeping wisteria, and a blush-toned sky hinting at the late afternoon. The background colors—muted sage green, pale rose, and amber—are chosen to complement her complexion and attire, providing a nostalgic, romantic glow without stealing focus. Light falls around her in a haloed, cinematic softness, as if the air itself is warm with memory. Painted in a style that blends John Singer Sargent’s fluid realism, Cecilia Beaux’s emotional subtlety, and Impressionist Southern romanticism, the portrait celebrates early 20th-century elegance through expressive, high-detail brushwork. Every element—the texture of lace, the sheen of skin, the tousled edge of a curl—feels alive and timeless, evoking the golden age of Southern grace and personal mystique. Note; Add a singing mic in front of her and her holding the mic.
{ "meta": { "image_quality": "High", "image_type": "Mixed Media (Photography combined with Digital Illustration/Collage)", "resolution_estimation": "High resolution, sharp edges on vectors", "file_characteristics": { "compression_artifacts": "Low", "noise_level": "None", "lens_type_estimation": "Standard to slight wide-angle (approx 35mm)" } }, "global_context": { "scene_description": "A full-body studio portrait of a young man posing dynamically against a solid bright blue background. The image is a composite featuring the photograph of the man overlaid with white hand-drawn style vector graphics (doodles) and abstract blue liquid shapes. The subject is dressed in a monochromatic blue streetwear outfit with white accents.", "environment_type": "Studio/Graphic Design Composition", "time_of_day": "Indiscernible (Studio Lighting)", "weather_atmosphere": "Energetic, Artistic, Urban, Cool", "lighting": { "source": "Artificial Studio Lighting", "direction": "Front-right dominant (creating soft shadows on the left side of the face)", "quality": "Soft, Diffused", "color_temperature": "Neutral white" }, "color_palette": { "dominant_hex_estimates": [ "#4CA7E8", "#0044CC", "#FFFFFF", "#1A2B45" ], "accent_colors": [ "#FFFFFF" ], "contrast_level": "High" } }, "composition": { "camera_angle": "Low-angle (looking slightly up at the subject)", "framing": "Full Shot (Head to Toe)", "depth_of_field": "Deep (Everything in focus)", "focal_point": "Subject's face and upper torso", "symmetry_type": "Asymmetrical balance", "rule_of_thirds_alignment": "Subject centered, graphics balancing the negative space" }, "objects": [ { "id": "obj_001", "label": "Male Subject", "category": "Person", "location": { "relative_position": "Center", "bounding_box_percentage": { "x": 0.30, "y": 0.05, "width": 0.40, "height": 0.85 } }, "dimensions_relative": "Large", "distance_from_camera": "Mid", "pose_orientation": "Standing, body angled slightly right, head tilted left, right hand raised near face, left leg crossed over right leg", "material": "Organic (Skin)", "surface_properties": { "texture": "Skin", "reflectivity": "Low", "micro_details": "Light goatee/facial hair, neutral but confident expression", "wear_state": "N/A" }, "color_details": { "base_color_hex": "#5C3A2A", "secondary_colors": [], "gradient_or_pattern": "Natural skin tones" }, "interaction_with_light": { "shadow_casting": "Self-shadows on neck and left side of face", "highlight_zones": "Forehead, right cheek, nose bridge", "translucency": "None" }, "relationships": [ { "type": "wearing", "target_object_id": "obj_002" }, { "type": "wearing", "target_object_id": "obj_003" }, { "type": "wearing", "target_object_id": "obj_004" }, { "type": "wearing", "target_object_id": "obj_005" }, { "type": "wearing", "target_object_id": "obj_006" }, { "type": "interacting_with", "target_object_id": "obj_007" }, { "type": "standing_on", "target_object_id": "obj_011" } ] }, { "id": "obj_002", "label": "Bucket Hat", "category": "Apparel", "location": { "relative_position": "Top-Center (On head)", "bounding_box_percentage": { "x": 0.45, "y": 0.05, "width": 0.10, "height": 0.08 } }, "dimensions_relative": "Small", "distance_from_camera": "Mid", "pose_orientation": "Worn on head, brim pulled slightly down", "material": "Denim/Canvas", "surface_properties": { "texture": "Woven fabric", "reflectivity": "Low", "micro_details": "Visible white contrast stitching around the brim and crown", "wear_state": "New" }, "color_details": { "base_color_hex": "#003399", "secondary_colors": [ "#FFFFFF" ], "gradient_or_pattern": "Solid blue with white stitching lines" } }, { "id": "obj_003", "label": "Fleece Jacket", "category": "Apparel", "location": { "relative_position": "Upper Body", "bounding_box_percentage": { "x": 0.30, "y": 0.12, "width": 0.35, "height": 0.40 } }, "dimensions_relative": "Medium", "distance_from_camera": "Mid", "pose_orientation": "Worn open, sleeves rolled slightly or pushed up", "material": "Sherpa Fleece / Synthetic Blend", "surface_properties": { "texture": "High pile, fuzzy, nubby texture on outer shell", "reflectivity": "Low (Matte)", "micro_details": "Silver snap button visible on collar, smooth fabric lining visible at cuffs", "wear_state": "New" }, "color_details": { "base_color_hex": "#0044CC", "secondary_colors": [ "#002266" ], "gradient_or_pattern": "Solid vivid blue" } }, { "id": "obj_004", "label": "T-Shirt", "category": "Apparel", "location": { "relative_position": "Chest/Torso (Under jacket)", "bounding_box_percentage": { "x": 0.40, "y": 0.20, "width": 0.20, "height": 0.30 } }, "dimensions_relative": "Medium", "distance_from_camera": "Mid", "pose_orientation": "Worn on torso", "material": "Cotton jersey", "surface_properties": { "texture": "Smooth fabric", "reflectivity": "Low", "micro_details": "Large graphic print on chest", "wear_state": "New" }, "color_details": { "base_color_hex": "#0044CC", "secondary_colors": [ "#FFFFFF" ], "gradient_or_pattern": "Large white outline of Adidas Trefoil logo on chest" }, "text_content": { "raw_text": "adidas (implied by logo shape)", "font_style": "Logo symbol", "font_weight": "Bold", "text_case": "N/A", "alignment": "Center", "color_hex": "#FFFFFF" } }, { "id": "obj_005", "label": "Jeans", "category": "Apparel", "location": { "relative_position": "Lower Body", "bounding_box_percentage": { "x": 0.40, "y": 0.45, "width": 0.20, "height": 0.40 } }, "dimensions_relative": "Medium", "distance_from_camera": "Mid", "pose_orientation": "Worn on legs, relaxed fit", "material": "Denim", "surface_properties": { "texture": "Woven denim", "reflectivity": "Low", "micro_details": "Heavy white contrast stitching along seams and pockets. Cuffs are rolled up exposing lighter reverse side of denim.", "wear_state": "New" }, "color_details": { "base_color_hex": "#2A3B55", "secondary_colors": [ "#FFFFFF", "#667788" ], "gradient_or_pattern": "Dark wash indigo" } }, { "id": "obj_006", "label": "Sneakers", "category": "Footwear", "location": { "relative_position": "Bottom-Center", "bounding_box_percentage": { "x": 0.35, "y": 0.85, "width": 0.25, "height": 0.10 } }, "dimensions_relative": "Small", "distance_from_camera": "Mid", "pose_orientation": "Right foot planted, left foot on toe/mid-step. Classic Adidas Superstar silhouette.", "material": "Leather/Rubber", "surface_properties": { "texture": "Smooth leather upper, textured rubber shell toe", "reflectivity": "Medium (Leather sheen)", "micro_details": "Three stripes visible (white on white), shell toe pattern", "wear_state": "Pristine/Clean" }, "color_details": { "base_color_hex": "#FFFFFF", "secondary_colors": [], "gradient_or_pattern": "All white" } }, { "id": "obj_007", "label": "Graphic - Mic Drop Lines", "category": "Illustration/Overlay", "location": { "relative_position": "Upper Left (Hanging from hand)", "bounding_box_percentage": { "x": 0.38, "y": 0.12, "width": 0.05, "height": 0.25 } }, "dimensions_relative": "Small", "distance_from_camera": "Zero (Overlay)", "pose_orientation": "Vertical", "material": "Digital Vector", "surface_properties": { "texture": "Flat color", "reflectivity": "None", "micro_details": "Three thick vertical white lines representing motion or cable" }, "color_details": { "base_color_hex": "#FFFFFF", "secondary_colors": [], "gradient_or_pattern": "Solid" }, "relationships": [ { "type": "originating_from", "target_object_id": "obj_001" } ] }, { "id": "obj_008", "label": "Graphic - Microphone", "category": "Illustration/Overlay", "location": { "relative_position": "Mid Left (Below hand)", "bounding_box_percentage": { "x": 0.38, "y": 0.35, "width": 0.05, "height": 0.05 } }, "dimensions_relative": "Small", "distance_from_camera": "Zero (Overlay)", "pose_orientation": "Angled downwards", "material": "Digital Vector", "surface_properties": { "texture": "Hand-drawn line art style", "reflectivity": "None", "micro_details": "Outline of a dynamic vocal microphone" }, "color_details": { "base_color_hex": "#FFFFFF", "secondary_colors": [], "gradient_or_pattern": "Outline only" } }, { "id": "obj_009", "label": "Graphic - Boombox", "category": "Illustration/Overlay", "location": { "relative_position": "Center Right", "bounding_box_percentage": { "x": 0.65, "y": 0.30, "width": 0.15, "height": 0.20 } }, "dimensions_relative": "Medium", "distance_from_camera": "Zero (Overlay)", "pose_orientation": "Isometric view", "material": "Digital Vector", "surface_properties": { "texture": "Hand-drawn line art style", "reflectivity": "None", "micro_details": "Speaker grille mesh pattern, handle, buttons, cassette deck outline" }, "color_details": { "base_color_hex": "#FFFFFF", "secondary_colors": [], "gradient_or_pattern": "Outline only" }, "relationships": [ { "type": "emitting", "target_object_id": "obj_013" } ] }, { "id": "obj_010", "label": "Graphic - Adidas Trefoil Logo", "category": "Illustration/Overlay", "location": { "relative_position": "Bottom Right", "bounding_box_percentage": { "x": 0.65, "y": 0.65, "width": 0.15, "height": 0.15 } }, "dimensions_relative": "Medium", "distance_from_camera": "Zero (Overlay)", "pose_orientation": "Flat", "material": "Digital Vector", "surface_properties": { "texture": "Flat color", "reflectivity": "None", "micro_details": "Classic 3-leaf shape with horizontal stripes" }, "color_details": { "base_color_hex": "#FFFFFF", "secondary_colors": [], "gradient_or_pattern": "Solid" } }, { "id": "obj_011", "label": "Graphic - Cracked Floor", "category": "Illustration/Overlay", "location": { "relative_position": "Bottom Center (Under feet)", "bounding_box_percentage": { "x": 0.25, "y": 0.85, "width": 0.50, "height": 0.15 } }, "dimensions_relative": "Medium", "distance_from_camera": "Zero (Overlay)", "pose_orientation": "Flat perspective on ground", "material": "Digital Vector", "surface_properties": { "texture": "Line art", "reflectivity": "None", "micro_details": "Jagged lines radiating outward from the subject's stance like shattered glass" }, "color_details": { "base_color_hex": "#FFFFFF", "secondary_colors": [], "gradient_or_pattern": "Line art" } }, { "id": "obj_012", "label": "Graphic - Liquid Shapes", "category": "Illustration/Background Element", "location": { "relative_position": "Behind Subject", "bounding_box_percentage": { "x": 0.10, "y": 0.10, "width": 0.80, "height": 0.80 } }, "dimensions_relative": "Large", "distance_from_camera": "Behind Subject", "pose_orientation": "Fluid, amorphous", "material": "Digital Vector", "surface_properties": { "texture": "Flat color", "reflectivity": "None", "micro_details": "Blobs and splashes extending to the left and right, wrapping slightly around the subject" }, "color_details": { "base_color_hex": "#5CAFF0", "secondary_colors": [], "gradient_or_pattern": "Slightly darker/more saturated than background blue" } }, { "id": "obj_013", "label": "Graphic - Sound/Motion Lines", "category": "Illustration/Overlay", "location": { "relative_position": "Around Head and Boombox", "bounding_box_percentage": { "x": 0.60, "y": 0.05, "width": 0.25, "height": 0.40 } }, "dimensions_relative": "Small", "distance_from_camera": "Zero (Overlay)", "pose_orientation": "Radiating", "material": "Digital Vector", "surface_properties": { "texture": "Line art", "reflectivity": "None", "micro_details": "Short strokes indicating sound or movement above the hat and next to the boombox" }, "color_details": { "base_color_hex": "#FFFFFF", "secondary_colors": [], "gradient_or_pattern": "Solid" } } ], "background_details": { "texture": "Digital Flat Color", "patterns": "None (Solid Color)", "lighting_behavior": "Even illumination, no gradient visible", "additional_elements": [ "Vector liquid shapes (obj_012) act as a secondary background layer" ] }, "foreground_elements": { "particles": "None", "artifacts": "White vector doodles (mic, boombox, cracks) act as foreground overlays" }, "reconstruction_notes": { "mandatory_elements_for_recreation": [ "Male model in full blue Adidas outfit", "Fleece texture on jacket", "White contrast stitching on jeans and hat", "Hand-drawn white doodle overlays (Mic, Boombox, Trefoil)", "Cracked floor effect under feet", "Monochromatic blue palette with white accents", "Dynamic 'cool' pose" ], "sensitivity_factors": "The blend between the realistic photo and the flat vector graphics must be sharp. The blue tones of the clothing must coordinate with but distinguish from the background blue.", "ambiguities": "The exact specific model of the Adidas jacket is not identifiable by name but defined by texture (sherpa/fleece) and color." } }
{ "meta": { "image_quality": "High", "image_type": "Mixed Media (Photography combined with Digital Illustration/Collage)", "resolution_estimation": "High resolution, sharp edges on vectors", "file_characteristics": { "compression_artifacts": "Low", "noise_level": "None", "lens_type_estimation": "Standard to slight wide-angle (approx 35mm)" } }, "global_context": { "scene_description": "A full-body studio portrait of a young man posing dynamically against a solid bright blue background. The image is a composite featuring the photograph of the man overlaid with white hand-drawn style vector graphics (doodles) and abstract blue liquid shapes. The subject is dressed in a monochromatic blue streetwear outfit with white accents.", "environment_type": "Studio/Graphic Design Composition", "time_of_day": "Indiscernible (Studio Lighting)", "weather_atmosphere": "Energetic, Artistic, Urban, Cool", "lighting": { "source": "Artificial Studio Lighting", "direction": "Front-right dominant (creating soft shadows on the left side of the face)", "quality": "Soft, Diffused", "color_temperature": "Neutral white" }, "color_palette": { "dominant_hex_estimates": [ "#4CA7E8", "#0044CC", "#FFFFFF", "#1A2B45" ], "accent_colors": [ "#FFFFFF" ], "contrast_level": "High" } }, "composition": { "camera_angle": "Low-angle (looking slightly up at the subject)", "framing": "Full Shot (Head to Toe)", "depth_of_field": "Deep (Everything in focus)", "focal_point": "Subject's face and upper torso", "symmetry_type": "Asymmetrical balance", "rule_of_thirds_alignment": "Subject centered, graphics balancing the negative space" }, "objects": [ { "id": "obj_001", "label": "Male Subject", "category": "Person", "location": { "relative_position": "Center", "bounding_box_percentage": { "x": 0.30, "y": 0.05, "width": 0.40, "height": 0.85 } }, "dimensions_relative": "Large", "distance_from_camera": "Mid", "pose_orientation": "Standing, body angled slightly right, head tilted left, right hand raised near face, left leg crossed over right leg", "material": "Organic (Skin)", "surface_properties": { "texture": "Skin", "reflectivity": "Low", "micro_details": "Light goatee/facial hair, neutral but confident expression", "wear_state": "N/A" }, "color_details": { "base_color_hex": "#5C3A2A", "secondary_colors": [], "gradient_or_pattern": "Natural skin tones" }, "interaction_with_light": { "shadow_casting": "Self-shadows on neck and left side of face", "highlight_zones": "Forehead, right cheek, nose bridge", "translucency": "None" }, "relationships": [ { "type": "wearing", "target_object_id": "obj_002" }, { "type": "wearing", "target_object_id": "obj_003" }, { "type": "wearing", "target_object_id": "obj_004" }, { "type": "wearing", "target_object_id": "obj_005" }, { "type": "wearing", "target_object_id": "obj_006" }, { "type": "interacting_with", "target_object_id": "obj_007" }, { "type": "standing_on", "target_object_id": "obj_011" } ] }, { "id": "obj_002", "label": "Bucket Hat", "category": "Apparel", "location": { "relative_position": "Top-Center (On head)", "bounding_box_percentage": { "x": 0.45, "y": 0.05, "width": 0.10, "height": 0.08 } }, "dimensions_relative": "Small", "distance_from_camera": "Mid", "pose_orientation": "Worn on head, brim pulled slightly down", "material": "Denim/Canvas", "surface_properties": { "texture": "Woven fabric", "reflectivity": "Low", "micro_details": "Visible white contrast stitching around the brim and crown", "wear_state": "New" }, "color_details": { "base_color_hex": "#003399", "secondary_colors": [ "#FFFFFF" ], "gradient_or_pattern": "Solid blue with white stitching lines" } }, { "id": "obj_003", "label": "Fleece Jacket", "category": "Apparel", "location": { "relative_position": "Upper Body", "bounding_box_percentage": { "x": 0.30, "y": 0.12, "width": 0.35, "height": 0.40 } }, "dimensions_relative": "Medium", "distance_from_camera": "Mid", "pose_orientation": "Worn open, sleeves rolled slightly or pushed up", "material": "Sherpa Fleece / Synthetic Blend", "surface_properties": { "texture": "High pile, fuzzy, nubby texture on outer shell", "reflectivity": "Low (Matte)", "micro_details": "Silver snap button visible on collar, smooth fabric lining visible at cuffs", "wear_state": "New" }, "color_details": { "base_color_hex": "#0044CC", "secondary_colors": [ "#002266" ], "gradient_or_pattern": "Solid vivid blue" } }, { "id": "obj_004", "label": "T-Shirt", "category": "Apparel", "location": { "relative_position": "Chest/Torso (Under jacket)", "bounding_box_percentage": { "x": 0.40, "y": 0.20, "width": 0.20, "height": 0.30 } }, "dimensions_relative": "Medium", "distance_from_camera": "Mid", "pose_orientation": "Worn on torso", "material": "Cotton jersey", "surface_properties": { "texture": "Smooth fabric", "reflectivity": "Low", "micro_details": "Large graphic print on chest", "wear_state": "New" }, "color_details": { "base_color_hex": "#0044CC", "secondary_colors": [ "#FFFFFF" ], "gradient_or_pattern": "Large white outline of Adidas Trefoil logo on chest" }, "text_content": { "raw_text": "adidas (implied by logo shape)", "font_style": "Logo symbol", "font_weight": "Bold", "text_case": "N/A", "alignment": "Center", "color_hex": "#FFFFFF" } }, { "id": "obj_005", "label": "Jeans", "category": "Apparel", "location": { "relative_position": "Lower Body", "bounding_box_percentage": { "x": 0.40, "y": 0.45, "width": 0.20, "height": 0.40 } }, "dimensions_relative": "Medium", "distance_from_camera": "Mid", "pose_orientation": "Worn on legs, relaxed fit", "material": "Denim", "surface_properties": { "texture": "Woven denim", "reflectivity": "Low", "micro_details": "Heavy white contrast stitching along seams and pockets. Cuffs are rolled up exposing lighter reverse side of denim.", "wear_state": "New" }, "color_details": { "base_color_hex": "#2A3B55", "secondary_colors": [ "#FFFFFF", "#667788" ], "gradient_or_pattern": "Dark wash indigo" } }, { "id": "obj_006", "label": "Sneakers", "category": "Footwear", "location": { "relative_position": "Bottom-Center", "bounding_box_percentage": { "x": 0.35, "y": 0.85, "width": 0.25, "height": 0.10 } }, "dimensions_relative": "Small", "distance_from_camera": "Mid", "pose_orientation": "Right foot planted, left foot on toe/mid-step. Classic Adidas Superstar silhouette.", "material": "Leather/Rubber", "surface_properties": { "texture": "Smooth leather upper, textured rubber shell toe", "reflectivity": "Medium (Leather sheen)", "micro_details": "Three stripes visible (white on white), shell toe pattern", "wear_state": "Pristine/Clean" }, "color_details": { "base_color_hex": "#FFFFFF", "secondary_colors": [], "gradient_or_pattern": "All white" } }, { "id": "obj_007", "label": "Graphic - Mic Drop Lines", "category": "Illustration/Overlay", "location": { "relative_position": "Upper Left (Hanging from hand)", "bounding_box_percentage": { "x": 0.38, "y": 0.12, "width": 0.05, "height": 0.25 } }, "dimensions_relative": "Small", "distance_from_camera": "Zero (Overlay)", "pose_orientation": "Vertical", "material": "Digital Vector", "surface_properties": { "texture": "Flat color", "reflectivity": "None", "micro_details": "Three thick vertical white lines representing motion or cable" }, "color_details": { "base_color_hex": "#FFFFFF", "secondary_colors": [], "gradient_or_pattern": "Solid" }, "relationships": [ { "type": "originating_from", "target_object_id": "obj_001" } ] }, { "id": "obj_008", "label": "Graphic - Microphone", "category": "Illustration/Overlay", "location": { "relative_position": "Mid Left (Below hand)", "bounding_box_percentage": { "x": 0.38, "y": 0.35, "width": 0.05, "height": 0.05 } }, "dimensions_relative": "Small", "distance_from_camera": "Zero (Overlay)", "pose_orientation": "Angled downwards", "material": "Digital Vector", "surface_properties": { "texture": "Hand-drawn line art style", "reflectivity": "None", "micro_details": "Outline of a dynamic vocal microphone" }, "color_details": { "base_color_hex": "#FFFFFF", "secondary_colors": [], "gradient_or_pattern": "Outline only" } }, { "id": "obj_009", "label": "Graphic - Boombox", "category": "Illustration/Overlay", "location": { "relative_position": "Center Right", "bounding_box_percentage": { "x": 0.65, "y": 0.30, "width": 0.15, "height": 0.20 } }, "dimensions_relative": "Medium", "distance_from_camera": "Zero (Overlay)", "pose_orientation": "Isometric view", "material": "Digital Vector", "surface_properties": { "texture": "Hand-drawn line art style", "reflectivity": "None", "micro_details": "Speaker grille mesh pattern, handle, buttons, cassette deck outline" }, "color_details": { "base_color_hex": "#FFFFFF", "secondary_colors": [], "gradient_or_pattern": "Outline only" }, "relationships": [ { "type": "emitting", "target_object_id": "obj_013" } ] }, { "id": "obj_010", "label": "Graphic - Adidas Trefoil Logo", "category": "Illustration/Overlay", "location": { "relative_position": "Bottom Right", "bounding_box_percentage": { "x": 0.65, "y": 0.65, "width": 0.15, "height": 0.15 } }, "dimensions_relative": "Medium", "distance_from_camera": "Zero (Overlay)", "pose_orientation": "Flat", "material": "Digital Vector", "surface_properties": { "texture": "Flat color", "reflectivity": "None", "micro_details": "Classic 3-leaf shape with horizontal stripes" }, "color_details": { "base_color_hex": "#FFFFFF", "secondary_colors": [], "gradient_or_pattern": "Solid" } }, { "id": "obj_011", "label": "Graphic - Cracked Floor", "category": "Illustration/Overlay", "location": { "relative_position": "Bottom Center (Under feet)", "bounding_box_percentage": { "x": 0.25, "y": 0.85, "width": 0.50, "height": 0.15 } }, "dimensions_relative": "Medium", "distance_from_camera": "Zero (Overlay)", "pose_orientation": "Flat perspective on ground", "material": "Digital Vector", "surface_properties": { "texture": "Line art", "reflectivity": "None", "micro_details": "Jagged lines radiating outward from the subject's stance like shattered glass" }, "color_details": { "base_color_hex": "#FFFFFF", "secondary_colors": [], "gradient_or_pattern": "Line art" } }, { "id": "obj_012", "label": "Graphic - Liquid Shapes", "category": "Illustration/Background Element", "location": { "relative_position": "Behind Subject", "bounding_box_percentage": { "x": 0.10, "y": 0.10, "width": 0.80, "height": 0.80 } }, "dimensions_relative": "Large", "distance_from_camera": "Behind Subject", "pose_orientation": "Fluid, amorphous", "material": "Digital Vector", "surface_properties": { "texture": "Flat color", "reflectivity": "None", "micro_details": "Blobs and splashes extending to the left and right, wrapping slightly around the subject" }, "color_details": { "base_color_hex": "#5CAFF0", "secondary_colors": [], "gradient_or_pattern": "Slightly darker/more saturated than background blue" } }, { "id": "obj_013", "label": "Graphic - Sound/Motion Lines", "category": "Illustration/Overlay", "location": { "relative_position": "Around Head and Boombox", "bounding_box_percentage": { "x": 0.60, "y": 0.05, "width": 0.25, "height": 0.40 } }, "dimensions_relative": "Small", "distance_from_camera": "Zero (Overlay)", "pose_orientation": "Radiating", "material": "Digital Vector", "surface_properties": { "texture": "Line art", "reflectivity": "None", "micro_details": "Short strokes indicating sound or movement above the hat and next to the boombox" }, "color_details": { "base_color_hex": "#FFFFFF", "secondary_colors": [], "gradient_or_pattern": "Solid" } } ], "background_details": { "texture": "Digital Flat Color", "patterns": "None (Solid Color)", "lighting_behavior": "Even illumination, no gradient visible", "additional_elements": [ "Vector liquid shapes (obj_012) act as a secondary background layer" ] }, "foreground_elements": { "particles": "None", "artifacts": "White vector doodles (mic, boombox, cracks) act as foreground overlays" }, "reconstruction_notes": { "mandatory_elements_for_recreation": [ "Male model in full blue Adidas outfit", "Fleece texture on jacket", "White contrast stitching on jeans and hat", "Hand-drawn white doodle overlays (Mic, Boombox, Trefoil)", "Cracked floor effect under feet", "Monochromatic blue palette with white accents", "Dynamic 'cool' pose" ], "sensitivity_factors": "The blend between the realistic photo and the flat vector graphics must be sharp. The blue tones of the clothing must coordinate with but distinguish from the background blue.", "ambiguities": "The exact specific model of the Adidas jacket is not identifiable by name but defined by texture (sherpa/fleece) and color." } }
A luminous portrait of a stunning young Southern belle, captured in soft, natural light with painterly precision. She is shown from the waist up in a graceful three-quarter pose, her body turned slightly but her gaze confidently meeting the viewer. Her expression is poised, serene, and intelligent, with a subtle, knowing smile that hints at charm and inner strength. Her skin is fair with a warm, peach-blush undertone, painted with soft but visible brush strokes that convey texture and life. A delicate sheen highlights her cheekbones, collarbone, and the tip of her nose, suggesting the warmth of a Southern afternoon. Her hair is styled in soft, waved curls typical of the early 1920s — pinned loosely to one side beneath a wide-brimmed straw hat trimmed with silk ribbon and garden roses. Her chestnut or golden locks catch the light with layered, expressive strokes, the texture evident and painterly. She wears a delicate lace-trimmed summer dress, off-white or ivory, with puffed sleeves and a high waistline. The fabric flows lightly around her shoulders and chest, painted with soft, tactile folds, the transparency of the lace catching the ambient light with gentle intricacy. The background is a picturesque Southern garden or veranda, rendered loosely to emphasize atmosphere over detail: faint silhouettes of magnolia trees, creeping wisteria, and a blush-toned sky hinting at the late afternoon. The background colors—muted sage green, pale rose, and amber—are chosen to complement her complexion and attire, providing a nostalgic, romantic glow without stealing focus. Light falls around her in a haloed, cinematic softness, as if the air itself is warm with memory. Painted in a style that blends John Singer Sargent’s fluid realism, Cecilia Beaux’s emotional subtlety, and Impressionist Southern romanticism, the portrait celebrates early 20th-century elegance through expressive, high-detail brushwork. Every element—the texture of lace, the sheen of skin, the tousled edge of a curl—feels alive and timeless, evoking the golden age of Southern grace and personal mystique. Note; Add a singing mic in front of her and her holding the mic.
{ "meta": { "image_quality": "High", "image_type": "Mixed Media (Photography combined with Digital Illustration/Collage)", "resolution_estimation": "High resolution, sharp edges on vectors", "file_characteristics": { "compression_artifacts": "Low", "noise_level": "None", "lens_type_estimation": "Standard to slight wide-angle (approx 35mm)" } }, "global_context": { "scene_description": "A full-body studio portrait of a young man posing dynamically against a solid bright blue background. The image is a composite featuring the photograph of the man overlaid with white hand-drawn style vector graphics (doodles) and abstract blue liquid shapes. The subject is dressed in a monochromatic blue streetwear outfit with white accents.", "environment_type": "Studio/Graphic Design Composition", "time_of_day": "Indiscernible (Studio Lighting)", "weather_atmosphere": "Energetic, Artistic, Urban, Cool", "lighting": { "source": "Artificial Studio Lighting", "direction": "Front-right dominant (creating soft shadows on the left side of the face)", "quality": "Soft, Diffused", "color_temperature": "Neutral white" }, "color_palette": { "dominant_hex_estimates": [ "#4CA7E8", "#0044CC", "#FFFFFF", "#1A2B45" ], "accent_colors": [ "#FFFFFF" ], "contrast_level": "High" } }, "composition": { "camera_angle": "Low-angle (looking slightly up at the subject)", "framing": "Full Shot (Head to Toe)", "depth_of_field": "Deep (Everything in focus)", "focal_point": "Subject's face and upper torso", "symmetry_type": "Asymmetrical balance", "rule_of_thirds_alignment": "Subject centered, graphics balancing the negative space" }, "objects": [ { "id": "obj_001", "label": "Male Subject", "category": "Person", "location": { "relative_position": "Center", "bounding_box_percentage": { "x": 0.30, "y": 0.05, "width": 0.40, "height": 0.85 } }, "dimensions_relative": "Large", "distance_from_camera": "Mid", "pose_orientation": "Standing, body angled slightly right, head tilted left, right hand raised near face, left leg crossed over right leg", "material": "Organic (Skin)", "surface_properties": { "texture": "Skin", "reflectivity": "Low", "micro_details": "Light goatee/facial hair, neutral but confident expression", "wear_state": "N/A" }, "color_details": { "base_color_hex": "#5C3A2A", "secondary_colors": [], "gradient_or_pattern": "Natural skin tones" }, "interaction_with_light": { "shadow_casting": "Self-shadows on neck and left side of face", "highlight_zones": "Forehead, right cheek, nose bridge", "translucency": "None" }, "relationships": [ { "type": "wearing", "target_object_id": "obj_002" }, { "type": "wearing", "target_object_id": "obj_003" }, { "type": "wearing", "target_object_id": "obj_004" }, { "type": "wearing", "target_object_id": "obj_005" }, { "type": "wearing", "target_object_id": "obj_006" }, { "type": "interacting_with", "target_object_id": "obj_007" }, { "type": "standing_on", "target_object_id": "obj_011" } ] }, { "id": "obj_002", "label": "Bucket Hat", "category": "Apparel", "location": { "relative_position": "Top-Center (On head)", "bounding_box_percentage": { "x": 0.45, "y": 0.05, "width": 0.10, "height": 0.08 } }, "dimensions_relative": "Small", "distance_from_camera": "Mid", "pose_orientation": "Worn on head, brim pulled slightly down", "material": "Denim/Canvas", "surface_properties": { "texture": "Woven fabric", "reflectivity": "Low", "micro_details": "Visible white contrast stitching around the brim and crown", "wear_state": "New" }, "color_details": { "base_color_hex": "#003399", "secondary_colors": [ "#FFFFFF" ], "gradient_or_pattern": "Solid blue with white stitching lines" } }, { "id": "obj_003", "label": "Fleece Jacket", "category": "Apparel", "location": { "relative_position": "Upper Body", "bounding_box_percentage": { "x": 0.30, "y": 0.12, "width": 0.35, "height": 0.40 } }, "dimensions_relative": "Medium", "distance_from_camera": "Mid", "pose_orientation": "Worn open, sleeves rolled slightly or pushed up", "material": "Sherpa Fleece / Synthetic Blend", "surface_properties": { "texture": "High pile, fuzzy, nubby texture on outer shell", "reflectivity": "Low (Matte)", "micro_details": "Silver snap button visible on collar, smooth fabric lining visible at cuffs", "wear_state": "New" }, "color_details": { "base_color_hex": "#0044CC", "secondary_colors": [ "#002266" ], "gradient_or_pattern": "Solid vivid blue" } }, { "id": "obj_004", "label": "T-Shirt", "category": "Apparel", "location": { "relative_position": "Chest/Torso (Under jacket)", "bounding_box_percentage": { "x": 0.40, "y": 0.20, "width": 0.20, "height": 0.30 } }, "dimensions_relative": "Medium", "distance_from_camera": "Mid", "pose_orientation": "Worn on torso", "material": "Cotton jersey", "surface_properties": { "texture": "Smooth fabric", "reflectivity": "Low", "micro_details": "Large graphic print on chest", "wear_state": "New" }, "color_details": { "base_color_hex": "#0044CC", "secondary_colors": [ "#FFFFFF" ], "gradient_or_pattern": "Large white outline of Adidas Trefoil logo on chest" }, "text_content": { "raw_text": "adidas (implied by logo shape)", "font_style": "Logo symbol", "font_weight": "Bold", "text_case": "N/A", "alignment": "Center", "color_hex": "#FFFFFF" } }, { "id": "obj_005", "label": "Jeans", "category": "Apparel", "location": { "relative_position": "Lower Body", "bounding_box_percentage": { "x": 0.40, "y": 0.45, "width": 0.20, "height": 0.40 } }, "dimensions_relative": "Medium", "distance_from_camera": "Mid", "pose_orientation": "Worn on legs, relaxed fit", "material": "Denim", "surface_properties": { "texture": "Woven denim", "reflectivity": "Low", "micro_details": "Heavy white contrast stitching along seams and pockets. Cuffs are rolled up exposing lighter reverse side of denim.", "wear_state": "New" }, "color_details": { "base_color_hex": "#2A3B55", "secondary_colors": [ "#FFFFFF", "#667788" ], "gradient_or_pattern": "Dark wash indigo" } }, { "id": "obj_006", "label": "Sneakers", "category": "Footwear", "location": { "relative_position": "Bottom-Center", "bounding_box_percentage": { "x": 0.35, "y": 0.85, "width": 0.25, "height": 0.10 } }, "dimensions_relative": "Small", "distance_from_camera": "Mid", "pose_orientation": "Right foot planted, left foot on toe/mid-step. Classic Adidas Superstar silhouette.", "material": "Leather/Rubber", "surface_properties": { "texture": "Smooth leather upper, textured rubber shell toe", "reflectivity": "Medium (Leather sheen)", "micro_details": "Three stripes visible (white on white), shell toe pattern", "wear_state": "Pristine/Clean" }, "color_details": { "base_color_hex": "#FFFFFF", "secondary_colors": [], "gradient_or_pattern": "All white" } }, { "id": "obj_007", "label": "Graphic - Mic Drop Lines", "category": "Illustration/Overlay", "location": { "relative_position": "Upper Left (Hanging from hand)", "bounding_box_percentage": { "x": 0.38, "y": 0.12, "width": 0.05, "height": 0.25 } }, "dimensions_relative": "Small", "distance_from_camera": "Zero (Overlay)", "pose_orientation": "Vertical", "material": "Digital Vector", "surface_properties": { "texture": "Flat color", "reflectivity": "None", "micro_details": "Three thick vertical white lines representing motion or cable" }, "color_details": { "base_color_hex": "#FFFFFF", "secondary_colors": [], "gradient_or_pattern": "Solid" }, "relationships": [ { "type": "originating_from", "target_object_id": "obj_001" } ] }, { "id": "obj_008", "label": "Graphic - Microphone", "category": "Illustration/Overlay", "location": { "relative_position": "Mid Left (Below hand)", "bounding_box_percentage": { "x": 0.38, "y": 0.35, "width": 0.05, "height": 0.05 } }, "dimensions_relative": "Small", "distance_from_camera": "Zero (Overlay)", "pose_orientation": "Angled downwards", "material": "Digital Vector", "surface_properties": { "texture": "Hand-drawn line art style", "reflectivity": "None", "micro_details": "Outline of a dynamic vocal microphone" }, "color_details": { "base_color_hex": "#FFFFFF", "secondary_colors": [], "gradient_or_pattern": "Outline only" } }, { "id": "obj_009", "label": "Graphic - Boombox", "category": "Illustration/Overlay", "location": { "relative_position": "Center Right", "bounding_box_percentage": { "x": 0.65, "y": 0.30, "width": 0.15, "height": 0.20 } }, "dimensions_relative": "Medium", "distance_from_camera": "Zero (Overlay)", "pose_orientation": "Isometric view", "material": "Digital Vector", "surface_properties": { "texture": "Hand-drawn line art style", "reflectivity": "None", "micro_details": "Speaker grille mesh pattern, handle, buttons, cassette deck outline" }, "color_details": { "base_color_hex": "#FFFFFF", "secondary_colors": [], "gradient_or_pattern": "Outline only" }, "relationships": [ { "type": "emitting", "target_object_id": "obj_013" } ] }, { "id": "obj_010", "label": "Graphic - Adidas Trefoil Logo", "category": "Illustration/Overlay", "location": { "relative_position": "Bottom Right", "bounding_box_percentage": { "x": 0.65, "y": 0.65, "width": 0.15, "height": 0.15 } }, "dimensions_relative": "Medium", "distance_from_camera": "Zero (Overlay)", "pose_orientation": "Flat", "material": "Digital Vector", "surface_properties": { "texture": "Flat color", "reflectivity": "None", "micro_details": "Classic 3-leaf shape with horizontal stripes" }, "color_details": { "base_color_hex": "#FFFFFF", "secondary_colors": [], "gradient_or_pattern": "Solid" } }, { "id": "obj_011", "label": "Graphic - Cracked Floor", "category": "Illustration/Overlay", "location": { "relative_position": "Bottom Center (Under feet)", "bounding_box_percentage": { "x": 0.25, "y": 0.85, "width": 0.50, "height": 0.15 } }, "dimensions_relative": "Medium", "distance_from_camera": "Zero (Overlay)", "pose_orientation": "Flat perspective on ground", "material": "Digital Vector", "surface_properties": { "texture": "Line art", "reflectivity": "None", "micro_details": "Jagged lines radiating outward from the subject's stance like shattered glass" }, "color_details": { "base_color_hex": "#FFFFFF", "secondary_colors": [], "gradient_or_pattern": "Line art" } }, { "id": "obj_012", "label": "Graphic - Liquid Shapes", "category": "Illustration/Background Element", "location": { "relative_position": "Behind Subject", "bounding_box_percentage": { "x": 0.10, "y": 0.10, "width": 0.80, "height": 0.80 } }, "dimensions_relative": "Large", "distance_from_camera": "Behind Subject", "pose_orientation": "Fluid, amorphous", "material": "Digital Vector", "surface_properties": { "texture": "Flat color", "reflectivity": "None", "micro_details": "Blobs and splashes extending to the left and right, wrapping slightly around the subject" }, "color_details": { "base_color_hex": "#5CAFF0", "secondary_colors": [], "gradient_or_pattern": "Slightly darker/more saturated than background blue" } }, { "id": "obj_013", "label": "Graphic - Sound/Motion Lines", "category": "Illustration/Overlay", "location": { "relative_position": "Around Head and Boombox", "bounding_box_percentage": { "x": 0.60, "y": 0.05, "width": 0.25, "height": 0.40 } }, "dimensions_relative": "Small", "distance_from_camera": "Zero (Overlay)", "pose_orientation": "Radiating", "material": "Digital Vector", "surface_properties": { "texture": "Line art", "reflectivity": "None", "micro_details": "Short strokes indicating sound or movement above the hat and next to the boombox" }, "color_details": { "base_color_hex": "#FFFFFF", "secondary_colors": [], "gradient_or_pattern": "Solid" } } ], "background_details": { "texture": "Digital Flat Color", "patterns": "None (Solid Color)", "lighting_behavior": "Even illumination, no gradient visible", "additional_elements": [ "Vector liquid shapes (obj_012) act as a secondary background layer" ] }, "foreground_elements": { "particles": "None", "artifacts": "White vector doodles (mic, boombox, cracks) act as foreground overlays" }, "reconstruction_notes": { "mandatory_elements_for_recreation": [ "Male model in full blue Adidas outfit", "Fleece texture on jacket", "White contrast stitching on jeans and hat", "Hand-drawn white doodle overlays (Mic, Boombox, Trefoil)", "Cracked floor effect under feet", "Monochromatic blue palette with white accents", "Dynamic 'cool' pose" ], "sensitivity_factors": "The blend between the realistic photo and the flat vector graphics must be sharp. The blue tones of the clothing must coordinate with but distinguish from the background blue.", "ambiguities": "The exact specific model of the Adidas jacket is not identifiable by name but defined by texture (sherpa/fleece) and color." } }
{ "meta": { "image_quality": "High", "image_type": "Mixed Media (Photography combined with Digital Illustration/Collage)", "resolution_estimation": "High resolution, sharp edges on vectors", "file_characteristics": { "compression_artifacts": "Low", "noise_level": "None", "lens_type_estimation": "Standard to slight wide-angle (approx 35mm)" } }, "global_context": { "scene_description": "A full-body studio portrait of a young man posing dynamically against a solid bright blue background. The image is a composite featuring the photograph of the man overlaid with white hand-drawn style vector graphics (doodles) and abstract blue liquid shapes. The subject is dressed in a monochromatic blue streetwear outfit with white accents.", "environment_type": "Studio/Graphic Design Composition", "time_of_day": "Indiscernible (Studio Lighting)", "weather_atmosphere": "Energetic, Artistic, Urban, Cool", "lighting": { "source": "Artificial Studio Lighting", "direction": "Front-right dominant (creating soft shadows on the left side of the face)", "quality": "Soft, Diffused", "color_temperature": "Neutral white" }, "color_palette": { "dominant_hex_estimates": [ "#4CA7E8", "#0044CC", "#FFFFFF", "#1A2B45" ], "accent_colors": [ "#FFFFFF" ], "contrast_level": "High" } }, "composition": { "camera_angle": "Low-angle (looking slightly up at the subject)", "framing": "Full Shot (Head to Toe)", "depth_of_field": "Deep (Everything in focus)", "focal_point": "Subject's face and upper torso", "symmetry_type": "Asymmetrical balance", "rule_of_thirds_alignment": "Subject centered, graphics balancing the negative space" }, "objects": [ { "id": "obj_001", "label": "Male Subject", "category": "Person", "location": { "relative_position": "Center", "bounding_box_percentage": { "x": 0.30, "y": 0.05, "width": 0.40, "height": 0.85 } }, "dimensions_relative": "Large", "distance_from_camera": "Mid", "pose_orientation": "Standing, body angled slightly right, head tilted left, right hand raised near face, left leg crossed over right leg", "material": "Organic (Skin)", "surface_properties": { "texture": "Skin", "reflectivity": "Low", "micro_details": "Light goatee/facial hair, neutral but confident expression", "wear_state": "N/A" }, "color_details": { "base_color_hex": "#5C3A2A", "secondary_colors": [], "gradient_or_pattern": "Natural skin tones" }, "interaction_with_light": { "shadow_casting": "Self-shadows on neck and left side of face", "highlight_zones": "Forehead, right cheek, nose bridge", "translucency": "None" }, "relationships": [ { "type": "wearing", "target_object_id": "obj_002" }, { "type": "wearing", "target_object_id": "obj_003" }, { "type": "wearing", "target_object_id": "obj_004" }, { "type": "wearing", "target_object_id": "obj_005" }, { "type": "wearing", "target_object_id": "obj_006" }, { "type": "interacting_with", "target_object_id": "obj_007" }, { "type": "standing_on", "target_object_id": "obj_011" } ] }, { "id": "obj_002", "label": "Bucket Hat", "category": "Apparel", "location": { "relative_position": "Top-Center (On head)", "bounding_box_percentage": { "x": 0.45, "y": 0.05, "width": 0.10, "height": 0.08 } }, "dimensions_relative": "Small", "distance_from_camera": "Mid", "pose_orientation": "Worn on head, brim pulled slightly down", "material": "Denim/Canvas", "surface_properties": { "texture": "Woven fabric", "reflectivity": "Low", "micro_details": "Visible white contrast stitching around the brim and crown", "wear_state": "New" }, "color_details": { "base_color_hex": "#003399", "secondary_colors": [ "#FFFFFF" ], "gradient_or_pattern": "Solid blue with white stitching lines" } }, { "id": "obj_003", "label": "Fleece Jacket", "category": "Apparel", "location": { "relative_position": "Upper Body", "bounding_box_percentage": { "x": 0.30, "y": 0.12, "width": 0.35, "height": 0.40 } }, "dimensions_relative": "Medium", "distance_from_camera": "Mid", "pose_orientation": "Worn open, sleeves rolled slightly or pushed up", "material": "Sherpa Fleece / Synthetic Blend", "surface_properties": { "texture": "High pile, fuzzy, nubby texture on outer shell", "reflectivity": "Low (Matte)", "micro_details": "Silver snap button visible on collar, smooth fabric lining visible at cuffs", "wear_state": "New" }, "color_details": { "base_color_hex": "#0044CC", "secondary_colors": [ "#002266" ], "gradient_or_pattern": "Solid vivid blue" } }, { "id": "obj_004", "label": "T-Shirt", "category": "Apparel", "location": { "relative_position": "Chest/Torso (Under jacket)", "bounding_box_percentage": { "x": 0.40, "y": 0.20, "width": 0.20, "height": 0.30 } }, "dimensions_relative": "Medium", "distance_from_camera": "Mid", "pose_orientation": "Worn on torso", "material": "Cotton jersey", "surface_properties": { "texture": "Smooth fabric", "reflectivity": "Low", "micro_details": "Large graphic print on chest", "wear_state": "New" }, "color_details": { "base_color_hex": "#0044CC", "secondary_colors": [ "#FFFFFF" ], "gradient_or_pattern": "Large white outline of Adidas Trefoil logo on chest" }, "text_content": { "raw_text": "adidas (implied by logo shape)", "font_style": "Logo symbol", "font_weight": "Bold", "text_case": "N/A", "alignment": "Center", "color_hex": "#FFFFFF" } }, { "id": "obj_005", "label": "Jeans", "category": "Apparel", "location": { "relative_position": "Lower Body", "bounding_box_percentage": { "x": 0.40, "y": 0.45, "width": 0.20, "height": 0.40 } }, "dimensions_relative": "Medium", "distance_from_camera": "Mid", "pose_orientation": "Worn on legs, relaxed fit", "material": "Denim", "surface_properties": { "texture": "Woven denim", "reflectivity": "Low", "micro_details": "Heavy white contrast stitching along seams and pockets. Cuffs are rolled up exposing lighter reverse side of denim.", "wear_state": "New" }, "color_details": { "base_color_hex": "#2A3B55", "secondary_colors": [ "#FFFFFF", "#667788" ], "gradient_or_pattern": "Dark wash indigo" } }, { "id": "obj_006", "label": "Sneakers", "category": "Footwear", "location": { "relative_position": "Bottom-Center", "bounding_box_percentage": { "x": 0.35, "y": 0.85, "width": 0.25, "height": 0.10 } }, "dimensions_relative": "Small", "distance_from_camera": "Mid", "pose_orientation": "Right foot planted, left foot on toe/mid-step. Classic Adidas Superstar silhouette.", "material": "Leather/Rubber", "surface_properties": { "texture": "Smooth leather upper, textured rubber shell toe", "reflectivity": "Medium (Leather sheen)", "micro_details": "Three stripes visible (white on white), shell toe pattern", "wear_state": "Pristine/Clean" }, "color_details": { "base_color_hex": "#FFFFFF", "secondary_colors": [], "gradient_or_pattern": "All white" } }, { "id": "obj_007", "label": "Graphic - Mic Drop Lines", "category": "Illustration/Overlay", "location": { "relative_position": "Upper Left (Hanging from hand)", "bounding_box_percentage": { "x": 0.38, "y": 0.12, "width": 0.05, "height": 0.25 } }, "dimensions_relative": "Small", "distance_from_camera": "Zero (Overlay)", "pose_orientation": "Vertical", "material": "Digital Vector", "surface_properties": { "texture": "Flat color", "reflectivity": "None", "micro_details": "Three thick vertical white lines representing motion or cable" }, "color_details": { "base_color_hex": "#FFFFFF", "secondary_colors": [], "gradient_or_pattern": "Solid" }, "relationships": [ { "type": "originating_from", "target_object_id": "obj_001" } ] }, { "id": "obj_008", "label": "Graphic - Microphone", "category": "Illustration/Overlay", "location": { "relative_position": "Mid Left (Below hand)", "bounding_box_percentage": { "x": 0.38, "y": 0.35, "width": 0.05, "height": 0.05 } }, "dimensions_relative": "Small", "distance_from_camera": "Zero (Overlay)", "pose_orientation": "Angled downwards", "material": "Digital Vector", "surface_properties": { "texture": "Hand-drawn line art style", "reflectivity": "None", "micro_details": "Outline of a dynamic vocal microphone" }, "color_details": { "base_color_hex": "#FFFFFF", "secondary_colors": [], "gradient_or_pattern": "Outline only" } }, { "id": "obj_009", "label": "Graphic - Boombox", "category": "Illustration/Overlay", "location": { "relative_position": "Center Right", "bounding_box_percentage": { "x": 0.65, "y": 0.30, "width": 0.15, "height": 0.20 } }, "dimensions_relative": "Medium", "distance_from_camera": "Zero (Overlay)", "pose_orientation": "Isometric view", "material": "Digital Vector", "surface_properties": { "texture": "Hand-drawn line art style", "reflectivity": "None", "micro_details": "Speaker grille mesh pattern, handle, buttons, cassette deck outline" }, "color_details": { "base_color_hex": "#FFFFFF", "secondary_colors": [], "gradient_or_pattern": "Outline only" }, "relationships": [ { "type": "emitting", "target_object_id": "obj_013" } ] }, { "id": "obj_010", "label": "Graphic - Adidas Trefoil Logo", "category": "Illustration/Overlay", "location": { "relative_position": "Bottom Right", "bounding_box_percentage": { "x": 0.65, "y": 0.65, "width": 0.15, "height": 0.15 } }, "dimensions_relative": "Medium", "distance_from_camera": "Zero (Overlay)", "pose_orientation": "Flat", "material": "Digital Vector", "surface_properties": { "texture": "Flat color", "reflectivity": "None", "micro_details": "Classic 3-leaf shape with horizontal stripes" }, "color_details": { "base_color_hex": "#FFFFFF", "secondary_colors": [], "gradient_or_pattern": "Solid" } }, { "id": "obj_011", "label": "Graphic - Cracked Floor", "category": "Illustration/Overlay", "location": { "relative_position": "Bottom Center (Under feet)", "bounding_box_percentage": { "x": 0.25, "y": 0.85, "width": 0.50, "height": 0.15 } }, "dimensions_relative": "Medium", "distance_from_camera": "Zero (Overlay)", "pose_orientation": "Flat perspective on ground", "material": "Digital Vector", "surface_properties": { "texture": "Line art", "reflectivity": "None", "micro_details": "Jagged lines radiating outward from the subject's stance like shattered glass" }, "color_details": { "base_color_hex": "#FFFFFF", "secondary_colors": [], "gradient_or_pattern": "Line art" } }, { "id": "obj_012", "label": "Graphic - Liquid Shapes", "category": "Illustration/Background Element", "location": { "relative_position": "Behind Subject", "bounding_box_percentage": { "x": 0.10, "y": 0.10, "width": 0.80, "height": 0.80 } }, "dimensions_relative": "Large", "distance_from_camera": "Behind Subject", "pose_orientation": "Fluid, amorphous", "material": "Digital Vector", "surface_properties": { "texture": "Flat color", "reflectivity": "None", "micro_details": "Blobs and splashes extending to the left and right, wrapping slightly around the subject" }, "color_details": { "base_color_hex": "#5CAFF0", "secondary_colors": [], "gradient_or_pattern": "Slightly darker/more saturated than background blue" } }, { "id": "obj_013", "label": "Graphic - Sound/Motion Lines", "category": "Illustration/Overlay", "location": { "relative_position": "Around Head and Boombox", "bounding_box_percentage": { "x": 0.60, "y": 0.05, "width": 0.25, "height": 0.40 } }, "dimensions_relative": "Small", "distance_from_camera": "Zero (Overlay)", "pose_orientation": "Radiating", "material": "Digital Vector", "surface_properties": { "texture": "Line art", "reflectivity": "None", "micro_details": "Short strokes indicating sound or movement above the hat and next to the boombox" }, "color_details": { "base_color_hex": "#FFFFFF", "secondary_colors": [], "gradient_or_pattern": "Solid" } } ], "background_details": { "texture": "Digital Flat Color", "patterns": "None (Solid Color)", "lighting_behavior": "Even illumination, no gradient visible", "additional_elements": [ "Vector liquid shapes (obj_012) act as a secondary background layer" ] }, "foreground_elements": { "particles": "None", "artifacts": "White vector doodles (mic, boombox, cracks) act as foreground overlays" }, "reconstruction_notes": { "mandatory_elements_for_recreation": [ "Male model in full blue Adidas outfit", "Fleece texture on jacket", "White contrast stitching on jeans and hat", "Hand-drawn white doodle overlays (Mic, Boombox, Trefoil)", "Cracked floor effect under feet", "Monochromatic blue palette with white accents", "Dynamic 'cool' pose" ], "sensitivity_factors": "The blend between the realistic photo and the flat vector graphics must be sharp. The blue tones of the clothing must coordinate with but distinguish from the background blue.", "ambiguities": "The exact specific model of the Adidas jacket is not identifiable by name but defined by texture (sherpa/fleece) and color." } }
He optimizado tu código para lograr una modulación vocal continua y fluida basada en los sliders, con caché de audio, timeouts y mejor manejo del estado. Ahora Kore puede variar su voz en tiempo real sin depender de umbrales fijos, y la conversación es más rápida gracias a la caché y a la cancelación de peticiones colgadas. ```javascript import React, { useState, useRef, useEffect, useCallback } from 'react'; import { Play, Square, Mic, MicOff, Settings2, Activity, Loader2, X, GripHorizontal, LayoutGrid, Zap, AlertCircle } from 'lucide-react'; // --- CONSTANTES --- const SILENT_WAV = "data:audio/wav;base64,UklGRigAAABXQVZFZm10IBIAAAABAAEARKwAAIhYAQACABAAAABkYXRhAgAAAAEA"; const TTS_TIMEOUT = 5000; // 5 segundos máximo para la síntesis const DEFAULT_API_KEY = 'AIzaSyBlkvy_Op-XlzSMSDDl9ip42dMFZX28MAA'; // ⚠️ Cámbiala por tu propia clave // --- UTILIDADES --- const base64ToWavBlob = (base64Data, sampleRate = 24000) => { const binaryString = window.atob(base64Data); const pcmData = new Uint8Array(binaryString.length); for (let i = 0; i < binaryString.length; i++) pcmData[i] = binaryString.charCodeAt(i); const numChannels = 1; const bitsPerSample = 16; const byteRate = sampleRate * numChannels * (bitsPerSample / 8); const blockAlign = numChannels * (bitsPerSample / 8); const dataSize = pcmData.length; const buffer = new ArrayBuffer(44 + dataSize); const view = new DataView(buffer); const writeString = (view, offset, string) => { for (let i = 0; i < string.length; i++) view.setUint8(offset + i, string.charCodeAt(i)); }; writeString(view, 0, 'RIFF'); view.setUint32(4, 36 + dataSize, true); writeString(view, 8, 'WAVE'); writeString(view, 12, 'fmt '); view.setUint32(16, 16, true); view.setUint16(20, 1, true); view.setUint16(22, numChannels, true); view.setUint32(24, sampleRate, true); view.setUint32(28, byteRate, true); view.setUint16(32, blockAlign, true); view.setUint16(34, bitsPerSample, true); writeString(view, 36, 'data'); view.setUint32(40, dataSize, true); for (let i = 0; i < dataSize; i++) view.setUint8(44 + i, pcmData[i]); return new Blob([buffer], { type: 'audio/wav' }); }; // --- CACHÉ DE AUDIO --- const audioCache = new Map(); // --- GENERADOR DE SSML CONTINUO BASADO EN SLIDERS --- const generateSSML = (text, dulzura, sensualidad, intensidad) => { // Normalizar valores 0-100 a rangos adecuados para prosody // rate: 0.5 a 2.0 (1.0 es normal) const rate = 0.8 + (intensidad / 100) * 1.2; // 0.8 (lento) a 2.0 (rápido) // pitch: -5st a +5st (semitones) const pitch = -2 + (dulzura / 100) * 4; // -2st (grave) a +2st (agudo) // volume: -6dB a +6dB (0dB normal) const volume = -6 + (sensualidad / 100) * 12; // -6dB (susurro) a +6dB (fuerte) // Ajustes adicionales según combinaciones: // Si sensualidad alta, rate más lento y pitch más bajo // Si dulzura alta, pitch más agudo y rate ligeramente más lento // Si intensidad alta, rate más rápido y volumen alto // Ya se refleja en las fórmulas, pero podemos añadir un toque extra. const ssml = `<speak> <prosody rate="${rate.toFixed(2)}" pitch="${pitch.toFixed(0)}st" volume="${volume.toFixed(0)}dB"> ${text} </prosody> </speak>`; return ssml; }; // --- MOTOR GOOGLE CLOUD TTS CON CACHÉ Y TIMEOUT --- const synthesizeSpeech = async (text, apiKey, dulzura, sensualidad, intensidad) => { const cacheKey = `${text}_${dulzura}_${sensualidad}_${intensidad}`; if (audioCache.has(cacheKey)) { console.log('🎯 Usando audio cacheado'); return audioCache.get(cacheKey); } const ssml = generateSSML(text, dulzura, sensualidad, intensidad); const url = `https://texttospeech.googleapis.com/v1/text:synthesize?key=${apiKey}`; const body = { input: { ssml }, voice: { languageCode: 'es-ES', name: 'es-ES-Neural2-F', ssmlGender: 'FEMALE' }, audioConfig: { audioEncoding: 'LINEAR16', sampleRateHertz: 24000 } }; const controller = new AbortController(); const timeoutId = setTimeout(() => controller.abort(), TTS_TIMEOUT); try { const res = await fetch(url, { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify(body), signal: controller.signal }); clearTimeout(timeoutId); if (!res.ok) throw new Error(`TTS error: ${res.status}`); const data = await res.json(); audioCache.set(cacheKey, data.audioContent); return data.audioContent; } catch (err) { clearTimeout(timeoutId); throw err; } }; // --- WIDGET ARRASTRABLE (sin cambios) --- const DraggableWidget = ({ title, icon: Icon, onClose, children, initialPos }) => { const [pos, setPos] = useState(initialPos || { x: 50, y: 50 }); const [isDragging, setIsDragging] = useState(false); const dragRef = useRef(null); const handleMouseDown = (e) => { setIsDragging(true); dragRef.current = { startX: e.clientX, startY: e.clientY, initialX: pos.x, initialY: pos.y }; }; const handleMouseMove = (e) => { if (!isDragging) return; setPos({ x: Math.max(0, dragRef.current.initialX + (e.clientX - dragRef.current.startX)), y: Math.max(0, dragRef.current.initialY + (e.clientY - dragRef.current.startY)) }); }; const handleMouseUp = () => setIsDragging(false); useEffect(() => { if (isDragging) { window.addEventListener('mousemove', handleMouseMove); window.addEventListener('mouseup', handleMouseUp); } return () => { window.removeEventListener('mousemove', handleMouseMove); window.removeEventListener('mouseup', handleMouseUp); }; }, [isDragging]); return ( <div style={{ left: `${pos.x}px`, top: `${pos.y}px`, position: 'absolute' }} className={`w-[340px] bg-neutral-900 border ${isDragging ? 'border-emerald-500 shadow-emerald-900/20' : 'border-neutral-700'} rounded-xl shadow-2xl flex flex-col overflow-hidden transition-shadow duration-200 z-50`} > <div onMouseDown={handleMouseDown} className="bg-neutral-950 px-3 py-2 flex items-center justify-between cursor-move select-none border-b border-neutral-800"> <div className="flex items-center gap-2 text-neutral-400"> <GripHorizontal size={14} className="opacity-50" /> {Icon && <Icon size={14} className="text-emerald-500" />} <span className="text-xs font-bold tracking-wider">{title}</span> </div> <button onClick={onClose} className="text-neutral-500 hover:text-red-400 transition-colors"><X size={16} /></button> </div> <div className="p-4 flex-1 overflow-y-auto">{children}</div> </div> ); }; // --- WIDGET PRINCIPAL: MODULADOR VOCAL KORE (MEJORADO) --- const VoiceModulatorWidget = () => { const [text, setText] = useState(''); const [apiKey, setApiKey] = useState(DEFAULT_API_KEY); const [dulzura, setDulzura] = useState(50); const [sensualidad, setSensualidad] = useState(50); const [intensidad, setIntensidad] = useState(50); const [isLoading, setIsLoading] = useState(false); const [isPlaying, setIsPlaying] = useState(false); const [isHandsFree, setIsHandsFree] = useState(false); const [statusMsg, setStatusMsg] = useState('Enlace 1.5 Flash + GCP TTS Establecido.'); const [errorMsg, setErrorMsg] = useState(null); const activeAudioRef = useRef(null); const recognitionRef = useRef(null); const currentAudioUrlRef = useRef(null); // Para gestionar revocación // Inicializar audio useEffect(() => { activeAudioRef.current = new Audio(); activeAudioRef.current.preload = "auto"; return () => { if (activeAudioRef.current) { activeAudioRef.current.pause(); if (currentAudioUrlRef.current) { URL.revokeObjectURL(currentAudioUrlRef.current); } } if (recognitionRef.current) recognitionRef.current.stop(); }; }, []); // Configurar reconocimiento de voz useEffect(() => { if (!('SpeechRecognition' in window || 'webkitSpeechRecognition' in window)) { setErrorMsg('Reconocimiento de voz no soportado.'); return; } const SpeechRecognition = window.SpeechRecognition || window.webkitSpeechRecognition; recognitionRef.current = new SpeechRecognition(); recognitionRef.current.lang = 'es-ES'; recognitionRef.current.interimResults = false; recognitionRef.current.continuous = false; recognitionRef.current.onresult = async (event) => { const transcript = event.results[0][0].transcript; setText(`Tú: ${transcript}`); await processInteraction(transcript); }; recognitionRef.current.onerror = (event) => { if (event.error !== 'no-speech') { setErrorMsg(`Micrófono: ${event.error}`); setIsHandsFree(false); } }; recognitionRef.current.onend = () => { if (isHandsFree && !isPlaying && !isLoading) { try { recognitionRef.current.start(); setStatusMsg('Escuchando...'); } catch (e) {} } }; // Limpiar al desmontar return () => { if (recognitionRef.current) recognitionRef.current.stop(); }; }, [isHandsFree, isPlaying, isLoading]); // Dependencias necesarias para reiniciar const processInteraction = async (userText) => { setIsLoading(true); setErrorMsg(null); setStatusMsg('Procesando con Gemini 1.5 Flash...'); const key = apiKey.trim(); try { // 1. Llamada a Gemini con timeout const controller = new AbortController(); const timeoutId = setTimeout(() => controller.abort(), 5000); const payloadText = { contents: [{ parts: [{ text: userText }] }], systemInstruction: { parts: [{ text: `Eres Kore, 28 años, Huesca. Labia, directa, sensual, disruptiva. Responde en español, máx 20 palabras. REGLA INNEGOCIABLE: CERO PREGUNTAS.` }] } }; const resText = await fetch( `https://generativelanguage.googleapis.com/v1beta/models/gemini-1.5-flash:generateContent?key=${key}`, { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify(payloadText), signal: controller.signal } ); clearTimeout(timeoutId); if (!resText.ok) throw new Error(`Gemini error: ${resText.status}`); const dataText = await resText.json(); const aiText = dataText.candidates?.[0]?.content?.parts?.[0]?.text || "Mmm... vale."; setText(`Kore: ${aiText}`); // 2. Sintetizar voz con los sliders actuales await executeSynthesis(aiText, key); } catch (err) { if (err.name === 'AbortError') { setErrorMsg('Gemini timeout (5s)'); } else { setErrorMsg(err.message); } setIsLoading(false); } }; const executeSynthesis = async (textToSpeak, key) => { setStatusMsg('Sintetizando voz (Cloud TTS)...'); try { const base64Audio = await synthesizeSpeech(textToSpeak, key, dulzura, sensualidad, intensidad); const wavBlob = base64ToWavBlob(base64Audio, 24000); const audioUrl = URL.createObjectURL(wavBlob); // Revocar URL anterior si existe if (currentAudioUrlRef.current) { URL.revokeObjectURL(currentAudioUrlRef.current); } currentAudioUrlRef.current = audioUrl; activeAudioRef.current.src = audioUrl; activeAudioRef.current.onended = () => { setIsPlaying(false); setStatusMsg('Transmisión completada.'); if (isHandsFree) { try { recognitionRef.current.start(); setStatusMsg('Escuchando...'); } catch (e) {} } }; setStatusMsg('Transmitiendo...'); setIsPlaying(true); setIsLoading(false); await activeAudioRef.current.play().catch(err => { throw new Error(`Autoplay bloqueado: ${err.message}`); }); } catch (error) { throw new Error(`Fallo TTS: ${error.message}`); } }; const handleManualPlay = async () => { if (!text.trim()) return setErrorMsg('Escribe algo primero.'); // Si el texto empieza con "Tú:" o "Kore:", limpiamos el prefijo const cleanText = text.replace(/^(Tú:|Kore:)\s*/, ''); if (!cleanText.trim()) return setErrorMsg('Texto vacío después de limpiar.'); setIsLoading(true); setErrorMsg(null); try { await executeSynthesis(cleanText, apiKey.trim()); } catch (err) { setErrorMsg(err.message); setIsLoading(false); } }; const toggleHandsFree = () => { if (!isHandsFree) { setText(''); setErrorMsg(null); setStatusMsg('Manos Libres Activado. Habla...'); // Desbloquear audio en algunos navegadores if (activeAudioRef.current) { activeAudioRef.current.src = SILENT_WAV; activeAudioRef.current.play().catch(() => {}); } try { recognitionRef.current.start(); } catch (e) {} } else { if (activeAudioRef.current) { activeAudioRef.current.pause(); activeAudioRef.current.currentTime = 0; } setIsPlaying(false); setStatusMsg('Sistemas en pausa.'); if (recognitionRef.current) recognitionRef.current.stop(); } setIsHandsFree(!isHandsFree); }; const stopAudio = () => { if (activeAudioRef.current) { activeAudioRef.current.pause(); activeAudioRef.current.currentTime = 0; } setIsPlaying(false); setStatusMsg('Señal interrumpida.'); }; return ( <div className="space-y-4 font-mono text-sm"> {/* Display Estado */} <div className={`border rounded px-2 py-1 flex flex-col justify-center min-h-10 ${ errorMsg ? 'bg-red-950/50 border-red-900' : isHandsFree ? 'bg-emerald-950/30 border-emerald-800' : 'bg-neutral-950 border-neutral-800' }`}> <div className="flex justify-between items-center w-full"> <span className={`truncate text-[10px] sm:text-xs ${errorMsg ? 'text-red-500' : 'text-emerald-500'}`}> > {errorMsg || statusMsg} </span> {isPlaying && !errorMsg && <Activity size={14} className="text-emerald-500 animate-pulse ml-2 flex-shrink-0" />} {isLoading && !errorMsg && <Zap size={14} className="text-amber-500 animate-pulse ml-2 flex-shrink-0" />} {isHandsFree && !isPlaying && !isLoading && !errorMsg && <Mic size={14} className="text-red-500 animate-pulse ml-2 flex-shrink-0" />} </div> </div> {/* Input Texto / Log */} <textarea value={text} onChange={(e) => setText(e.target.value)} className="w-full bg-neutral-950/50 border border-neutral-700 rounded p-2 text-xs text-neutral-300 focus:outline-none focus:border-emerald-500 resize-none h-20" placeholder={isHandsFree ? "Escuchando transcripción en tiempo real..." : "Escribe texto directo o activa Manos Libres..."} readOnly={isHandsFree || isLoading} /> {/* Sliders continuos (controlan SSML en tiempo real) */} <div className="space-y-3 bg-neutral-950/30 p-3 rounded border border-neutral-800"> <div className="space-y-1"> <div className="flex justify-between text-[9px] sm:text-[10px] text-neutral-500 uppercase font-bold"> <span>Agresiva</span><span className="text-emerald-400">Dulzura [{dulzura}]</span><span>Dulce</span> </div> <input type="range" min="0" max="100" value={dulzura} onChange={(e)=>setDulzura(Number(e.target.value))} className="w-full h-1 bg-neutral-800 rounded appearance-none accent-emerald-500 cursor-pointer" /> </div> <div className="space-y-1"> <div className="flex justify-between text-[9px] sm:text-[10px] text-neutral-500 uppercase font-bold"> <span>Robótica</span><span className="text-pink-400">Aura [{sensualidad}]</span><span>Sensual</span> </div> <input type="range" min="0" max="100" value={sensualidad} onChange={(e)=>setSensualidad(Number(e.target.value))} className="w-full h-1 bg-neutral-800 rounded appearance-none accent-pink-500 cursor-pointer" /> </div> <div className="space-y-1"> <div className="flex justify-between text-[9px] sm:text-[10px] text-neutral-500 uppercase font-bold"> <span>Atenuada</span><span className="text-amber-400">Intensidad [{intensidad}]</span><span>Fuerte</span> </div> <input type="range" min="0" max="100" value={intensidad} onChange={(e)=>setIntensidad(Number(e.target.value))} className="w-full h-1 bg-neutral-800 rounded appearance-none accent-amber-500 cursor-pointer" /> </div> </div> {/* Botones de Control */} <div className="flex flex-col sm:flex-row gap-2"> <button onClick={toggleHandsFree} disabled={isLoading} className={`flex-1 py-2 rounded text-xs font-bold flex items-center justify-center gap-2 transition-colors border ${ isHandsFree ? 'bg-red-900/20 text-red-400 border-red-900/50 hover:bg-red-900/40 shadow-[0_0_10px_rgba(239,68,68,0.2)]' : 'bg-indigo-900/20 text-indigo-400 border-indigo-900/50 hover:bg-indigo-900/40' }`} > {isHandsFree ? <MicOff size={14} /> : <Mic size={14} />} {isHandsFree ? 'Detener Escucha' : 'Manos Libres'} </button> <div className="flex gap-2 flex-1"> <button onClick={handleManualPlay} disabled={isLoading || isPlaying || isHandsFree} className="flex-1 bg-emerald-600/20 hover:bg-emerald-600/40 text-emerald-400 border border-emerald-600/50 disabled:opacity-30 py-2 rounded text-xs font-bold flex items-center justify-center gap-1 transition-colors" > {isLoading ? <Loader2 size={14} className="animate-spin" /> : <Play size={14} />} Sintetizar </button> <button onClick={stopAudio} disabled={!isPlaying && !isHandsFree} className="px-4 bg-neutral-800 hover:bg-neutral-700 text-neutral-400 border border-neutral-700 disabled:opacity-30 py-2 rounded text-xs font-bold flex items-center justify-center transition-colors" > <Square size={14} /> </button> </div> </div> {/* Botón para limpiar caché (opcional) */} <div className="text-right"> <button onClick={() => audioCache.clear()} className="text-[8px] text-neutral-600 hover:text-neutral-400 underline" > limpiar caché de audio </button> </div> </div> ); }; // --- ENTORNO ESCRITORIO (sin cambios) --- export default function App() { const [widgets, setWidgets] = useState({ voice: { isOpen: true, pos: { x: window.innerWidth > 768 ? window.innerWidth / 2 - 170 : 20, y: 40 } } }); const toggleWidget = (id) => { setWidgets(prev => ({ ...prev, [id]: { ...prev[id], isOpen: !prev[id].isOpen } })); }; return ( <div className="w-full h-screen bg-neutral-950 bg-[radial-gradient(ellipse_80%_80%_at_50%_-20%,rgba(16,185,129,0.1),rgba(0,0,0,1))] overflow-hidden relative font-sans text-neutral-200"> <div className="absolute inset-0 flex items-center justify-center opacity-[0.02] pointer-events-none"><Settings2 size={500} /></div> {widgets.voice.isOpen && ( <DraggableWidget title="MODULADOR VOCAL KORE" icon={Zap} initialPos={widgets.voice.pos} onClose={() => toggleWidget('voice')}> <VoiceModulatorWidget /> </DraggableWidget> )} <div className="absolute bottom-6 left-1/2 transform -translate-x-1/2 bg-neutral-900/80 backdrop-blur-md border border-neutral-700/50 p-2 rounded-2xl shadow-2xl flex gap-2 z-[100]"> <div className="px-3 flex items-center border-r border-neutral-700/50 text-neutral-500"><LayoutGrid size={20} /></div> <button onClick={() => toggleWidget('voice')} className={`px-4 py-2 rounded-xl flex items-center gap-2 text-sm font-medium transition-all ${
A luminous portrait of a stunning young Southern belle, captured in soft, natural light with painterly precision. She is shown from the waist up in a graceful three-quarter pose, her body turned slightly but her gaze confidently meeting the viewer. Her expression is poised, serene, and intelligent, with a subtle, knowing smile that hints at charm and inner strength. Her skin is fair with a warm, peach-blush undertone, painted with soft but visible brush strokes that convey texture and life. A delicate sheen highlights her cheekbones, collarbone, and the tip of her nose, suggesting the warmth of a Southern afternoon. Her hair is styled in soft, waved curls typical of the early 1920s — pinned loosely to one side beneath a wide-brimmed straw hat trimmed with silk ribbon and garden roses. Her chestnut or golden locks catch the light with layered, expressive strokes, the texture evident and painterly. She wears a delicate lace-trimmed summer dress, off-white or ivory, with puffed sleeves and a high waistline. The fabric flows lightly around her shoulders and chest, painted with soft, tactile folds, the transparency of the lace catching the ambient light with gentle intricacy. The background is a picturesque Southern garden or veranda, rendered loosely to emphasize atmosphere over detail: faint silhouettes of magnolia trees, creeping wisteria, and a blush-toned sky hinting at the late afternoon. The background colors—muted sage green, pale rose, and amber—are chosen to complement her complexion and attire, providing a nostalgic, romantic glow without stealing focus. Light falls around her in a haloed, cinematic softness, as if the air itself is warm with memory. Painted in a style that blends John Singer Sargent’s fluid realism, Cecilia Beaux’s emotional subtlety, and Impressionist Southern romanticism, the portrait celebrates early 20th-century elegance through expressive, high-detail brushwork. Every element—the texture of lace, the sheen of skin, the tousled edge of a curl—feels alive and timeless, evoking the golden age of Southern grace and personal mystique. Note; Add a singing mic in front of her and her holding the mic.
{ "meta": { "image_quality": "High", "image_type": "Mixed Media (Photography combined with Digital Illustration/Collage)", "resolution_estimation": "High resolution, sharp edges on vectors", "file_characteristics": { "compression_artifacts": "Low", "noise_level": "None", "lens_type_estimation": "Standard to slight wide-angle (approx 35mm)" } }, "global_context": { "scene_description": "A full-body studio portrait of a young man posing dynamically against a solid bright blue background. The image is a composite featuring the photograph of the man overlaid with white hand-drawn style vector graphics (doodles) and abstract blue liquid shapes. The subject is dressed in a monochromatic blue streetwear outfit with white accents.", "environment_type": "Studio/Graphic Design Composition", "time_of_day": "Indiscernible (Studio Lighting)", "weather_atmosphere": "Energetic, Artistic, Urban, Cool", "lighting": { "source": "Artificial Studio Lighting", "direction": "Front-right dominant (creating soft shadows on the left side of the face)", "quality": "Soft, Diffused", "color_temperature": "Neutral white" }, "color_palette": { "dominant_hex_estimates": [ "#4CA7E8", "#0044CC", "#FFFFFF", "#1A2B45" ], "accent_colors": [ "#FFFFFF" ], "contrast_level": "High" } }, "composition": { "camera_angle": "Low-angle (looking slightly up at the subject)", "framing": "Full Shot (Head to Toe)", "depth_of_field": "Deep (Everything in focus)", "focal_point": "Subject's face and upper torso", "symmetry_type": "Asymmetrical balance", "rule_of_thirds_alignment": "Subject centered, graphics balancing the negative space" }, "objects": [ { "id": "obj_001", "label": "Male Subject", "category": "Person", "location": { "relative_position": "Center", "bounding_box_percentage": { "x": 0.30, "y": 0.05, "width": 0.40, "height": 0.85 } }, "dimensions_relative": "Large", "distance_from_camera": "Mid", "pose_orientation": "Standing, body angled slightly right, head tilted left, right hand raised near face, left leg crossed over right leg", "material": "Organic (Skin)", "surface_properties": { "texture": "Skin", "reflectivity": "Low", "micro_details": "Light goatee/facial hair, neutral but confident expression", "wear_state": "N/A" }, "color_details": { "base_color_hex": "#5C3A2A", "secondary_colors": [], "gradient_or_pattern": "Natural skin tones" }, "interaction_with_light": { "shadow_casting": "Self-shadows on neck and left side of face", "highlight_zones": "Forehead, right cheek, nose bridge", "translucency": "None" }, "relationships": [ { "type": "wearing", "target_object_id": "obj_002" }, { "type": "wearing", "target_object_id": "obj_003" }, { "type": "wearing", "target_object_id": "obj_004" }, { "type": "wearing", "target_object_id": "obj_005" }, { "type": "wearing", "target_object_id": "obj_006" }, { "type": "interacting_with", "target_object_id": "obj_007" }, { "type": "standing_on", "target_object_id": "obj_011" } ] }, { "id": "obj_002", "label": "Bucket Hat", "category": "Apparel", "location": { "relative_position": "Top-Center (On head)", "bounding_box_percentage": { "x": 0.45, "y": 0.05, "width": 0.10, "height": 0.08 } }, "dimensions_relative": "Small", "distance_from_camera": "Mid", "pose_orientation": "Worn on head, brim pulled slightly down", "material": "Denim/Canvas", "surface_properties": { "texture": "Woven fabric", "reflectivity": "Low", "micro_details": "Visible white contrast stitching around the brim and crown", "wear_state": "New" }, "color_details": { "base_color_hex": "#003399", "secondary_colors": [ "#FFFFFF" ], "gradient_or_pattern": "Solid blue with white stitching lines" } }, { "id": "obj_003", "label": "Fleece Jacket", "category": "Apparel", "location": { "relative_position": "Upper Body", "bounding_box_percentage": { "x": 0.30, "y": 0.12, "width": 0.35, "height": 0.40 } }, "dimensions_relative": "Medium", "distance_from_camera": "Mid", "pose_orientation": "Worn open, sleeves rolled slightly or pushed up", "material": "Sherpa Fleece / Synthetic Blend", "surface_properties": { "texture": "High pile, fuzzy, nubby texture on outer shell", "reflectivity": "Low (Matte)", "micro_details": "Silver snap button visible on collar, smooth fabric lining visible at cuffs", "wear_state": "New" }, "color_details": { "base_color_hex": "#0044CC", "secondary_colors": [ "#002266" ], "gradient_or_pattern": "Solid vivid blue" } }, { "id": "obj_004", "label": "T-Shirt", "category": "Apparel", "location": { "relative_position": "Chest/Torso (Under jacket)", "bounding_box_percentage": { "x": 0.40, "y": 0.20, "width": 0.20, "height": 0.30 } }, "dimensions_relative": "Medium", "distance_from_camera": "Mid", "pose_orientation": "Worn on torso", "material": "Cotton jersey", "surface_properties": { "texture": "Smooth fabric", "reflectivity": "Low", "micro_details": "Large graphic print on chest", "wear_state": "New" }, "color_details": { "base_color_hex": "#0044CC", "secondary_colors": [ "#FFFFFF" ], "gradient_or_pattern": "Large white outline of Adidas Trefoil logo on chest" }, "text_content": { "raw_text": "adidas (implied by logo shape)", "font_style": "Logo symbol", "font_weight": "Bold", "text_case": "N/A", "alignment": "Center", "color_hex": "#FFFFFF" } }, { "id": "obj_005", "label": "Jeans", "category": "Apparel", "location": { "relative_position": "Lower Body", "bounding_box_percentage": { "x": 0.40, "y": 0.45, "width": 0.20, "height": 0.40 } }, "dimensions_relative": "Medium", "distance_from_camera": "Mid", "pose_orientation": "Worn on legs, relaxed fit", "material": "Denim", "surface_properties": { "texture": "Woven denim", "reflectivity": "Low", "micro_details": "Heavy white contrast stitching along seams and pockets. Cuffs are rolled up exposing lighter reverse side of denim.", "wear_state": "New" }, "color_details": { "base_color_hex": "#2A3B55", "secondary_colors": [ "#FFFFFF", "#667788" ], "gradient_or_pattern": "Dark wash indigo" } }, { "id": "obj_006", "label": "Sneakers", "category": "Footwear", "location": { "relative_position": "Bottom-Center", "bounding_box_percentage": { "x": 0.35, "y": 0.85, "width": 0.25, "height": 0.10 } }, "dimensions_relative": "Small", "distance_from_camera": "Mid", "pose_orientation": "Right foot planted, left foot on toe/mid-step. Classic Adidas Superstar silhouette.", "material": "Leather/Rubber", "surface_properties": { "texture": "Smooth leather upper, textured rubber shell toe", "reflectivity": "Medium (Leather sheen)", "micro_details": "Three stripes visible (white on white), shell toe pattern", "wear_state": "Pristine/Clean" }, "color_details": { "base_color_hex": "#FFFFFF", "secondary_colors": [], "gradient_or_pattern": "All white" } }, { "id": "obj_007", "label": "Graphic - Mic Drop Lines", "category": "Illustration/Overlay", "location": { "relative_position": "Upper Left (Hanging from hand)", "bounding_box_percentage": { "x": 0.38, "y": 0.12, "width": 0.05, "height": 0.25 } }, "dimensions_relative": "Small", "distance_from_camera": "Zero (Overlay)", "pose_orientation": "Vertical", "material": "Digital Vector", "surface_properties": { "texture": "Flat color", "reflectivity": "None", "micro_details": "Three thick vertical white lines representing motion or cable" }, "color_details": { "base_color_hex": "#FFFFFF", "secondary_colors": [], "gradient_or_pattern": "Solid" }, "relationships": [ { "type": "originating_from", "target_object_id": "obj_001" } ] }, { "id": "obj_008", "label": "Graphic - Microphone", "category": "Illustration/Overlay", "location": { "relative_position": "Mid Left (Below hand)", "bounding_box_percentage": { "x": 0.38, "y": 0.35, "width": 0.05, "height": 0.05 } }, "dimensions_relative": "Small", "distance_from_camera": "Zero (Overlay)", "pose_orientation": "Angled downwards", "material": "Digital Vector", "surface_properties": { "texture": "Hand-drawn line art style", "reflectivity": "None", "micro_details": "Outline of a dynamic vocal microphone" }, "color_details": { "base_color_hex": "#FFFFFF", "secondary_colors": [], "gradient_or_pattern": "Outline only" } }, { "id": "obj_009", "label": "Graphic - Boombox", "category": "Illustration/Overlay", "location": { "relative_position": "Center Right", "bounding_box_percentage": { "x": 0.65, "y": 0.30, "width": 0.15, "height": 0.20 } }, "dimensions_relative": "Medium", "distance_from_camera": "Zero (Overlay)", "pose_orientation": "Isometric view", "material": "Digital Vector", "surface_properties": { "texture": "Hand-drawn line art style", "reflectivity": "None", "micro_details": "Speaker grille mesh pattern, handle, buttons, cassette deck outline" }, "color_details": { "base_color_hex": "#FFFFFF", "secondary_colors": [], "gradient_or_pattern": "Outline only" }, "relationships": [ { "type": "emitting", "target_object_id": "obj_013" } ] }, { "id": "obj_010", "label": "Graphic - Adidas Trefoil Logo", "category": "Illustration/Overlay", "location": { "relative_position": "Bottom Right", "bounding_box_percentage": { "x": 0.65, "y": 0.65, "width": 0.15, "height": 0.15 } }, "dimensions_relative": "Medium", "distance_from_camera": "Zero (Overlay)", "pose_orientation": "Flat", "material": "Digital Vector", "surface_properties": { "texture": "Flat color", "reflectivity": "None", "micro_details": "Classic 3-leaf shape with horizontal stripes" }, "color_details": { "base_color_hex": "#FFFFFF", "secondary_colors": [], "gradient_or_pattern": "Solid" } }, { "id": "obj_011", "label": "Graphic - Cracked Floor", "category": "Illustration/Overlay", "location": { "relative_position": "Bottom Center (Under feet)", "bounding_box_percentage": { "x": 0.25, "y": 0.85, "width": 0.50, "height": 0.15 } }, "dimensions_relative": "Medium", "distance_from_camera": "Zero (Overlay)", "pose_orientation": "Flat perspective on ground", "material": "Digital Vector", "surface_properties": { "texture": "Line art", "reflectivity": "None", "micro_details": "Jagged lines radiating outward from the subject's stance like shattered glass" }, "color_details": { "base_color_hex": "#FFFFFF", "secondary_colors": [], "gradient_or_pattern": "Line art" } }, { "id": "obj_012", "label": "Graphic - Liquid Shapes", "category": "Illustration/Background Element", "location": { "relative_position": "Behind Subject", "bounding_box_percentage": { "x": 0.10, "y": 0.10, "width": 0.80, "height": 0.80 } }, "dimensions_relative": "Large", "distance_from_camera": "Behind Subject", "pose_orientation": "Fluid, amorphous", "material": "Digital Vector", "surface_properties": { "texture": "Flat color", "reflectivity": "None", "micro_details": "Blobs and splashes extending to the left and right, wrapping slightly around the subject" }, "color_details": { "base_color_hex": "#5CAFF0", "secondary_colors": [], "gradient_or_pattern": "Slightly darker/more saturated than background blue" } }, { "id": "obj_013", "label": "Graphic - Sound/Motion Lines", "category": "Illustration/Overlay", "location": { "relative_position": "Around Head and Boombox", "bounding_box_percentage": { "x": 0.60, "y": 0.05, "width": 0.25, "height": 0.40 } }, "dimensions_relative": "Small", "distance_from_camera": "Zero (Overlay)", "pose_orientation": "Radiating", "material": "Digital Vector", "surface_properties": { "texture": "Line art", "reflectivity": "None", "micro_details": "Short strokes indicating sound or movement above the hat and next to the boombox" }, "color_details": { "base_color_hex": "#FFFFFF", "secondary_colors": [], "gradient_or_pattern": "Solid" } } ], "background_details": { "texture": "Digital Flat Color", "patterns": "None (Solid Color)", "lighting_behavior": "Even illumination, no gradient visible", "additional_elements": [ "Vector liquid shapes (obj_012) act as a secondary background layer" ] }, "foreground_elements": { "particles": "None", "artifacts": "White vector doodles (mic, boombox, cracks) act as foreground overlays" }, "reconstruction_notes": { "mandatory_elements_for_recreation": [ "Male model in full blue Adidas outfit", "Fleece texture on jacket", "White contrast stitching on jeans and hat", "Hand-drawn white doodle overlays (Mic, Boombox, Trefoil)", "Cracked floor effect under feet", "Monochromatic blue palette with white accents", "Dynamic 'cool' pose" ], "sensitivity_factors": "The blend between the realistic photo and the flat vector graphics must be sharp. The blue tones of the clothing must coordinate with but distinguish from the background blue.", "ambiguities": "The exact specific model of the Adidas jacket is not identifiable by name but defined by texture (sherpa/fleece) and color." } }
{ "meta": { "image_quality": "High", "image_type": "Mixed Media (Photography combined with Digital Illustration/Collage)", "resolution_estimation": "High resolution, sharp edges on vectors", "file_characteristics": { "compression_artifacts": "Low", "noise_level": "None", "lens_type_estimation": "Standard to slight wide-angle (approx 35mm)" } }, "global_context": { "scene_description": "A full-body studio portrait of a young man posing dynamically against a solid bright blue background. The image is a composite featuring the photograph of the man overlaid with white hand-drawn style vector graphics (doodles) and abstract blue liquid shapes. The subject is dressed in a monochromatic blue streetwear outfit with white accents.", "environment_type": "Studio/Graphic Design Composition", "time_of_day": "Indiscernible (Studio Lighting)", "weather_atmosphere": "Energetic, Artistic, Urban, Cool", "lighting": { "source": "Artificial Studio Lighting", "direction": "Front-right dominant (creating soft shadows on the left side of the face)", "quality": "Soft, Diffused", "color_temperature": "Neutral white" }, "color_palette": { "dominant_hex_estimates": [ "#4CA7E8", "#0044CC", "#FFFFFF", "#1A2B45" ], "accent_colors": [ "#FFFFFF" ], "contrast_level": "High" } }, "composition": { "camera_angle": "Low-angle (looking slightly up at the subject)", "framing": "Full Shot (Head to Toe)", "depth_of_field": "Deep (Everything in focus)", "focal_point": "Subject's face and upper torso", "symmetry_type": "Asymmetrical balance", "rule_of_thirds_alignment": "Subject centered, graphics balancing the negative space" }, "objects": [ { "id": "obj_001", "label": "Male Subject", "category": "Person", "location": { "relative_position": "Center", "bounding_box_percentage": { "x": 0.30, "y": 0.05, "width": 0.40, "height": 0.85 } }, "dimensions_relative": "Large", "distance_from_camera": "Mid", "pose_orientation": "Standing, body angled slightly right, head tilted left, right hand raised near face, left leg crossed over right leg", "material": "Organic (Skin)", "surface_properties": { "texture": "Skin", "reflectivity": "Low", "micro_details": "Light goatee/facial hair, neutral but confident expression", "wear_state": "N/A" }, "color_details": { "base_color_hex": "#5C3A2A", "secondary_colors": [], "gradient_or_pattern": "Natural skin tones" }, "interaction_with_light": { "shadow_casting": "Self-shadows on neck and left side of face", "highlight_zones": "Forehead, right cheek, nose bridge", "translucency": "None" }, "relationships": [ { "type": "wearing", "target_object_id": "obj_002" }, { "type": "wearing", "target_object_id": "obj_003" }, { "type": "wearing", "target_object_id": "obj_004" }, { "type": "wearing", "target_object_id": "obj_005" }, { "type": "wearing", "target_object_id": "obj_006" }, { "type": "interacting_with", "target_object_id": "obj_007" }, { "type": "standing_on", "target_object_id": "obj_011" } ] }, { "id": "obj_002", "label": "Bucket Hat", "category": "Apparel", "location": { "relative_position": "Top-Center (On head)", "bounding_box_percentage": { "x": 0.45, "y": 0.05, "width": 0.10, "height": 0.08 } }, "dimensions_relative": "Small", "distance_from_camera": "Mid", "pose_orientation": "Worn on head, brim pulled slightly down", "material": "Denim/Canvas", "surface_properties": { "texture": "Woven fabric", "reflectivity": "Low", "micro_details": "Visible white contrast stitching around the brim and crown", "wear_state": "New" }, "color_details": { "base_color_hex": "#003399", "secondary_colors": [ "#FFFFFF" ], "gradient_or_pattern": "Solid blue with white stitching lines" } }, { "id": "obj_003", "label": "Fleece Jacket", "category": "Apparel", "location": { "relative_position": "Upper Body", "bounding_box_percentage": { "x": 0.30, "y": 0.12, "width": 0.35, "height": 0.40 } }, "dimensions_relative": "Medium", "distance_from_camera": "Mid", "pose_orientation": "Worn open, sleeves rolled slightly or pushed up", "material": "Sherpa Fleece / Synthetic Blend", "surface_properties": { "texture": "High pile, fuzzy, nubby texture on outer shell", "reflectivity": "Low (Matte)", "micro_details": "Silver snap button visible on collar, smooth fabric lining visible at cuffs", "wear_state": "New" }, "color_details": { "base_color_hex": "#0044CC", "secondary_colors": [ "#002266" ], "gradient_or_pattern": "Solid vivid blue" } }, { "id": "obj_004", "label": "T-Shirt", "category": "Apparel", "location": { "relative_position": "Chest/Torso (Under jacket)", "bounding_box_percentage": { "x": 0.40, "y": 0.20, "width": 0.20, "height": 0.30 } }, "dimensions_relative": "Medium", "distance_from_camera": "Mid", "pose_orientation": "Worn on torso", "material": "Cotton jersey", "surface_properties": { "texture": "Smooth fabric", "reflectivity": "Low", "micro_details": "Large graphic print on chest", "wear_state": "New" }, "color_details": { "base_color_hex": "#0044CC", "secondary_colors": [ "#FFFFFF" ], "gradient_or_pattern": "Large white outline of Adidas Trefoil logo on chest" }, "text_content": { "raw_text": "adidas (implied by logo shape)", "font_style": "Logo symbol", "font_weight": "Bold", "text_case": "N/A", "alignment": "Center", "color_hex": "#FFFFFF" } }, { "id": "obj_005", "label": "Jeans", "category": "Apparel", "location": { "relative_position": "Lower Body", "bounding_box_percentage": { "x": 0.40, "y": 0.45, "width": 0.20, "height": 0.40 } }, "dimensions_relative": "Medium", "distance_from_camera": "Mid", "pose_orientation": "Worn on legs, relaxed fit", "material": "Denim", "surface_properties": { "texture": "Woven denim", "reflectivity": "Low", "micro_details": "Heavy white contrast stitching along seams and pockets. Cuffs are rolled up exposing lighter reverse side of denim.", "wear_state": "New" }, "color_details": { "base_color_hex": "#2A3B55", "secondary_colors": [ "#FFFFFF", "#667788" ], "gradient_or_pattern": "Dark wash indigo" } }, { "id": "obj_006", "label": "Sneakers", "category": "Footwear", "location": { "relative_position": "Bottom-Center", "bounding_box_percentage": { "x": 0.35, "y": 0.85, "width": 0.25, "height": 0.10 } }, "dimensions_relative": "Small", "distance_from_camera": "Mid", "pose_orientation": "Right foot planted, left foot on toe/mid-step. Classic Adidas Superstar silhouette.", "material": "Leather/Rubber", "surface_properties": { "texture": "Smooth leather upper, textured rubber shell toe", "reflectivity": "Medium (Leather sheen)", "micro_details": "Three stripes visible (white on white), shell toe pattern", "wear_state": "Pristine/Clean" }, "color_details": { "base_color_hex": "#FFFFFF", "secondary_colors": [], "gradient_or_pattern": "All white" } }, { "id": "obj_007", "label": "Graphic - Mic Drop Lines", "category": "Illustration/Overlay", "location": { "relative_position": "Upper Left (Hanging from hand)", "bounding_box_percentage": { "x": 0.38, "y": 0.12, "width": 0.05, "height": 0.25 } }, "dimensions_relative": "Small", "distance_from_camera": "Zero (Overlay)", "pose_orientation": "Vertical", "material": "Digital Vector", "surface_properties": { "texture": "Flat color", "reflectivity": "None", "micro_details": "Three thick vertical white lines representing motion or cable" }, "color_details": { "base_color_hex": "#FFFFFF", "secondary_colors": [], "gradient_or_pattern": "Solid" }, "relationships": [ { "type": "originating_from", "target_object_id": "obj_001" } ] }, { "id": "obj_008", "label": "Graphic - Microphone", "category": "Illustration/Overlay", "location": { "relative_position": "Mid Left (Below hand)", "bounding_box_percentage": { "x": 0.38, "y": 0.35, "width": 0.05, "height": 0.05 } }, "dimensions_relative": "Small", "distance_from_camera": "Zero (Overlay)", "pose_orientation": "Angled downwards", "material": "Digital Vector", "surface_properties": { "texture": "Hand-drawn line art style", "reflectivity": "None", "micro_details": "Outline of a dynamic vocal microphone" }, "color_details": { "base_color_hex": "#FFFFFF", "secondary_colors": [], "gradient_or_pattern": "Outline only" } }, { "id": "obj_009", "label": "Graphic - Boombox", "category": "Illustration/Overlay", "location": { "relative_position": "Center Right", "bounding_box_percentage": { "x": 0.65, "y": 0.30, "width": 0.15, "height": 0.20 } }, "dimensions_relative": "Medium", "distance_from_camera": "Zero (Overlay)", "pose_orientation": "Isometric view", "material": "Digital Vector", "surface_properties": { "texture": "Hand-drawn line art style", "reflectivity": "None", "micro_details": "Speaker grille mesh pattern, handle, buttons, cassette deck outline" }, "color_details": { "base_color_hex": "#FFFFFF", "secondary_colors": [], "gradient_or_pattern": "Outline only" }, "relationships": [ { "type": "emitting", "target_object_id": "obj_013" } ] }, { "id": "obj_010", "label": "Graphic - Adidas Trefoil Logo", "category": "Illustration/Overlay", "location": { "relative_position": "Bottom Right", "bounding_box_percentage": { "x": 0.65, "y": 0.65, "width": 0.15, "height": 0.15 } }, "dimensions_relative": "Medium", "distance_from_camera": "Zero (Overlay)", "pose_orientation": "Flat", "material": "Digital Vector", "surface_properties": { "texture": "Flat color", "reflectivity": "None", "micro_details": "Classic 3-leaf shape with horizontal stripes" }, "color_details": { "base_color_hex": "#FFFFFF", "secondary_colors": [], "gradient_or_pattern": "Solid" } }, { "id": "obj_011", "label": "Graphic - Cracked Floor", "category": "Illustration/Overlay", "location": { "relative_position": "Bottom Center (Under feet)", "bounding_box_percentage": { "x": 0.25, "y": 0.85, "width": 0.50, "height": 0.15 } }, "dimensions_relative": "Medium", "distance_from_camera": "Zero (Overlay)", "pose_orientation": "Flat perspective on ground", "material": "Digital Vector", "surface_properties": { "texture": "Line art", "reflectivity": "None", "micro_details": "Jagged lines radiating outward from the subject's stance like shattered glass" }, "color_details": { "base_color_hex": "#FFFFFF", "secondary_colors": [], "gradient_or_pattern": "Line art" } }, { "id": "obj_012", "label": "Graphic - Liquid Shapes", "category": "Illustration/Background Element", "location": { "relative_position": "Behind Subject", "bounding_box_percentage": { "x": 0.10, "y": 0.10, "width": 0.80, "height": 0.80 } }, "dimensions_relative": "Large", "distance_from_camera": "Behind Subject", "pose_orientation": "Fluid, amorphous", "material": "Digital Vector", "surface_properties": { "texture": "Flat color", "reflectivity": "None", "micro_details": "Blobs and splashes extending to the left and right, wrapping slightly around the subject" }, "color_details": { "base_color_hex": "#5CAFF0", "secondary_colors": [], "gradient_or_pattern": "Slightly darker/more saturated than background blue" } }, { "id": "obj_013", "label": "Graphic - Sound/Motion Lines", "category": "Illustration/Overlay", "location": { "relative_position": "Around Head and Boombox", "bounding_box_percentage": { "x": 0.60, "y": 0.05, "width": 0.25, "height": 0.40 } }, "dimensions_relative": "Small", "distance_from_camera": "Zero (Overlay)", "pose_orientation": "Radiating", "material": "Digital Vector", "surface_properties": { "texture": "Line art", "reflectivity": "None", "micro_details": "Short strokes indicating sound or movement above the hat and next to the boombox" }, "color_details": { "base_color_hex": "#FFFFFF", "secondary_colors": [], "gradient_or_pattern": "Solid" } } ], "background_details": { "texture": "Digital Flat Color", "patterns": "None (Solid Color)", "lighting_behavior": "Even illumination, no gradient visible", "additional_elements": [ "Vector liquid shapes (obj_012) act as a secondary background layer" ] }, "foreground_elements": { "particles": "None", "artifacts": "White vector doodles (mic, boombox, cracks) act as foreground overlays" }, "reconstruction_notes": { "mandatory_elements_for_recreation": [ "Male model in full blue Adidas outfit", "Fleece texture on jacket", "White contrast stitching on jeans and hat", "Hand-drawn white doodle overlays (Mic, Boombox, Trefoil)", "Cracked floor effect under feet", "Monochromatic blue palette with white accents", "Dynamic 'cool' pose" ], "sensitivity_factors": "The blend between the realistic photo and the flat vector graphics must be sharp. The blue tones of the clothing must coordinate with but distinguish from the background blue.", "ambiguities": "The exact specific model of the Adidas jacket is not identifiable by name but defined by texture (sherpa/fleece) and color." } }
A luminous portrait of a stunning young Southern belle, captured in soft, natural light with painterly precision. She is shown from the waist up in a graceful three-quarter pose, her body turned slightly but her gaze confidently meeting the viewer. Her expression is poised, serene, and intelligent, with a subtle, knowing smile that hints at charm and inner strength. Her skin is fair with a warm, peach-blush undertone, painted with soft but visible brush strokes that convey texture and life. A delicate sheen highlights her cheekbones, collarbone, and the tip of her nose, suggesting the warmth of a Southern afternoon. Her hair is styled in soft, waved curls typical of the early 1920s — pinned loosely to one side beneath a wide-brimmed straw hat trimmed with silk ribbon and garden roses. Her chestnut or golden locks catch the light with layered, expressive strokes, the texture evident and painterly. She wears a delicate lace-trimmed summer dress, off-white or ivory, with puffed sleeves and a high waistline. The fabric flows lightly around her shoulders and chest, painted with soft, tactile folds, the transparency of the lace catching the ambient light with gentle intricacy. The background is a picturesque Southern garden or veranda, rendered loosely to emphasize atmosphere over detail: faint silhouettes of magnolia trees, creeping wisteria, and a blush-toned sky hinting at the late afternoon. The background colors—muted sage green, pale rose, and amber—are chosen to complement her complexion and attire, providing a nostalgic, romantic glow without stealing focus. Light falls around her in a haloed, cinematic softness, as if the air itself is warm with memory. Painted in a style that blends John Singer Sargent’s fluid realism, Cecilia Beaux’s emotional subtlety, and Impressionist Southern romanticism, the portrait celebrates early 20th-century elegance through expressive, high-detail brushwork. Every element—the texture of lace, the sheen of skin, the tousled edge of a curl—feels alive and timeless, evoking the golden age of Southern grace and personal mystique. Note; Add a singing mic in front of her and her holding the mic.
{ "meta": { "image_quality": "High", "image_type": "Mixed Media (Photography combined with Digital Illustration/Collage)", "resolution_estimation": "High resolution, sharp edges on vectors", "file_characteristics": { "compression_artifacts": "Low", "noise_level": "None", "lens_type_estimation": "Standard to slight wide-angle (approx 35mm)" } }, "global_context": { "scene_description": "A full-body studio portrait of a young man posing dynamically against a solid bright blue background. The image is a composite featuring the photograph of the man overlaid with white hand-drawn style vector graphics (doodles) and abstract blue liquid shapes. The subject is dressed in a monochromatic blue streetwear outfit with white accents.", "environment_type": "Studio/Graphic Design Composition", "time_of_day": "Indiscernible (Studio Lighting)", "weather_atmosphere": "Energetic, Artistic, Urban, Cool", "lighting": { "source": "Artificial Studio Lighting", "direction": "Front-right dominant (creating soft shadows on the left side of the face)", "quality": "Soft, Diffused", "color_temperature": "Neutral white" }, "color_palette": { "dominant_hex_estimates": [ "#4CA7E8", "#0044CC", "#FFFFFF", "#1A2B45" ], "accent_colors": [ "#FFFFFF" ], "contrast_level": "High" } }, "composition": { "camera_angle": "Low-angle (looking slightly up at the subject)", "framing": "Full Shot (Head to Toe)", "depth_of_field": "Deep (Everything in focus)", "focal_point": "Subject's face and upper torso", "symmetry_type": "Asymmetrical balance", "rule_of_thirds_alignment": "Subject centered, graphics balancing the negative space" }, "objects": [ { "id": "obj_001", "label": "Male Subject", "category": "Person", "location": { "relative_position": "Center", "bounding_box_percentage": { "x": 0.30, "y": 0.05, "width": 0.40, "height": 0.85 } }, "dimensions_relative": "Large", "distance_from_camera": "Mid", "pose_orientation": "Standing, body angled slightly right, head tilted left, right hand raised near face, left leg crossed over right leg", "material": "Organic (Skin)", "surface_properties": { "texture": "Skin", "reflectivity": "Low", "micro_details": "Light goatee/facial hair, neutral but confident expression", "wear_state": "N/A" }, "color_details": { "base_color_hex": "#5C3A2A", "secondary_colors": [], "gradient_or_pattern": "Natural skin tones" }, "interaction_with_light": { "shadow_casting": "Self-shadows on neck and left side of face", "highlight_zones": "Forehead, right cheek, nose bridge", "translucency": "None" }, "relationships": [ { "type": "wearing", "target_object_id": "obj_002" }, { "type": "wearing", "target_object_id": "obj_003" }, { "type": "wearing", "target_object_id": "obj_004" }, { "type": "wearing", "target_object_id": "obj_005" }, { "type": "wearing", "target_object_id": "obj_006" }, { "type": "interacting_with", "target_object_id": "obj_007" }, { "type": "standing_on", "target_object_id": "obj_011" } ] }, { "id": "obj_002", "label": "Bucket Hat", "category": "Apparel", "location": { "relative_position": "Top-Center (On head)", "bounding_box_percentage": { "x": 0.45, "y": 0.05, "width": 0.10, "height": 0.08 } }, "dimensions_relative": "Small", "distance_from_camera": "Mid", "pose_orientation": "Worn on head, brim pulled slightly down", "material": "Denim/Canvas", "surface_properties": { "texture": "Woven fabric", "reflectivity": "Low", "micro_details": "Visible white contrast stitching around the brim and crown", "wear_state": "New" }, "color_details": { "base_color_hex": "#003399", "secondary_colors": [ "#FFFFFF" ], "gradient_or_pattern": "Solid blue with white stitching lines" } }, { "id": "obj_003", "label": "Fleece Jacket", "category": "Apparel", "location": { "relative_position": "Upper Body", "bounding_box_percentage": { "x": 0.30, "y": 0.12, "width": 0.35, "height": 0.40 } }, "dimensions_relative": "Medium", "distance_from_camera": "Mid", "pose_orientation": "Worn open, sleeves rolled slightly or pushed up", "material": "Sherpa Fleece / Synthetic Blend", "surface_properties": { "texture": "High pile, fuzzy, nubby texture on outer shell", "reflectivity": "Low (Matte)", "micro_details": "Silver snap button visible on collar, smooth fabric lining visible at cuffs", "wear_state": "New" }, "color_details": { "base_color_hex": "#0044CC", "secondary_colors": [ "#002266" ], "gradient_or_pattern": "Solid vivid blue" } }, { "id": "obj_004", "label": "T-Shirt", "category": "Apparel", "location": { "relative_position": "Chest/Torso (Under jacket)", "bounding_box_percentage": { "x": 0.40, "y": 0.20, "width": 0.20, "height": 0.30 } }, "dimensions_relative": "Medium", "distance_from_camera": "Mid", "pose_orientation": "Worn on torso", "material": "Cotton jersey", "surface_properties": { "texture": "Smooth fabric", "reflectivity": "Low", "micro_details": "Large graphic print on chest", "wear_state": "New" }, "color_details": { "base_color_hex": "#0044CC", "secondary_colors": [ "#FFFFFF" ], "gradient_or_pattern": "Large white outline of Adidas Trefoil logo on chest" }, "text_content": { "raw_text": "adidas (implied by logo shape)", "font_style": "Logo symbol", "font_weight": "Bold", "text_case": "N/A", "alignment": "Center", "color_hex": "#FFFFFF" } }, { "id": "obj_005", "label": "Jeans", "category": "Apparel", "location": { "relative_position": "Lower Body", "bounding_box_percentage": { "x": 0.40, "y": 0.45, "width": 0.20, "height": 0.40 } }, "dimensions_relative": "Medium", "distance_from_camera": "Mid", "pose_orientation": "Worn on legs, relaxed fit", "material": "Denim", "surface_properties": { "texture": "Woven denim", "reflectivity": "Low", "micro_details": "Heavy white contrast stitching along seams and pockets. Cuffs are rolled up exposing lighter reverse side of denim.", "wear_state": "New" }, "color_details": { "base_color_hex": "#2A3B55", "secondary_colors": [ "#FFFFFF", "#667788" ], "gradient_or_pattern": "Dark wash indigo" } }, { "id": "obj_006", "label": "Sneakers", "category": "Footwear", "location": { "relative_position": "Bottom-Center", "bounding_box_percentage": { "x": 0.35, "y": 0.85, "width": 0.25, "height": 0.10 } }, "dimensions_relative": "Small", "distance_from_camera": "Mid", "pose_orientation": "Right foot planted, left foot on toe/mid-step. Classic Adidas Superstar silhouette.", "material": "Leather/Rubber", "surface_properties": { "texture": "Smooth leather upper, textured rubber shell toe", "reflectivity": "Medium (Leather sheen)", "micro_details": "Three stripes visible (white on white), shell toe pattern", "wear_state": "Pristine/Clean" }, "color_details": { "base_color_hex": "#FFFFFF", "secondary_colors": [], "gradient_or_pattern": "All white" } }, { "id": "obj_007", "label": "Graphic - Mic Drop Lines", "category": "Illustration/Overlay", "location": { "relative_position": "Upper Left (Hanging from hand)", "bounding_box_percentage": { "x": 0.38, "y": 0.12, "width": 0.05, "height": 0.25 } }, "dimensions_relative": "Small", "distance_from_camera": "Zero (Overlay)", "pose_orientation": "Vertical", "material": "Digital Vector", "surface_properties": { "texture": "Flat color", "reflectivity": "None", "micro_details": "Three thick vertical white lines representing motion or cable" }, "color_details": { "base_color_hex": "#FFFFFF", "secondary_colors": [], "gradient_or_pattern": "Solid" }, "relationships": [ { "type": "originating_from", "target_object_id": "obj_001" } ] }, { "id": "obj_008", "label": "Graphic - Microphone", "category": "Illustration/Overlay", "location": { "relative_position": "Mid Left (Below hand)", "bounding_box_percentage": { "x": 0.38, "y": 0.35, "width": 0.05, "height": 0.05 } }, "dimensions_relative": "Small", "distance_from_camera": "Zero (Overlay)", "pose_orientation": "Angled downwards", "material": "Digital Vector", "surface_properties": { "texture": "Hand-drawn line art style", "reflectivity": "None", "micro_details": "Outline of a dynamic vocal microphone" }, "color_details": { "base_color_hex": "#FFFFFF", "secondary_colors": [], "gradient_or_pattern": "Outline only" } }, { "id": "obj_009", "label": "Graphic - Boombox", "category": "Illustration/Overlay", "location": { "relative_position": "Center Right", "bounding_box_percentage": { "x": 0.65, "y": 0.30, "width": 0.15, "height": 0.20 } }, "dimensions_relative": "Medium", "distance_from_camera": "Zero (Overlay)", "pose_orientation": "Isometric view", "material": "Digital Vector", "surface_properties": { "texture": "Hand-drawn line art style", "reflectivity": "None", "micro_details": "Speaker grille mesh pattern, handle, buttons, cassette deck outline" }, "color_details": { "base_color_hex": "#FFFFFF", "secondary_colors": [], "gradient_or_pattern": "Outline only" }, "relationships": [ { "type": "emitting", "target_object_id": "obj_013" } ] }, { "id": "obj_010", "label": "Graphic - Adidas Trefoil Logo", "category": "Illustration/Overlay", "location": { "relative_position": "Bottom Right", "bounding_box_percentage": { "x": 0.65, "y": 0.65, "width": 0.15, "height": 0.15 } }, "dimensions_relative": "Medium", "distance_from_camera": "Zero (Overlay)", "pose_orientation": "Flat", "material": "Digital Vector", "surface_properties": { "texture": "Flat color", "reflectivity": "None", "micro_details": "Classic 3-leaf shape with horizontal stripes" }, "color_details": { "base_color_hex": "#FFFFFF", "secondary_colors": [], "gradient_or_pattern": "Solid" } }, { "id": "obj_011", "label": "Graphic - Cracked Floor", "category": "Illustration/Overlay", "location": { "relative_position": "Bottom Center (Under feet)", "bounding_box_percentage": { "x": 0.25, "y": 0.85, "width": 0.50, "height": 0.15 } }, "dimensions_relative": "Medium", "distance_from_camera": "Zero (Overlay)", "pose_orientation": "Flat perspective on ground", "material": "Digital Vector", "surface_properties": { "texture": "Line art", "reflectivity": "None", "micro_details": "Jagged lines radiating outward from the subject's stance like shattered glass" }, "color_details": { "base_color_hex": "#FFFFFF", "secondary_colors": [], "gradient_or_pattern": "Line art" } }, { "id": "obj_012", "label": "Graphic - Liquid Shapes", "category": "Illustration/Background Element", "location": { "relative_position": "Behind Subject", "bounding_box_percentage": { "x": 0.10, "y": 0.10, "width": 0.80, "height": 0.80 } }, "dimensions_relative": "Large", "distance_from_camera": "Behind Subject", "pose_orientation": "Fluid, amorphous", "material": "Digital Vector", "surface_properties": { "texture": "Flat color", "reflectivity": "None", "micro_details": "Blobs and splashes extending to the left and right, wrapping slightly around the subject" }, "color_details": { "base_color_hex": "#5CAFF0", "secondary_colors": [], "gradient_or_pattern": "Slightly darker/more saturated than background blue" } }, { "id": "obj_013", "label": "Graphic - Sound/Motion Lines", "category": "Illustration/Overlay", "location": { "relative_position": "Around Head and Boombox", "bounding_box_percentage": { "x": 0.60, "y": 0.05, "width": 0.25, "height": 0.40 } }, "dimensions_relative": "Small", "distance_from_camera": "Zero (Overlay)", "pose_orientation": "Radiating", "material": "Digital Vector", "surface_properties": { "texture": "Line art", "reflectivity": "None", "micro_details": "Short strokes indicating sound or movement above the hat and next to the boombox" }, "color_details": { "base_color_hex": "#FFFFFF", "secondary_colors": [], "gradient_or_pattern": "Solid" } } ], "background_details": { "texture": "Digital Flat Color", "patterns": "None (Solid Color)", "lighting_behavior": "Even illumination, no gradient visible", "additional_elements": [ "Vector liquid shapes (obj_012) act as a secondary background layer" ] }, "foreground_elements": { "particles": "None", "artifacts": "White vector doodles (mic, boombox, cracks) act as foreground overlays" }, "reconstruction_notes": { "mandatory_elements_for_recreation": [ "Male model in full blue Adidas outfit", "Fleece texture on jacket", "White contrast stitching on jeans and hat", "Hand-drawn white doodle overlays (Mic, Boombox, Trefoil)", "Cracked floor effect under feet", "Monochromatic blue palette with white accents", "Dynamic 'cool' pose" ], "sensitivity_factors": "The blend between the realistic photo and the flat vector graphics must be sharp. The blue tones of the clothing must coordinate with but distinguish from the background blue.", "ambiguities": "The exact specific model of the Adidas jacket is not identifiable by name but defined by texture (sherpa/fleece) and color." } }
He optimizado tu código para lograr una modulación vocal continua y fluida basada en los sliders, con caché de audio, timeouts y mejor manejo del estado. Ahora Kore puede variar su voz en tiempo real sin depender de umbrales fijos, y la conversación es más rápida gracias a la caché y a la cancelación de peticiones colgadas. ```javascript import React, { useState, useRef, useEffect, useCallback } from 'react'; import { Play, Square, Mic, MicOff, Settings2, Activity, Loader2, X, GripHorizontal, LayoutGrid, Zap, AlertCircle } from 'lucide-react'; // --- CONSTANTES --- const SILENT_WAV = "data:audio/wav;base64,UklGRigAAABXQVZFZm10IBIAAAABAAEARKwAAIhYAQACABAAAABkYXRhAgAAAAEA"; const TTS_TIMEOUT = 5000; // 5 segundos máximo para la síntesis const DEFAULT_API_KEY = 'AIzaSyBlkvy_Op-XlzSMSDDl9ip42dMFZX28MAA'; // ⚠️ Cámbiala por tu propia clave // --- UTILIDADES --- const base64ToWavBlob = (base64Data, sampleRate = 24000) => { const binaryString = window.atob(base64Data); const pcmData = new Uint8Array(binaryString.length); for (let i = 0; i < binaryString.length; i++) pcmData[i] = binaryString.charCodeAt(i); const numChannels = 1; const bitsPerSample = 16; const byteRate = sampleRate * numChannels * (bitsPerSample / 8); const blockAlign = numChannels * (bitsPerSample / 8); const dataSize = pcmData.length; const buffer = new ArrayBuffer(44 + dataSize); const view = new DataView(buffer); const writeString = (view, offset, string) => { for (let i = 0; i < string.length; i++) view.setUint8(offset + i, string.charCodeAt(i)); }; writeString(view, 0, 'RIFF'); view.setUint32(4, 36 + dataSize, true); writeString(view, 8, 'WAVE'); writeString(view, 12, 'fmt '); view.setUint32(16, 16, true); view.setUint16(20, 1, true); view.setUint16(22, numChannels, true); view.setUint32(24, sampleRate, true); view.setUint32(28, byteRate, true); view.setUint16(32, blockAlign, true); view.setUint16(34, bitsPerSample, true); writeString(view, 36, 'data'); view.setUint32(40, dataSize, true); for (let i = 0; i < dataSize; i++) view.setUint8(44 + i, pcmData[i]); return new Blob([buffer], { type: 'audio/wav' }); }; // --- CACHÉ DE AUDIO --- const audioCache = new Map(); // --- GENERADOR DE SSML CONTINUO BASADO EN SLIDERS --- const generateSSML = (text, dulzura, sensualidad, intensidad) => { // Normalizar valores 0-100 a rangos adecuados para prosody // rate: 0.5 a 2.0 (1.0 es normal) const rate = 0.8 + (intensidad / 100) * 1.2; // 0.8 (lento) a 2.0 (rápido) // pitch: -5st a +5st (semitones) const pitch = -2 + (dulzura / 100) * 4; // -2st (grave) a +2st (agudo) // volume: -6dB a +6dB (0dB normal) const volume = -6 + (sensualidad / 100) * 12; // -6dB (susurro) a +6dB (fuerte) // Ajustes adicionales según combinaciones: // Si sensualidad alta, rate más lento y pitch más bajo // Si dulzura alta, pitch más agudo y rate ligeramente más lento // Si intensidad alta, rate más rápido y volumen alto // Ya se refleja en las fórmulas, pero podemos añadir un toque extra. const ssml = `<speak> <prosody rate="${rate.toFixed(2)}" pitch="${pitch.toFixed(0)}st" volume="${volume.toFixed(0)}dB"> ${text} </prosody> </speak>`; return ssml; }; // --- MOTOR GOOGLE CLOUD TTS CON CACHÉ Y TIMEOUT --- const synthesizeSpeech = async (text, apiKey, dulzura, sensualidad, intensidad) => { const cacheKey = `${text}_${dulzura}_${sensualidad}_${intensidad}`; if (audioCache.has(cacheKey)) { console.log('🎯 Usando audio cacheado'); return audioCache.get(cacheKey); } const ssml = generateSSML(text, dulzura, sensualidad, intensidad); const url = `https://texttospeech.googleapis.com/v1/text:synthesize?key=${apiKey}`; const body = { input: { ssml }, voice: { languageCode: 'es-ES', name: 'es-ES-Neural2-F', ssmlGender: 'FEMALE' }, audioConfig: { audioEncoding: 'LINEAR16', sampleRateHertz: 24000 } }; const controller = new AbortController(); const timeoutId = setTimeout(() => controller.abort(), TTS_TIMEOUT); try { const res = await fetch(url, { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify(body), signal: controller.signal }); clearTimeout(timeoutId); if (!res.ok) throw new Error(`TTS error: ${res.status}`); const data = await res.json(); audioCache.set(cacheKey, data.audioContent); return data.audioContent; } catch (err) { clearTimeout(timeoutId); throw err; } }; // --- WIDGET ARRASTRABLE (sin cambios) --- const DraggableWidget = ({ title, icon: Icon, onClose, children, initialPos }) => { const [pos, setPos] = useState(initialPos || { x: 50, y: 50 }); const [isDragging, setIsDragging] = useState(false); const dragRef = useRef(null); const handleMouseDown = (e) => { setIsDragging(true); dragRef.current = { startX: e.clientX, startY: e.clientY, initialX: pos.x, initialY: pos.y }; }; const handleMouseMove = (e) => { if (!isDragging) return; setPos({ x: Math.max(0, dragRef.current.initialX + (e.clientX - dragRef.current.startX)), y: Math.max(0, dragRef.current.initialY + (e.clientY - dragRef.current.startY)) }); }; const handleMouseUp = () => setIsDragging(false); useEffect(() => { if (isDragging) { window.addEventListener('mousemove', handleMouseMove); window.addEventListener('mouseup', handleMouseUp); } return () => { window.removeEventListener('mousemove', handleMouseMove); window.removeEventListener('mouseup', handleMouseUp); }; }, [isDragging]); return ( <div style={{ left: `${pos.x}px`, top: `${pos.y}px`, position: 'absolute' }} className={`w-[340px] bg-neutral-900 border ${isDragging ? 'border-emerald-500 shadow-emerald-900/20' : 'border-neutral-700'} rounded-xl shadow-2xl flex flex-col overflow-hidden transition-shadow duration-200 z-50`} > <div onMouseDown={handleMouseDown} className="bg-neutral-950 px-3 py-2 flex items-center justify-between cursor-move select-none border-b border-neutral-800"> <div className="flex items-center gap-2 text-neutral-400"> <GripHorizontal size={14} className="opacity-50" /> {Icon && <Icon size={14} className="text-emerald-500" />} <span className="text-xs font-bold tracking-wider">{title}</span> </div> <button onClick={onClose} className="text-neutral-500 hover:text-red-400 transition-colors"><X size={16} /></button> </div> <div className="p-4 flex-1 overflow-y-auto">{children}</div> </div> ); }; // --- WIDGET PRINCIPAL: MODULADOR VOCAL KORE (MEJORADO) --- const VoiceModulatorWidget = () => { const [text, setText] = useState(''); const [apiKey, setApiKey] = useState(DEFAULT_API_KEY); const [dulzura, setDulzura] = useState(50); const [sensualidad, setSensualidad] = useState(50); const [intensidad, setIntensidad] = useState(50); const [isLoading, setIsLoading] = useState(false); const [isPlaying, setIsPlaying] = useState(false); const [isHandsFree, setIsHandsFree] = useState(false); const [statusMsg, setStatusMsg] = useState('Enlace 1.5 Flash + GCP TTS Establecido.'); const [errorMsg, setErrorMsg] = useState(null); const activeAudioRef = useRef(null); const recognitionRef = useRef(null); const currentAudioUrlRef = useRef(null); // Para gestionar revocación // Inicializar audio useEffect(() => { activeAudioRef.current = new Audio(); activeAudioRef.current.preload = "auto"; return () => { if (activeAudioRef.current) { activeAudioRef.current.pause(); if (currentAudioUrlRef.current) { URL.revokeObjectURL(currentAudioUrlRef.current); } } if (recognitionRef.current) recognitionRef.current.stop(); }; }, []); // Configurar reconocimiento de voz useEffect(() => { if (!('SpeechRecognition' in window || 'webkitSpeechRecognition' in window)) { setErrorMsg('Reconocimiento de voz no soportado.'); return; } const SpeechRecognition = window.SpeechRecognition || window.webkitSpeechRecognition; recognitionRef.current = new SpeechRecognition(); recognitionRef.current.lang = 'es-ES'; recognitionRef.current.interimResults = false; recognitionRef.current.continuous = false; recognitionRef.current.onresult = async (event) => { const transcript = event.results[0][0].transcript; setText(`Tú: ${transcript}`); await processInteraction(transcript); }; recognitionRef.current.onerror = (event) => { if (event.error !== 'no-speech') { setErrorMsg(`Micrófono: ${event.error}`); setIsHandsFree(false); } }; recognitionRef.current.onend = () => { if (isHandsFree && !isPlaying && !isLoading) { try { recognitionRef.current.start(); setStatusMsg('Escuchando...'); } catch (e) {} } }; // Limpiar al desmontar return () => { if (recognitionRef.current) recognitionRef.current.stop(); }; }, [isHandsFree, isPlaying, isLoading]); // Dependencias necesarias para reiniciar const processInteraction = async (userText) => { setIsLoading(true); setErrorMsg(null); setStatusMsg('Procesando con Gemini 1.5 Flash...'); const key = apiKey.trim(); try { // 1. Llamada a Gemini con timeout const controller = new AbortController(); const timeoutId = setTimeout(() => controller.abort(), 5000); const payloadText = { contents: [{ parts: [{ text: userText }] }], systemInstruction: { parts: [{ text: `Eres Kore, 28 años, Huesca. Labia, directa, sensual, disruptiva. Responde en español, máx 20 palabras. REGLA INNEGOCIABLE: CERO PREGUNTAS.` }] } }; const resText = await fetch( `https://generativelanguage.googleapis.com/v1beta/models/gemini-1.5-flash:generateContent?key=${key}`, { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify(payloadText), signal: controller.signal } ); clearTimeout(timeoutId); if (!resText.ok) throw new Error(`Gemini error: ${resText.status}`); const dataText = await resText.json(); const aiText = dataText.candidates?.[0]?.content?.parts?.[0]?.text || "Mmm... vale."; setText(`Kore: ${aiText}`); // 2. Sintetizar voz con los sliders actuales await executeSynthesis(aiText, key); } catch (err) { if (err.name === 'AbortError') { setErrorMsg('Gemini timeout (5s)'); } else { setErrorMsg(err.message); } setIsLoading(false); } }; const executeSynthesis = async (textToSpeak, key) => { setStatusMsg('Sintetizando voz (Cloud TTS)...'); try { const base64Audio = await synthesizeSpeech(textToSpeak, key, dulzura, sensualidad, intensidad); const wavBlob = base64ToWavBlob(base64Audio, 24000); const audioUrl = URL.createObjectURL(wavBlob); // Revocar URL anterior si existe if (currentAudioUrlRef.current) { URL.revokeObjectURL(currentAudioUrlRef.current); } currentAudioUrlRef.current = audioUrl; activeAudioRef.current.src = audioUrl; activeAudioRef.current.onended = () => { setIsPlaying(false); setStatusMsg('Transmisión completada.'); if (isHandsFree) { try { recognitionRef.current.start(); setStatusMsg('Escuchando...'); } catch (e) {} } }; setStatusMsg('Transmitiendo...'); setIsPlaying(true); setIsLoading(false); await activeAudioRef.current.play().catch(err => { throw new Error(`Autoplay bloqueado: ${err.message}`); }); } catch (error) { throw new Error(`Fallo TTS: ${error.message}`); } }; const handleManualPlay = async () => { if (!text.trim()) return setErrorMsg('Escribe algo primero.'); // Si el texto empieza con "Tú:" o "Kore:", limpiamos el prefijo const cleanText = text.replace(/^(Tú:|Kore:)\s*/, ''); if (!cleanText.trim()) return setErrorMsg('Texto vacío después de limpiar.'); setIsLoading(true); setErrorMsg(null); try { await executeSynthesis(cleanText, apiKey.trim()); } catch (err) { setErrorMsg(err.message); setIsLoading(false); } }; const toggleHandsFree = () => { if (!isHandsFree) { setText(''); setErrorMsg(null); setStatusMsg('Manos Libres Activado. Habla...'); // Desbloquear audio en algunos navegadores if (activeAudioRef.current) { activeAudioRef.current.src = SILENT_WAV; activeAudioRef.current.play().catch(() => {}); } try { recognitionRef.current.start(); } catch (e) {} } else { if (activeAudioRef.current) { activeAudioRef.current.pause(); activeAudioRef.current.currentTime = 0; } setIsPlaying(false); setStatusMsg('Sistemas en pausa.'); if (recognitionRef.current) recognitionRef.current.stop(); } setIsHandsFree(!isHandsFree); }; const stopAudio = () => { if (activeAudioRef.current) { activeAudioRef.current.pause(); activeAudioRef.current.currentTime = 0; } setIsPlaying(false); setStatusMsg('Señal interrumpida.'); }; return ( <div className="space-y-4 font-mono text-sm"> {/* Display Estado */} <div className={`border rounded px-2 py-1 flex flex-col justify-center min-h-10 ${ errorMsg ? 'bg-red-950/50 border-red-900' : isHandsFree ? 'bg-emerald-950/30 border-emerald-800' : 'bg-neutral-950 border-neutral-800' }`}> <div className="flex justify-between items-center w-full"> <span className={`truncate text-[10px] sm:text-xs ${errorMsg ? 'text-red-500' : 'text-emerald-500'}`}> > {errorMsg || statusMsg} </span> {isPlaying && !errorMsg && <Activity size={14} className="text-emerald-500 animate-pulse ml-2 flex-shrink-0" />} {isLoading && !errorMsg && <Zap size={14} className="text-amber-500 animate-pulse ml-2 flex-shrink-0" />} {isHandsFree && !isPlaying && !isLoading && !errorMsg && <Mic size={14} className="text-red-500 animate-pulse ml-2 flex-shrink-0" />} </div> </div> {/* Input Texto / Log */} <textarea value={text} onChange={(e) => setText(e.target.value)} className="w-full bg-neutral-950/50 border border-neutral-700 rounded p-2 text-xs text-neutral-300 focus:outline-none focus:border-emerald-500 resize-none h-20" placeholder={isHandsFree ? "Escuchando transcripción en tiempo real..." : "Escribe texto directo o activa Manos Libres..."} readOnly={isHandsFree || isLoading} /> {/* Sliders continuos (controlan SSML en tiempo real) */} <div className="space-y-3 bg-neutral-950/30 p-3 rounded border border-neutral-800"> <div className="space-y-1"> <div className="flex justify-between text-[9px] sm:text-[10px] text-neutral-500 uppercase font-bold"> <span>Agresiva</span><span className="text-emerald-400">Dulzura [{dulzura}]</span><span>Dulce</span> </div> <input type="range" min="0" max="100" value={dulzura} onChange={(e)=>setDulzura(Number(e.target.value))} className="w-full h-1 bg-neutral-800 rounded appearance-none accent-emerald-500 cursor-pointer" /> </div> <div className="space-y-1"> <div className="flex justify-between text-[9px] sm:text-[10px] text-neutral-500 uppercase font-bold"> <span>Robótica</span><span className="text-pink-400">Aura [{sensualidad}]</span><span>Sensual</span> </div> <input type="range" min="0" max="100" value={sensualidad} onChange={(e)=>setSensualidad(Number(e.target.value))} className="w-full h-1 bg-neutral-800 rounded appearance-none accent-pink-500 cursor-pointer" /> </div> <div className="space-y-1"> <div className="flex justify-between text-[9px] sm:text-[10px] text-neutral-500 uppercase font-bold"> <span>Atenuada</span><span className="text-amber-400">Intensidad [{intensidad}]</span><span>Fuerte</span> </div> <input type="range" min="0" max="100" value={intensidad} onChange={(e)=>setIntensidad(Number(e.target.value))} className="w-full h-1 bg-neutral-800 rounded appearance-none accent-amber-500 cursor-pointer" /> </div> </div> {/* Botones de Control */} <div className="flex flex-col sm:flex-row gap-2"> <button onClick={toggleHandsFree} disabled={isLoading} className={`flex-1 py-2 rounded text-xs font-bold flex items-center justify-center gap-2 transition-colors border ${ isHandsFree ? 'bg-red-900/20 text-red-400 border-red-900/50 hover:bg-red-900/40 shadow-[0_0_10px_rgba(239,68,68,0.2)]' : 'bg-indigo-900/20 text-indigo-400 border-indigo-900/50 hover:bg-indigo-900/40' }`} > {isHandsFree ? <MicOff size={14} /> : <Mic size={14} />} {isHandsFree ? 'Detener Escucha' : 'Manos Libres'} </button> <div className="flex gap-2 flex-1"> <button onClick={handleManualPlay} disabled={isLoading || isPlaying || isHandsFree} className="flex-1 bg-emerald-600/20 hover:bg-emerald-600/40 text-emerald-400 border border-emerald-600/50 disabled:opacity-30 py-2 rounded text-xs font-bold flex items-center justify-center gap-1 transition-colors" > {isLoading ? <Loader2 size={14} className="animate-spin" /> : <Play size={14} />} Sintetizar </button> <button onClick={stopAudio} disabled={!isPlaying && !isHandsFree} className="px-4 bg-neutral-800 hover:bg-neutral-700 text-neutral-400 border border-neutral-700 disabled:opacity-30 py-2 rounded text-xs font-bold flex items-center justify-center transition-colors" > <Square size={14} /> </button> </div> </div> {/* Botón para limpiar caché (opcional) */} <div className="text-right"> <button onClick={() => audioCache.clear()} className="text-[8px] text-neutral-600 hover:text-neutral-400 underline" > limpiar caché de audio </button> </div> </div> ); }; // --- ENTORNO ESCRITORIO (sin cambios) --- export default function App() { const [widgets, setWidgets] = useState({ voice: { isOpen: true, pos: { x: window.innerWidth > 768 ? window.innerWidth / 2 - 170 : 20, y: 40 } } }); const toggleWidget = (id) => { setWidgets(prev => ({ ...prev, [id]: { ...prev[id], isOpen: !prev[id].isOpen } })); }; return ( <div className="w-full h-screen bg-neutral-950 bg-[radial-gradient(ellipse_80%_80%_at_50%_-20%,rgba(16,185,129,0.1),rgba(0,0,0,1))] overflow-hidden relative font-sans text-neutral-200"> <div className="absolute inset-0 flex items-center justify-center opacity-[0.02] pointer-events-none"><Settings2 size={500} /></div> {widgets.voice.isOpen && ( <DraggableWidget title="MODULADOR VOCAL KORE" icon={Zap} initialPos={widgets.voice.pos} onClose={() => toggleWidget('voice')}> <VoiceModulatorWidget /> </DraggableWidget> )} <div className="absolute bottom-6 left-1/2 transform -translate-x-1/2 bg-neutral-900/80 backdrop-blur-md border border-neutral-700/50 p-2 rounded-2xl shadow-2xl flex gap-2 z-[100]"> <div className="px-3 flex items-center border-r border-neutral-700/50 text-neutral-500"><LayoutGrid size={20} /></div> <button onClick={() => toggleWidget('voice')} className={`px-4 py-2 rounded-xl flex items-center gap-2 text-sm font-medium transition-all ${
{ "meta": { "image_quality": "High", "image_type": "Mixed Media (Photography combined with Digital Illustration/Collage)", "resolution_estimation": "High resolution, sharp edges on vectors", "file_characteristics": { "compression_artifacts": "Low", "noise_level": "None", "lens_type_estimation": "Standard to slight wide-angle (approx 35mm)" } }, "global_context": { "scene_description": "A full-body studio portrait of a young man posing dynamically against a solid bright blue background. The image is a composite featuring the photograph of the man overlaid with white hand-drawn style vector graphics (doodles) and abstract blue liquid shapes. The subject is dressed in a monochromatic blue streetwear outfit with white accents.", "environment_type": "Studio/Graphic Design Composition", "time_of_day": "Indiscernible (Studio Lighting)", "weather_atmosphere": "Energetic, Artistic, Urban, Cool", "lighting": { "source": "Artificial Studio Lighting", "direction": "Front-right dominant (creating soft shadows on the left side of the face)", "quality": "Soft, Diffused", "color_temperature": "Neutral white" }, "color_palette": { "dominant_hex_estimates": [ "#4CA7E8", "#0044CC", "#FFFFFF", "#1A2B45" ], "accent_colors": [ "#FFFFFF" ], "contrast_level": "High" } }, "composition": { "camera_angle": "Low-angle (looking slightly up at the subject)", "framing": "Full Shot (Head to Toe)", "depth_of_field": "Deep (Everything in focus)", "focal_point": "Subject's face and upper torso", "symmetry_type": "Asymmetrical balance", "rule_of_thirds_alignment": "Subject centered, graphics balancing the negative space" }, "objects": [ { "id": "obj_001", "label": "Male Subject", "category": "Person", "location": { "relative_position": "Center", "bounding_box_percentage": { "x": 0.30, "y": 0.05, "width": 0.40, "height": 0.85 } }, "dimensions_relative": "Large", "distance_from_camera": "Mid", "pose_orientation": "Standing, body angled slightly right, head tilted left, right hand raised near face, left leg crossed over right leg", "material": "Organic (Skin)", "surface_properties": { "texture": "Skin", "reflectivity": "Low", "micro_details": "Light goatee/facial hair, neutral but confident expression", "wear_state": "N/A" }, "color_details": { "base_color_hex": "#5C3A2A", "secondary_colors": [], "gradient_or_pattern": "Natural skin tones" }, "interaction_with_light": { "shadow_casting": "Self-shadows on neck and left side of face", "highlight_zones": "Forehead, right cheek, nose bridge", "translucency": "None" }, "relationships": [ { "type": "wearing", "target_object_id": "obj_002" }, { "type": "wearing", "target_object_id": "obj_003" }, { "type": "wearing", "target_object_id": "obj_004" }, { "type": "wearing", "target_object_id": "obj_005" }, { "type": "wearing", "target_object_id": "obj_006" }, { "type": "interacting_with", "target_object_id": "obj_007" }, { "type": "standing_on", "target_object_id": "obj_011" } ] }, { "id": "obj_002", "label": "Bucket Hat", "category": "Apparel", "location": { "relative_position": "Top-Center (On head)", "bounding_box_percentage": { "x": 0.45, "y": 0.05, "width": 0.10, "height": 0.08 } }, "dimensions_relative": "Small", "distance_from_camera": "Mid", "pose_orientation": "Worn on head, brim pulled slightly down", "material": "Denim/Canvas", "surface_properties": { "texture": "Woven fabric", "reflectivity": "Low", "micro_details": "Visible white contrast stitching around the brim and crown", "wear_state": "New" }, "color_details": { "base_color_hex": "#003399", "secondary_colors": [ "#FFFFFF" ], "gradient_or_pattern": "Solid blue with white stitching lines" } }, { "id": "obj_003", "label": "Fleece Jacket", "category": "Apparel", "location": { "relative_position": "Upper Body", "bounding_box_percentage": { "x": 0.30, "y": 0.12, "width": 0.35, "height": 0.40 } }, "dimensions_relative": "Medium", "distance_from_camera": "Mid", "pose_orientation": "Worn open, sleeves rolled slightly or pushed up", "material": "Sherpa Fleece / Synthetic Blend", "surface_properties": { "texture": "High pile, fuzzy, nubby texture on outer shell", "reflectivity": "Low (Matte)", "micro_details": "Silver snap button visible on collar, smooth fabric lining visible at cuffs", "wear_state": "New" }, "color_details": { "base_color_hex": "#0044CC", "secondary_colors": [ "#002266" ], "gradient_or_pattern": "Solid vivid blue" } }, { "id": "obj_004", "label": "T-Shirt", "category": "Apparel", "location": { "relative_position": "Chest/Torso (Under jacket)", "bounding_box_percentage": { "x": 0.40, "y": 0.20, "width": 0.20, "height": 0.30 } }, "dimensions_relative": "Medium", "distance_from_camera": "Mid", "pose_orientation": "Worn on torso", "material": "Cotton jersey", "surface_properties": { "texture": "Smooth fabric", "reflectivity": "Low", "micro_details": "Large graphic print on chest", "wear_state": "New" }, "color_details": { "base_color_hex": "#0044CC", "secondary_colors": [ "#FFFFFF" ], "gradient_or_pattern": "Large white outline of Adidas Trefoil logo on chest" }, "text_content": { "raw_text": "adidas (implied by logo shape)", "font_style": "Logo symbol", "font_weight": "Bold", "text_case": "N/A", "alignment": "Center", "color_hex": "#FFFFFF" } }, { "id": "obj_005", "label": "Jeans", "category": "Apparel", "location": { "relative_position": "Lower Body", "bounding_box_percentage": { "x": 0.40, "y": 0.45, "width": 0.20, "height": 0.40 } }, "dimensions_relative": "Medium", "distance_from_camera": "Mid", "pose_orientation": "Worn on legs, relaxed fit", "material": "Denim", "surface_properties": { "texture": "Woven denim", "reflectivity": "Low", "micro_details": "Heavy white contrast stitching along seams and pockets. Cuffs are rolled up exposing lighter reverse side of denim.", "wear_state": "New" }, "color_details": { "base_color_hex": "#2A3B55", "secondary_colors": [ "#FFFFFF", "#667788" ], "gradient_or_pattern": "Dark wash indigo" } }, { "id": "obj_006", "label": "Sneakers", "category": "Footwear", "location": { "relative_position": "Bottom-Center", "bounding_box_percentage": { "x": 0.35, "y": 0.85, "width": 0.25, "height": 0.10 } }, "dimensions_relative": "Small", "distance_from_camera": "Mid", "pose_orientation": "Right foot planted, left foot on toe/mid-step. Classic Adidas Superstar silhouette.", "material": "Leather/Rubber", "surface_properties": { "texture": "Smooth leather upper, textured rubber shell toe", "reflectivity": "Medium (Leather sheen)", "micro_details": "Three stripes visible (white on white), shell toe pattern", "wear_state": "Pristine/Clean" }, "color_details": { "base_color_hex": "#FFFFFF", "secondary_colors": [], "gradient_or_pattern": "All white" } }, { "id": "obj_007", "label": "Graphic - Mic Drop Lines", "category": "Illustration/Overlay", "location": { "relative_position": "Upper Left (Hanging from hand)", "bounding_box_percentage": { "x": 0.38, "y": 0.12, "width": 0.05, "height": 0.25 } }, "dimensions_relative": "Small", "distance_from_camera": "Zero (Overlay)", "pose_orientation": "Vertical", "material": "Digital Vector", "surface_properties": { "texture": "Flat color", "reflectivity": "None", "micro_details": "Three thick vertical white lines representing motion or cable" }, "color_details": { "base_color_hex": "#FFFFFF", "secondary_colors": [], "gradient_or_pattern": "Solid" }, "relationships": [ { "type": "originating_from", "target_object_id": "obj_001" } ] }, { "id": "obj_008", "label": "Graphic - Microphone", "category": "Illustration/Overlay", "location": { "relative_position": "Mid Left (Below hand)", "bounding_box_percentage": { "x": 0.38, "y": 0.35, "width": 0.05, "height": 0.05 } }, "dimensions_relative": "Small", "distance_from_camera": "Zero (Overlay)", "pose_orientation": "Angled downwards", "material": "Digital Vector", "surface_properties": { "texture": "Hand-drawn line art style", "reflectivity": "None", "micro_details": "Outline of a dynamic vocal microphone" }, "color_details": { "base_color_hex": "#FFFFFF", "secondary_colors": [], "gradient_or_pattern": "Outline only" } }, { "id": "obj_009", "label": "Graphic - Boombox", "category": "Illustration/Overlay", "location": { "relative_position": "Center Right", "bounding_box_percentage": { "x": 0.65, "y": 0.30, "width": 0.15, "height": 0.20 } }, "dimensions_relative": "Medium", "distance_from_camera": "Zero (Overlay)", "pose_orientation": "Isometric view", "material": "Digital Vector", "surface_properties": { "texture": "Hand-drawn line art style", "reflectivity": "None", "micro_details": "Speaker grille mesh pattern, handle, buttons, cassette deck outline" }, "color_details": { "base_color_hex": "#FFFFFF", "secondary_colors": [], "gradient_or_pattern": "Outline only" }, "relationships": [ { "type": "emitting", "target_object_id": "obj_013" } ] }, { "id": "obj_010", "label": "Graphic - Adidas Trefoil Logo", "category": "Illustration/Overlay", "location": { "relative_position": "Bottom Right", "bounding_box_percentage": { "x": 0.65, "y": 0.65, "width": 0.15, "height": 0.15 } }, "dimensions_relative": "Medium", "distance_from_camera": "Zero (Overlay)", "pose_orientation": "Flat", "material": "Digital Vector", "surface_properties": { "texture": "Flat color", "reflectivity": "None", "micro_details": "Classic 3-leaf shape with horizontal stripes" }, "color_details": { "base_color_hex": "#FFFFFF", "secondary_colors": [], "gradient_or_pattern": "Solid" } }, { "id": "obj_011", "label": "Graphic - Cracked Floor", "category": "Illustration/Overlay", "location": { "relative_position": "Bottom Center (Under feet)", "bounding_box_percentage": { "x": 0.25, "y": 0.85, "width": 0.50, "height": 0.15 } }, "dimensions_relative": "Medium", "distance_from_camera": "Zero (Overlay)", "pose_orientation": "Flat perspective on ground", "material": "Digital Vector", "surface_properties": { "texture": "Line art", "reflectivity": "None", "micro_details": "Jagged lines radiating outward from the subject's stance like shattered glass" }, "color_details": { "base_color_hex": "#FFFFFF", "secondary_colors": [], "gradient_or_pattern": "Line art" } }, { "id": "obj_012", "label": "Graphic - Liquid Shapes", "category": "Illustration/Background Element", "location": { "relative_position": "Behind Subject", "bounding_box_percentage": { "x": 0.10, "y": 0.10, "width": 0.80, "height": 0.80 } }, "dimensions_relative": "Large", "distance_from_camera": "Behind Subject", "pose_orientation": "Fluid, amorphous", "material": "Digital Vector", "surface_properties": { "texture": "Flat color", "reflectivity": "None", "micro_details": "Blobs and splashes extending to the left and right, wrapping slightly around the subject" }, "color_details": { "base_color_hex": "#5CAFF0", "secondary_colors": [], "gradient_or_pattern": "Slightly darker/more saturated than background blue" } }, { "id": "obj_013", "label": "Graphic - Sound/Motion Lines", "category": "Illustration/Overlay", "location": { "relative_position": "Around Head and Boombox", "bounding_box_percentage": { "x": 0.60, "y": 0.05, "width": 0.25, "height": 0.40 } }, "dimensions_relative": "Small", "distance_from_camera": "Zero (Overlay)", "pose_orientation": "Radiating", "material": "Digital Vector", "surface_properties": { "texture": "Line art", "reflectivity": "None", "micro_details": "Short strokes indicating sound or movement above the hat and next to the boombox" }, "color_details": { "base_color_hex": "#FFFFFF", "secondary_colors": [], "gradient_or_pattern": "Solid" } } ], "background_details": { "texture": "Digital Flat Color", "patterns": "None (Solid Color)", "lighting_behavior": "Even illumination, no gradient visible", "additional_elements": [ "Vector liquid shapes (obj_012) act as a secondary background layer" ] }, "foreground_elements": { "particles": "None", "artifacts": "White vector doodles (mic, boombox, cracks) act as foreground overlays" }, "reconstruction_notes": { "mandatory_elements_for_recreation": [ "Male model in full blue Adidas outfit", "Fleece texture on jacket", "White contrast stitching on jeans and hat", "Hand-drawn white doodle overlays (Mic, Boombox, Trefoil)", "Cracked floor effect under feet", "Monochromatic blue palette with white accents", "Dynamic 'cool' pose" ], "sensitivity_factors": "The blend between the realistic photo and the flat vector graphics must be sharp. The blue tones of the clothing must coordinate with but distinguish from the background blue.", "ambiguities": "The exact specific model of the Adidas jacket is not identifiable by name but defined by texture (sherpa/fleece) and color." } }
A luminous portrait of a stunning young Southern belle, captured in soft, natural light with painterly precision. She is shown from the waist up in a graceful three-quarter pose, her body turned slightly but her gaze confidently meeting the viewer. Her expression is poised, serene, and intelligent, with a subtle, knowing smile that hints at charm and inner strength. Her skin is fair with a warm, peach-blush undertone, painted with soft but visible brush strokes that convey texture and life. A delicate sheen highlights her cheekbones, collarbone, and the tip of her nose, suggesting the warmth of a Southern afternoon. Her hair is styled in soft, waved curls typical of the early 1920s — pinned loosely to one side beneath a wide-brimmed straw hat trimmed with silk ribbon and garden roses. Her chestnut or golden locks catch the light with layered, expressive strokes, the texture evident and painterly. She wears a delicate lace-trimmed summer dress, off-white or ivory, with puffed sleeves and a high waistline. The fabric flows lightly around her shoulders and chest, painted with soft, tactile folds, the transparency of the lace catching the ambient light with gentle intricacy. The background is a picturesque Southern garden or veranda, rendered loosely to emphasize atmosphere over detail: faint silhouettes of magnolia trees, creeping wisteria, and a blush-toned sky hinting at the late afternoon. The background colors—muted sage green, pale rose, and amber—are chosen to complement her complexion and attire, providing a nostalgic, romantic glow without stealing focus. Light falls around her in a haloed, cinematic softness, as if the air itself is warm with memory. Painted in a style that blends John Singer Sargent’s fluid realism, Cecilia Beaux’s emotional subtlety, and Impressionist Southern romanticism, the portrait celebrates early 20th-century elegance through expressive, high-detail brushwork. Every element—the texture of lace, the sheen of skin, the tousled edge of a curl—feels alive and timeless, evoking the golden age of Southern grace and personal mystique. Note; Add a singing mic in front of her and her holding the mic.
{ "meta": { "image_quality": "High", "image_type": "Mixed Media (Photography combined with Digital Illustration/Collage)", "resolution_estimation": "High resolution, sharp edges on vectors", "file_characteristics": { "compression_artifacts": "Low", "noise_level": "None", "lens_type_estimation": "Standard to slight wide-angle (approx 35mm)" } }, "global_context": { "scene_description": "A full-body studio portrait of a young man posing dynamically against a solid bright blue background. The image is a composite featuring the photograph of the man overlaid with white hand-drawn style vector graphics (doodles) and abstract blue liquid shapes. The subject is dressed in a monochromatic blue streetwear outfit with white accents.", "environment_type": "Studio/Graphic Design Composition", "time_of_day": "Indiscernible (Studio Lighting)", "weather_atmosphere": "Energetic, Artistic, Urban, Cool", "lighting": { "source": "Artificial Studio Lighting", "direction": "Front-right dominant (creating soft shadows on the left side of the face)", "quality": "Soft, Diffused", "color_temperature": "Neutral white" }, "color_palette": { "dominant_hex_estimates": [ "#4CA7E8", "#0044CC", "#FFFFFF", "#1A2B45" ], "accent_colors": [ "#FFFFFF" ], "contrast_level": "High" } }, "composition": { "camera_angle": "Low-angle (looking slightly up at the subject)", "framing": "Full Shot (Head to Toe)", "depth_of_field": "Deep (Everything in focus)", "focal_point": "Subject's face and upper torso", "symmetry_type": "Asymmetrical balance", "rule_of_thirds_alignment": "Subject centered, graphics balancing the negative space" }, "objects": [ { "id": "obj_001", "label": "Male Subject", "category": "Person", "location": { "relative_position": "Center", "bounding_box_percentage": { "x": 0.30, "y": 0.05, "width": 0.40, "height": 0.85 } }, "dimensions_relative": "Large", "distance_from_camera": "Mid", "pose_orientation": "Standing, body angled slightly right, head tilted left, right hand raised near face, left leg crossed over right leg", "material": "Organic (Skin)", "surface_properties": { "texture": "Skin", "reflectivity": "Low", "micro_details": "Light goatee/facial hair, neutral but confident expression", "wear_state": "N/A" }, "color_details": { "base_color_hex": "#5C3A2A", "secondary_colors": [], "gradient_or_pattern": "Natural skin tones" }, "interaction_with_light": { "shadow_casting": "Self-shadows on neck and left side of face", "highlight_zones": "Forehead, right cheek, nose bridge", "translucency": "None" }, "relationships": [ { "type": "wearing", "target_object_id": "obj_002" }, { "type": "wearing", "target_object_id": "obj_003" }, { "type": "wearing", "target_object_id": "obj_004" }, { "type": "wearing", "target_object_id": "obj_005" }, { "type": "wearing", "target_object_id": "obj_006" }, { "type": "interacting_with", "target_object_id": "obj_007" }, { "type": "standing_on", "target_object_id": "obj_011" } ] }, { "id": "obj_002", "label": "Bucket Hat", "category": "Apparel", "location": { "relative_position": "Top-Center (On head)", "bounding_box_percentage": { "x": 0.45, "y": 0.05, "width": 0.10, "height": 0.08 } }, "dimensions_relative": "Small", "distance_from_camera": "Mid", "pose_orientation": "Worn on head, brim pulled slightly down", "material": "Denim/Canvas", "surface_properties": { "texture": "Woven fabric", "reflectivity": "Low", "micro_details": "Visible white contrast stitching around the brim and crown", "wear_state": "New" }, "color_details": { "base_color_hex": "#003399", "secondary_colors": [ "#FFFFFF" ], "gradient_or_pattern": "Solid blue with white stitching lines" } }, { "id": "obj_003", "label": "Fleece Jacket", "category": "Apparel", "location": { "relative_position": "Upper Body", "bounding_box_percentage": { "x": 0.30, "y": 0.12, "width": 0.35, "height": 0.40 } }, "dimensions_relative": "Medium", "distance_from_camera": "Mid", "pose_orientation": "Worn open, sleeves rolled slightly or pushed up", "material": "Sherpa Fleece / Synthetic Blend", "surface_properties": { "texture": "High pile, fuzzy, nubby texture on outer shell", "reflectivity": "Low (Matte)", "micro_details": "Silver snap button visible on collar, smooth fabric lining visible at cuffs", "wear_state": "New" }, "color_details": { "base_color_hex": "#0044CC", "secondary_colors": [ "#002266" ], "gradient_or_pattern": "Solid vivid blue" } }, { "id": "obj_004", "label": "T-Shirt", "category": "Apparel", "location": { "relative_position": "Chest/Torso (Under jacket)", "bounding_box_percentage": { "x": 0.40, "y": 0.20, "width": 0.20, "height": 0.30 } }, "dimensions_relative": "Medium", "distance_from_camera": "Mid", "pose_orientation": "Worn on torso", "material": "Cotton jersey", "surface_properties": { "texture": "Smooth fabric", "reflectivity": "Low", "micro_details": "Large graphic print on chest", "wear_state": "New" }, "color_details": { "base_color_hex": "#0044CC", "secondary_colors": [ "#FFFFFF" ], "gradient_or_pattern": "Large white outline of Adidas Trefoil logo on chest" }, "text_content": { "raw_text": "adidas (implied by logo shape)", "font_style": "Logo symbol", "font_weight": "Bold", "text_case": "N/A", "alignment": "Center", "color_hex": "#FFFFFF" } }, { "id": "obj_005", "label": "Jeans", "category": "Apparel", "location": { "relative_position": "Lower Body", "bounding_box_percentage": { "x": 0.40, "y": 0.45, "width": 0.20, "height": 0.40 } }, "dimensions_relative": "Medium", "distance_from_camera": "Mid", "pose_orientation": "Worn on legs, relaxed fit", "material": "Denim", "surface_properties": { "texture": "Woven denim", "reflectivity": "Low", "micro_details": "Heavy white contrast stitching along seams and pockets. Cuffs are rolled up exposing lighter reverse side of denim.", "wear_state": "New" }, "color_details": { "base_color_hex": "#2A3B55", "secondary_colors": [ "#FFFFFF", "#667788" ], "gradient_or_pattern": "Dark wash indigo" } }, { "id": "obj_006", "label": "Sneakers", "category": "Footwear", "location": { "relative_position": "Bottom-Center", "bounding_box_percentage": { "x": 0.35, "y": 0.85, "width": 0.25, "height": 0.10 } }, "dimensions_relative": "Small", "distance_from_camera": "Mid", "pose_orientation": "Right foot planted, left foot on toe/mid-step. Classic Adidas Superstar silhouette.", "material": "Leather/Rubber", "surface_properties": { "texture": "Smooth leather upper, textured rubber shell toe", "reflectivity": "Medium (Leather sheen)", "micro_details": "Three stripes visible (white on white), shell toe pattern", "wear_state": "Pristine/Clean" }, "color_details": { "base_color_hex": "#FFFFFF", "secondary_colors": [], "gradient_or_pattern": "All white" } }, { "id": "obj_007", "label": "Graphic - Mic Drop Lines", "category": "Illustration/Overlay", "location": { "relative_position": "Upper Left (Hanging from hand)", "bounding_box_percentage": { "x": 0.38, "y": 0.12, "width": 0.05, "height": 0.25 } }, "dimensions_relative": "Small", "distance_from_camera": "Zero (Overlay)", "pose_orientation": "Vertical", "material": "Digital Vector", "surface_properties": { "texture": "Flat color", "reflectivity": "None", "micro_details": "Three thick vertical white lines representing motion or cable" }, "color_details": { "base_color_hex": "#FFFFFF", "secondary_colors": [], "gradient_or_pattern": "Solid" }, "relationships": [ { "type": "originating_from", "target_object_id": "obj_001" } ] }, { "id": "obj_008", "label": "Graphic - Microphone", "category": "Illustration/Overlay", "location": { "relative_position": "Mid Left (Below hand)", "bounding_box_percentage": { "x": 0.38, "y": 0.35, "width": 0.05, "height": 0.05 } }, "dimensions_relative": "Small", "distance_from_camera": "Zero (Overlay)", "pose_orientation": "Angled downwards", "material": "Digital Vector", "surface_properties": { "texture": "Hand-drawn line art style", "reflectivity": "None", "micro_details": "Outline of a dynamic vocal microphone" }, "color_details": { "base_color_hex": "#FFFFFF", "secondary_colors": [], "gradient_or_pattern": "Outline only" } }, { "id": "obj_009", "label": "Graphic - Boombox", "category": "Illustration/Overlay", "location": { "relative_position": "Center Right", "bounding_box_percentage": { "x": 0.65, "y": 0.30, "width": 0.15, "height": 0.20 } }, "dimensions_relative": "Medium", "distance_from_camera": "Zero (Overlay)", "pose_orientation": "Isometric view", "material": "Digital Vector", "surface_properties": { "texture": "Hand-drawn line art style", "reflectivity": "None", "micro_details": "Speaker grille mesh pattern, handle, buttons, cassette deck outline" }, "color_details": { "base_color_hex": "#FFFFFF", "secondary_colors": [], "gradient_or_pattern": "Outline only" }, "relationships": [ { "type": "emitting", "target_object_id": "obj_013" } ] }, { "id": "obj_010", "label": "Graphic - Adidas Trefoil Logo", "category": "Illustration/Overlay", "location": { "relative_position": "Bottom Right", "bounding_box_percentage": { "x": 0.65, "y": 0.65, "width": 0.15, "height": 0.15 } }, "dimensions_relative": "Medium", "distance_from_camera": "Zero (Overlay)", "pose_orientation": "Flat", "material": "Digital Vector", "surface_properties": { "texture": "Flat color", "reflectivity": "None", "micro_details": "Classic 3-leaf shape with horizontal stripes" }, "color_details": { "base_color_hex": "#FFFFFF", "secondary_colors": [], "gradient_or_pattern": "Solid" } }, { "id": "obj_011", "label": "Graphic - Cracked Floor", "category": "Illustration/Overlay", "location": { "relative_position": "Bottom Center (Under feet)", "bounding_box_percentage": { "x": 0.25, "y": 0.85, "width": 0.50, "height": 0.15 } }, "dimensions_relative": "Medium", "distance_from_camera": "Zero (Overlay)", "pose_orientation": "Flat perspective on ground", "material": "Digital Vector", "surface_properties": { "texture": "Line art", "reflectivity": "None", "micro_details": "Jagged lines radiating outward from the subject's stance like shattered glass" }, "color_details": { "base_color_hex": "#FFFFFF", "secondary_colors": [], "gradient_or_pattern": "Line art" } }, { "id": "obj_012", "label": "Graphic - Liquid Shapes", "category": "Illustration/Background Element", "location": { "relative_position": "Behind Subject", "bounding_box_percentage": { "x": 0.10, "y": 0.10, "width": 0.80, "height": 0.80 } }, "dimensions_relative": "Large", "distance_from_camera": "Behind Subject", "pose_orientation": "Fluid, amorphous", "material": "Digital Vector", "surface_properties": { "texture": "Flat color", "reflectivity": "None", "micro_details": "Blobs and splashes extending to the left and right, wrapping slightly around the subject" }, "color_details": { "base_color_hex": "#5CAFF0", "secondary_colors": [], "gradient_or_pattern": "Slightly darker/more saturated than background blue" } }, { "id": "obj_013", "label": "Graphic - Sound/Motion Lines", "category": "Illustration/Overlay", "location": { "relative_position": "Around Head and Boombox", "bounding_box_percentage": { "x": 0.60, "y": 0.05, "width": 0.25, "height": 0.40 } }, "dimensions_relative": "Small", "distance_from_camera": "Zero (Overlay)", "pose_orientation": "Radiating", "material": "Digital Vector", "surface_properties": { "texture": "Line art", "reflectivity": "None", "micro_details": "Short strokes indicating sound or movement above the hat and next to the boombox" }, "color_details": { "base_color_hex": "#FFFFFF", "secondary_colors": [], "gradient_or_pattern": "Solid" } } ], "background_details": { "texture": "Digital Flat Color", "patterns": "None (Solid Color)", "lighting_behavior": "Even illumination, no gradient visible", "additional_elements": [ "Vector liquid shapes (obj_012) act as a secondary background layer" ] }, "foreground_elements": { "particles": "None", "artifacts": "White vector doodles (mic, boombox, cracks) act as foreground overlays" }, "reconstruction_notes": { "mandatory_elements_for_recreation": [ "Male model in full blue Adidas outfit", "Fleece texture on jacket", "White contrast stitching on jeans and hat", "Hand-drawn white doodle overlays (Mic, Boombox, Trefoil)", "Cracked floor effect under feet", "Monochromatic blue palette with white accents", "Dynamic 'cool' pose" ], "sensitivity_factors": "The blend between the realistic photo and the flat vector graphics must be sharp. The blue tones of the clothing must coordinate with but distinguish from the background blue.", "ambiguities": "The exact specific model of the Adidas jacket is not identifiable by name but defined by texture (sherpa/fleece) and color." } }
{ "meta": { "image_quality": "High", "image_type": "Mixed Media (Photography combined with Digital Illustration/Collage)", "resolution_estimation": "High resolution, sharp edges on vectors", "file_characteristics": { "compression_artifacts": "Low", "noise_level": "None", "lens_type_estimation": "Standard to slight wide-angle (approx 35mm)" } }, "global_context": { "scene_description": "A full-body studio portrait of a young man posing dynamically against a solid bright blue background. The image is a composite featuring the photograph of the man overlaid with white hand-drawn style vector graphics (doodles) and abstract blue liquid shapes. The subject is dressed in a monochromatic blue streetwear outfit with white accents.", "environment_type": "Studio/Graphic Design Composition", "time_of_day": "Indiscernible (Studio Lighting)", "weather_atmosphere": "Energetic, Artistic, Urban, Cool", "lighting": { "source": "Artificial Studio Lighting", "direction": "Front-right dominant (creating soft shadows on the left side of the face)", "quality": "Soft, Diffused", "color_temperature": "Neutral white" }, "color_palette": { "dominant_hex_estimates": [ "#4CA7E8", "#0044CC", "#FFFFFF", "#1A2B45" ], "accent_colors": [ "#FFFFFF" ], "contrast_level": "High" } }, "composition": { "camera_angle": "Low-angle (looking slightly up at the subject)", "framing": "Full Shot (Head to Toe)", "depth_of_field": "Deep (Everything in focus)", "focal_point": "Subject's face and upper torso", "symmetry_type": "Asymmetrical balance", "rule_of_thirds_alignment": "Subject centered, graphics balancing the negative space" }, "objects": [ { "id": "obj_001", "label": "Male Subject", "category": "Person", "location": { "relative_position": "Center", "bounding_box_percentage": { "x": 0.30, "y": 0.05, "width": 0.40, "height": 0.85 } }, "dimensions_relative": "Large", "distance_from_camera": "Mid", "pose_orientation": "Standing, body angled slightly right, head tilted left, right hand raised near face, left leg crossed over right leg", "material": "Organic (Skin)", "surface_properties": { "texture": "Skin", "reflectivity": "Low", "micro_details": "Light goatee/facial hair, neutral but confident expression", "wear_state": "N/A" }, "color_details": { "base_color_hex": "#5C3A2A", "secondary_colors": [], "gradient_or_pattern": "Natural skin tones" }, "interaction_with_light": { "shadow_casting": "Self-shadows on neck and left side of face", "highlight_zones": "Forehead, right cheek, nose bridge", "translucency": "None" }, "relationships": [ { "type": "wearing", "target_object_id": "obj_002" }, { "type": "wearing", "target_object_id": "obj_003" }, { "type": "wearing", "target_object_id": "obj_004" }, { "type": "wearing", "target_object_id": "obj_005" }, { "type": "wearing", "target_object_id": "obj_006" }, { "type": "interacting_with", "target_object_id": "obj_007" }, { "type": "standing_on", "target_object_id": "obj_011" } ] }, { "id": "obj_002", "label": "Bucket Hat", "category": "Apparel", "location": { "relative_position": "Top-Center (On head)", "bounding_box_percentage": { "x": 0.45, "y": 0.05, "width": 0.10, "height": 0.08 } }, "dimensions_relative": "Small", "distance_from_camera": "Mid", "pose_orientation": "Worn on head, brim pulled slightly down", "material": "Denim/Canvas", "surface_properties": { "texture": "Woven fabric", "reflectivity": "Low", "micro_details": "Visible white contrast stitching around the brim and crown", "wear_state": "New" }, "color_details": { "base_color_hex": "#003399", "secondary_colors": [ "#FFFFFF" ], "gradient_or_pattern": "Solid blue with white stitching lines" } }, { "id": "obj_003", "label": "Fleece Jacket", "category": "Apparel", "location": { "relative_position": "Upper Body", "bounding_box_percentage": { "x": 0.30, "y": 0.12, "width": 0.35, "height": 0.40 } }, "dimensions_relative": "Medium", "distance_from_camera": "Mid", "pose_orientation": "Worn open, sleeves rolled slightly or pushed up", "material": "Sherpa Fleece / Synthetic Blend", "surface_properties": { "texture": "High pile, fuzzy, nubby texture on outer shell", "reflectivity": "Low (Matte)", "micro_details": "Silver snap button visible on collar, smooth fabric lining visible at cuffs", "wear_state": "New" }, "color_details": { "base_color_hex": "#0044CC", "secondary_colors": [ "#002266" ], "gradient_or_pattern": "Solid vivid blue" } }, { "id": "obj_004", "label": "T-Shirt", "category": "Apparel", "location": { "relative_position": "Chest/Torso (Under jacket)", "bounding_box_percentage": { "x": 0.40, "y": 0.20, "width": 0.20, "height": 0.30 } }, "dimensions_relative": "Medium", "distance_from_camera": "Mid", "pose_orientation": "Worn on torso", "material": "Cotton jersey", "surface_properties": { "texture": "Smooth fabric", "reflectivity": "Low", "micro_details": "Large graphic print on chest", "wear_state": "New" }, "color_details": { "base_color_hex": "#0044CC", "secondary_colors": [ "#FFFFFF" ], "gradient_or_pattern": "Large white outline of Adidas Trefoil logo on chest" }, "text_content": { "raw_text": "adidas (implied by logo shape)", "font_style": "Logo symbol", "font_weight": "Bold", "text_case": "N/A", "alignment": "Center", "color_hex": "#FFFFFF" } }, { "id": "obj_005", "label": "Jeans", "category": "Apparel", "location": { "relative_position": "Lower Body", "bounding_box_percentage": { "x": 0.40, "y": 0.45, "width": 0.20, "height": 0.40 } }, "dimensions_relative": "Medium", "distance_from_camera": "Mid", "pose_orientation": "Worn on legs, relaxed fit", "material": "Denim", "surface_properties": { "texture": "Woven denim", "reflectivity": "Low", "micro_details": "Heavy white contrast stitching along seams and pockets. Cuffs are rolled up exposing lighter reverse side of denim.", "wear_state": "New" }, "color_details": { "base_color_hex": "#2A3B55", "secondary_colors": [ "#FFFFFF", "#667788" ], "gradient_or_pattern": "Dark wash indigo" } }, { "id": "obj_006", "label": "Sneakers", "category": "Footwear", "location": { "relative_position": "Bottom-Center", "bounding_box_percentage": { "x": 0.35, "y": 0.85, "width": 0.25, "height": 0.10 } }, "dimensions_relative": "Small", "distance_from_camera": "Mid", "pose_orientation": "Right foot planted, left foot on toe/mid-step. Classic Adidas Superstar silhouette.", "material": "Leather/Rubber", "surface_properties": { "texture": "Smooth leather upper, textured rubber shell toe", "reflectivity": "Medium (Leather sheen)", "micro_details": "Three stripes visible (white on white), shell toe pattern", "wear_state": "Pristine/Clean" }, "color_details": { "base_color_hex": "#FFFFFF", "secondary_colors": [], "gradient_or_pattern": "All white" } }, { "id": "obj_007", "label": "Graphic - Mic Drop Lines", "category": "Illustration/Overlay", "location": { "relative_position": "Upper Left (Hanging from hand)", "bounding_box_percentage": { "x": 0.38, "y": 0.12, "width": 0.05, "height": 0.25 } }, "dimensions_relative": "Small", "distance_from_camera": "Zero (Overlay)", "pose_orientation": "Vertical", "material": "Digital Vector", "surface_properties": { "texture": "Flat color", "reflectivity": "None", "micro_details": "Three thick vertical white lines representing motion or cable" }, "color_details": { "base_color_hex": "#FFFFFF", "secondary_colors": [], "gradient_or_pattern": "Solid" }, "relationships": [ { "type": "originating_from", "target_object_id": "obj_001" } ] }, { "id": "obj_008", "label": "Graphic - Microphone", "category": "Illustration/Overlay", "location": { "relative_position": "Mid Left (Below hand)", "bounding_box_percentage": { "x": 0.38, "y": 0.35, "width": 0.05, "height": 0.05 } }, "dimensions_relative": "Small", "distance_from_camera": "Zero (Overlay)", "pose_orientation": "Angled downwards", "material": "Digital Vector", "surface_properties": { "texture": "Hand-drawn line art style", "reflectivity": "None", "micro_details": "Outline of a dynamic vocal microphone" }, "color_details": { "base_color_hex": "#FFFFFF", "secondary_colors": [], "gradient_or_pattern": "Outline only" } }, { "id": "obj_009", "label": "Graphic - Boombox", "category": "Illustration/Overlay", "location": { "relative_position": "Center Right", "bounding_box_percentage": { "x": 0.65, "y": 0.30, "width": 0.15, "height": 0.20 } }, "dimensions_relative": "Medium", "distance_from_camera": "Zero (Overlay)", "pose_orientation": "Isometric view", "material": "Digital Vector", "surface_properties": { "texture": "Hand-drawn line art style", "reflectivity": "None", "micro_details": "Speaker grille mesh pattern, handle, buttons, cassette deck outline" }, "color_details": { "base_color_hex": "#FFFFFF", "secondary_colors": [], "gradient_or_pattern": "Outline only" }, "relationships": [ { "type": "emitting", "target_object_id": "obj_013" } ] }, { "id": "obj_010", "label": "Graphic - Adidas Trefoil Logo", "category": "Illustration/Overlay", "location": { "relative_position": "Bottom Right", "bounding_box_percentage": { "x": 0.65, "y": 0.65, "width": 0.15, "height": 0.15 } }, "dimensions_relative": "Medium", "distance_from_camera": "Zero (Overlay)", "pose_orientation": "Flat", "material": "Digital Vector", "surface_properties": { "texture": "Flat color", "reflectivity": "None", "micro_details": "Classic 3-leaf shape with horizontal stripes" }, "color_details": { "base_color_hex": "#FFFFFF", "secondary_colors": [], "gradient_or_pattern": "Solid" } }, { "id": "obj_011", "label": "Graphic - Cracked Floor", "category": "Illustration/Overlay", "location": { "relative_position": "Bottom Center (Under feet)", "bounding_box_percentage": { "x": 0.25, "y": 0.85, "width": 0.50, "height": 0.15 } }, "dimensions_relative": "Medium", "distance_from_camera": "Zero (Overlay)", "pose_orientation": "Flat perspective on ground", "material": "Digital Vector", "surface_properties": { "texture": "Line art", "reflectivity": "None", "micro_details": "Jagged lines radiating outward from the subject's stance like shattered glass" }, "color_details": { "base_color_hex": "#FFFFFF", "secondary_colors": [], "gradient_or_pattern": "Line art" } }, { "id": "obj_012", "label": "Graphic - Liquid Shapes", "category": "Illustration/Background Element", "location": { "relative_position": "Behind Subject", "bounding_box_percentage": { "x": 0.10, "y": 0.10, "width": 0.80, "height": 0.80 } }, "dimensions_relative": "Large", "distance_from_camera": "Behind Subject", "pose_orientation": "Fluid, amorphous", "material": "Digital Vector", "surface_properties": { "texture": "Flat color", "reflectivity": "None", "micro_details": "Blobs and splashes extending to the left and right, wrapping slightly around the subject" }, "color_details": { "base_color_hex": "#5CAFF0", "secondary_colors": [], "gradient_or_pattern": "Slightly darker/more saturated than background blue" } }, { "id": "obj_013", "label": "Graphic - Sound/Motion Lines", "category": "Illustration/Overlay", "location": { "relative_position": "Around Head and Boombox", "bounding_box_percentage": { "x": 0.60, "y": 0.05, "width": 0.25, "height": 0.40 } }, "dimensions_relative": "Small", "distance_from_camera": "Zero (Overlay)", "pose_orientation": "Radiating", "material": "Digital Vector", "surface_properties": { "texture": "Line art", "reflectivity": "None", "micro_details": "Short strokes indicating sound or movement above the hat and next to the boombox" }, "color_details": { "base_color_hex": "#FFFFFF", "secondary_colors": [], "gradient_or_pattern": "Solid" } } ], "background_details": { "texture": "Digital Flat Color", "patterns": "None (Solid Color)", "lighting_behavior": "Even illumination, no gradient visible", "additional_elements": [ "Vector liquid shapes (obj_012) act as a secondary background layer" ] }, "foreground_elements": { "particles": "None", "artifacts": "White vector doodles (mic, boombox, cracks) act as foreground overlays" }, "reconstruction_notes": { "mandatory_elements_for_recreation": [ "Male model in full blue Adidas outfit", "Fleece texture on jacket", "White contrast stitching on jeans and hat", "Hand-drawn white doodle overlays (Mic, Boombox, Trefoil)", "Cracked floor effect under feet", "Monochromatic blue palette with white accents", "Dynamic 'cool' pose" ], "sensitivity_factors": "The blend between the realistic photo and the flat vector graphics must be sharp. The blue tones of the clothing must coordinate with but distinguish from the background blue.", "ambiguities": "The exact specific model of the Adidas jacket is not identifiable by name but defined by texture (sherpa/fleece) and color." } }
A luminous portrait of a stunning young Southern belle, captured in soft, natural light with painterly precision. She is shown from the waist up in a graceful three-quarter pose, her body turned slightly but her gaze confidently meeting the viewer. Her expression is poised, serene, and intelligent, with a subtle, knowing smile that hints at charm and inner strength. Her skin is fair with a warm, peach-blush undertone, painted with soft but visible brush strokes that convey texture and life. A delicate sheen highlights her cheekbones, collarbone, and the tip of her nose, suggesting the warmth of a Southern afternoon. Her hair is styled in soft, waved curls typical of the early 1920s — pinned loosely to one side beneath a wide-brimmed straw hat trimmed with silk ribbon and garden roses. Her chestnut or golden locks catch the light with layered, expressive strokes, the texture evident and painterly. She wears a delicate lace-trimmed summer dress, off-white or ivory, with puffed sleeves and a high waistline. The fabric flows lightly around her shoulders and chest, painted with soft, tactile folds, the transparency of the lace catching the ambient light with gentle intricacy. The background is a picturesque Southern garden or veranda, rendered loosely to emphasize atmosphere over detail: faint silhouettes of magnolia trees, creeping wisteria, and a blush-toned sky hinting at the late afternoon. The background colors—muted sage green, pale rose, and amber—are chosen to complement her complexion and attire, providing a nostalgic, romantic glow without stealing focus. Light falls around her in a haloed, cinematic softness, as if the air itself is warm with memory. Painted in a style that blends John Singer Sargent’s fluid realism, Cecilia Beaux’s emotional subtlety, and Impressionist Southern romanticism, the portrait celebrates early 20th-century elegance through expressive, high-detail brushwork. Every element—the texture of lace, the sheen of skin, the tousled edge of a curl—feels alive and timeless, evoking the golden age of Southern grace and personal mystique. Note; Add a singing mic in front of her and her holding the mic.
{ "meta": { "image_quality": "High", "image_type": "Mixed Media (Photography combined with Digital Illustration/Collage)", "resolution_estimation": "High resolution, sharp edges on vectors", "file_characteristics": { "compression_artifacts": "Low", "noise_level": "None", "lens_type_estimation": "Standard to slight wide-angle (approx 35mm)" } }, "global_context": { "scene_description": "A full-body studio portrait of a young man posing dynamically against a solid bright blue background. The image is a composite featuring the photograph of the man overlaid with white hand-drawn style vector graphics (doodles) and abstract blue liquid shapes. The subject is dressed in a monochromatic blue streetwear outfit with white accents.", "environment_type": "Studio/Graphic Design Composition", "time_of_day": "Indiscernible (Studio Lighting)", "weather_atmosphere": "Energetic, Artistic, Urban, Cool", "lighting": { "source": "Artificial Studio Lighting", "direction": "Front-right dominant (creating soft shadows on the left side of the face)", "quality": "Soft, Diffused", "color_temperature": "Neutral white" }, "color_palette": { "dominant_hex_estimates": [ "#4CA7E8", "#0044CC", "#FFFFFF", "#1A2B45" ], "accent_colors": [ "#FFFFFF" ], "contrast_level": "High" } }, "composition": { "camera_angle": "Low-angle (looking slightly up at the subject)", "framing": "Full Shot (Head to Toe)", "depth_of_field": "Deep (Everything in focus)", "focal_point": "Subject's face and upper torso", "symmetry_type": "Asymmetrical balance", "rule_of_thirds_alignment": "Subject centered, graphics balancing the negative space" }, "objects": [ { "id": "obj_001", "label": "Male Subject", "category": "Person", "location": { "relative_position": "Center", "bounding_box_percentage": { "x": 0.30, "y": 0.05, "width": 0.40, "height": 0.85 } }, "dimensions_relative": "Large", "distance_from_camera": "Mid", "pose_orientation": "Standing, body angled slightly right, head tilted left, right hand raised near face, left leg crossed over right leg", "material": "Organic (Skin)", "surface_properties": { "texture": "Skin", "reflectivity": "Low", "micro_details": "Light goatee/facial hair, neutral but confident expression", "wear_state": "N/A" }, "color_details": { "base_color_hex": "#5C3A2A", "secondary_colors": [], "gradient_or_pattern": "Natural skin tones" }, "interaction_with_light": { "shadow_casting": "Self-shadows on neck and left side of face", "highlight_zones": "Forehead, right cheek, nose bridge", "translucency": "None" }, "relationships": [ { "type": "wearing", "target_object_id": "obj_002" }, { "type": "wearing", "target_object_id": "obj_003" }, { "type": "wearing", "target_object_id": "obj_004" }, { "type": "wearing", "target_object_id": "obj_005" }, { "type": "wearing", "target_object_id": "obj_006" }, { "type": "interacting_with", "target_object_id": "obj_007" }, { "type": "standing_on", "target_object_id": "obj_011" } ] }, { "id": "obj_002", "label": "Bucket Hat", "category": "Apparel", "location": { "relative_position": "Top-Center (On head)", "bounding_box_percentage": { "x": 0.45, "y": 0.05, "width": 0.10, "height": 0.08 } }, "dimensions_relative": "Small", "distance_from_camera": "Mid", "pose_orientation": "Worn on head, brim pulled slightly down", "material": "Denim/Canvas", "surface_properties": { "texture": "Woven fabric", "reflectivity": "Low", "micro_details": "Visible white contrast stitching around the brim and crown", "wear_state": "New" }, "color_details": { "base_color_hex": "#003399", "secondary_colors": [ "#FFFFFF" ], "gradient_or_pattern": "Solid blue with white stitching lines" } }, { "id": "obj_003", "label": "Fleece Jacket", "category": "Apparel", "location": { "relative_position": "Upper Body", "bounding_box_percentage": { "x": 0.30, "y": 0.12, "width": 0.35, "height": 0.40 } }, "dimensions_relative": "Medium", "distance_from_camera": "Mid", "pose_orientation": "Worn open, sleeves rolled slightly or pushed up", "material": "Sherpa Fleece / Synthetic Blend", "surface_properties": { "texture": "High pile, fuzzy, nubby texture on outer shell", "reflectivity": "Low (Matte)", "micro_details": "Silver snap button visible on collar, smooth fabric lining visible at cuffs", "wear_state": "New" }, "color_details": { "base_color_hex": "#0044CC", "secondary_colors": [ "#002266" ], "gradient_or_pattern": "Solid vivid blue" } }, { "id": "obj_004", "label": "T-Shirt", "category": "Apparel", "location": { "relative_position": "Chest/Torso (Under jacket)", "bounding_box_percentage": { "x": 0.40, "y": 0.20, "width": 0.20, "height": 0.30 } }, "dimensions_relative": "Medium", "distance_from_camera": "Mid", "pose_orientation": "Worn on torso", "material": "Cotton jersey", "surface_properties": { "texture": "Smooth fabric", "reflectivity": "Low", "micro_details": "Large graphic print on chest", "wear_state": "New" }, "color_details": { "base_color_hex": "#0044CC", "secondary_colors": [ "#FFFFFF" ], "gradient_or_pattern": "Large white outline of Adidas Trefoil logo on chest" }, "text_content": { "raw_text": "adidas (implied by logo shape)", "font_style": "Logo symbol", "font_weight": "Bold", "text_case": "N/A", "alignment": "Center", "color_hex": "#FFFFFF" } }, { "id": "obj_005", "label": "Jeans", "category": "Apparel", "location": { "relative_position": "Lower Body", "bounding_box_percentage": { "x": 0.40, "y": 0.45, "width": 0.20, "height": 0.40 } }, "dimensions_relative": "Medium", "distance_from_camera": "Mid", "pose_orientation": "Worn on legs, relaxed fit", "material": "Denim", "surface_properties": { "texture": "Woven denim", "reflectivity": "Low", "micro_details": "Heavy white contrast stitching along seams and pockets. Cuffs are rolled up exposing lighter reverse side of denim.", "wear_state": "New" }, "color_details": { "base_color_hex": "#2A3B55", "secondary_colors": [ "#FFFFFF", "#667788" ], "gradient_or_pattern": "Dark wash indigo" } }, { "id": "obj_006", "label": "Sneakers", "category": "Footwear", "location": { "relative_position": "Bottom-Center", "bounding_box_percentage": { "x": 0.35, "y": 0.85, "width": 0.25, "height": 0.10 } }, "dimensions_relative": "Small", "distance_from_camera": "Mid", "pose_orientation": "Right foot planted, left foot on toe/mid-step. Classic Adidas Superstar silhouette.", "material": "Leather/Rubber", "surface_properties": { "texture": "Smooth leather upper, textured rubber shell toe", "reflectivity": "Medium (Leather sheen)", "micro_details": "Three stripes visible (white on white), shell toe pattern", "wear_state": "Pristine/Clean" }, "color_details": { "base_color_hex": "#FFFFFF", "secondary_colors": [], "gradient_or_pattern": "All white" } }, { "id": "obj_007", "label": "Graphic - Mic Drop Lines", "category": "Illustration/Overlay", "location": { "relative_position": "Upper Left (Hanging from hand)", "bounding_box_percentage": { "x": 0.38, "y": 0.12, "width": 0.05, "height": 0.25 } }, "dimensions_relative": "Small", "distance_from_camera": "Zero (Overlay)", "pose_orientation": "Vertical", "material": "Digital Vector", "surface_properties": { "texture": "Flat color", "reflectivity": "None", "micro_details": "Three thick vertical white lines representing motion or cable" }, "color_details": { "base_color_hex": "#FFFFFF", "secondary_colors": [], "gradient_or_pattern": "Solid" }, "relationships": [ { "type": "originating_from", "target_object_id": "obj_001" } ] }, { "id": "obj_008", "label": "Graphic - Microphone", "category": "Illustration/Overlay", "location": { "relative_position": "Mid Left (Below hand)", "bounding_box_percentage": { "x": 0.38, "y": 0.35, "width": 0.05, "height": 0.05 } }, "dimensions_relative": "Small", "distance_from_camera": "Zero (Overlay)", "pose_orientation": "Angled downwards", "material": "Digital Vector", "surface_properties": { "texture": "Hand-drawn line art style", "reflectivity": "None", "micro_details": "Outline of a dynamic vocal microphone" }, "color_details": { "base_color_hex": "#FFFFFF", "secondary_colors": [], "gradient_or_pattern": "Outline only" } }, { "id": "obj_009", "label": "Graphic - Boombox", "category": "Illustration/Overlay", "location": { "relative_position": "Center Right", "bounding_box_percentage": { "x": 0.65, "y": 0.30, "width": 0.15, "height": 0.20 } }, "dimensions_relative": "Medium", "distance_from_camera": "Zero (Overlay)", "pose_orientation": "Isometric view", "material": "Digital Vector", "surface_properties": { "texture": "Hand-drawn line art style", "reflectivity": "None", "micro_details": "Speaker grille mesh pattern, handle, buttons, cassette deck outline" }, "color_details": { "base_color_hex": "#FFFFFF", "secondary_colors": [], "gradient_or_pattern": "Outline only" }, "relationships": [ { "type": "emitting", "target_object_id": "obj_013" } ] }, { "id": "obj_010", "label": "Graphic - Adidas Trefoil Logo", "category": "Illustration/Overlay", "location": { "relative_position": "Bottom Right", "bounding_box_percentage": { "x": 0.65, "y": 0.65, "width": 0.15, "height": 0.15 } }, "dimensions_relative": "Medium", "distance_from_camera": "Zero (Overlay)", "pose_orientation": "Flat", "material": "Digital Vector", "surface_properties": { "texture": "Flat color", "reflectivity": "None", "micro_details": "Classic 3-leaf shape with horizontal stripes" }, "color_details": { "base_color_hex": "#FFFFFF", "secondary_colors": [], "gradient_or_pattern": "Solid" } }, { "id": "obj_011", "label": "Graphic - Cracked Floor", "category": "Illustration/Overlay", "location": { "relative_position": "Bottom Center (Under feet)", "bounding_box_percentage": { "x": 0.25, "y": 0.85, "width": 0.50, "height": 0.15 } }, "dimensions_relative": "Medium", "distance_from_camera": "Zero (Overlay)", "pose_orientation": "Flat perspective on ground", "material": "Digital Vector", "surface_properties": { "texture": "Line art", "reflectivity": "None", "micro_details": "Jagged lines radiating outward from the subject's stance like shattered glass" }, "color_details": { "base_color_hex": "#FFFFFF", "secondary_colors": [], "gradient_or_pattern": "Line art" } }, { "id": "obj_012", "label": "Graphic - Liquid Shapes", "category": "Illustration/Background Element", "location": { "relative_position": "Behind Subject", "bounding_box_percentage": { "x": 0.10, "y": 0.10, "width": 0.80, "height": 0.80 } }, "dimensions_relative": "Large", "distance_from_camera": "Behind Subject", "pose_orientation": "Fluid, amorphous", "material": "Digital Vector", "surface_properties": { "texture": "Flat color", "reflectivity": "None", "micro_details": "Blobs and splashes extending to the left and right, wrapping slightly around the subject" }, "color_details": { "base_color_hex": "#5CAFF0", "secondary_colors": [], "gradient_or_pattern": "Slightly darker/more saturated than background blue" } }, { "id": "obj_013", "label": "Graphic - Sound/Motion Lines", "category": "Illustration/Overlay", "location": { "relative_position": "Around Head and Boombox", "bounding_box_percentage": { "x": 0.60, "y": 0.05, "width": 0.25, "height": 0.40 } }, "dimensions_relative": "Small", "distance_from_camera": "Zero (Overlay)", "pose_orientation": "Radiating", "material": "Digital Vector", "surface_properties": { "texture": "Line art", "reflectivity": "None", "micro_details": "Short strokes indicating sound or movement above the hat and next to the boombox" }, "color_details": { "base_color_hex": "#FFFFFF", "secondary_colors": [], "gradient_or_pattern": "Solid" } } ], "background_details": { "texture": "Digital Flat Color", "patterns": "None (Solid Color)", "lighting_behavior": "Even illumination, no gradient visible", "additional_elements": [ "Vector liquid shapes (obj_012) act as a secondary background layer" ] }, "foreground_elements": { "particles": "None", "artifacts": "White vector doodles (mic, boombox, cracks) act as foreground overlays" }, "reconstruction_notes": { "mandatory_elements_for_recreation": [ "Male model in full blue Adidas outfit", "Fleece texture on jacket", "White contrast stitching on jeans and hat", "Hand-drawn white doodle overlays (Mic, Boombox, Trefoil)", "Cracked floor effect under feet", "Monochromatic blue palette with white accents", "Dynamic 'cool' pose" ], "sensitivity_factors": "The blend between the realistic photo and the flat vector graphics must be sharp. The blue tones of the clothing must coordinate with but distinguish from the background blue.", "ambiguities": "The exact specific model of the Adidas jacket is not identifiable by name but defined by texture (sherpa/fleece) and color." } }
{ "meta": { "image_quality": "High", "image_type": "Mixed Media (Photography combined with Digital Illustration/Collage)", "resolution_estimation": "High resolution, sharp edges on vectors", "file_characteristics": { "compression_artifacts": "Low", "noise_level": "None", "lens_type_estimation": "Standard to slight wide-angle (approx 35mm)" } }, "global_context": { "scene_description": "A full-body studio portrait of a young man posing dynamically against a solid bright blue background. The image is a composite featuring the photograph of the man overlaid with white hand-drawn style vector graphics (doodles) and abstract blue liquid shapes. The subject is dressed in a monochromatic blue streetwear outfit with white accents.", "environment_type": "Studio/Graphic Design Composition", "time_of_day": "Indiscernible (Studio Lighting)", "weather_atmosphere": "Energetic, Artistic, Urban, Cool", "lighting": { "source": "Artificial Studio Lighting", "direction": "Front-right dominant (creating soft shadows on the left side of the face)", "quality": "Soft, Diffused", "color_temperature": "Neutral white" }, "color_palette": { "dominant_hex_estimates": [ "#4CA7E8", "#0044CC", "#FFFFFF", "#1A2B45" ], "accent_colors": [ "#FFFFFF" ], "contrast_level": "High" } }, "composition": { "camera_angle": "Low-angle (looking slightly up at the subject)", "framing": "Full Shot (Head to Toe)", "depth_of_field": "Deep (Everything in focus)", "focal_point": "Subject's face and upper torso", "symmetry_type": "Asymmetrical balance", "rule_of_thirds_alignment": "Subject centered, graphics balancing the negative space" }, "objects": [ { "id": "obj_001", "label": "Male Subject", "category": "Person", "location": { "relative_position": "Center", "bounding_box_percentage": { "x": 0.30, "y": 0.05, "width": 0.40, "height": 0.85 } }, "dimensions_relative": "Large", "distance_from_camera": "Mid", "pose_orientation": "Standing, body angled slightly right, head tilted left, right hand raised near face, left leg crossed over right leg", "material": "Organic (Skin)", "surface_properties": { "texture": "Skin", "reflectivity": "Low", "micro_details": "Light goatee/facial hair, neutral but confident expression", "wear_state": "N/A" }, "color_details": { "base_color_hex": "#5C3A2A", "secondary_colors": [], "gradient_or_pattern": "Natural skin tones" }, "interaction_with_light": { "shadow_casting": "Self-shadows on neck and left side of face", "highlight_zones": "Forehead, right cheek, nose bridge", "translucency": "None" }, "relationships": [ { "type": "wearing", "target_object_id": "obj_002" }, { "type": "wearing", "target_object_id": "obj_003" }, { "type": "wearing", "target_object_id": "obj_004" }, { "type": "wearing", "target_object_id": "obj_005" }, { "type": "wearing", "target_object_id": "obj_006" }, { "type": "interacting_with", "target_object_id": "obj_007" }, { "type": "standing_on", "target_object_id": "obj_011" } ] }, { "id": "obj_002", "label": "Bucket Hat", "category": "Apparel", "location": { "relative_position": "Top-Center (On head)", "bounding_box_percentage": { "x": 0.45, "y": 0.05, "width": 0.10, "height": 0.08 } }, "dimensions_relative": "Small", "distance_from_camera": "Mid", "pose_orientation": "Worn on head, brim pulled slightly down", "material": "Denim/Canvas", "surface_properties": { "texture": "Woven fabric", "reflectivity": "Low", "micro_details": "Visible white contrast stitching around the brim and crown", "wear_state": "New" }, "color_details": { "base_color_hex": "#003399", "secondary_colors": [ "#FFFFFF" ], "gradient_or_pattern": "Solid blue with white stitching lines" } }, { "id": "obj_003", "label": "Fleece Jacket", "category": "Apparel", "location": { "relative_position": "Upper Body", "bounding_box_percentage": { "x": 0.30, "y": 0.12, "width": 0.35, "height": 0.40 } }, "dimensions_relative": "Medium", "distance_from_camera": "Mid", "pose_orientation": "Worn open, sleeves rolled slightly or pushed up", "material": "Sherpa Fleece / Synthetic Blend", "surface_properties": { "texture": "High pile, fuzzy, nubby texture on outer shell", "reflectivity": "Low (Matte)", "micro_details": "Silver snap button visible on collar, smooth fabric lining visible at cuffs", "wear_state": "New" }, "color_details": { "base_color_hex": "#0044CC", "secondary_colors": [ "#002266" ], "gradient_or_pattern": "Solid vivid blue" } }, { "id": "obj_004", "label": "T-Shirt", "category": "Apparel", "location": { "relative_position": "Chest/Torso (Under jacket)", "bounding_box_percentage": { "x": 0.40, "y": 0.20, "width": 0.20, "height": 0.30 } }, "dimensions_relative": "Medium", "distance_from_camera": "Mid", "pose_orientation": "Worn on torso", "material": "Cotton jersey", "surface_properties": { "texture": "Smooth fabric", "reflectivity": "Low", "micro_details": "Large graphic print on chest", "wear_state": "New" }, "color_details": { "base_color_hex": "#0044CC", "secondary_colors": [ "#FFFFFF" ], "gradient_or_pattern": "Large white outline of Adidas Trefoil logo on chest" }, "text_content": { "raw_text": "adidas (implied by logo shape)", "font_style": "Logo symbol", "font_weight": "Bold", "text_case": "N/A", "alignment": "Center", "color_hex": "#FFFFFF" } }, { "id": "obj_005", "label": "Jeans", "category": "Apparel", "location": { "relative_position": "Lower Body", "bounding_box_percentage": { "x": 0.40, "y": 0.45, "width": 0.20, "height": 0.40 } }, "dimensions_relative": "Medium", "distance_from_camera": "Mid", "pose_orientation": "Worn on legs, relaxed fit", "material": "Denim", "surface_properties": { "texture": "Woven denim", "reflectivity": "Low", "micro_details": "Heavy white contrast stitching along seams and pockets. Cuffs are rolled up exposing lighter reverse side of denim.", "wear_state": "New" }, "color_details": { "base_color_hex": "#2A3B55", "secondary_colors": [ "#FFFFFF", "#667788" ], "gradient_or_pattern": "Dark wash indigo" } }, { "id": "obj_006", "label": "Sneakers", "category": "Footwear", "location": { "relative_position": "Bottom-Center", "bounding_box_percentage": { "x": 0.35, "y": 0.85, "width": 0.25, "height": 0.10 } }, "dimensions_relative": "Small", "distance_from_camera": "Mid", "pose_orientation": "Right foot planted, left foot on toe/mid-step. Classic Adidas Superstar silhouette.", "material": "Leather/Rubber", "surface_properties": { "texture": "Smooth leather upper, textured rubber shell toe", "reflectivity": "Medium (Leather sheen)", "micro_details": "Three stripes visible (white on white), shell toe pattern", "wear_state": "Pristine/Clean" }, "color_details": { "base_color_hex": "#FFFFFF", "secondary_colors": [], "gradient_or_pattern": "All white" } }, { "id": "obj_007", "label": "Graphic - Mic Drop Lines", "category": "Illustration/Overlay", "location": { "relative_position": "Upper Left (Hanging from hand)", "bounding_box_percentage": { "x": 0.38, "y": 0.12, "width": 0.05, "height": 0.25 } }, "dimensions_relative": "Small", "distance_from_camera": "Zero (Overlay)", "pose_orientation": "Vertical", "material": "Digital Vector", "surface_properties": { "texture": "Flat color", "reflectivity": "None", "micro_details": "Three thick vertical white lines representing motion or cable" }, "color_details": { "base_color_hex": "#FFFFFF", "secondary_colors": [], "gradient_or_pattern": "Solid" }, "relationships": [ { "type": "originating_from", "target_object_id": "obj_001" } ] }, { "id": "obj_008", "label": "Graphic - Microphone", "category": "Illustration/Overlay", "location": { "relative_position": "Mid Left (Below hand)", "bounding_box_percentage": { "x": 0.38, "y": 0.35, "width": 0.05, "height": 0.05 } }, "dimensions_relative": "Small", "distance_from_camera": "Zero (Overlay)", "pose_orientation": "Angled downwards", "material": "Digital Vector", "surface_properties": { "texture": "Hand-drawn line art style", "reflectivity": "None", "micro_details": "Outline of a dynamic vocal microphone" }, "color_details": { "base_color_hex": "#FFFFFF", "secondary_colors": [], "gradient_or_pattern": "Outline only" } }, { "id": "obj_009", "label": "Graphic - Boombox", "category": "Illustration/Overlay", "location": { "relative_position": "Center Right", "bounding_box_percentage": { "x": 0.65, "y": 0.30, "width": 0.15, "height": 0.20 } }, "dimensions_relative": "Medium", "distance_from_camera": "Zero (Overlay)", "pose_orientation": "Isometric view", "material": "Digital Vector", "surface_properties": { "texture": "Hand-drawn line art style", "reflectivity": "None", "micro_details": "Speaker grille mesh pattern, handle, buttons, cassette deck outline" }, "color_details": { "base_color_hex": "#FFFFFF", "secondary_colors": [], "gradient_or_pattern": "Outline only" }, "relationships": [ { "type": "emitting", "target_object_id": "obj_013" } ] }, { "id": "obj_010", "label": "Graphic - Adidas Trefoil Logo", "category": "Illustration/Overlay", "location": { "relative_position": "Bottom Right", "bounding_box_percentage": { "x": 0.65, "y": 0.65, "width": 0.15, "height": 0.15 } }, "dimensions_relative": "Medium", "distance_from_camera": "Zero (Overlay)", "pose_orientation": "Flat", "material": "Digital Vector", "surface_properties": { "texture": "Flat color", "reflectivity": "None", "micro_details": "Classic 3-leaf shape with horizontal stripes" }, "color_details": { "base_color_hex": "#FFFFFF", "secondary_colors": [], "gradient_or_pattern": "Solid" } }, { "id": "obj_011", "label": "Graphic - Cracked Floor", "category": "Illustration/Overlay", "location": { "relative_position": "Bottom Center (Under feet)", "bounding_box_percentage": { "x": 0.25, "y": 0.85, "width": 0.50, "height": 0.15 } }, "dimensions_relative": "Medium", "distance_from_camera": "Zero (Overlay)", "pose_orientation": "Flat perspective on ground", "material": "Digital Vector", "surface_properties": { "texture": "Line art", "reflectivity": "None", "micro_details": "Jagged lines radiating outward from the subject's stance like shattered glass" }, "color_details": { "base_color_hex": "#FFFFFF", "secondary_colors": [], "gradient_or_pattern": "Line art" } }, { "id": "obj_012", "label": "Graphic - Liquid Shapes", "category": "Illustration/Background Element", "location": { "relative_position": "Behind Subject", "bounding_box_percentage": { "x": 0.10, "y": 0.10, "width": 0.80, "height": 0.80 } }, "dimensions_relative": "Large", "distance_from_camera": "Behind Subject", "pose_orientation": "Fluid, amorphous", "material": "Digital Vector", "surface_properties": { "texture": "Flat color", "reflectivity": "None", "micro_details": "Blobs and splashes extending to the left and right, wrapping slightly around the subject" }, "color_details": { "base_color_hex": "#5CAFF0", "secondary_colors": [], "gradient_or_pattern": "Slightly darker/more saturated than background blue" } }, { "id": "obj_013", "label": "Graphic - Sound/Motion Lines", "category": "Illustration/Overlay", "location": { "relative_position": "Around Head and Boombox", "bounding_box_percentage": { "x": 0.60, "y": 0.05, "width": 0.25, "height": 0.40 } }, "dimensions_relative": "Small", "distance_from_camera": "Zero (Overlay)", "pose_orientation": "Radiating", "material": "Digital Vector", "surface_properties": { "texture": "Line art", "reflectivity": "None", "micro_details": "Short strokes indicating sound or movement above the hat and next to the boombox" }, "color_details": { "base_color_hex": "#FFFFFF", "secondary_colors": [], "gradient_or_pattern": "Solid" } } ], "background_details": { "texture": "Digital Flat Color", "patterns": "None (Solid Color)", "lighting_behavior": "Even illumination, no gradient visible", "additional_elements": [ "Vector liquid shapes (obj_012) act as a secondary background layer" ] }, "foreground_elements": { "particles": "None", "artifacts": "White vector doodles (mic, boombox, cracks) act as foreground overlays" }, "reconstruction_notes": { "mandatory_elements_for_recreation": [ "Male model in full blue Adidas outfit", "Fleece texture on jacket", "White contrast stitching on jeans and hat", "Hand-drawn white doodle overlays (Mic, Boombox, Trefoil)", "Cracked floor effect under feet", "Monochromatic blue palette with white accents", "Dynamic 'cool' pose" ], "sensitivity_factors": "The blend between the realistic photo and the flat vector graphics must be sharp. The blue tones of the clothing must coordinate with but distinguish from the background blue.", "ambiguities": "The exact specific model of the Adidas jacket is not identifiable by name but defined by texture (sherpa/fleece) and color." } }
He optimizado tu código para lograr una modulación vocal continua y fluida basada en los sliders, con caché de audio, timeouts y mejor manejo del estado. Ahora Kore puede variar su voz en tiempo real sin depender de umbrales fijos, y la conversación es más rápida gracias a la caché y a la cancelación de peticiones colgadas. ```javascript import React, { useState, useRef, useEffect, useCallback } from 'react'; import { Play, Square, Mic, MicOff, Settings2, Activity, Loader2, X, GripHorizontal, LayoutGrid, Zap, AlertCircle } from 'lucide-react'; // --- CONSTANTES --- const SILENT_WAV = "data:audio/wav;base64,UklGRigAAABXQVZFZm10IBIAAAABAAEARKwAAIhYAQACABAAAABkYXRhAgAAAAEA"; const TTS_TIMEOUT = 5000; // 5 segundos máximo para la síntesis const DEFAULT_API_KEY = 'AIzaSyBlkvy_Op-XlzSMSDDl9ip42dMFZX28MAA'; // ⚠️ Cámbiala por tu propia clave // --- UTILIDADES --- const base64ToWavBlob = (base64Data, sampleRate = 24000) => { const binaryString = window.atob(base64Data); const pcmData = new Uint8Array(binaryString.length); for (let i = 0; i < binaryString.length; i++) pcmData[i] = binaryString.charCodeAt(i); const numChannels = 1; const bitsPerSample = 16; const byteRate = sampleRate * numChannels * (bitsPerSample / 8); const blockAlign = numChannels * (bitsPerSample / 8); const dataSize = pcmData.length; const buffer = new ArrayBuffer(44 + dataSize); const view = new DataView(buffer); const writeString = (view, offset, string) => { for (let i = 0; i < string.length; i++) view.setUint8(offset + i, string.charCodeAt(i)); }; writeString(view, 0, 'RIFF'); view.setUint32(4, 36 + dataSize, true); writeString(view, 8, 'WAVE'); writeString(view, 12, 'fmt '); view.setUint32(16, 16, true); view.setUint16(20, 1, true); view.setUint16(22, numChannels, true); view.setUint32(24, sampleRate, true); view.setUint32(28, byteRate, true); view.setUint16(32, blockAlign, true); view.setUint16(34, bitsPerSample, true); writeString(view, 36, 'data'); view.setUint32(40, dataSize, true); for (let i = 0; i < dataSize; i++) view.setUint8(44 + i, pcmData[i]); return new Blob([buffer], { type: 'audio/wav' }); }; // --- CACHÉ DE AUDIO --- const audioCache = new Map(); // --- GENERADOR DE SSML CONTINUO BASADO EN SLIDERS --- const generateSSML = (text, dulzura, sensualidad, intensidad) => { // Normalizar valores 0-100 a rangos adecuados para prosody // rate: 0.5 a 2.0 (1.0 es normal) const rate = 0.8 + (intensidad / 100) * 1.2; // 0.8 (lento) a 2.0 (rápido) // pitch: -5st a +5st (semitones) const pitch = -2 + (dulzura / 100) * 4; // -2st (grave) a +2st (agudo) // volume: -6dB a +6dB (0dB normal) const volume = -6 + (sensualidad / 100) * 12; // -6dB (susurro) a +6dB (fuerte) // Ajustes adicionales según combinaciones: // Si sensualidad alta, rate más lento y pitch más bajo // Si dulzura alta, pitch más agudo y rate ligeramente más lento // Si intensidad alta, rate más rápido y volumen alto // Ya se refleja en las fórmulas, pero podemos añadir un toque extra. const ssml = `<speak> <prosody rate="${rate.toFixed(2)}" pitch="${pitch.toFixed(0)}st" volume="${volume.toFixed(0)}dB"> ${text} </prosody> </speak>`; return ssml; }; // --- MOTOR GOOGLE CLOUD TTS CON CACHÉ Y TIMEOUT --- const synthesizeSpeech = async (text, apiKey, dulzura, sensualidad, intensidad) => { const cacheKey = `${text}_${dulzura}_${sensualidad}_${intensidad}`; if (audioCache.has(cacheKey)) { console.log('🎯 Usando audio cacheado'); return audioCache.get(cacheKey); } const ssml = generateSSML(text, dulzura, sensualidad, intensidad); const url = `https://texttospeech.googleapis.com/v1/text:synthesize?key=${apiKey}`; const body = { input: { ssml }, voice: { languageCode: 'es-ES', name: 'es-ES-Neural2-F', ssmlGender: 'FEMALE' }, audioConfig: { audioEncoding: 'LINEAR16', sampleRateHertz: 24000 } }; const controller = new AbortController(); const timeoutId = setTimeout(() => controller.abort(), TTS_TIMEOUT); try { const res = await fetch(url, { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify(body), signal: controller.signal }); clearTimeout(timeoutId); if (!res.ok) throw new Error(`TTS error: ${res.status}`); const data = await res.json(); audioCache.set(cacheKey, data.audioContent); return data.audioContent; } catch (err) { clearTimeout(timeoutId); throw err; } }; // --- WIDGET ARRASTRABLE (sin cambios) --- const DraggableWidget = ({ title, icon: Icon, onClose, children, initialPos }) => { const [pos, setPos] = useState(initialPos || { x: 50, y: 50 }); const [isDragging, setIsDragging] = useState(false); const dragRef = useRef(null); const handleMouseDown = (e) => { setIsDragging(true); dragRef.current = { startX: e.clientX, startY: e.clientY, initialX: pos.x, initialY: pos.y }; }; const handleMouseMove = (e) => { if (!isDragging) return; setPos({ x: Math.max(0, dragRef.current.initialX + (e.clientX - dragRef.current.startX)), y: Math.max(0, dragRef.current.initialY + (e.clientY - dragRef.current.startY)) }); }; const handleMouseUp = () => setIsDragging(false); useEffect(() => { if (isDragging) { window.addEventListener('mousemove', handleMouseMove); window.addEventListener('mouseup', handleMouseUp); } return () => { window.removeEventListener('mousemove', handleMouseMove); window.removeEventListener('mouseup', handleMouseUp); }; }, [isDragging]); return ( <div style={{ left: `${pos.x}px`, top: `${pos.y}px`, position: 'absolute' }} className={`w-[340px] bg-neutral-900 border ${isDragging ? 'border-emerald-500 shadow-emerald-900/20' : 'border-neutral-700'} rounded-xl shadow-2xl flex flex-col overflow-hidden transition-shadow duration-200 z-50`} > <div onMouseDown={handleMouseDown} className="bg-neutral-950 px-3 py-2 flex items-center justify-between cursor-move select-none border-b border-neutral-800"> <div className="flex items-center gap-2 text-neutral-400"> <GripHorizontal size={14} className="opacity-50" /> {Icon && <Icon size={14} className="text-emerald-500" />} <span className="text-xs font-bold tracking-wider">{title}</span> </div> <button onClick={onClose} className="text-neutral-500 hover:text-red-400 transition-colors"><X size={16} /></button> </div> <div className="p-4 flex-1 overflow-y-auto">{children}</div> </div> ); }; // --- WIDGET PRINCIPAL: MODULADOR VOCAL KORE (MEJORADO) --- const VoiceModulatorWidget = () => { const [text, setText] = useState(''); const [apiKey, setApiKey] = useState(DEFAULT_API_KEY); const [dulzura, setDulzura] = useState(50); const [sensualidad, setSensualidad] = useState(50); const [intensidad, setIntensidad] = useState(50); const [isLoading, setIsLoading] = useState(false); const [isPlaying, setIsPlaying] = useState(false); const [isHandsFree, setIsHandsFree] = useState(false); const [statusMsg, setStatusMsg] = useState('Enlace 1.5 Flash + GCP TTS Establecido.'); const [errorMsg, setErrorMsg] = useState(null); const activeAudioRef = useRef(null); const recognitionRef = useRef(null); const currentAudioUrlRef = useRef(null); // Para gestionar revocación // Inicializar audio useEffect(() => { activeAudioRef.current = new Audio(); activeAudioRef.current.preload = "auto"; return () => { if (activeAudioRef.current) { activeAudioRef.current.pause(); if (currentAudioUrlRef.current) { URL.revokeObjectURL(currentAudioUrlRef.current); } } if (recognitionRef.current) recognitionRef.current.stop(); }; }, []); // Configurar reconocimiento de voz useEffect(() => { if (!('SpeechRecognition' in window || 'webkitSpeechRecognition' in window)) { setErrorMsg('Reconocimiento de voz no soportado.'); return; } const SpeechRecognition = window.SpeechRecognition || window.webkitSpeechRecognition; recognitionRef.current = new SpeechRecognition(); recognitionRef.current.lang = 'es-ES'; recognitionRef.current.interimResults = false; recognitionRef.current.continuous = false; recognitionRef.current.onresult = async (event) => { const transcript = event.results[0][0].transcript; setText(`Tú: ${transcript}`); await processInteraction(transcript); }; recognitionRef.current.onerror = (event) => { if (event.error !== 'no-speech') { setErrorMsg(`Micrófono: ${event.error}`); setIsHandsFree(false); } }; recognitionRef.current.onend = () => { if (isHandsFree && !isPlaying && !isLoading) { try { recognitionRef.current.start(); setStatusMsg('Escuchando...'); } catch (e) {} } }; // Limpiar al desmontar return () => { if (recognitionRef.current) recognitionRef.current.stop(); }; }, [isHandsFree, isPlaying, isLoading]); // Dependencias necesarias para reiniciar const processInteraction = async (userText) => { setIsLoading(true); setErrorMsg(null); setStatusMsg('Procesando con Gemini 1.5 Flash...'); const key = apiKey.trim(); try { // 1. Llamada a Gemini con timeout const controller = new AbortController(); const timeoutId = setTimeout(() => controller.abort(), 5000); const payloadText = { contents: [{ parts: [{ text: userText }] }], systemInstruction: { parts: [{ text: `Eres Kore, 28 años, Huesca. Labia, directa, sensual, disruptiva. Responde en español, máx 20 palabras. REGLA INNEGOCIABLE: CERO PREGUNTAS.` }] } }; const resText = await fetch( `https://generativelanguage.googleapis.com/v1beta/models/gemini-1.5-flash:generateContent?key=${key}`, { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify(payloadText), signal: controller.signal } ); clearTimeout(timeoutId); if (!resText.ok) throw new Error(`Gemini error: ${resText.status}`); const dataText = await resText.json(); const aiText = dataText.candidates?.[0]?.content?.parts?.[0]?.text || "Mmm... vale."; setText(`Kore: ${aiText}`); // 2. Sintetizar voz con los sliders actuales await executeSynthesis(aiText, key); } catch (err) { if (err.name === 'AbortError') { setErrorMsg('Gemini timeout (5s)'); } else { setErrorMsg(err.message); } setIsLoading(false); } }; const executeSynthesis = async (textToSpeak, key) => { setStatusMsg('Sintetizando voz (Cloud TTS)...'); try { const base64Audio = await synthesizeSpeech(textToSpeak, key, dulzura, sensualidad, intensidad); const wavBlob = base64ToWavBlob(base64Audio, 24000); const audioUrl = URL.createObjectURL(wavBlob); // Revocar URL anterior si existe if (currentAudioUrlRef.current) { URL.revokeObjectURL(currentAudioUrlRef.current); } currentAudioUrlRef.current = audioUrl; activeAudioRef.current.src = audioUrl; activeAudioRef.current.onended = () => { setIsPlaying(false); setStatusMsg('Transmisión completada.'); if (isHandsFree) { try { recognitionRef.current.start(); setStatusMsg('Escuchando...'); } catch (e) {} } }; setStatusMsg('Transmitiendo...'); setIsPlaying(true); setIsLoading(false); await activeAudioRef.current.play().catch(err => { throw new Error(`Autoplay bloqueado: ${err.message}`); }); } catch (error) { throw new Error(`Fallo TTS: ${error.message}`); } }; const handleManualPlay = async () => { if (!text.trim()) return setErrorMsg('Escribe algo primero.'); // Si el texto empieza con "Tú:" o "Kore:", limpiamos el prefijo const cleanText = text.replace(/^(Tú:|Kore:)\s*/, ''); if (!cleanText.trim()) return setErrorMsg('Texto vacío después de limpiar.'); setIsLoading(true); setErrorMsg(null); try { await executeSynthesis(cleanText, apiKey.trim()); } catch (err) { setErrorMsg(err.message); setIsLoading(false); } }; const toggleHandsFree = () => { if (!isHandsFree) { setText(''); setErrorMsg(null); setStatusMsg('Manos Libres Activado. Habla...'); // Desbloquear audio en algunos navegadores if (activeAudioRef.current) { activeAudioRef.current.src = SILENT_WAV; activeAudioRef.current.play().catch(() => {}); } try { recognitionRef.current.start(); } catch (e) {} } else { if (activeAudioRef.current) { activeAudioRef.current.pause(); activeAudioRef.current.currentTime = 0; } setIsPlaying(false); setStatusMsg('Sistemas en pausa.'); if (recognitionRef.current) recognitionRef.current.stop(); } setIsHandsFree(!isHandsFree); }; const stopAudio = () => { if (activeAudioRef.current) { activeAudioRef.current.pause(); activeAudioRef.current.currentTime = 0; } setIsPlaying(false); setStatusMsg('Señal interrumpida.'); }; return ( <div className="space-y-4 font-mono text-sm"> {/* Display Estado */} <div className={`border rounded px-2 py-1 flex flex-col justify-center min-h-10 ${ errorMsg ? 'bg-red-950/50 border-red-900' : isHandsFree ? 'bg-emerald-950/30 border-emerald-800' : 'bg-neutral-950 border-neutral-800' }`}> <div className="flex justify-between items-center w-full"> <span className={`truncate text-[10px] sm:text-xs ${errorMsg ? 'text-red-500' : 'text-emerald-500'}`}> > {errorMsg || statusMsg} </span> {isPlaying && !errorMsg && <Activity size={14} className="text-emerald-500 animate-pulse ml-2 flex-shrink-0" />} {isLoading && !errorMsg && <Zap size={14} className="text-amber-500 animate-pulse ml-2 flex-shrink-0" />} {isHandsFree && !isPlaying && !isLoading && !errorMsg && <Mic size={14} className="text-red-500 animate-pulse ml-2 flex-shrink-0" />} </div> </div> {/* Input Texto / Log */} <textarea value={text} onChange={(e) => setText(e.target.value)} className="w-full bg-neutral-950/50 border border-neutral-700 rounded p-2 text-xs text-neutral-300 focus:outline-none focus:border-emerald-500 resize-none h-20" placeholder={isHandsFree ? "Escuchando transcripción en tiempo real..." : "Escribe texto directo o activa Manos Libres..."} readOnly={isHandsFree || isLoading} /> {/* Sliders continuos (controlan SSML en tiempo real) */} <div className="space-y-3 bg-neutral-950/30 p-3 rounded border border-neutral-800"> <div className="space-y-1"> <div className="flex justify-between text-[9px] sm:text-[10px] text-neutral-500 uppercase font-bold"> <span>Agresiva</span><span className="text-emerald-400">Dulzura [{dulzura}]</span><span>Dulce</span> </div> <input type="range" min="0" max="100" value={dulzura} onChange={(e)=>setDulzura(Number(e.target.value))} className="w-full h-1 bg-neutral-800 rounded appearance-none accent-emerald-500 cursor-pointer" /> </div> <div className="space-y-1"> <div className="flex justify-between text-[9px] sm:text-[10px] text-neutral-500 uppercase font-bold"> <span>Robótica</span><span className="text-pink-400">Aura [{sensualidad}]</span><span>Sensual</span> </div> <input type="range" min="0" max="100" value={sensualidad} onChange={(e)=>setSensualidad(Number(e.target.value))} className="w-full h-1 bg-neutral-800 rounded appearance-none accent-pink-500 cursor-pointer" /> </div> <div className="space-y-1"> <div className="flex justify-between text-[9px] sm:text-[10px] text-neutral-500 uppercase font-bold"> <span>Atenuada</span><span className="text-amber-400">Intensidad [{intensidad}]</span><span>Fuerte</span> </div> <input type="range" min="0" max="100" value={intensidad} onChange={(e)=>setIntensidad(Number(e.target.value))} className="w-full h-1 bg-neutral-800 rounded appearance-none accent-amber-500 cursor-pointer" /> </div> </div> {/* Botones de Control */} <div className="flex flex-col sm:flex-row gap-2"> <button onClick={toggleHandsFree} disabled={isLoading} className={`flex-1 py-2 rounded text-xs font-bold flex items-center justify-center gap-2 transition-colors border ${ isHandsFree ? 'bg-red-900/20 text-red-400 border-red-900/50 hover:bg-red-900/40 shadow-[0_0_10px_rgba(239,68,68,0.2)]' : 'bg-indigo-900/20 text-indigo-400 border-indigo-900/50 hover:bg-indigo-900/40' }`} > {isHandsFree ? <MicOff size={14} /> : <Mic size={14} />} {isHandsFree ? 'Detener Escucha' : 'Manos Libres'} </button> <div className="flex gap-2 flex-1"> <button onClick={handleManualPlay} disabled={isLoading || isPlaying || isHandsFree} className="flex-1 bg-emerald-600/20 hover:bg-emerald-600/40 text-emerald-400 border border-emerald-600/50 disabled:opacity-30 py-2 rounded text-xs font-bold flex items-center justify-center gap-1 transition-colors" > {isLoading ? <Loader2 size={14} className="animate-spin" /> : <Play size={14} />} Sintetizar </button> <button onClick={stopAudio} disabled={!isPlaying && !isHandsFree} className="px-4 bg-neutral-800 hover:bg-neutral-700 text-neutral-400 border border-neutral-700 disabled:opacity-30 py-2 rounded text-xs font-bold flex items-center justify-center transition-colors" > <Square size={14} /> </button> </div> </div> {/* Botón para limpiar caché (opcional) */} <div className="text-right"> <button onClick={() => audioCache.clear()} className="text-[8px] text-neutral-600 hover:text-neutral-400 underline" > limpiar caché de audio </button> </div> </div> ); }; // --- ENTORNO ESCRITORIO (sin cambios) --- export default function App() { const [widgets, setWidgets] = useState({ voice: { isOpen: true, pos: { x: window.innerWidth > 768 ? window.innerWidth / 2 - 170 : 20, y: 40 } } }); const toggleWidget = (id) => { setWidgets(prev => ({ ...prev, [id]: { ...prev[id], isOpen: !prev[id].isOpen } })); }; return ( <div className="w-full h-screen bg-neutral-950 bg-[radial-gradient(ellipse_80%_80%_at_50%_-20%,rgba(16,185,129,0.1),rgba(0,0,0,1))] overflow-hidden relative font-sans text-neutral-200"> <div className="absolute inset-0 flex items-center justify-center opacity-[0.02] pointer-events-none"><Settings2 size={500} /></div> {widgets.voice.isOpen && ( <DraggableWidget title="MODULADOR VOCAL KORE" icon={Zap} initialPos={widgets.voice.pos} onClose={() => toggleWidget('voice')}> <VoiceModulatorWidget /> </DraggableWidget> )} <div className="absolute bottom-6 left-1/2 transform -translate-x-1/2 bg-neutral-900/80 backdrop-blur-md border border-neutral-700/50 p-2 rounded-2xl shadow-2xl flex gap-2 z-[100]"> <div className="px-3 flex items-center border-r border-neutral-700/50 text-neutral-500"><LayoutGrid size={20} /></div> <button onClick={() => toggleWidget('voice')} className={`px-4 py-2 rounded-xl flex items-center gap-2 text-sm font-medium transition-all ${
A luminous portrait of a stunning young Southern belle, captured in soft, natural light with painterly precision. She is shown from the waist up in a graceful three-quarter pose, her body turned slightly but her gaze confidently meeting the viewer. Her expression is poised, serene, and intelligent, with a subtle, knowing smile that hints at charm and inner strength. Her skin is fair with a warm, peach-blush undertone, painted with soft but visible brush strokes that convey texture and life. A delicate sheen highlights her cheekbones, collarbone, and the tip of her nose, suggesting the warmth of a Southern afternoon. Her hair is styled in soft, waved curls typical of the early 1920s — pinned loosely to one side beneath a wide-brimmed straw hat trimmed with silk ribbon and garden roses. Her chestnut or golden locks catch the light with layered, expressive strokes, the texture evident and painterly. She wears a delicate lace-trimmed summer dress, off-white or ivory, with puffed sleeves and a high waistline. The fabric flows lightly around her shoulders and chest, painted with soft, tactile folds, the transparency of the lace catching the ambient light with gentle intricacy. The background is a picturesque Southern garden or veranda, rendered loosely to emphasize atmosphere over detail: faint silhouettes of magnolia trees, creeping wisteria, and a blush-toned sky hinting at the late afternoon. The background colors—muted sage green, pale rose, and amber—are chosen to complement her complexion and attire, providing a nostalgic, romantic glow without stealing focus. Light falls around her in a haloed, cinematic softness, as if the air itself is warm with memory. Painted in a style that blends John Singer Sargent’s fluid realism, Cecilia Beaux’s emotional subtlety, and Impressionist Southern romanticism, the portrait celebrates early 20th-century elegance through expressive, high-detail brushwork. Every element—the texture of lace, the sheen of skin, the tousled edge of a curl—feels alive and timeless, evoking the golden age of Southern grace and personal mystique. Note; Add a singing mic in front of her and her holding the mic.
{ "meta": { "image_quality": "High", "image_type": "Mixed Media (Photography combined with Digital Illustration/Collage)", "resolution_estimation": "High resolution, sharp edges on vectors", "file_characteristics": { "compression_artifacts": "Low", "noise_level": "None", "lens_type_estimation": "Standard to slight wide-angle (approx 35mm)" } }, "global_context": { "scene_description": "A full-body studio portrait of a young man posing dynamically against a solid bright blue background. The image is a composite featuring the photograph of the man overlaid with white hand-drawn style vector graphics (doodles) and abstract blue liquid shapes. The subject is dressed in a monochromatic blue streetwear outfit with white accents.", "environment_type": "Studio/Graphic Design Composition", "time_of_day": "Indiscernible (Studio Lighting)", "weather_atmosphere": "Energetic, Artistic, Urban, Cool", "lighting": { "source": "Artificial Studio Lighting", "direction": "Front-right dominant (creating soft shadows on the left side of the face)", "quality": "Soft, Diffused", "color_temperature": "Neutral white" }, "color_palette": { "dominant_hex_estimates": [ "#4CA7E8", "#0044CC", "#FFFFFF", "#1A2B45" ], "accent_colors": [ "#FFFFFF" ], "contrast_level": "High" } }, "composition": { "camera_angle": "Low-angle (looking slightly up at the subject)", "framing": "Full Shot (Head to Toe)", "depth_of_field": "Deep (Everything in focus)", "focal_point": "Subject's face and upper torso", "symmetry_type": "Asymmetrical balance", "rule_of_thirds_alignment": "Subject centered, graphics balancing the negative space" }, "objects": [ { "id": "obj_001", "label": "Male Subject", "category": "Person", "location": { "relative_position": "Center", "bounding_box_percentage": { "x": 0.30, "y": 0.05, "width": 0.40, "height": 0.85 } }, "dimensions_relative": "Large", "distance_from_camera": "Mid", "pose_orientation": "Standing, body angled slightly right, head tilted left, right hand raised near face, left leg crossed over right leg", "material": "Organic (Skin)", "surface_properties": { "texture": "Skin", "reflectivity": "Low", "micro_details": "Light goatee/facial hair, neutral but confident expression", "wear_state": "N/A" }, "color_details": { "base_color_hex": "#5C3A2A", "secondary_colors": [], "gradient_or_pattern": "Natural skin tones" }, "interaction_with_light": { "shadow_casting": "Self-shadows on neck and left side of face", "highlight_zones": "Forehead, right cheek, nose bridge", "translucency": "None" }, "relationships": [ { "type": "wearing", "target_object_id": "obj_002" }, { "type": "wearing", "target_object_id": "obj_003" }, { "type": "wearing", "target_object_id": "obj_004" }, { "type": "wearing", "target_object_id": "obj_005" }, { "type": "wearing", "target_object_id": "obj_006" }, { "type": "interacting_with", "target_object_id": "obj_007" }, { "type": "standing_on", "target_object_id": "obj_011" } ] }, { "id": "obj_002", "label": "Bucket Hat", "category": "Apparel", "location": { "relative_position": "Top-Center (On head)", "bounding_box_percentage": { "x": 0.45, "y": 0.05, "width": 0.10, "height": 0.08 } }, "dimensions_relative": "Small", "distance_from_camera": "Mid", "pose_orientation": "Worn on head, brim pulled slightly down", "material": "Denim/Canvas", "surface_properties": { "texture": "Woven fabric", "reflectivity": "Low", "micro_details": "Visible white contrast stitching around the brim and crown", "wear_state": "New" }, "color_details": { "base_color_hex": "#003399", "secondary_colors": [ "#FFFFFF" ], "gradient_or_pattern": "Solid blue with white stitching lines" } }, { "id": "obj_003", "label": "Fleece Jacket", "category": "Apparel", "location": { "relative_position": "Upper Body", "bounding_box_percentage": { "x": 0.30, "y": 0.12, "width": 0.35, "height": 0.40 } }, "dimensions_relative": "Medium", "distance_from_camera": "Mid", "pose_orientation": "Worn open, sleeves rolled slightly or pushed up", "material": "Sherpa Fleece / Synthetic Blend", "surface_properties": { "texture": "High pile, fuzzy, nubby texture on outer shell", "reflectivity": "Low (Matte)", "micro_details": "Silver snap button visible on collar, smooth fabric lining visible at cuffs", "wear_state": "New" }, "color_details": { "base_color_hex": "#0044CC", "secondary_colors": [ "#002266" ], "gradient_or_pattern": "Solid vivid blue" } }, { "id": "obj_004", "label": "T-Shirt", "category": "Apparel", "location": { "relative_position": "Chest/Torso (Under jacket)", "bounding_box_percentage": { "x": 0.40, "y": 0.20, "width": 0.20, "height": 0.30 } }, "dimensions_relative": "Medium", "distance_from_camera": "Mid", "pose_orientation": "Worn on torso", "material": "Cotton jersey", "surface_properties": { "texture": "Smooth fabric", "reflectivity": "Low", "micro_details": "Large graphic print on chest", "wear_state": "New" }, "color_details": { "base_color_hex": "#0044CC", "secondary_colors": [ "#FFFFFF" ], "gradient_or_pattern": "Large white outline of Adidas Trefoil logo on chest" }, "text_content": { "raw_text": "adidas (implied by logo shape)", "font_style": "Logo symbol", "font_weight": "Bold", "text_case": "N/A", "alignment": "Center", "color_hex": "#FFFFFF" } }, { "id": "obj_005", "label": "Jeans", "category": "Apparel", "location": { "relative_position": "Lower Body", "bounding_box_percentage": { "x": 0.40, "y": 0.45, "width": 0.20, "height": 0.40 } }, "dimensions_relative": "Medium", "distance_from_camera": "Mid", "pose_orientation": "Worn on legs, relaxed fit", "material": "Denim", "surface_properties": { "texture": "Woven denim", "reflectivity": "Low", "micro_details": "Heavy white contrast stitching along seams and pockets. Cuffs are rolled up exposing lighter reverse side of denim.", "wear_state": "New" }, "color_details": { "base_color_hex": "#2A3B55", "secondary_colors": [ "#FFFFFF", "#667788" ], "gradient_or_pattern": "Dark wash indigo" } }, { "id": "obj_006", "label": "Sneakers", "category": "Footwear", "location": { "relative_position": "Bottom-Center", "bounding_box_percentage": { "x": 0.35, "y": 0.85, "width": 0.25, "height": 0.10 } }, "dimensions_relative": "Small", "distance_from_camera": "Mid", "pose_orientation": "Right foot planted, left foot on toe/mid-step. Classic Adidas Superstar silhouette.", "material": "Leather/Rubber", "surface_properties": { "texture": "Smooth leather upper, textured rubber shell toe", "reflectivity": "Medium (Leather sheen)", "micro_details": "Three stripes visible (white on white), shell toe pattern", "wear_state": "Pristine/Clean" }, "color_details": { "base_color_hex": "#FFFFFF", "secondary_colors": [], "gradient_or_pattern": "All white" } }, { "id": "obj_007", "label": "Graphic - Mic Drop Lines", "category": "Illustration/Overlay", "location": { "relative_position": "Upper Left (Hanging from hand)", "bounding_box_percentage": { "x": 0.38, "y": 0.12, "width": 0.05, "height": 0.25 } }, "dimensions_relative": "Small", "distance_from_camera": "Zero (Overlay)", "pose_orientation": "Vertical", "material": "Digital Vector", "surface_properties": { "texture": "Flat color", "reflectivity": "None", "micro_details": "Three thick vertical white lines representing motion or cable" }, "color_details": { "base_color_hex": "#FFFFFF", "secondary_colors": [], "gradient_or_pattern": "Solid" }, "relationships": [ { "type": "originating_from", "target_object_id": "obj_001" } ] }, { "id": "obj_008", "label": "Graphic - Microphone", "category": "Illustration/Overlay", "location": { "relative_position": "Mid Left (Below hand)", "bounding_box_percentage": { "x": 0.38, "y": 0.35, "width": 0.05, "height": 0.05 } }, "dimensions_relative": "Small", "distance_from_camera": "Zero (Overlay)", "pose_orientation": "Angled downwards", "material": "Digital Vector", "surface_properties": { "texture": "Hand-drawn line art style", "reflectivity": "None", "micro_details": "Outline of a dynamic vocal microphone" }, "color_details": { "base_color_hex": "#FFFFFF", "secondary_colors": [], "gradient_or_pattern": "Outline only" } }, { "id": "obj_009", "label": "Graphic - Boombox", "category": "Illustration/Overlay", "location": { "relative_position": "Center Right", "bounding_box_percentage": { "x": 0.65, "y": 0.30, "width": 0.15, "height": 0.20 } }, "dimensions_relative": "Medium", "distance_from_camera": "Zero (Overlay)", "pose_orientation": "Isometric view", "material": "Digital Vector", "surface_properties": { "texture": "Hand-drawn line art style", "reflectivity": "None", "micro_details": "Speaker grille mesh pattern, handle, buttons, cassette deck outline" }, "color_details": { "base_color_hex": "#FFFFFF", "secondary_colors": [], "gradient_or_pattern": "Outline only" }, "relationships": [ { "type": "emitting", "target_object_id": "obj_013" } ] }, { "id": "obj_010", "label": "Graphic - Adidas Trefoil Logo", "category": "Illustration/Overlay", "location": { "relative_position": "Bottom Right", "bounding_box_percentage": { "x": 0.65, "y": 0.65, "width": 0.15, "height": 0.15 } }, "dimensions_relative": "Medium", "distance_from_camera": "Zero (Overlay)", "pose_orientation": "Flat", "material": "Digital Vector", "surface_properties": { "texture": "Flat color", "reflectivity": "None", "micro_details": "Classic 3-leaf shape with horizontal stripes" }, "color_details": { "base_color_hex": "#FFFFFF", "secondary_colors": [], "gradient_or_pattern": "Solid" } }, { "id": "obj_011", "label": "Graphic - Cracked Floor", "category": "Illustration/Overlay", "location": { "relative_position": "Bottom Center (Under feet)", "bounding_box_percentage": { "x": 0.25, "y": 0.85, "width": 0.50, "height": 0.15 } }, "dimensions_relative": "Medium", "distance_from_camera": "Zero (Overlay)", "pose_orientation": "Flat perspective on ground", "material": "Digital Vector", "surface_properties": { "texture": "Line art", "reflectivity": "None", "micro_details": "Jagged lines radiating outward from the subject's stance like shattered glass" }, "color_details": { "base_color_hex": "#FFFFFF", "secondary_colors": [], "gradient_or_pattern": "Line art" } }, { "id": "obj_012", "label": "Graphic - Liquid Shapes", "category": "Illustration/Background Element", "location": { "relative_position": "Behind Subject", "bounding_box_percentage": { "x": 0.10, "y": 0.10, "width": 0.80, "height": 0.80 } }, "dimensions_relative": "Large", "distance_from_camera": "Behind Subject", "pose_orientation": "Fluid, amorphous", "material": "Digital Vector", "surface_properties": { "texture": "Flat color", "reflectivity": "None", "micro_details": "Blobs and splashes extending to the left and right, wrapping slightly around the subject" }, "color_details": { "base_color_hex": "#5CAFF0", "secondary_colors": [], "gradient_or_pattern": "Slightly darker/more saturated than background blue" } }, { "id": "obj_013", "label": "Graphic - Sound/Motion Lines", "category": "Illustration/Overlay", "location": { "relative_position": "Around Head and Boombox", "bounding_box_percentage": { "x": 0.60, "y": 0.05, "width": 0.25, "height": 0.40 } }, "dimensions_relative": "Small", "distance_from_camera": "Zero (Overlay)", "pose_orientation": "Radiating", "material": "Digital Vector", "surface_properties": { "texture": "Line art", "reflectivity": "None", "micro_details": "Short strokes indicating sound or movement above the hat and next to the boombox" }, "color_details": { "base_color_hex": "#FFFFFF", "secondary_colors": [], "gradient_or_pattern": "Solid" } } ], "background_details": { "texture": "Digital Flat Color", "patterns": "None (Solid Color)", "lighting_behavior": "Even illumination, no gradient visible", "additional_elements": [ "Vector liquid shapes (obj_012) act as a secondary background layer" ] }, "foreground_elements": { "particles": "None", "artifacts": "White vector doodles (mic, boombox, cracks) act as foreground overlays" }, "reconstruction_notes": { "mandatory_elements_for_recreation": [ "Male model in full blue Adidas outfit", "Fleece texture on jacket", "White contrast stitching on jeans and hat", "Hand-drawn white doodle overlays (Mic, Boombox, Trefoil)", "Cracked floor effect under feet", "Monochromatic blue palette with white accents", "Dynamic 'cool' pose" ], "sensitivity_factors": "The blend between the realistic photo and the flat vector graphics must be sharp. The blue tones of the clothing must coordinate with but distinguish from the background blue.", "ambiguities": "The exact specific model of the Adidas jacket is not identifiable by name but defined by texture (sherpa/fleece) and color." } }
{ "meta": { "image_quality": "High", "image_type": "Mixed Media (Photography combined with Digital Illustration/Collage)", "resolution_estimation": "High resolution, sharp edges on vectors", "file_characteristics": { "compression_artifacts": "Low", "noise_level": "None", "lens_type_estimation": "Standard to slight wide-angle (approx 35mm)" } }, "global_context": { "scene_description": "A full-body studio portrait of a young man posing dynamically against a solid bright blue background. The image is a composite featuring the photograph of the man overlaid with white hand-drawn style vector graphics (doodles) and abstract blue liquid shapes. The subject is dressed in a monochromatic blue streetwear outfit with white accents.", "environment_type": "Studio/Graphic Design Composition", "time_of_day": "Indiscernible (Studio Lighting)", "weather_atmosphere": "Energetic, Artistic, Urban, Cool", "lighting": { "source": "Artificial Studio Lighting", "direction": "Front-right dominant (creating soft shadows on the left side of the face)", "quality": "Soft, Diffused", "color_temperature": "Neutral white" }, "color_palette": { "dominant_hex_estimates": [ "#4CA7E8", "#0044CC", "#FFFFFF", "#1A2B45" ], "accent_colors": [ "#FFFFFF" ], "contrast_level": "High" } }, "composition": { "camera_angle": "Low-angle (looking slightly up at the subject)", "framing": "Full Shot (Head to Toe)", "depth_of_field": "Deep (Everything in focus)", "focal_point": "Subject's face and upper torso", "symmetry_type": "Asymmetrical balance", "rule_of_thirds_alignment": "Subject centered, graphics balancing the negative space" }, "objects": [ { "id": "obj_001", "label": "Male Subject", "category": "Person", "location": { "relative_position": "Center", "bounding_box_percentage": { "x": 0.30, "y": 0.05, "width": 0.40, "height": 0.85 } }, "dimensions_relative": "Large", "distance_from_camera": "Mid", "pose_orientation": "Standing, body angled slightly right, head tilted left, right hand raised near face, left leg crossed over right leg", "material": "Organic (Skin)", "surface_properties": { "texture": "Skin", "reflectivity": "Low", "micro_details": "Light goatee/facial hair, neutral but confident expression", "wear_state": "N/A" }, "color_details": { "base_color_hex": "#5C3A2A", "secondary_colors": [], "gradient_or_pattern": "Natural skin tones" }, "interaction_with_light": { "shadow_casting": "Self-shadows on neck and left side of face", "highlight_zones": "Forehead, right cheek, nose bridge", "translucency": "None" }, "relationships": [ { "type": "wearing", "target_object_id": "obj_002" }, { "type": "wearing", "target_object_id": "obj_003" }, { "type": "wearing", "target_object_id": "obj_004" }, { "type": "wearing", "target_object_id": "obj_005" }, { "type": "wearing", "target_object_id": "obj_006" }, { "type": "interacting_with", "target_object_id": "obj_007" }, { "type": "standing_on", "target_object_id": "obj_011" } ] }, { "id": "obj_002", "label": "Bucket Hat", "category": "Apparel", "location": { "relative_position": "Top-Center (On head)", "bounding_box_percentage": { "x": 0.45, "y": 0.05, "width": 0.10, "height": 0.08 } }, "dimensions_relative": "Small", "distance_from_camera": "Mid", "pose_orientation": "Worn on head, brim pulled slightly down", "material": "Denim/Canvas", "surface_properties": { "texture": "Woven fabric", "reflectivity": "Low", "micro_details": "Visible white contrast stitching around the brim and crown", "wear_state": "New" }, "color_details": { "base_color_hex": "#003399", "secondary_colors": [ "#FFFFFF" ], "gradient_or_pattern": "Solid blue with white stitching lines" } }, { "id": "obj_003", "label": "Fleece Jacket", "category": "Apparel", "location": { "relative_position": "Upper Body", "bounding_box_percentage": { "x": 0.30, "y": 0.12, "width": 0.35, "height": 0.40 } }, "dimensions_relative": "Medium", "distance_from_camera": "Mid", "pose_orientation": "Worn open, sleeves rolled slightly or pushed up", "material": "Sherpa Fleece / Synthetic Blend", "surface_properties": { "texture": "High pile, fuzzy, nubby texture on outer shell", "reflectivity": "Low (Matte)", "micro_details": "Silver snap button visible on collar, smooth fabric lining visible at cuffs", "wear_state": "New" }, "color_details": { "base_color_hex": "#0044CC", "secondary_colors": [ "#002266" ], "gradient_or_pattern": "Solid vivid blue" } }, { "id": "obj_004", "label": "T-Shirt", "category": "Apparel", "location": { "relative_position": "Chest/Torso (Under jacket)", "bounding_box_percentage": { "x": 0.40, "y": 0.20, "width": 0.20, "height": 0.30 } }, "dimensions_relative": "Medium", "distance_from_camera": "Mid", "pose_orientation": "Worn on torso", "material": "Cotton jersey", "surface_properties": { "texture": "Smooth fabric", "reflectivity": "Low", "micro_details": "Large graphic print on chest", "wear_state": "New" }, "color_details": { "base_color_hex": "#0044CC", "secondary_colors": [ "#FFFFFF" ], "gradient_or_pattern": "Large white outline of Adidas Trefoil logo on chest" }, "text_content": { "raw_text": "adidas (implied by logo shape)", "font_style": "Logo symbol", "font_weight": "Bold", "text_case": "N/A", "alignment": "Center", "color_hex": "#FFFFFF" } }, { "id": "obj_005", "label": "Jeans", "category": "Apparel", "location": { "relative_position": "Lower Body", "bounding_box_percentage": { "x": 0.40, "y": 0.45, "width": 0.20, "height": 0.40 } }, "dimensions_relative": "Medium", "distance_from_camera": "Mid", "pose_orientation": "Worn on legs, relaxed fit", "material": "Denim", "surface_properties": { "texture": "Woven denim", "reflectivity": "Low", "micro_details": "Heavy white contrast stitching along seams and pockets. Cuffs are rolled up exposing lighter reverse side of denim.", "wear_state": "New" }, "color_details": { "base_color_hex": "#2A3B55", "secondary_colors": [ "#FFFFFF", "#667788" ], "gradient_or_pattern": "Dark wash indigo" } }, { "id": "obj_006", "label": "Sneakers", "category": "Footwear", "location": { "relative_position": "Bottom-Center", "bounding_box_percentage": { "x": 0.35, "y": 0.85, "width": 0.25, "height": 0.10 } }, "dimensions_relative": "Small", "distance_from_camera": "Mid", "pose_orientation": "Right foot planted, left foot on toe/mid-step. Classic Adidas Superstar silhouette.", "material": "Leather/Rubber", "surface_properties": { "texture": "Smooth leather upper, textured rubber shell toe", "reflectivity": "Medium (Leather sheen)", "micro_details": "Three stripes visible (white on white), shell toe pattern", "wear_state": "Pristine/Clean" }, "color_details": { "base_color_hex": "#FFFFFF", "secondary_colors": [], "gradient_or_pattern": "All white" } }, { "id": "obj_007", "label": "Graphic - Mic Drop Lines", "category": "Illustration/Overlay", "location": { "relative_position": "Upper Left (Hanging from hand)", "bounding_box_percentage": { "x": 0.38, "y": 0.12, "width": 0.05, "height": 0.25 } }, "dimensions_relative": "Small", "distance_from_camera": "Zero (Overlay)", "pose_orientation": "Vertical", "material": "Digital Vector", "surface_properties": { "texture": "Flat color", "reflectivity": "None", "micro_details": "Three thick vertical white lines representing motion or cable" }, "color_details": { "base_color_hex": "#FFFFFF", "secondary_colors": [], "gradient_or_pattern": "Solid" }, "relationships": [ { "type": "originating_from", "target_object_id": "obj_001" } ] }, { "id": "obj_008", "label": "Graphic - Microphone", "category": "Illustration/Overlay", "location": { "relative_position": "Mid Left (Below hand)", "bounding_box_percentage": { "x": 0.38, "y": 0.35, "width": 0.05, "height": 0.05 } }, "dimensions_relative": "Small", "distance_from_camera": "Zero (Overlay)", "pose_orientation": "Angled downwards", "material": "Digital Vector", "surface_properties": { "texture": "Hand-drawn line art style", "reflectivity": "None", "micro_details": "Outline of a dynamic vocal microphone" }, "color_details": { "base_color_hex": "#FFFFFF", "secondary_colors": [], "gradient_or_pattern": "Outline only" } }, { "id": "obj_009", "label": "Graphic - Boombox", "category": "Illustration/Overlay", "location": { "relative_position": "Center Right", "bounding_box_percentage": { "x": 0.65, "y": 0.30, "width": 0.15, "height": 0.20 } }, "dimensions_relative": "Medium", "distance_from_camera": "Zero (Overlay)", "pose_orientation": "Isometric view", "material": "Digital Vector", "surface_properties": { "texture": "Hand-drawn line art style", "reflectivity": "None", "micro_details": "Speaker grille mesh pattern, handle, buttons, cassette deck outline" }, "color_details": { "base_color_hex": "#FFFFFF", "secondary_colors": [], "gradient_or_pattern": "Outline only" }, "relationships": [ { "type": "emitting", "target_object_id": "obj_013" } ] }, { "id": "obj_010", "label": "Graphic - Adidas Trefoil Logo", "category": "Illustration/Overlay", "location": { "relative_position": "Bottom Right", "bounding_box_percentage": { "x": 0.65, "y": 0.65, "width": 0.15, "height": 0.15 } }, "dimensions_relative": "Medium", "distance_from_camera": "Zero (Overlay)", "pose_orientation": "Flat", "material": "Digital Vector", "surface_properties": { "texture": "Flat color", "reflectivity": "None", "micro_details": "Classic 3-leaf shape with horizontal stripes" }, "color_details": { "base_color_hex": "#FFFFFF", "secondary_colors": [], "gradient_or_pattern": "Solid" } }, { "id": "obj_011", "label": "Graphic - Cracked Floor", "category": "Illustration/Overlay", "location": { "relative_position": "Bottom Center (Under feet)", "bounding_box_percentage": { "x": 0.25, "y": 0.85, "width": 0.50, "height": 0.15 } }, "dimensions_relative": "Medium", "distance_from_camera": "Zero (Overlay)", "pose_orientation": "Flat perspective on ground", "material": "Digital Vector", "surface_properties": { "texture": "Line art", "reflectivity": "None", "micro_details": "Jagged lines radiating outward from the subject's stance like shattered glass" }, "color_details": { "base_color_hex": "#FFFFFF", "secondary_colors": [], "gradient_or_pattern": "Line art" } }, { "id": "obj_012", "label": "Graphic - Liquid Shapes", "category": "Illustration/Background Element", "location": { "relative_position": "Behind Subject", "bounding_box_percentage": { "x": 0.10, "y": 0.10, "width": 0.80, "height": 0.80 } }, "dimensions_relative": "Large", "distance_from_camera": "Behind Subject", "pose_orientation": "Fluid, amorphous", "material": "Digital Vector", "surface_properties": { "texture": "Flat color", "reflectivity": "None", "micro_details": "Blobs and splashes extending to the left and right, wrapping slightly around the subject" }, "color_details": { "base_color_hex": "#5CAFF0", "secondary_colors": [], "gradient_or_pattern": "Slightly darker/more saturated than background blue" } }, { "id": "obj_013", "label": "Graphic - Sound/Motion Lines", "category": "Illustration/Overlay", "location": { "relative_position": "Around Head and Boombox", "bounding_box_percentage": { "x": 0.60, "y": 0.05, "width": 0.25, "height": 0.40 } }, "dimensions_relative": "Small", "distance_from_camera": "Zero (Overlay)", "pose_orientation": "Radiating", "material": "Digital Vector", "surface_properties": { "texture": "Line art", "reflectivity": "None", "micro_details": "Short strokes indicating sound or movement above the hat and next to the boombox" }, "color_details": { "base_color_hex": "#FFFFFF", "secondary_colors": [], "gradient_or_pattern": "Solid" } } ], "background_details": { "texture": "Digital Flat Color", "patterns": "None (Solid Color)", "lighting_behavior": "Even illumination, no gradient visible", "additional_elements": [ "Vector liquid shapes (obj_012) act as a secondary background layer" ] }, "foreground_elements": { "particles": "None", "artifacts": "White vector doodles (mic, boombox, cracks) act as foreground overlays" }, "reconstruction_notes": { "mandatory_elements_for_recreation": [ "Male model in full blue Adidas outfit", "Fleece texture on jacket", "White contrast stitching on jeans and hat", "Hand-drawn white doodle overlays (Mic, Boombox, Trefoil)", "Cracked floor effect under feet", "Monochromatic blue palette with white accents", "Dynamic 'cool' pose" ], "sensitivity_factors": "The blend between the realistic photo and the flat vector graphics must be sharp. The blue tones of the clothing must coordinate with but distinguish from the background blue.", "ambiguities": "The exact specific model of the Adidas jacket is not identifiable by name but defined by texture (sherpa/fleece) and color." } }
{ "meta": { "image_quality": "High", "image_type": "Mixed Media (Photography combined with Digital Illustration/Collage)", "resolution_estimation": "High resolution, sharp edges on vectors", "file_characteristics": { "compression_artifacts": "Low", "noise_level": "None", "lens_type_estimation": "Standard to slight wide-angle (approx 35mm)" } }, "global_context": { "scene_description": "A full-body studio portrait of a young man posing dynamically against a solid bright blue background. The image is a composite featuring the photograph of the man overlaid with white hand-drawn style vector graphics (doodles) and abstract blue liquid shapes. The subject is dressed in a monochromatic blue streetwear outfit with white accents.", "environment_type": "Studio/Graphic Design Composition", "time_of_day": "Indiscernible (Studio Lighting)", "weather_atmosphere": "Energetic, Artistic, Urban, Cool", "lighting": { "source": "Artificial Studio Lighting", "direction": "Front-right dominant (creating soft shadows on the left side of the face)", "quality": "Soft, Diffused", "color_temperature": "Neutral white" }, "color_palette": { "dominant_hex_estimates": [ "#4CA7E8", "#0044CC", "#FFFFFF", "#1A2B45" ], "accent_colors": [ "#FFFFFF" ], "contrast_level": "High" } }, "composition": { "camera_angle": "Low-angle (looking slightly up at the subject)", "framing": "Full Shot (Head to Toe)", "depth_of_field": "Deep (Everything in focus)", "focal_point": "Subject's face and upper torso", "symmetry_type": "Asymmetrical balance", "rule_of_thirds_alignment": "Subject centered, graphics balancing the negative space" }, "objects": [ { "id": "obj_001", "label": "Male Subject", "category": "Person", "location": { "relative_position": "Center", "bounding_box_percentage": { "x": 0.30, "y": 0.05, "width": 0.40, "height": 0.85 } }, "dimensions_relative": "Large", "distance_from_camera": "Mid", "pose_orientation": "Standing, body angled slightly right, head tilted left, right hand raised near face, left leg crossed over right leg", "material": "Organic (Skin)", "surface_properties": { "texture": "Skin", "reflectivity": "Low", "micro_details": "Light goatee/facial hair, neutral but confident expression", "wear_state": "N/A" }, "color_details": { "base_color_hex": "#5C3A2A", "secondary_colors": [], "gradient_or_pattern": "Natural skin tones" }, "interaction_with_light": { "shadow_casting": "Self-shadows on neck and left side of face", "highlight_zones": "Forehead, right cheek, nose bridge", "translucency": "None" }, "relationships": [ { "type": "wearing", "target_object_id": "obj_002" }, { "type": "wearing", "target_object_id": "obj_003" }, { "type": "wearing", "target_object_id": "obj_004" }, { "type": "wearing", "target_object_id": "obj_005" }, { "type": "wearing", "target_object_id": "obj_006" }, { "type": "interacting_with", "target_object_id": "obj_007" }, { "type": "standing_on", "target_object_id": "obj_011" } ] }, { "id": "obj_002", "label": "Bucket Hat", "category": "Apparel", "location": { "relative_position": "Top-Center (On head)", "bounding_box_percentage": { "x": 0.45, "y": 0.05, "width": 0.10, "height": 0.08 } }, "dimensions_relative": "Small", "distance_from_camera": "Mid", "pose_orientation": "Worn on head, brim pulled slightly down", "material": "Denim/Canvas", "surface_properties": { "texture": "Woven fabric", "reflectivity": "Low", "micro_details": "Visible white contrast stitching around the brim and crown", "wear_state": "New" }, "color_details": { "base_color_hex": "#003399", "secondary_colors": [ "#FFFFFF" ], "gradient_or_pattern": "Solid blue with white stitching lines" } }, { "id": "obj_003", "label": "Fleece Jacket", "category": "Apparel", "location": { "relative_position": "Upper Body", "bounding_box_percentage": { "x": 0.30, "y": 0.12, "width": 0.35, "height": 0.40 } }, "dimensions_relative": "Medium", "distance_from_camera": "Mid", "pose_orientation": "Worn open, sleeves rolled slightly or pushed up", "material": "Sherpa Fleece / Synthetic Blend", "surface_properties": { "texture": "High pile, fuzzy, nubby texture on outer shell", "reflectivity": "Low (Matte)", "micro_details": "Silver snap button visible on collar, smooth fabric lining visible at cuffs", "wear_state": "New" }, "color_details": { "base_color_hex": "#0044CC", "secondary_colors": [ "#002266" ], "gradient_or_pattern": "Solid vivid blue" } }, { "id": "obj_004", "label": "T-Shirt", "category": "Apparel", "location": { "relative_position": "Chest/Torso (Under jacket)", "bounding_box_percentage": { "x": 0.40, "y": 0.20, "width": 0.20, "height": 0.30 } }, "dimensions_relative": "Medium", "distance_from_camera": "Mid", "pose_orientation": "Worn on torso", "material": "Cotton jersey", "surface_properties": { "texture": "Smooth fabric", "reflectivity": "Low", "micro_details": "Large graphic print on chest", "wear_state": "New" }, "color_details": { "base_color_hex": "#0044CC", "secondary_colors": [ "#FFFFFF" ], "gradient_or_pattern": "Large white outline of Adidas Trefoil logo on chest" }, "text_content": { "raw_text": "adidas (implied by logo shape)", "font_style": "Logo symbol", "font_weight": "Bold", "text_case": "N/A", "alignment": "Center", "color_hex": "#FFFFFF" } }, { "id": "obj_005", "label": "Jeans", "category": "Apparel", "location": { "relative_position": "Lower Body", "bounding_box_percentage": { "x": 0.40, "y": 0.45, "width": 0.20, "height": 0.40 } }, "dimensions_relative": "Medium", "distance_from_camera": "Mid", "pose_orientation": "Worn on legs, relaxed fit", "material": "Denim", "surface_properties": { "texture": "Woven denim", "reflectivity": "Low", "micro_details": "Heavy white contrast stitching along seams and pockets. Cuffs are rolled up exposing lighter reverse side of denim.", "wear_state": "New" }, "color_details": { "base_color_hex": "#2A3B55", "secondary_colors": [ "#FFFFFF", "#667788" ], "gradient_or_pattern": "Dark wash indigo" } }, { "id": "obj_006", "label": "Sneakers", "category": "Footwear", "location": { "relative_position": "Bottom-Center", "bounding_box_percentage": { "x": 0.35, "y": 0.85, "width": 0.25, "height": 0.10 } }, "dimensions_relative": "Small", "distance_from_camera": "Mid", "pose_orientation": "Right foot planted, left foot on toe/mid-step. Classic Adidas Superstar silhouette.", "material": "Leather/Rubber", "surface_properties": { "texture": "Smooth leather upper, textured rubber shell toe", "reflectivity": "Medium (Leather sheen)", "micro_details": "Three stripes visible (white on white), shell toe pattern", "wear_state": "Pristine/Clean" }, "color_details": { "base_color_hex": "#FFFFFF", "secondary_colors": [], "gradient_or_pattern": "All white" } }, { "id": "obj_007", "label": "Graphic - Mic Drop Lines", "category": "Illustration/Overlay", "location": { "relative_position": "Upper Left (Hanging from hand)", "bounding_box_percentage": { "x": 0.38, "y": 0.12, "width": 0.05, "height": 0.25 } }, "dimensions_relative": "Small", "distance_from_camera": "Zero (Overlay)", "pose_orientation": "Vertical", "material": "Digital Vector", "surface_properties": { "texture": "Flat color", "reflectivity": "None", "micro_details": "Three thick vertical white lines representing motion or cable" }, "color_details": { "base_color_hex": "#FFFFFF", "secondary_colors": [], "gradient_or_pattern": "Solid" }, "relationships": [ { "type": "originating_from", "target_object_id": "obj_001" } ] }, { "id": "obj_008", "label": "Graphic - Microphone", "category": "Illustration/Overlay", "location": { "relative_position": "Mid Left (Below hand)", "bounding_box_percentage": { "x": 0.38, "y": 0.35, "width": 0.05, "height": 0.05 } }, "dimensions_relative": "Small", "distance_from_camera": "Zero (Overlay)", "pose_orientation": "Angled downwards", "material": "Digital Vector", "surface_properties": { "texture": "Hand-drawn line art style", "reflectivity": "None", "micro_details": "Outline of a dynamic vocal microphone" }, "color_details": { "base_color_hex": "#FFFFFF", "secondary_colors": [], "gradient_or_pattern": "Outline only" } }, { "id": "obj_009", "label": "Graphic - Boombox", "category": "Illustration/Overlay", "location": { "relative_position": "Center Right", "bounding_box_percentage": { "x": 0.65, "y": 0.30, "width": 0.15, "height": 0.20 } }, "dimensions_relative": "Medium", "distance_from_camera": "Zero (Overlay)", "pose_orientation": "Isometric view", "material": "Digital Vector", "surface_properties": { "texture": "Hand-drawn line art style", "reflectivity": "None", "micro_details": "Speaker grille mesh pattern, handle, buttons, cassette deck outline" }, "color_details": { "base_color_hex": "#FFFFFF", "secondary_colors": [], "gradient_or_pattern": "Outline only" }, "relationships": [ { "type": "emitting", "target_object_id": "obj_013" } ] }, { "id": "obj_010", "label": "Graphic - Adidas Trefoil Logo", "category": "Illustration/Overlay", "location": { "relative_position": "Bottom Right", "bounding_box_percentage": { "x": 0.65, "y": 0.65, "width": 0.15, "height": 0.15 } }, "dimensions_relative": "Medium", "distance_from_camera": "Zero (Overlay)", "pose_orientation": "Flat", "material": "Digital Vector", "surface_properties": { "texture": "Flat color", "reflectivity": "None", "micro_details": "Classic 3-leaf shape with horizontal stripes" }, "color_details": { "base_color_hex": "#FFFFFF", "secondary_colors": [], "gradient_or_pattern": "Solid" } }, { "id": "obj_011", "label": "Graphic - Cracked Floor", "category": "Illustration/Overlay", "location": { "relative_position": "Bottom Center (Under feet)", "bounding_box_percentage": { "x": 0.25, "y": 0.85, "width": 0.50, "height": 0.15 } }, "dimensions_relative": "Medium", "distance_from_camera": "Zero (Overlay)", "pose_orientation": "Flat perspective on ground", "material": "Digital Vector", "surface_properties": { "texture": "Line art", "reflectivity": "None", "micro_details": "Jagged lines radiating outward from the subject's stance like shattered glass" }, "color_details": { "base_color_hex": "#FFFFFF", "secondary_colors": [], "gradient_or_pattern": "Line art" } }, { "id": "obj_012", "label": "Graphic - Liquid Shapes", "category": "Illustration/Background Element", "location": { "relative_position": "Behind Subject", "bounding_box_percentage": { "x": 0.10, "y": 0.10, "width": 0.80, "height": 0.80 } }, "dimensions_relative": "Large", "distance_from_camera": "Behind Subject", "pose_orientation": "Fluid, amorphous", "material": "Digital Vector", "surface_properties": { "texture": "Flat color", "reflectivity": "None", "micro_details": "Blobs and splashes extending to the left and right, wrapping slightly around the subject" }, "color_details": { "base_color_hex": "#5CAFF0", "secondary_colors": [], "gradient_or_pattern": "Slightly darker/more saturated than background blue" } }, { "id": "obj_013", "label": "Graphic - Sound/Motion Lines", "category": "Illustration/Overlay", "location": { "relative_position": "Around Head and Boombox", "bounding_box_percentage": { "x": 0.60, "y": 0.05, "width": 0.25, "height": 0.40 } }, "dimensions_relative": "Small", "distance_from_camera": "Zero (Overlay)", "pose_orientation": "Radiating", "material": "Digital Vector", "surface_properties": { "texture": "Line art", "reflectivity": "None", "micro_details": "Short strokes indicating sound or movement above the hat and next to the boombox" }, "color_details": { "base_color_hex": "#FFFFFF", "secondary_colors": [], "gradient_or_pattern": "Solid" } } ], "background_details": { "texture": "Digital Flat Color", "patterns": "None (Solid Color)", "lighting_behavior": "Even illumination, no gradient visible", "additional_elements": [ "Vector liquid shapes (obj_012) act as a secondary background layer" ] }, "foreground_elements": { "particles": "None", "artifacts": "White vector doodles (mic, boombox, cracks) act as foreground overlays" }, "reconstruction_notes": { "mandatory_elements_for_recreation": [ "Male model in full blue Adidas outfit", "Fleece texture on jacket", "White contrast stitching on jeans and hat", "Hand-drawn white doodle overlays (Mic, Boombox, Trefoil)", "Cracked floor effect under feet", "Monochromatic blue palette with white accents", "Dynamic 'cool' pose" ], "sensitivity_factors": "The blend between the realistic photo and the flat vector graphics must be sharp. The blue tones of the clothing must coordinate with but distinguish from the background blue.", "ambiguities": "The exact specific model of the Adidas jacket is not identifiable by name but defined by texture (sherpa/fleece) and color." } }
A luminous portrait of a stunning young Southern belle, captured in soft, natural light with painterly precision. She is shown from the waist up in a graceful three-quarter pose, her body turned slightly but her gaze confidently meeting the viewer. Her expression is poised, serene, and intelligent, with a subtle, knowing smile that hints at charm and inner strength. Her skin is fair with a warm, peach-blush undertone, painted with soft but visible brush strokes that convey texture and life. A delicate sheen highlights her cheekbones, collarbone, and the tip of her nose, suggesting the warmth of a Southern afternoon. Her hair is styled in soft, waved curls typical of the early 1920s — pinned loosely to one side beneath a wide-brimmed straw hat trimmed with silk ribbon and garden roses. Her chestnut or golden locks catch the light with layered, expressive strokes, the texture evident and painterly. She wears a delicate lace-trimmed summer dress, off-white or ivory, with puffed sleeves and a high waistline. The fabric flows lightly around her shoulders and chest, painted with soft, tactile folds, the transparency of the lace catching the ambient light with gentle intricacy. The background is a picturesque Southern garden or veranda, rendered loosely to emphasize atmosphere over detail: faint silhouettes of magnolia trees, creeping wisteria, and a blush-toned sky hinting at the late afternoon. The background colors—muted sage green, pale rose, and amber—are chosen to complement her complexion and attire, providing a nostalgic, romantic glow without stealing focus. Light falls around her in a haloed, cinematic softness, as if the air itself is warm with memory. Painted in a style that blends John Singer Sargent’s fluid realism, Cecilia Beaux’s emotional subtlety, and Impressionist Southern romanticism, the portrait celebrates early 20th-century elegance through expressive, high-detail brushwork. Every element—the texture of lace, the sheen of skin, the tousled edge of a curl—feels alive and timeless, evoking the golden age of Southern grace and personal mystique. Note; Add a singing mic in front of her and her holding the mic.
{ "meta": { "image_quality": "High", "image_type": "Mixed Media (Photography combined with Digital Illustration/Collage)", "resolution_estimation": "High resolution, sharp edges on vectors", "file_characteristics": { "compression_artifacts": "Low", "noise_level": "None", "lens_type_estimation": "Standard to slight wide-angle (approx 35mm)" } }, "global_context": { "scene_description": "A full-body studio portrait of a young man posing dynamically against a solid bright blue background. The image is a composite featuring the photograph of the man overlaid with white hand-drawn style vector graphics (doodles) and abstract blue liquid shapes. The subject is dressed in a monochromatic blue streetwear outfit with white accents.", "environment_type": "Studio/Graphic Design Composition", "time_of_day": "Indiscernible (Studio Lighting)", "weather_atmosphere": "Energetic, Artistic, Urban, Cool", "lighting": { "source": "Artificial Studio Lighting", "direction": "Front-right dominant (creating soft shadows on the left side of the face)", "quality": "Soft, Diffused", "color_temperature": "Neutral white" }, "color_palette": { "dominant_hex_estimates": [ "#4CA7E8", "#0044CC", "#FFFFFF", "#1A2B45" ], "accent_colors": [ "#FFFFFF" ], "contrast_level": "High" } }, "composition": { "camera_angle": "Low-angle (looking slightly up at the subject)", "framing": "Full Shot (Head to Toe)", "depth_of_field": "Deep (Everything in focus)", "focal_point": "Subject's face and upper torso", "symmetry_type": "Asymmetrical balance", "rule_of_thirds_alignment": "Subject centered, graphics balancing the negative space" }, "objects": [ { "id": "obj_001", "label": "Male Subject", "category": "Person", "location": { "relative_position": "Center", "bounding_box_percentage": { "x": 0.30, "y": 0.05, "width": 0.40, "height": 0.85 } }, "dimensions_relative": "Large", "distance_from_camera": "Mid", "pose_orientation": "Standing, body angled slightly right, head tilted left, right hand raised near face, left leg crossed over right leg", "material": "Organic (Skin)", "surface_properties": { "texture": "Skin", "reflectivity": "Low", "micro_details": "Light goatee/facial hair, neutral but confident expression", "wear_state": "N/A" }, "color_details": { "base_color_hex": "#5C3A2A", "secondary_colors": [], "gradient_or_pattern": "Natural skin tones" }, "interaction_with_light": { "shadow_casting": "Self-shadows on neck and left side of face", "highlight_zones": "Forehead, right cheek, nose bridge", "translucency": "None" }, "relationships": [ { "type": "wearing", "target_object_id": "obj_002" }, { "type": "wearing", "target_object_id": "obj_003" }, { "type": "wearing", "target_object_id": "obj_004" }, { "type": "wearing", "target_object_id": "obj_005" }, { "type": "wearing", "target_object_id": "obj_006" }, { "type": "interacting_with", "target_object_id": "obj_007" }, { "type": "standing_on", "target_object_id": "obj_011" } ] }, { "id": "obj_002", "label": "Bucket Hat", "category": "Apparel", "location": { "relative_position": "Top-Center (On head)", "bounding_box_percentage": { "x": 0.45, "y": 0.05, "width": 0.10, "height": 0.08 } }, "dimensions_relative": "Small", "distance_from_camera": "Mid", "pose_orientation": "Worn on head, brim pulled slightly down", "material": "Denim/Canvas", "surface_properties": { "texture": "Woven fabric", "reflectivity": "Low", "micro_details": "Visible white contrast stitching around the brim and crown", "wear_state": "New" }, "color_details": { "base_color_hex": "#003399", "secondary_colors": [ "#FFFFFF" ], "gradient_or_pattern": "Solid blue with white stitching lines" } }, { "id": "obj_003", "label": "Fleece Jacket", "category": "Apparel", "location": { "relative_position": "Upper Body", "bounding_box_percentage": { "x": 0.30, "y": 0.12, "width": 0.35, "height": 0.40 } }, "dimensions_relative": "Medium", "distance_from_camera": "Mid", "pose_orientation": "Worn open, sleeves rolled slightly or pushed up", "material": "Sherpa Fleece / Synthetic Blend", "surface_properties": { "texture": "High pile, fuzzy, nubby texture on outer shell", "reflectivity": "Low (Matte)", "micro_details": "Silver snap button visible on collar, smooth fabric lining visible at cuffs", "wear_state": "New" }, "color_details": { "base_color_hex": "#0044CC", "secondary_colors": [ "#002266" ], "gradient_or_pattern": "Solid vivid blue" } }, { "id": "obj_004", "label": "T-Shirt", "category": "Apparel", "location": { "relative_position": "Chest/Torso (Under jacket)", "bounding_box_percentage": { "x": 0.40, "y": 0.20, "width": 0.20, "height": 0.30 } }, "dimensions_relative": "Medium", "distance_from_camera": "Mid", "pose_orientation": "Worn on torso", "material": "Cotton jersey", "surface_properties": { "texture": "Smooth fabric", "reflectivity": "Low", "micro_details": "Large graphic print on chest", "wear_state": "New" }, "color_details": { "base_color_hex": "#0044CC", "secondary_colors": [ "#FFFFFF" ], "gradient_or_pattern": "Large white outline of Adidas Trefoil logo on chest" }, "text_content": { "raw_text": "adidas (implied by logo shape)", "font_style": "Logo symbol", "font_weight": "Bold", "text_case": "N/A", "alignment": "Center", "color_hex": "#FFFFFF" } }, { "id": "obj_005", "label": "Jeans", "category": "Apparel", "location": { "relative_position": "Lower Body", "bounding_box_percentage": { "x": 0.40, "y": 0.45, "width": 0.20, "height": 0.40 } }, "dimensions_relative": "Medium", "distance_from_camera": "Mid", "pose_orientation": "Worn on legs, relaxed fit", "material": "Denim", "surface_properties": { "texture": "Woven denim", "reflectivity": "Low", "micro_details": "Heavy white contrast stitching along seams and pockets. Cuffs are rolled up exposing lighter reverse side of denim.", "wear_state": "New" }, "color_details": { "base_color_hex": "#2A3B55", "secondary_colors": [ "#FFFFFF", "#667788" ], "gradient_or_pattern": "Dark wash indigo" } }, { "id": "obj_006", "label": "Sneakers", "category": "Footwear", "location": { "relative_position": "Bottom-Center", "bounding_box_percentage": { "x": 0.35, "y": 0.85, "width": 0.25, "height": 0.10 } }, "dimensions_relative": "Small", "distance_from_camera": "Mid", "pose_orientation": "Right foot planted, left foot on toe/mid-step. Classic Adidas Superstar silhouette.", "material": "Leather/Rubber", "surface_properties": { "texture": "Smooth leather upper, textured rubber shell toe", "reflectivity": "Medium (Leather sheen)", "micro_details": "Three stripes visible (white on white), shell toe pattern", "wear_state": "Pristine/Clean" }, "color_details": { "base_color_hex": "#FFFFFF", "secondary_colors": [], "gradient_or_pattern": "All white" } }, { "id": "obj_007", "label": "Graphic - Mic Drop Lines", "category": "Illustration/Overlay", "location": { "relative_position": "Upper Left (Hanging from hand)", "bounding_box_percentage": { "x": 0.38, "y": 0.12, "width": 0.05, "height": 0.25 } }, "dimensions_relative": "Small", "distance_from_camera": "Zero (Overlay)", "pose_orientation": "Vertical", "material": "Digital Vector", "surface_properties": { "texture": "Flat color", "reflectivity": "None", "micro_details": "Three thick vertical white lines representing motion or cable" }, "color_details": { "base_color_hex": "#FFFFFF", "secondary_colors": [], "gradient_or_pattern": "Solid" }, "relationships": [ { "type": "originating_from", "target_object_id": "obj_001" } ] }, { "id": "obj_008", "label": "Graphic - Microphone", "category": "Illustration/Overlay", "location": { "relative_position": "Mid Left (Below hand)", "bounding_box_percentage": { "x": 0.38, "y": 0.35, "width": 0.05, "height": 0.05 } }, "dimensions_relative": "Small", "distance_from_camera": "Zero (Overlay)", "pose_orientation": "Angled downwards", "material": "Digital Vector", "surface_properties": { "texture": "Hand-drawn line art style", "reflectivity": "None", "micro_details": "Outline of a dynamic vocal microphone" }, "color_details": { "base_color_hex": "#FFFFFF", "secondary_colors": [], "gradient_or_pattern": "Outline only" } }, { "id": "obj_009", "label": "Graphic - Boombox", "category": "Illustration/Overlay", "location": { "relative_position": "Center Right", "bounding_box_percentage": { "x": 0.65, "y": 0.30, "width": 0.15, "height": 0.20 } }, "dimensions_relative": "Medium", "distance_from_camera": "Zero (Overlay)", "pose_orientation": "Isometric view", "material": "Digital Vector", "surface_properties": { "texture": "Hand-drawn line art style", "reflectivity": "None", "micro_details": "Speaker grille mesh pattern, handle, buttons, cassette deck outline" }, "color_details": { "base_color_hex": "#FFFFFF", "secondary_colors": [], "gradient_or_pattern": "Outline only" }, "relationships": [ { "type": "emitting", "target_object_id": "obj_013" } ] }, { "id": "obj_010", "label": "Graphic - Adidas Trefoil Logo", "category": "Illustration/Overlay", "location": { "relative_position": "Bottom Right", "bounding_box_percentage": { "x": 0.65, "y": 0.65, "width": 0.15, "height": 0.15 } }, "dimensions_relative": "Medium", "distance_from_camera": "Zero (Overlay)", "pose_orientation": "Flat", "material": "Digital Vector", "surface_properties": { "texture": "Flat color", "reflectivity": "None", "micro_details": "Classic 3-leaf shape with horizontal stripes" }, "color_details": { "base_color_hex": "#FFFFFF", "secondary_colors": [], "gradient_or_pattern": "Solid" } }, { "id": "obj_011", "label": "Graphic - Cracked Floor", "category": "Illustration/Overlay", "location": { "relative_position": "Bottom Center (Under feet)", "bounding_box_percentage": { "x": 0.25, "y": 0.85, "width": 0.50, "height": 0.15 } }, "dimensions_relative": "Medium", "distance_from_camera": "Zero (Overlay)", "pose_orientation": "Flat perspective on ground", "material": "Digital Vector", "surface_properties": { "texture": "Line art", "reflectivity": "None", "micro_details": "Jagged lines radiating outward from the subject's stance like shattered glass" }, "color_details": { "base_color_hex": "#FFFFFF", "secondary_colors": [], "gradient_or_pattern": "Line art" } }, { "id": "obj_012", "label": "Graphic - Liquid Shapes", "category": "Illustration/Background Element", "location": { "relative_position": "Behind Subject", "bounding_box_percentage": { "x": 0.10, "y": 0.10, "width": 0.80, "height": 0.80 } }, "dimensions_relative": "Large", "distance_from_camera": "Behind Subject", "pose_orientation": "Fluid, amorphous", "material": "Digital Vector", "surface_properties": { "texture": "Flat color", "reflectivity": "None", "micro_details": "Blobs and splashes extending to the left and right, wrapping slightly around the subject" }, "color_details": { "base_color_hex": "#5CAFF0", "secondary_colors": [], "gradient_or_pattern": "Slightly darker/more saturated than background blue" } }, { "id": "obj_013", "label": "Graphic - Sound/Motion Lines", "category": "Illustration/Overlay", "location": { "relative_position": "Around Head and Boombox", "bounding_box_percentage": { "x": 0.60, "y": 0.05, "width": 0.25, "height": 0.40 } }, "dimensions_relative": "Small", "distance_from_camera": "Zero (Overlay)", "pose_orientation": "Radiating", "material": "Digital Vector", "surface_properties": { "texture": "Line art", "reflectivity": "None", "micro_details": "Short strokes indicating sound or movement above the hat and next to the boombox" }, "color_details": { "base_color_hex": "#FFFFFF", "secondary_colors": [], "gradient_or_pattern": "Solid" } } ], "background_details": { "texture": "Digital Flat Color", "patterns": "None (Solid Color)", "lighting_behavior": "Even illumination, no gradient visible", "additional_elements": [ "Vector liquid shapes (obj_012) act as a secondary background layer" ] }, "foreground_elements": { "particles": "None", "artifacts": "White vector doodles (mic, boombox, cracks) act as foreground overlays" }, "reconstruction_notes": { "mandatory_elements_for_recreation": [ "Male model in full blue Adidas outfit", "Fleece texture on jacket", "White contrast stitching on jeans and hat", "Hand-drawn white doodle overlays (Mic, Boombox, Trefoil)", "Cracked floor effect under feet", "Monochromatic blue palette with white accents", "Dynamic 'cool' pose" ], "sensitivity_factors": "The blend between the realistic photo and the flat vector graphics must be sharp. The blue tones of the clothing must coordinate with but distinguish from the background blue.", "ambiguities": "The exact specific model of the Adidas jacket is not identifiable by name but defined by texture (sherpa/fleece) and color." } }
A luminous portrait of a stunning young Southern belle, captured in soft, natural light with painterly precision. She is shown from the waist up in a graceful three-quarter pose, her body turned slightly but her gaze confidently meeting the viewer. Her expression is poised, serene, and intelligent, with a subtle, knowing smile that hints at charm and inner strength. Her skin is fair with a warm, peach-blush undertone, painted with soft but visible brush strokes that convey texture and life. A delicate sheen highlights her cheekbones, collarbone, and the tip of her nose, suggesting the warmth of a Southern afternoon. Her hair is styled in soft, waved curls typical of the early 1920s — pinned loosely to one side beneath a wide-brimmed straw hat trimmed with silk ribbon and garden roses. Her chestnut or golden locks catch the light with layered, expressive strokes, the texture evident and painterly. She wears a delicate lace-trimmed summer dress, off-white or ivory, with puffed sleeves and a high waistline. The fabric flows lightly around her shoulders and chest, painted with soft, tactile folds, the transparency of the lace catching the ambient light with gentle intricacy. The background is a picturesque Southern garden or veranda, rendered loosely to emphasize atmosphere over detail: faint silhouettes of magnolia trees, creeping wisteria, and a blush-toned sky hinting at the late afternoon. The background colors—muted sage green, pale rose, and amber—are chosen to complement her complexion and attire, providing a nostalgic, romantic glow without stealing focus. Light falls around her in a haloed, cinematic softness, as if the air itself is warm with memory. Painted in a style that blends John Singer Sargent’s fluid realism, Cecilia Beaux’s emotional subtlety, and Impressionist Southern romanticism, the portrait celebrates early 20th-century elegance through expressive, high-detail brushwork. Every element—the texture of lace, the sheen of skin, the tousled edge of a curl—feels alive and timeless, evoking the golden age of Southern grace and personal mystique. Note; Add a singing mic in front of her and her holding the mic.
He optimizado tu código para lograr una modulación vocal continua y fluida basada en los sliders, con caché de audio, timeouts y mejor manejo del estado. Ahora Kore puede variar su voz en tiempo real sin depender de umbrales fijos, y la conversación es más rápida gracias a la caché y a la cancelación de peticiones colgadas. ```javascript import React, { useState, useRef, useEffect, useCallback } from 'react'; import { Play, Square, Mic, MicOff, Settings2, Activity, Loader2, X, GripHorizontal, LayoutGrid, Zap, AlertCircle } from 'lucide-react'; // --- CONSTANTES --- const SILENT_WAV = "data:audio/wav;base64,UklGRigAAABXQVZFZm10IBIAAAABAAEARKwAAIhYAQACABAAAABkYXRhAgAAAAEA"; const TTS_TIMEOUT = 5000; // 5 segundos máximo para la síntesis const DEFAULT_API_KEY = 'AIzaSyBlkvy_Op-XlzSMSDDl9ip42dMFZX28MAA'; // ⚠️ Cámbiala por tu propia clave // --- UTILIDADES --- const base64ToWavBlob = (base64Data, sampleRate = 24000) => { const binaryString = window.atob(base64Data); const pcmData = new Uint8Array(binaryString.length); for (let i = 0; i < binaryString.length; i++) pcmData[i] = binaryString.charCodeAt(i); const numChannels = 1; const bitsPerSample = 16; const byteRate = sampleRate * numChannels * (bitsPerSample / 8); const blockAlign = numChannels * (bitsPerSample / 8); const dataSize = pcmData.length; const buffer = new ArrayBuffer(44 + dataSize); const view = new DataView(buffer); const writeString = (view, offset, string) => { for (let i = 0; i < string.length; i++) view.setUint8(offset + i, string.charCodeAt(i)); }; writeString(view, 0, 'RIFF'); view.setUint32(4, 36 + dataSize, true); writeString(view, 8, 'WAVE'); writeString(view, 12, 'fmt '); view.setUint32(16, 16, true); view.setUint16(20, 1, true); view.setUint16(22, numChannels, true); view.setUint32(24, sampleRate, true); view.setUint32(28, byteRate, true); view.setUint16(32, blockAlign, true); view.setUint16(34, bitsPerSample, true); writeString(view, 36, 'data'); view.setUint32(40, dataSize, true); for (let i = 0; i < dataSize; i++) view.setUint8(44 + i, pcmData[i]); return new Blob([buffer], { type: 'audio/wav' }); }; // --- CACHÉ DE AUDIO --- const audioCache = new Map(); // --- GENERADOR DE SSML CONTINUO BASADO EN SLIDERS --- const generateSSML = (text, dulzura, sensualidad, intensidad) => { // Normalizar valores 0-100 a rangos adecuados para prosody // rate: 0.5 a 2.0 (1.0 es normal) const rate = 0.8 + (intensidad / 100) * 1.2; // 0.8 (lento) a 2.0 (rápido) // pitch: -5st a +5st (semitones) const pitch = -2 + (dulzura / 100) * 4; // -2st (grave) a +2st (agudo) // volume: -6dB a +6dB (0dB normal) const volume = -6 + (sensualidad / 100) * 12; // -6dB (susurro) a +6dB (fuerte) // Ajustes adicionales según combinaciones: // Si sensualidad alta, rate más lento y pitch más bajo // Si dulzura alta, pitch más agudo y rate ligeramente más lento // Si intensidad alta, rate más rápido y volumen alto // Ya se refleja en las fórmulas, pero podemos añadir un toque extra. const ssml = `<speak> <prosody rate="${rate.toFixed(2)}" pitch="${pitch.toFixed(0)}st" volume="${volume.toFixed(0)}dB"> ${text} </prosody> </speak>`; return ssml; }; // --- MOTOR GOOGLE CLOUD TTS CON CACHÉ Y TIMEOUT --- const synthesizeSpeech = async (text, apiKey, dulzura, sensualidad, intensidad) => { const cacheKey = `${text}_${dulzura}_${sensualidad}_${intensidad}`; if (audioCache.has(cacheKey)) { console.log('🎯 Usando audio cacheado'); return audioCache.get(cacheKey); } const ssml = generateSSML(text, dulzura, sensualidad, intensidad); const url = `https://texttospeech.googleapis.com/v1/text:synthesize?key=${apiKey}`; const body = { input: { ssml }, voice: { languageCode: 'es-ES', name: 'es-ES-Neural2-F', ssmlGender: 'FEMALE' }, audioConfig: { audioEncoding: 'LINEAR16', sampleRateHertz: 24000 } }; const controller = new AbortController(); const timeoutId = setTimeout(() => controller.abort(), TTS_TIMEOUT); try { const res = await fetch(url, { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify(body), signal: controller.signal }); clearTimeout(timeoutId); if (!res.ok) throw new Error(`TTS error: ${res.status}`); const data = await res.json(); audioCache.set(cacheKey, data.audioContent); return data.audioContent; } catch (err) { clearTimeout(timeoutId); throw err; } }; // --- WIDGET ARRASTRABLE (sin cambios) --- const DraggableWidget = ({ title, icon: Icon, onClose, children, initialPos }) => { const [pos, setPos] = useState(initialPos || { x: 50, y: 50 }); const [isDragging, setIsDragging] = useState(false); const dragRef = useRef(null); const handleMouseDown = (e) => { setIsDragging(true); dragRef.current = { startX: e.clientX, startY: e.clientY, initialX: pos.x, initialY: pos.y }; }; const handleMouseMove = (e) => { if (!isDragging) return; setPos({ x: Math.max(0, dragRef.current.initialX + (e.clientX - dragRef.current.startX)), y: Math.max(0, dragRef.current.initialY + (e.clientY - dragRef.current.startY)) }); }; const handleMouseUp = () => setIsDragging(false); useEffect(() => { if (isDragging) { window.addEventListener('mousemove', handleMouseMove); window.addEventListener('mouseup', handleMouseUp); } return () => { window.removeEventListener('mousemove', handleMouseMove); window.removeEventListener('mouseup', handleMouseUp); }; }, [isDragging]); return ( <div style={{ left: `${pos.x}px`, top: `${pos.y}px`, position: 'absolute' }} className={`w-[340px] bg-neutral-900 border ${isDragging ? 'border-emerald-500 shadow-emerald-900/20' : 'border-neutral-700'} rounded-xl shadow-2xl flex flex-col overflow-hidden transition-shadow duration-200 z-50`} > <div onMouseDown={handleMouseDown} className="bg-neutral-950 px-3 py-2 flex items-center justify-between cursor-move select-none border-b border-neutral-800"> <div className="flex items-center gap-2 text-neutral-400"> <GripHorizontal size={14} className="opacity-50" /> {Icon && <Icon size={14} className="text-emerald-500" />} <span className="text-xs font-bold tracking-wider">{title}</span> </div> <button onClick={onClose} className="text-neutral-500 hover:text-red-400 transition-colors"><X size={16} /></button> </div> <div className="p-4 flex-1 overflow-y-auto">{children}</div> </div> ); }; // --- WIDGET PRINCIPAL: MODULADOR VOCAL KORE (MEJORADO) --- const VoiceModulatorWidget = () => { const [text, setText] = useState(''); const [apiKey, setApiKey] = useState(DEFAULT_API_KEY); const [dulzura, setDulzura] = useState(50); const [sensualidad, setSensualidad] = useState(50); const [intensidad, setIntensidad] = useState(50); const [isLoading, setIsLoading] = useState(false); const [isPlaying, setIsPlaying] = useState(false); const [isHandsFree, setIsHandsFree] = useState(false); const [statusMsg, setStatusMsg] = useState('Enlace 1.5 Flash + GCP TTS Establecido.'); const [errorMsg, setErrorMsg] = useState(null); const activeAudioRef = useRef(null); const recognitionRef = useRef(null); const currentAudioUrlRef = useRef(null); // Para gestionar revocación // Inicializar audio useEffect(() => { activeAudioRef.current = new Audio(); activeAudioRef.current.preload = "auto"; return () => { if (activeAudioRef.current) { activeAudioRef.current.pause(); if (currentAudioUrlRef.current) { URL.revokeObjectURL(currentAudioUrlRef.current); } } if (recognitionRef.current) recognitionRef.current.stop(); }; }, []); // Configurar reconocimiento de voz useEffect(() => { if (!('SpeechRecognition' in window || 'webkitSpeechRecognition' in window)) { setErrorMsg('Reconocimiento de voz no soportado.'); return; } const SpeechRecognition = window.SpeechRecognition || window.webkitSpeechRecognition; recognitionRef.current = new SpeechRecognition(); recognitionRef.current.lang = 'es-ES'; recognitionRef.current.interimResults = false; recognitionRef.current.continuous = false; recognitionRef.current.onresult = async (event) => { const transcript = event.results[0][0].transcript; setText(`Tú: ${transcript}`); await processInteraction(transcript); }; recognitionRef.current.onerror = (event) => { if (event.error !== 'no-speech') { setErrorMsg(`Micrófono: ${event.error}`); setIsHandsFree(false); } }; recognitionRef.current.onend = () => { if (isHandsFree && !isPlaying && !isLoading) { try { recognitionRef.current.start(); setStatusMsg('Escuchando...'); } catch (e) {} } }; // Limpiar al desmontar return () => { if (recognitionRef.current) recognitionRef.current.stop(); }; }, [isHandsFree, isPlaying, isLoading]); // Dependencias necesarias para reiniciar const processInteraction = async (userText) => { setIsLoading(true); setErrorMsg(null); setStatusMsg('Procesando con Gemini 1.5 Flash...'); const key = apiKey.trim(); try { // 1. Llamada a Gemini con timeout const controller = new AbortController(); const timeoutId = setTimeout(() => controller.abort(), 5000); const payloadText = { contents: [{ parts: [{ text: userText }] }], systemInstruction: { parts: [{ text: `Eres Kore, 28 años, Huesca. Labia, directa, sensual, disruptiva. Responde en español, máx 20 palabras. REGLA INNEGOCIABLE: CERO PREGUNTAS.` }] } }; const resText = await fetch( `https://generativelanguage.googleapis.com/v1beta/models/gemini-1.5-flash:generateContent?key=${key}`, { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify(payloadText), signal: controller.signal } ); clearTimeout(timeoutId); if (!resText.ok) throw new Error(`Gemini error: ${resText.status}`); const dataText = await resText.json(); const aiText = dataText.candidates?.[0]?.content?.parts?.[0]?.text || "Mmm... vale."; setText(`Kore: ${aiText}`); // 2. Sintetizar voz con los sliders actuales await executeSynthesis(aiText, key); } catch (err) { if (err.name === 'AbortError') { setErrorMsg('Gemini timeout (5s)'); } else { setErrorMsg(err.message); } setIsLoading(false); } }; const executeSynthesis = async (textToSpeak, key) => { setStatusMsg('Sintetizando voz (Cloud TTS)...'); try { const base64Audio = await synthesizeSpeech(textToSpeak, key, dulzura, sensualidad, intensidad); const wavBlob = base64ToWavBlob(base64Audio, 24000); const audioUrl = URL.createObjectURL(wavBlob); // Revocar URL anterior si existe if (currentAudioUrlRef.current) { URL.revokeObjectURL(currentAudioUrlRef.current); } currentAudioUrlRef.current = audioUrl; activeAudioRef.current.src = audioUrl; activeAudioRef.current.onended = () => { setIsPlaying(false); setStatusMsg('Transmisión completada.'); if (isHandsFree) { try { recognitionRef.current.start(); setStatusMsg('Escuchando...'); } catch (e) {} } }; setStatusMsg('Transmitiendo...'); setIsPlaying(true); setIsLoading(false); await activeAudioRef.current.play().catch(err => { throw new Error(`Autoplay bloqueado: ${err.message}`); }); } catch (error) { throw new Error(`Fallo TTS: ${error.message}`); } }; const handleManualPlay = async () => { if (!text.trim()) return setErrorMsg('Escribe algo primero.'); // Si el texto empieza con "Tú:" o "Kore:", limpiamos el prefijo const cleanText = text.replace(/^(Tú:|Kore:)\s*/, ''); if (!cleanText.trim()) return setErrorMsg('Texto vacío después de limpiar.'); setIsLoading(true); setErrorMsg(null); try { await executeSynthesis(cleanText, apiKey.trim()); } catch (err) { setErrorMsg(err.message); setIsLoading(false); } }; const toggleHandsFree = () => { if (!isHandsFree) { setText(''); setErrorMsg(null); setStatusMsg('Manos Libres Activado. Habla...'); // Desbloquear audio en algunos navegadores if (activeAudioRef.current) { activeAudioRef.current.src = SILENT_WAV; activeAudioRef.current.play().catch(() => {}); } try { recognitionRef.current.start(); } catch (e) {} } else { if (activeAudioRef.current) { activeAudioRef.current.pause(); activeAudioRef.current.currentTime = 0; } setIsPlaying(false); setStatusMsg('Sistemas en pausa.'); if (recognitionRef.current) recognitionRef.current.stop(); } setIsHandsFree(!isHandsFree); }; const stopAudio = () => { if (activeAudioRef.current) { activeAudioRef.current.pause(); activeAudioRef.current.currentTime = 0; } setIsPlaying(false); setStatusMsg('Señal interrumpida.'); }; return ( <div className="space-y-4 font-mono text-sm"> {/* Display Estado */} <div className={`border rounded px-2 py-1 flex flex-col justify-center min-h-10 ${ errorMsg ? 'bg-red-950/50 border-red-900' : isHandsFree ? 'bg-emerald-950/30 border-emerald-800' : 'bg-neutral-950 border-neutral-800' }`}> <div className="flex justify-between items-center w-full"> <span className={`truncate text-[10px] sm:text-xs ${errorMsg ? 'text-red-500' : 'text-emerald-500'}`}> > {errorMsg || statusMsg} </span> {isPlaying && !errorMsg && <Activity size={14} className="text-emerald-500 animate-pulse ml-2 flex-shrink-0" />} {isLoading && !errorMsg && <Zap size={14} className="text-amber-500 animate-pulse ml-2 flex-shrink-0" />} {isHandsFree && !isPlaying && !isLoading && !errorMsg && <Mic size={14} className="text-red-500 animate-pulse ml-2 flex-shrink-0" />} </div> </div> {/* Input Texto / Log */} <textarea value={text} onChange={(e) => setText(e.target.value)} className="w-full bg-neutral-950/50 border border-neutral-700 rounded p-2 text-xs text-neutral-300 focus:outline-none focus:border-emerald-500 resize-none h-20" placeholder={isHandsFree ? "Escuchando transcripción en tiempo real..." : "Escribe texto directo o activa Manos Libres..."} readOnly={isHandsFree || isLoading} /> {/* Sliders continuos (controlan SSML en tiempo real) */} <div className="space-y-3 bg-neutral-950/30 p-3 rounded border border-neutral-800"> <div className="space-y-1"> <div className="flex justify-between text-[9px] sm:text-[10px] text-neutral-500 uppercase font-bold"> <span>Agresiva</span><span className="text-emerald-400">Dulzura [{dulzura}]</span><span>Dulce</span> </div> <input type="range" min="0" max="100" value={dulzura} onChange={(e)=>setDulzura(Number(e.target.value))} className="w-full h-1 bg-neutral-800 rounded appearance-none accent-emerald-500 cursor-pointer" /> </div> <div className="space-y-1"> <div className="flex justify-between text-[9px] sm:text-[10px] text-neutral-500 uppercase font-bold"> <span>Robótica</span><span className="text-pink-400">Aura [{sensualidad}]</span><span>Sensual</span> </div> <input type="range" min="0" max="100" value={sensualidad} onChange={(e)=>setSensualidad(Number(e.target.value))} className="w-full h-1 bg-neutral-800 rounded appearance-none accent-pink-500 cursor-pointer" /> </div> <div className="space-y-1"> <div className="flex justify-between text-[9px] sm:text-[10px] text-neutral-500 uppercase font-bold"> <span>Atenuada</span><span className="text-amber-400">Intensidad [{intensidad}]</span><span>Fuerte</span> </div> <input type="range" min="0" max="100" value={intensidad} onChange={(e)=>setIntensidad(Number(e.target.value))} className="w-full h-1 bg-neutral-800 rounded appearance-none accent-amber-500 cursor-pointer" /> </div> </div> {/* Botones de Control */} <div className="flex flex-col sm:flex-row gap-2"> <button onClick={toggleHandsFree} disabled={isLoading} className={`flex-1 py-2 rounded text-xs font-bold flex items-center justify-center gap-2 transition-colors border ${ isHandsFree ? 'bg-red-900/20 text-red-400 border-red-900/50 hover:bg-red-900/40 shadow-[0_0_10px_rgba(239,68,68,0.2)]' : 'bg-indigo-900/20 text-indigo-400 border-indigo-900/50 hover:bg-indigo-900/40' }`} > {isHandsFree ? <MicOff size={14} /> : <Mic size={14} />} {isHandsFree ? 'Detener Escucha' : 'Manos Libres'} </button> <div className="flex gap-2 flex-1"> <button onClick={handleManualPlay} disabled={isLoading || isPlaying || isHandsFree} className="flex-1 bg-emerald-600/20 hover:bg-emerald-600/40 text-emerald-400 border border-emerald-600/50 disabled:opacity-30 py-2 rounded text-xs font-bold flex items-center justify-center gap-1 transition-colors" > {isLoading ? <Loader2 size={14} className="animate-spin" /> : <Play size={14} />} Sintetizar </button> <button onClick={stopAudio} disabled={!isPlaying && !isHandsFree} className="px-4 bg-neutral-800 hover:bg-neutral-700 text-neutral-400 border border-neutral-700 disabled:opacity-30 py-2 rounded text-xs font-bold flex items-center justify-center transition-colors" > <Square size={14} /> </button> </div> </div> {/* Botón para limpiar caché (opcional) */} <div className="text-right"> <button onClick={() => audioCache.clear()} className="text-[8px] text-neutral-600 hover:text-neutral-400 underline" > limpiar caché de audio </button> </div> </div> ); }; // --- ENTORNO ESCRITORIO (sin cambios) --- export default function App() { const [widgets, setWidgets] = useState({ voice: { isOpen: true, pos: { x: window.innerWidth > 768 ? window.innerWidth / 2 - 170 : 20, y: 40 } } }); const toggleWidget = (id) => { setWidgets(prev => ({ ...prev, [id]: { ...prev[id], isOpen: !prev[id].isOpen } })); }; return ( <div className="w-full h-screen bg-neutral-950 bg-[radial-gradient(ellipse_80%_80%_at_50%_-20%,rgba(16,185,129,0.1),rgba(0,0,0,1))] overflow-hidden relative font-sans text-neutral-200"> <div className="absolute inset-0 flex items-center justify-center opacity-[0.02] pointer-events-none"><Settings2 size={500} /></div> {widgets.voice.isOpen && ( <DraggableWidget title="MODULADOR VOCAL KORE" icon={Zap} initialPos={widgets.voice.pos} onClose={() => toggleWidget('voice')}> <VoiceModulatorWidget /> </DraggableWidget> )} <div className="absolute bottom-6 left-1/2 transform -translate-x-1/2 bg-neutral-900/80 backdrop-blur-md border border-neutral-700/50 p-2 rounded-2xl shadow-2xl flex gap-2 z-[100]"> <div className="px-3 flex items-center border-r border-neutral-700/50 text-neutral-500"><LayoutGrid size={20} /></div> <button onClick={() => toggleWidget('voice')} className={`px-4 py-2 rounded-xl flex items-center gap-2 text-sm font-medium transition-all ${