studio-lumiere-cli 0.1.6 → 0.1.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -40,7 +40,8 @@ export const TEMPLATES = [
40
40
  { id: 'nail_french', name: 'French Manicure', value: 'classic french tip manicure', visualColor: '#FDF5E6' },
41
41
  { id: 'nail_natural', name: 'Natural & Clean', value: 'clean, natural unpainted nails with a clear healthy coat', visualColor: '#F3EFE0' },
42
42
  { id: 'nail_dark', name: 'Noir / Dark', value: 'chic dark black or burgundy nail polish', visualColor: '#1A1A1A' }
43
- ]
43
+ ],
44
+ hasModel: true
44
45
  },
45
46
  {
46
47
  id: 'neck_model',
@@ -63,7 +64,8 @@ export const TEMPLATES = [
63
64
  { id: 'makeup_soft', name: 'Soft Glam', value: 'polished elegant makeup with defined features, warm tones, sophisticated', visualColor: '#E8C4A8' },
64
65
  { id: 'makeup_full', name: 'Full Glam', value: 'bold glamorous makeup with defined eyes, statement lips, high-fashion finish', visualColor: '#CD9575' },
65
66
  { id: 'makeup_editorial', name: 'Editorial / Artistic', value: 'artistic editorial makeup with creative elements, runway-inspired, avant-garde', visualColor: '#8B4513' }
66
- ]
67
+ ],
68
+ hasModel: true
67
69
  },
68
70
  {
69
71
  id: 'ear_model',
@@ -85,7 +87,8 @@ export const TEMPLATES = [
85
87
  { id: 'makeup_soft', name: 'Soft Glam', value: 'polished elegant makeup with defined features, warm tones, sophisticated', visualColor: '#E8C4A8' },
86
88
  { id: 'makeup_full', name: 'Full Glam', value: 'bold glamorous makeup with defined eyes, statement lips, high-fashion finish', visualColor: '#CD9575' },
87
89
  { id: 'makeup_editorial', name: 'Editorial / Artistic', value: 'artistic editorial makeup with creative elements, runway-inspired, avant-garde', visualColor: '#8B4513' }
88
- ]
90
+ ],
91
+ hasModel: true
89
92
  },
90
93
  {
91
94
  id: 'flatlay_creative',
@@ -100,9 +103,15 @@ export const TEMPLATES = [
100
103
  { id: 'surf_velvet', name: 'Beige Velvet', value: 'placed on soft beige velvet fabric', visualColor: '#E3CDB8' },
101
104
  { id: 'surf_wood', name: 'Aged Wood', value: 'placed on rich, dark aged mahogany wood', visualColor: '#5C4033' },
102
105
  { id: 'surf_sand', name: 'Fine Sand', value: 'placed on rippled, fine white sand', visualColor: '#F5F5DC' },
106
+ { id: 'surf_travertine', name: 'Travertine', value: 'placed on warm ivory travertine stone with subtle pitted texture', visualColor: '#E9DFC9' },
107
+ { id: 'surf_obsidian', name: 'Black Obsidian', value: 'placed on a glossy black obsidian surface with deep reflective sheen', visualColor: '#0F0F10' },
108
+ { id: 'surf_mirrored', name: 'Mirrored Glass', value: 'placed on a clean mirrored glass surface with soft reflections', visualColor: '#D6DDE5' },
109
+ { id: 'surf_brushed_metal', name: 'Brushed Metal', value: 'placed on a brushed champagne metal surface with fine linear texture', visualColor: '#C7B9A5' },
110
+ { id: 'surf_frosted_acrylic', name: 'Frosted Acrylic', value: 'placed on frosted acrylic with a soft diffused, milky translucence', visualColor: '#E8EDF0' },
103
111
  { id: 'surf_pedestal', name: 'Geometric Pedestal', value: 'displayed on a minimal matte geometric pedestal or cube, architectural and sculptural', visualColor: '#3D3D3D' },
104
112
  { id: 'surf_riser', name: 'Stone Riser', value: 'elevated on a raw natural stone riser or block, organic texture contrasting with polished jewelry', visualColor: '#8B8680' }
105
- ]
113
+ ],
114
+ hasModel: false
106
115
  },
107
116
  {
108
117
  id: 'floating_minimal',
@@ -116,22 +125,27 @@ export const TEMPLATES = [
116
125
  { id: 'light_hard', name: 'Hard Contrast', value: 'hard, dramatic direct lighting with sharp shadows', visualColor: '#000000' },
117
126
  { id: 'light_warm', name: 'Golden Glow', value: 'warm, golden sunset-hued lighting', visualColor: '#FFD700' },
118
127
  { id: 'light_cool', name: 'Cool Steel', value: 'cool, bluish steel-toned professional lighting', visualColor: '#B0C4DE' }
119
- ]
128
+ ],
129
+ hasModel: false
120
130
  },
121
131
  {
122
132
  id: 'half_body_muse',
123
133
  name: 'The Editorial Muse',
124
134
  description: 'A dynamic waist-up fashion shot showcasing how the jewelry complements a complete look.',
125
135
  visualUrl: '/template_muse.png',
126
- basePrompt: 'A waist-up medium shot of a sunningly beautiful [ETHNICITY] female model posing for an editorial. She is wearing the specific jewelry piece(s) shown. The composition focuses on how the jewelry accents her overall style. Authentic but smooth skin texture, flyaway hairs, cinematic lighting, shot on film.',
136
+ basePrompt: 'A waist-up medium shot of a sunningly beautiful [ETHNICITY] female model posing for an editorial. Face, head, and shoulders clearly visible. Hands may appear but must not be the primary subject. Do NOT crop to hands only. She is wearing the specific jewelry piece(s) shown. The composition focuses on how the jewelry accents her overall style. Authentic skin texture with subtle variation, no heavy retouching, flyaway hairs, cinematic lighting, shot on film.',
127
137
  customizationLabel: 'Fashion Style & Outfit',
128
138
  customizationOptions: [
129
- { id: 'outfit_blazer', name: 'Power Suit (Blazer)', value: 'wearing a tailored blazer over a sophisticated inner layer. Confident, modern business-chic aesthetic', visualImage: '/power_blazer.png' },
139
+ { id: 'outfit_director_choice', name: 'Creative Director\'s Choice', value: 'let the stylist choose the most flattering outfit for the jewelry and selected mood; polished, high-fashion editorial styling; shoulders covered; no lingerie or overly revealing garments', visualColor: '#D9D2C8', visualImage: '/question.jpg' },
140
+ { id: 'outfit_blazer', name: 'Power Suit (Blazer)', value: 'wearing a tailored, structured blazer over a sophisticated inner layer. Defined shoulders, clean lines, confident modern business-chic aesthetic', visualImage: '/power_blazer.png' },
141
+ { id: 'outfit_tailored_jumpsuit', name: 'Tailored Jumpsuit', value: 'wearing a sleek tailored jumpsuit with long sleeves and a defined waist. Modern power silhouette; shoulders covered', visualColor: '#B9B1A7', visualImage: '/tailored_jumpsuit.jpg' },
130
142
  { id: 'outfit_evening', name: 'Evening Glamour', value: 'wearing a luxurious silk evening dress. Sophisticated, night-out aesthetic', visualImage: '/evening_glamour.png' },
143
+ { id: 'outfit_leather_jacket', name: 'Leather Jacket', value: 'wearing a sleek black leather jacket layered over the outfit. Structured silhouette, fashion-forward edge', visualColor: '#2B2B2B', visualImage: '/jacket.jpg' },
131
144
  { id: 'outfit_linen', name: 'Resort Linen', value: 'wearing a breezy linen ensemble (button-down or light dress). Relaxed, vacation-luxe aesthetic', visualImage: '/resort_linen.png' },
132
145
  { id: 'outfit_knit', name: 'Cashmere Knit', value: 'wearing a soft, textured cashmere sweater. Cozy, quiet-luxury aesthetic', visualImage: '/cashmere_outfit.png' },
133
146
  { id: 'outfit_silk', name: 'Silk Shirt', value: 'wearing an elegant unbuttoned silk collared shirt, effortlessly chic. Classic, timeless sophistication', visualImage: '/silk_shirt.png' },
134
- { id: 'outfit_turtleneck', name: 'Turtleneck', value: 'wearing a sleek fitted turtleneck. Clean, modern minimalist aesthetic that lets the jewelry stand out', visualImage: '/turtleneck.png' }
147
+ { id: 'outfit_turtleneck', name: 'Turtleneck', value: 'wearing a sleek fitted turtleneck. Clean, modern minimalist aesthetic that lets the jewelry stand out', visualImage: '/turtleneck.png' },
148
+ { id: 'outfit_tailored_trench', name: 'Tailored Trench', value: 'wearing a tailored trench coat or overcoat with a refined drape. Sophisticated outerwear styling', visualColor: '#CBBEA6', visualImage: '/trench_coat.jpg' }
135
149
  ],
136
150
  secondaryCustomizationLabel: 'Nail Polish',
137
151
  secondaryCustomizationOptions: [
@@ -152,13 +166,32 @@ export const TEMPLATES = [
152
166
  quaternaryCustomizationLabel: 'Poses & Expressions',
153
167
  quaternaryCustomizationOptions: [
154
168
  { id: 'pose_winking', name: 'Winking', value: 'playfully winking at the camera with a confident smile', visualColor: '#F5F0EB', visualSvg: '<svg viewBox="0 0 40 40" fill="none" xmlns="http://www.w3.org/2000/svg"><circle cx="20" cy="20" r="18" stroke="#A68A6B" stroke-width="1.5"/><line x1="11" y1="15" x2="17" y2="15" stroke="#A68A6B" stroke-width="1.5" stroke-linecap="round"/><circle cx="28" cy="15" r="2" fill="#A68A6B"/><path d="M13 26 Q20 31 27 26" stroke="#A68A6B" stroke-width="1.5" stroke-linecap="round" fill="none"/></svg>' },
155
- { id: 'pose_grimace', name: 'Playful Grimace', value: 'making a cute, playful grimace or scrunching nose, full of personality', visualColor: '#F5F0EB', visualSvg: '<svg viewBox="0 0 40 40" fill="none" xmlns="http://www.w3.org/2000/svg"><circle cx="20" cy="20" r="18" stroke="#A68A6B" stroke-width="1.5"/><circle cx="14" cy="14" r="2" fill="#A68A6B"/><circle cx="26" cy="14" r="2" fill="#A68A6B"/><path d="M14 18 Q17 16 20 18 Q23 16 26 18" stroke="#A68A6B" stroke-width="1" stroke-linecap="round" fill="none"/><path d="M13 26 L16 24 L19 26 L22 24 L25 26 L28 24" stroke="#A68A6B" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" fill="none"/></svg>' },
169
+ { id: 'pose_grimace', name: 'Playful Grimace', value: 'making a cute, playful grimace, full of personality', visualColor: '#F5F0EB', visualSvg: '<svg viewBox="0 0 40 40" fill="none" xmlns="http://www.w3.org/2000/svg"><circle cx="20" cy="20" r="18" stroke="#A68A6B" stroke-width="1.5"/><circle cx="14" cy="14" r="2" fill="#A68A6B"/><circle cx="26" cy="14" r="2" fill="#A68A6B"/><path d="M14 18 Q17 16 20 18 Q23 16 26 18" stroke="#A68A6B" stroke-width="1" stroke-linecap="round" fill="none"/><path d="M13 26 L16 24 L19 26 L22 24 L25 26 L28 24" stroke="#A68A6B" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" fill="none"/></svg>' },
156
170
  { id: 'pose_teasing', name: 'Teasing / Tongue Out', value: 'playfully sticking tongue out slightly, teasing and fun expression', visualColor: '#F5F0EB', visualSvg: '<svg viewBox="0 0 40 40" fill="none" xmlns="http://www.w3.org/2000/svg"><circle cx="20" cy="20" r="18" stroke="#A68A6B" stroke-width="1.5"/><circle cx="14" cy="15" r="2" fill="#A68A6B"/><circle cx="26" cy="15" r="2" fill="#A68A6B"/><ellipse cx="20" cy="26" rx="4" ry="2.5" stroke="#A68A6B" stroke-width="1.5" fill="none"/><ellipse cx="20" cy="29" rx="2.5" ry="2" fill="#C4AD91"/></svg>' },
157
171
  { id: 'pose_kiss', name: 'Blowing a Kiss', value: 'blowing a kiss towards the camera, hand near mouth, flirty and fun', visualColor: '#F5F0EB', visualSvg: '<svg viewBox="0 0 40 40" fill="none" xmlns="http://www.w3.org/2000/svg"><circle cx="20" cy="20" r="18" stroke="#A68A6B" stroke-width="1.5"/><circle cx="14" cy="15" r="2" fill="#A68A6B"/><circle cx="26" cy="15" r="2" fill="#A68A6B"/><path d="M18 25 Q20 28 22 25" stroke="#A68A6B" stroke-width="1.5" stroke-linecap="round" fill="none"/><path d="M30 8 L31 5 L33 7 Z" fill="#A68A6B" opacity="0.6"/><path d="M33 10 L35 8 L36 11 Z" fill="#A68A6B" opacity="0.4"/></svg>' },
158
172
  { id: 'pose_laughing', name: 'Candid Laugh', value: 'throwing head back in genuine, unposed laughter, joyous and radiant', visualColor: '#F5F0EB', visualSvg: '<svg viewBox="0 0 40 40" fill="none" xmlns="http://www.w3.org/2000/svg"><circle cx="20" cy="20" r="18" stroke="#A68A6B" stroke-width="1.5"/><path d="M11 14 Q14 11 17 14" stroke="#A68A6B" stroke-width="1.5" stroke-linecap="round" fill="none"/><path d="M23 14 Q26 11 29 14" stroke="#A68A6B" stroke-width="1.5" stroke-linecap="round" fill="none"/><path d="M12 24 Q20 32 28 24" stroke="#A68A6B" stroke-width="1.5" stroke-linecap="round" fill="none"/><line x1="12" y1="24" x2="28" y2="24" stroke="#A68A6B" stroke-width="1.5" stroke-linecap="round"/></svg>' },
159
173
  { id: 'pose_pout', name: 'Model Pout', value: 'serious high-fashion model pout, intense gaze, editorial attitude', visualColor: '#F5F0EB', visualSvg: '<svg viewBox="0 0 40 40" fill="none" xmlns="http://www.w3.org/2000/svg"><circle cx="20" cy="20" r="18" stroke="#A68A6B" stroke-width="1.5"/><line x1="11" y1="12" x2="17" y2="14" stroke="#A68A6B" stroke-width="1.5" stroke-linecap="round"/><line x1="29" y1="12" x2="23" y2="14" stroke="#A68A6B" stroke-width="1.5" stroke-linecap="round"/><circle cx="14" cy="16" r="1.5" fill="#A68A6B"/><circle cx="26" cy="16" r="1.5" fill="#A68A6B"/><ellipse cx="20" cy="27" rx="5" ry="2.5" fill="#C4AD91" opacity="0.3" stroke="#A68A6B" stroke-width="1.5"/></svg>' },
174
+ { id: 'pose_power_tilt', name: 'Power Tilt', value: 'chin raised with a subtle head tilt, confident gaze, strong editorial attitude', visualColor: '#F5F0EB' },
175
+ { id: 'pose_hand_ear', name: 'Hand to Ear', value: 'hand lifted near ear or temple, poised and composed, earrings visible if present', visualColor: '#F5F0EB' },
176
+ { id: 'pose_profile', name: 'Side Profile', value: 'strong side profile with defined jawline, sleek posture, composed expression', visualColor: '#F5F0EB' },
177
+ { id: 'pose_over_shoulder', name: 'Over-Shoulder', value: 'over-shoulder turn with elongated neck, subtle intensity, editorial confidence', visualColor: '#F5F0EB' },
160
178
  { id: 'pose_peace', name: 'Peace Sign', value: 'holding up a peace sign near face, cute and casual vibe', visualColor: '#F5F0EB', visualSvg: '<svg viewBox="0 0 40 40" fill="none" xmlns="http://www.w3.org/2000/svg"><circle cx="20" cy="20" r="18" stroke="#A68A6B" stroke-width="1.5"/><circle cx="14" cy="15" r="2" fill="#A68A6B"/><circle cx="26" cy="15" r="2" fill="#A68A6B"/><path d="M14 25 Q20 29 26 25" stroke="#A68A6B" stroke-width="1.5" stroke-linecap="round" fill="none"/><line x1="33" y1="4" x2="31" y2="13" stroke="#A68A6B" stroke-width="1.5" stroke-linecap="round"/><line x1="36" y1="7" x2="34" y2="13" stroke="#A68A6B" stroke-width="1.5" stroke-linecap="round"/><path d="M30 13 Q32 14 35 13" stroke="#A68A6B" stroke-width="1" stroke-linecap="round" fill="none"/></svg>' }
161
- ]
179
+ ],
180
+ quinaryCustomizationLabel: 'Accessories & Styling',
181
+ quinaryCustomizationOptions: [
182
+ { id: 'accessory_sunglasses', name: 'Tinted Sunglasses', value: 'wearing refined tinted sunglasses with lenses translucent enough to clearly see the eyes; bold editorial styling; shoulders fully covered', visualColor: '#D9D9D9' },
183
+ { id: 'accessory_silk_scarf', name: 'Silk Scarf', value: 'silk scarf styled at the neck or in the hair; elegant and refined; shoulders covered', visualColor: '#E7D4C8' },
184
+ { id: 'accessory_silk_headband', name: 'Silk Headband', value: 'silk headband or hair wrap with refined styling; face unobstructed; shoulders covered', visualColor: '#BFA88F' },
185
+ { id: 'accessory_sheer_gloves', name: 'Sheer Gloves', value: 'sheer mesh or fingerless gloves for editorial edge; keep rings and bracelets visible if present; shoulders covered', visualColor: '#DAD1C8' },
186
+ { id: 'accessory_statement_belt', name: 'Statement Belt', value: 'bold waist belt or cinch over the outfit; polished and fashion-forward; shoulders covered', visualColor: '#7A6A58' },
187
+ { id: 'accessory_silk_bandana', name: 'Silk Bandana', value: 'silk bandana styled as a head wrap or tied at the neck; refined styling; shoulders covered', visualColor: '#D8C7B8' },
188
+ { id: 'accessory_silk_tie', name: 'Silk Necktie', value: 'sleek silk necktie or ribbon tie styled at the collar; fashion-forward tailoring; shoulders covered', visualColor: '#B7A091' },
189
+ { id: 'accessory_hair_clip', name: 'Hair Clip', value: 'sleek hair clip or barrette with clean styling; face unobstructed; shoulders covered', visualColor: '#CBBBAA' },
190
+ { id: 'accessory_beret', name: 'Beret', value: 'structured beret angled back so the face remains fully visible; editorial sophistication; shoulders covered', visualColor: '#5C4B3B' },
191
+ { id: 'accessory_wide_brim_hat', name: 'Wide-Brim Hat', value: 'wide-brim hat tilted back so the face and eyes remain visible; editorial sophistication; shoulders covered', visualColor: '#4E4138' },
192
+ { id: 'accessory_leather_gloves', name: 'Leather Gloves', value: 'sleek leather gloves with a tailored fit; keep rings and bracelets visible if present; shoulders covered', visualColor: '#2F2A26' }
193
+ ],
194
+ hasModel: true
162
195
  },
163
196
  {
164
197
  id: 'romance_proposal',
@@ -190,7 +223,8 @@ export const TEMPLATES = [
190
223
  { id: 'nail_french', name: 'French Manicure', value: 'classic french tip manicure', visualColor: '#FDF5E6' },
191
224
  { id: 'nail_natural', name: 'Natural & Clean', value: 'clean, natural unpainted nails with a clear healthy coat', visualColor: '#F3EFE0' },
192
225
  { id: 'nail_dark', name: 'Noir / Dark', value: 'chic dark black or burgundy nail polish', visualColor: '#1A1A1A' }
193
- ]
226
+ ],
227
+ hasModel: true
194
228
  },
195
229
  {
196
230
  id: 'museum_exhibit',
@@ -212,7 +246,8 @@ export const TEMPLATES = [
212
246
  { id: 'display_stand', name: 'Open Display on Stand', value: 'displayed openly on a minimal museum stand, accessible and commanding', visualColor: '#C0C0C0' },
213
247
  { id: 'display_wall', name: 'Museum Wall Mount', value: 'mounted on museum wall with professional track lighting and descriptive placard', visualColor: '#F5F5DC' },
214
248
  { id: 'display_alcove', name: 'Illuminated Alcove', value: 'placed in an illuminated alcove with dramatic recessed lighting and shadow play', visualColor: '#2C2C2C' }
215
- ]
249
+ ],
250
+ hasModel: false
216
251
  },
217
252
  {
218
253
  id: 'romantic_mood',
@@ -236,7 +271,8 @@ export const TEMPLATES = [
236
271
  { id: 'mood_moody', name: 'Moody & Dark', value: 'dark and dramatic mood with deep shadows, single warm light source, chiaroscuro romance, mysterious and intense', visualColor: '#2C1810' },
237
272
  { id: 'mood_golden', name: 'Golden Hour Glow', value: 'rich golden hour warmth, everything bathed in honeyed light, long soft shadows, magic hour romance', visualColor: '#A68A6B' },
238
273
  { id: 'mood_blush', name: 'Blush Pink Haze', value: 'soft blush pink and rose tones, dreamy and feminine, slightly hazy and ethereal, Valentine energy', visualColor: '#F4C2C2' }
239
- ]
274
+ ],
275
+ hasModel: false
240
276
  }
241
277
  ];
242
278
  export const SKIN_TONES = [
@@ -278,12 +314,17 @@ export const ETHNICITIES = [
278
314
  ];
279
315
  export const HAIR_COLORS = [
280
316
  { id: 'dark', name: 'Jet Black', value: 'deep jet black hair with a natural healthy sheen', visualColor: '#000000' },
281
- { id: 'brunette', name: 'Rich Brunette', value: 'rich chocolate brown brunette hair with subtle highlights', visualColor: '#4A3728' },
317
+ { id: 'brunette', name: 'Rich Brunette', value: 'rich chocolate brown hair with subtle lowlights and shine', visualColor: '#4A3728' },
318
+ { id: 'light_brown', name: 'Light Brown', value: 'natural light brown hair with soft warmth and dimension', visualColor: '#7A5A3A' },
319
+ { id: 'natural_blonde', name: 'Natural Blonde', value: 'soft natural blonde hair with balanced warmth and subtle highlights', visualColor: '#DDBB7E' },
282
320
  { id: 'honey_blonde', name: 'Honey Blonde', value: 'warm honey blonde hair with golden tones', visualColor: '#D4AF37' },
283
- { id: 'blonde', name: 'Platinum Blonde', value: 'cool platinum blonde hair, sleek and modern', visualColor: '#F5F5DC' },
321
+ { id: 'blonde', name: 'Platinum / Icy Blonde', value: 'cool platinum blonde hair with an icy, sleek finish', visualColor: '#F5F5DC' },
284
322
  { id: 'strawberry', name: 'Strawberry Blonde', value: 'soft strawberry blonde hair with warm reddish-gold undertones', visualColor: '#E6CBA5' },
323
+ { id: 'copper_red', name: 'Copper Red', value: 'vibrant copper red hair with glossy warmth and natural depth', visualColor: '#C66A2F' },
324
+ { id: 'chestnut_red', name: 'Chestnut Red', value: 'rich chestnut red hair with warm brown undertones', visualColor: '#8B4A2B' },
285
325
  { id: 'auburn', name: 'Deep Auburn', value: 'intense deep auburn red hair with rich copper highlights', visualColor: '#8D4004' },
286
- { id: 'silver', name: 'Silver / Grey', value: 'sophisticated luminous silver grey hair', visualColor: '#C0C0C0' },
326
+ { id: 'mahogany', name: 'Mahogany', value: 'deep mahogany red-brown hair with subtle wine undertones', visualColor: '#6B2E2E' },
327
+ { id: 'silver', name: 'Metallic Silver', value: 'high-shine metallic silver hair with a cool chrome sheen', visualColor: '#BFC3C7' },
287
328
  ];
288
329
  export const BACKGROUNDS = [
289
330
  { id: 'none', name: 'None', value: '', visualColor: 'transparent' },
@@ -315,11 +356,20 @@ export const STUDIO_FLAT_POOL = [
315
356
  'flawless studio environment with a smooth, matte backdrop'
316
357
  ];
317
358
  export const OUTDOOR_POOL = [
318
- 'softly blurred outdoor natural environment, cinematic bokeh',
319
- 'dreamy garden setting with soft natural light filtering through leaves',
320
- 'elegant terrace background with warm, sun-drenched atmosphere',
321
- 'serene natural landscape softly out of focus in the distance',
322
- 'romantic sunset lighting over a blurred natural landscape'
359
+ 'softly blurred outdoor environment with cinematic bokeh',
360
+ 'garden or terrace exterior with softly out-of-focus foliage and architectural details',
361
+ 'elegant outdoor setting with depth and atmospheric blur',
362
+ 'serene exterior landscape softly out of focus in the distance',
363
+ 'outdoor scene with subtle haze and gentle background separation',
364
+ 'courtyard exterior with stone textures and softly blurred greenery',
365
+ 'rooftop terrace with distant cityscape softened into elegant bokeh',
366
+ 'botanical garden walkway with lush foliage softly receding into blur',
367
+ 'villa exterior with textured walls and archways blurred in the background',
368
+ 'outdoor colonnade or veranda with soft depth-of-field and architectural rhythm',
369
+ 'terrace with sculptural planters and a softly blurred horizon line',
370
+ 'elegant exterior stairway or landing with shallow depth and creamy bokeh',
371
+ 'garden wall or pergola backdrop with soft lens blur and atmospheric depth',
372
+ 'waterfront or poolside exterior suggested as soft reflections and bokeh shapes'
323
373
  ];
324
374
  export const MACRO_TEXTURE_POOL = [
325
375
  'abstract macro textural background of softly draped silk filling the frame',
@@ -380,7 +430,58 @@ export const VIBES = [
380
430
  { id: 'high_fashion_flash', name: 'Editorial Flash', value: 'hard direct flash, sharp highlights, distinct shadows, high-energy fashion editorial, 90s aesthetic, sharp micro-contrast', visualImage: '/editorial_flash.jpg' },
381
431
  { id: 'analog_dream', name: 'Analog Dream', value: 'shot on vintage 35mm film, subtle light leaks, rich saturated colors, nostalgic soft focus, Kodak Ektar 100, authentic film grain', visualImage: '/analog_dream.jpg' },
382
432
  { id: 'midnight_glamour', name: 'Midnight Glamour', value: 'deep moody atmosphere, rich jewel tones, single dramatic spotlight cutting through darkness, luxurious midnight aesthetic, sharp reflections on metal', visualImage: '/midnight_glamour.jpg' },
383
- { id: 'editorial_daylight', name: 'Sun-Drenched', value: 'bright diffused daylight, overexposed highlights, soft dreamy aesthetic, high-end magazine cover style, luminous skin', visualImage: '/sun_drenched.jpg' },
433
+ { id: 'editorial_daylight', name: 'Sun-Drenched', value: 'bright diffused daylight, overexposed highlights, soft dreamy aesthetic, high-end magazine cover style, sun-drenched', visualImage: '/sun_drenched.jpg' },
434
+ ];
435
+ export const PHOTOGRAPHY_STYLES = [
436
+ {
437
+ id: 'ethereal_dream',
438
+ name: 'Ethereal Dream',
439
+ description: 'Soft-focus, painterly textures, and haunting, impressionist tones.',
440
+ value: 'painterly surrealist photography, heavy soft-focus, blurred motion, desaturated impressionist palette, glowing highlights, inspired by Sarah Moon and Paolo Roversi',
441
+ visualColor: 'linear-gradient(135deg, #d3c4be, #8e7d76)'
442
+ },
443
+ {
444
+ id: 'heritage_luxury',
445
+ name: 'High-Flash Raw',
446
+ description: 'Direct flash, punchy highlights, gritty editorial energy.',
447
+ value: 'direct flash photography, high-contrast punch, bold specular highlights, gritty editorial realism, inspired by Juergen Teller and Terry Richardson',
448
+ visualColor: 'linear-gradient(135deg, #f1f0ef, #6e6a67)'
449
+ },
450
+ {
451
+ id: 'modern_edge',
452
+ name: 'Modern Edge',
453
+ description: 'Bolder contrast, sharper angles, fashion-forward tension.',
454
+ value: 'modern edgy fashion photography, bold contrast, crisp angles, graphic shadows, assertive composition, inspired by Helmut Newton and Steven Klein',
455
+ visualColor: 'linear-gradient(135deg, #2d2f35, #6f7a88)'
456
+ },
457
+ {
458
+ id: 'soft_natural',
459
+ name: 'Chromatic Gel',
460
+ description: 'Color-gel lighting, bold casts, nightclub editorial edge.',
461
+ value: 'color gel lighting, bold chromatic casts, magenta and cyan accents, high-energy fashion editorial, inspired by David LaChapelle and Nadia Lee Cohen',
462
+ visualColor: 'linear-gradient(135deg, #351b5e, #8aa6ff)'
463
+ },
464
+ {
465
+ id: 'acid_lofi',
466
+ name: 'Acid Infrared',
467
+ description: 'Extreme false-color shifts, thermal aesthetics, and psychedelic saturation.',
468
+ value: 'false-color infrared photography, Aerochrome style, vivid hot pinks and deep teals, high grain, surreal alien atmosphere, inspired by Richard Mosse',
469
+ visualColor: 'linear-gradient(135deg, #ff007f, #00ffcc)'
470
+ },
471
+ {
472
+ id: 'cyber_grit',
473
+ name: 'Cyber-Grit Noir',
474
+ description: 'High-contrast grain, light trails, and chaotic digital distortion.',
475
+ value: 'experimental long exposure, aggressive film grain, light trailing, high-contrast black and white, digital glitch artifacts, inspired by Daido Moriyama',
476
+ visualColor: 'linear-gradient(135deg, #000000, #4a4a4a)'
477
+ },
478
+ {
479
+ id: 'cinematic_editorial',
480
+ name: 'Cinematic Editorial',
481
+ description: 'Filmic tone, rich depth, dramatic direction.',
482
+ value: 'cinematic editorial photography, rich tonal depth, filmic color grading, anamorphic lens flares, narrative storytelling, dramatic but refined, inspired by Nick Knight and Craig McDean',
483
+ visualColor: 'linear-gradient(135deg, #1b1a1f, #394152)'
484
+ }
384
485
  ];
385
486
  export const OCCASIONS = [
386
487
  {
@@ -388,13 +489,9 @@ export const OCCASIONS = [
388
489
  name: 'Moroccan Wedding',
389
490
  icon: '👰',
390
491
  description: 'Traditional Moroccan wedding luxury aesthetic with rich cultural details',
391
- autoConfig: { vibe: 'golden_hour', background: 'gold', backgroundType: 'luxury_interior' },
392
492
  promptDetails: {
393
- setting: 'Traditional Moroccan riad or palace interior with intricate zellige mosaic tilework in geometric patterns, ornate hand-carved cedar wood ceilings, horseshoe arches with detailed stucco work. Softly blurred background shows traditional Moroccan lanterns, silk cushions, and ornate metalwork',
394
- atmosphere: 'Intimate, culturally rich, joyful and celebratory. The feeling of a traditional Moroccan wedding with authentic moments',
395
- colorPalette: 'Rich jewel tones - deep crimson red, emerald green, royal purple, and abundant gold accents. Ivory and cream for contrast. Warm, luxurious color temperature',
396
- culturalElements: 'Subtle traditional Moroccan bridal elements may include: intricate henna patterns visible on hands, traditional gold jewelry aesthetic, rich embroidered fabrics, Moroccan rose petals, ornate brass serving pieces in blurred background',
397
- styling: 'Model styled as an elegant Moroccan bride or guest. Hair in traditional styling, makeup elegant and defined, traditional gold jewelry aesthetic. If visible, clothing suggests luxury kaftan or takchita with gold embroidery and embellishments'
493
+ culturalElements: 'Subtle Moroccan bridal motifs: delicate henna patterns (only if hands appear), refined zellige or arabesque patterns, ornate brass accents, rich embroidered textiles.',
494
+ decor: 'Soft lantern glow, silk cushions, carved wood accents, warm metallic details.'
398
495
  }
399
496
  },
400
497
  {
@@ -402,13 +499,9 @@ export const OCCASIONS = [
402
499
  name: 'Eid al-Fitr',
403
500
  icon: '🌙',
404
501
  description: 'Elegant celebration of Eid al-Fitr with festive, joyful atmosphere',
405
- autoConfig: { vibe: 'clean_minimal', background: 'emerald_green', backgroundType: 'luxury_interior' },
406
502
  promptDetails: {
407
- setting: 'Bright, elegant interior with soft natural light. Background hints at celebration with blurred festive decorations, perhaps lanterns or delicate florals',
408
- atmosphere: 'Joyful, celebratory, light and airy. Fresh and renewed spirit after Ramadan',
409
- colorPalette: 'Emerald green, gold, white, and soft pastels. Fresh and luminous tones',
410
- culturalElements: 'Subtle festive Eid elements - elegant Islamic geometric patterns, fresh flowers, refined decorative details',
411
- styling: 'Model styled in celebration attire with polished, festive makeup and elegant hair. Joyful, refined aesthetic'
503
+ culturalElements: 'Elegant Islamic geometric motifs, refined festive cues, fresh florals in a celebratory spirit.',
504
+ decor: 'Subtle lantern accents, delicate florals, soft celebratory details.'
412
505
  }
413
506
  },
414
507
  {
@@ -416,13 +509,9 @@ export const OCCASIONS = [
416
509
  name: 'Eid al-Adha',
417
510
  icon: '🕌',
418
511
  description: 'Sophisticated Eid al-Adha celebration with refined elegance',
419
- autoConfig: { vibe: 'golden_hour', background: 'gold', backgroundType: 'luxury_interior' },
420
512
  promptDetails: {
421
- setting: 'Luxurious interior with warm, golden lighting. Sophisticated and dignified setting',
422
- atmosphere: 'Dignified, celebratory, spiritually significant. Refined and elegant',
423
- colorPalette: 'Rich gold, burgundy, deep greens, cream. Warm, sophisticated tones',
424
- culturalElements: 'Elegant cultural references - refined Islamic art patterns, luxury fabrics, traditional elements in modern interpretation',
425
- styling: 'Model styled with sophisticated elegance. Rich makeup, refined styling, traditional yet contemporary aesthetic'
513
+ culturalElements: 'Refined Islamic art motifs, luxury fabrics, dignified celebratory cues in a modern interpretation.',
514
+ decor: 'Warm golden accents, elegant textiles, understated celebratory details.'
426
515
  }
427
516
  },
428
517
  {
@@ -430,13 +519,9 @@ export const OCCASIONS = [
430
519
  name: 'Henna Night',
431
520
  icon: '🎨',
432
521
  description: 'Traditional Moroccan henna ceremony with intricate cultural elements',
433
- autoConfig: { vibe: 'golden_hour', background: 'terracotta', backgroundType: 'luxury_interior' },
434
522
  promptDetails: {
435
- setting: 'Intimate Moroccan setting with warm ambient lighting. Background suggests traditional celebration space with cushions, lanterns, ornate details',
436
- atmosphere: 'Intimate, feminine, ceremonial, warm and traditional. Pre-wedding celebration vibes',
437
- colorPalette: 'Warm terracotta, deep orange, burgundy, gold. Earthy and rich with golden accents',
438
- culturalElements: 'Intricate henna patterns prominently visible on hands if showing hands. Traditional lanterns, Moroccan textiles, ornate serving pieces. Rose water ambiance',
439
- styling: 'Model styled as if at traditional henna ceremony. Elaborate henna designs, traditional jewelry, warm glowing makeup, cultural celebration aesthetic'
523
+ culturalElements: 'Intricate henna motifs (only if hands appear), Moroccan lanterns, traditional textiles, ceremonial elegance.',
524
+ decor: 'Lantern light, embroidered cushions, ornate trays, rose-water ceremony cues.'
440
525
  }
441
526
  },
442
527
  {
@@ -444,13 +529,9 @@ export const OCCASIONS = [
444
529
  name: 'Ramadan',
445
530
  icon: '⭐',
446
531
  description: 'Serene Ramadan atmosphere with spiritual elegance',
447
- autoConfig: { vibe: 'moody_chic', background: 'midnight_blue', backgroundType: 'luxury_interior' },
448
532
  promptDetails: {
449
- setting: 'Intimate evening interior with soft, moody lighting. Background suggests peaceful reflection space with subtle lantern glow',
450
- atmosphere: 'Serene, spiritual, contemplative, elegant. Peaceful evening ambiance',
451
- colorPalette: 'Deep midnight blue, silver, soft gold, white. Cool, peaceful tones with metallic accents',
452
- culturalElements: 'Subtle Ramadan elements - soft lantern light, crescent moon motifs, dates, refined Islamic patterns, peaceful spiritual aesthetic',
453
- styling: 'Model styled with serene, natural elegance. Soft, glowing makeup. Modest, refined aesthetic'
533
+ culturalElements: 'Soft lantern glow, crescent motifs, dates, refined Islamic patterns, peaceful spiritual cues.',
534
+ decor: 'Subtle lanterns, quiet reflective accents, minimal ceremonial details.'
454
535
  }
455
536
  },
456
537
  {
@@ -458,13 +539,9 @@ export const OCCASIONS = [
458
539
  name: "Valentine's Day",
459
540
  icon: '❤️',
460
541
  description: 'Romantic ambiance with rose petals and soft candlelight',
461
- autoConfig: { vibe: 'romantic_soft', background: 'blush_pink', backgroundType: 'studio' },
462
542
  promptDetails: {
463
- setting: 'Soft, romantic setting with diffused natural light. Background suggests intimacy with blurred rose petals, soft fabrics, gentle candlelight',
464
- atmosphere: 'Romantic, intimate, tender, dreamy. Soft and feminine energy',
465
- colorPalette: 'Blush pink, soft red, cream, rose gold. Warm, romantic, delicate tones',
466
- culturalElements: 'Rose petals scattered elegantly, soft romantic florals, intimate candlelight glow, love celebration aesthetic',
467
- styling: 'Model styled with romantic, soft makeup. Natural, glowing skin. Dreamy, feminine aesthetic'
543
+ culturalElements: 'Rose petals, soft romantic florals, gentle candlelight glow, love-celebration cues.',
544
+ decor: 'Subtle candles, delicate petals, soft romantic textile accents.'
468
545
  }
469
546
  },
470
547
  {
@@ -472,13 +549,9 @@ export const OCCASIONS = [
472
549
  name: "Mother's Day",
473
550
  icon: '🌸',
474
551
  description: 'Warm, tender atmosphere celebrating maternal love',
475
- autoConfig: { vibe: 'golden_hour', background: 'soft_lavender', backgroundType: 'studio' },
476
552
  promptDetails: {
477
- setting: 'Warm, tender setting with soft natural light. Background hints at comfort and home with soft florals',
478
- atmosphere: 'Warm, loving, tender, gentle. Celebrating maternal love and connection',
479
- colorPalette: 'Soft lavender, warm peach, cream, gentle pastels. Warm, comforting tones',
480
- culturalElements: 'Delicate spring flowers, soft fabrics, warm comforting aesthetic, celebration of motherhood',
481
- styling: 'Model styled with warm, natural elegance. Soft makeup, genuine warmth. Maternal grace'
553
+ culturalElements: 'Delicate spring flowers, soft fabrics, warm and caring celebratory cues.',
554
+ decor: 'Gentle florals, light ribbons, comforting soft accents.'
482
555
  }
483
556
  },
484
557
  {
@@ -486,13 +559,9 @@ export const OCCASIONS = [
486
559
  name: 'Birthday',
487
560
  icon: '🎂',
488
561
  description: 'Celebratory and joyful setting with festive elements',
489
- autoConfig: { vibe: 'clean_minimal', background: 'champagne_gold', backgroundType: 'studio' },
490
562
  promptDetails: {
491
- setting: 'Bright, celebratory setting with clean aesthetic. Background suggests festive celebration',
492
- atmosphere: 'Joyful, celebratory, fun, elegant. Birthday celebration energy',
493
- colorPalette: 'Champagne gold, white, soft pastels, metallic accents. Festive, bright tones',
494
- culturalElements: 'Elegant celebration elements, refined party aesthetic, joyful festive details',
495
- styling: 'Model styled for celebration with polished, festive makeup. Joyful, confident aesthetic'
563
+ culturalElements: 'Refined celebration cues, subtle party accents, joyful festive details.',
564
+ decor: 'Minimal celebratory decor, soft ribbons or confetti bokeh, tasteful party touches.'
496
565
  }
497
566
  },
498
567
  {
@@ -500,13 +569,9 @@ export const OCCASIONS = [
500
569
  name: 'Anniversary',
501
570
  icon: '💍',
502
571
  description: 'Elegant, timeless aesthetic for commemorating special milestones',
503
- autoConfig: { vibe: 'golden_hour', background: 'gold', backgroundType: 'luxury_interior' },
504
572
  promptDetails: {
505
- setting: 'Elegant, timeless interior with warm lighting. Sophisticated romantic setting',
506
- atmosphere: 'Timeless, elegant, romantic, commemorative. Celebrating enduring love',
507
- colorPalette: 'Rich gold, champagne, cream, deep burgundy. Luxurious, timeless tones',
508
- culturalElements: 'Elegant romantic details, luxurious fabrics, refined celebration aesthetic, timeless sophistication',
509
- styling: 'Model styled with timeless elegance. Classic, sophisticated makeup. Enduring beauty'
573
+ culturalElements: 'Elegant romantic details, luxurious fabrics, refined celebration cues, timeless sophistication.',
574
+ decor: 'Soft candlelight accents, understated florals, quiet romantic touches.'
510
575
  }
511
576
  },
512
577
  {
@@ -514,13 +579,9 @@ export const OCCASIONS = [
514
579
  name: 'Graduation',
515
580
  icon: '🎓',
516
581
  description: 'Proud and accomplished atmosphere with sophisticated styling',
517
- autoConfig: { vibe: 'clean_minimal', background: 'white', backgroundType: 'studio' },
518
582
  promptDetails: {
519
- setting: 'Clean, bright professional setting. Background suggests achievement and new beginnings',
520
- atmosphere: 'Proud, accomplished, confident, hopeful. Celebrating achievement',
521
- colorPalette: 'Clean white, navy blue, gold accents. Professional, accomplished tones',
522
- culturalElements: 'Academic achievement aesthetic, professional polish, celebration of success',
523
- styling: 'Model styled with confident, professional polish. Clean, sophisticated makeup. Achievement glow'
583
+ culturalElements: 'Academic achievement cues, professional polish, celebration of success.',
584
+ decor: 'Subtle graduation motifs (cap/tassel suggested in decor only), understated celebratory details.'
524
585
  }
525
586
  },
526
587
  {
@@ -528,13 +589,9 @@ export const OCCASIONS = [
528
589
  name: 'Christmas',
529
590
  icon: '🎄',
530
591
  description: 'Festive holiday spirit with elegant seasonal decorations',
531
- autoConfig: { vibe: 'golden_hour', background: 'forest_green', backgroundType: 'luxury_interior' },
532
592
  promptDetails: {
533
- setting: 'Festive, luxurious interior with warm holiday lighting. Background suggests elegant Christmas celebration',
534
- atmosphere: 'Festive, warm, magical, elegant. Holiday celebration spirit',
535
- colorPalette: 'Deep forest green, rich red, gold, cream. Classic holiday luxury tones',
536
- culturalElements: 'Elegant holiday elements - pine branches, warm candlelight, luxurious seasonal decor, festive sophistication',
537
- styling: 'Model styled with festive elegance. Rich, warm makeup. Holiday glamour'
593
+ culturalElements: 'Pine greenery, warm candlelight, refined holiday accents, festive sophistication.',
594
+ decor: 'Subtle evergreen boughs, soft twinkle-light bokeh, understated holiday touches.'
538
595
  }
539
596
  },
540
597
  {
@@ -542,13 +599,9 @@ export const OCCASIONS = [
542
599
  name: 'New Year',
543
600
  icon: '✨',
544
601
  description: 'Glamorous celebration with sparkle and sophistication',
545
- autoConfig: { vibe: 'moody_chic', background: 'midnight_blue', backgroundType: 'luxury_interior' },
546
602
  promptDetails: {
547
- setting: 'Glamorous evening setting with dramatic lighting. Background suggests sophisticated celebration',
548
- atmosphere: 'Glamorous, sophisticated, celebratory, hopeful. New beginnings energy',
549
- colorPalette: 'Midnight blue, silver, gold, black. Dramatic, sophisticated evening tones',
550
- culturalElements: 'Elegant evening celebration, sophisticated party aesthetic, champagne glamour, new year sparkle',
551
- styling: 'Model styled with dramatic evening glamour. Bold, sophisticated makeup. Celebration elegance'
603
+ culturalElements: 'Elegant evening celebration cues, refined party aesthetic, champagne glamour, new-year sparkle.',
604
+ decor: 'Subtle glitter bokeh, minimalist celebratory accents, midnight celebration details.'
552
605
  }
553
606
  }
554
607
  ];
@@ -587,7 +640,6 @@ export const GENERATION_STYLE_POOL = [
587
640
  "Model interacting with the environment (e.g., leaning against a wall or window), natural vibe.",
588
641
  "A 'moment of preparation' look, looking down as if adjusting the clasp or admiring the piece.",
589
642
  "Holding a glass or prop near the face, adding lifestyle context without obscuring the jewelry.",
590
- "Shielding eyes from the 'sun' with a hand, casting interesting shadow patterns on the face.",
591
643
  "Resting head on a hand, casual but elegant, creating a relaxed luxury feel.",
592
644
  // Avant-Garde & High Fashion
593
645
  "An artistic, slightly off-center composition (rule of thirds) for a modern magazine look.",