Aleksmorshen commited on
Commit
2eb9d12
·
verified ·
1 Parent(s): 5c19f8c

Update index.html

Browse files
Files changed (1) hide show
  1. index.html +425 -382
index.html CHANGED
@@ -3,13 +3,14 @@
3
  <head>
4
  <meta charset="UTF-8">
5
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
6
- <title>Synkris Look 8</title>
7
  <style>
8
  :root {
9
  --bg: #000000;
10
  --card-bg: #0a0a0a;
11
  --primary: #ccff00;
12
  --primary-hover: #b3e600;
 
13
  --text: #ffffff;
14
  --text-secondary: #a1a1a1;
15
  --border: #333333;
@@ -31,10 +32,10 @@ body {
31
  .container {
32
  background-color: var(--card-bg);
33
  width: 100%;
34
- max-width: 750px;
35
  padding: 35px;
36
  border-radius: 20px;
37
- border: 1px solid var(--border);
38
  box-shadow: 0 0 40px rgba(204, 255, 0, 0.08);
39
  }
40
 
@@ -44,7 +45,6 @@ h1 {
44
  margin-top: 0;
45
  margin-bottom: 5px;
46
  font-size: 2.2rem;
47
- font-weight: 800;
48
  text-transform: uppercase;
49
  letter-spacing: 2px;
50
  text-shadow: 0 0 10px rgba(204, 255, 0, 0.3);
@@ -58,10 +58,11 @@ p.subtitle {
58
  letter-spacing: 0.5px;
59
  }
60
 
 
61
  .mode-selector {
62
- display: flex;
63
- justify-content: center;
64
- margin-bottom: 25px;
65
  background-color: var(--input-bg);
66
  border-radius: 12px;
67
  padding: 5px;
@@ -69,16 +70,15 @@ p.subtitle {
69
  }
70
 
71
  .mode-btn {
72
- flex: 1;
73
- padding: 12px 15px;
74
  background-color: transparent;
75
  border: none;
76
  color: var(--text-secondary);
77
- font-size: 0.9rem;
78
  font-weight: 700;
79
  cursor: pointer;
80
  border-radius: 8px;
81
- transition: all 0.3s ease;
82
  text-transform: uppercase;
83
  letter-spacing: 0.5px;
84
  }
@@ -87,6 +87,7 @@ p.subtitle {
87
  background-color: var(--primary);
88
  color: #000;
89
  box-shadow: 0 0 15px rgba(204, 255, 0, 0.4);
 
90
  }
91
 
92
  .form-grid {
@@ -106,13 +107,19 @@ p.subtitle {
106
 
107
  label, .checkbox-label {
108
  font-weight: 600;
109
- margin-bottom: 10px;
110
  font-size: 0.8rem;
111
  color: var(--primary);
112
  text-transform: uppercase;
113
  letter-spacing: 0.8px;
114
  }
115
 
 
 
 
 
 
 
116
  select, textarea, input[type="text"] {
117
  padding: 12px 14px;
118
  border: 1px solid var(--border);
@@ -143,7 +150,7 @@ textarea {
143
  }
144
 
145
  .action-btn {
146
- background-color: var(--primary);
147
  color: #000;
148
  border: none;
149
  padding: 16px 30px;
@@ -153,23 +160,21 @@ textarea {
153
  cursor: pointer;
154
  width: 100%;
155
  transition: all 0.2s ease;
156
- box-shadow: 0 0 15px rgba(204, 255, 0, 0.4);
157
  display: flex;
158
  justify-content: center;
159
  align-items: center;
160
  gap: 12px;
161
  text-transform: uppercase;
162
- letter-spacing: 1px;
163
  }
164
 
165
  .action-btn:hover {
166
- background-color: var(--primary-hover);
167
- transform: translateY(-2px);
168
- box-shadow: 0 0 25px rgba(204, 255, 0, 0.6);
169
  }
170
 
171
  .action-btn:active {
172
- transform: translateY(1px) scale(0.99);
173
  }
174
 
175
  select option {
@@ -195,41 +200,46 @@ select option {
195
  }
196
 
197
  .checkbox-container input {
198
- margin-right: 12px;
199
- width: 18px;
200
- height: 18px;
201
  }
202
 
 
203
  .sub-mode-selector {
204
- grid-column: span 2;
205
  display: flex;
206
  justify-content: center;
207
- margin-bottom: 10px;
208
- background-color: #1a1a1a;
209
  border-radius: 10px;
210
  padding: 4px;
211
  border: 1px solid var(--border);
 
212
  }
213
-
214
  .sub-mode-btn {
215
  flex: 1;
216
- padding: 8px 12px;
217
- background-color: transparent;
218
  border: none;
219
  color: var(--text-secondary);
220
- font-size: 0.85rem;
221
  font-weight: 600;
222
  cursor: pointer;
223
  border-radius: 7px;
224
  transition: all 0.3s ease;
 
225
  }
226
-
227
  .sub-mode-btn.active {
228
- background-color: var(--card-bg);
229
- color: var(--primary);
 
 
 
 
 
 
 
230
  }
231
 
232
 
 
233
  @media (max-width: 600px) {
234
  .form-grid {
235
  grid-template-columns: 1fr;
@@ -244,10 +254,11 @@ select option {
244
  font-size: 1.8rem;
245
  }
246
  .mode-selector {
247
- flex-direction: column;
248
  gap: 5px;
249
  }
250
  }
 
251
  </style>
252
  </head>
253
  <body>
@@ -257,368 +268,399 @@ select option {
257
  <p class="subtitle">PROMPT GENERATOR & LAUNCHER</p>
258
 
259
  <div class="mode-selector">
260
- <button id="modeModelBtn" class="mode-btn active" onclick="switchMode('model')">Фото на модели</button>
261
- <button id="modeKidsBtn" class="mode-btn" onclick="switchMode('kids')">Фото на модели (дети)</button>
262
  <button id="modeObjectBtn" class="mode-btn" onclick="switchMode('object')">Предметное фото</button>
263
  </div>
264
 
265
- <form id="promptForm">
266
- <div class="form-grid">
267
-
268
- <!-- === MODEL PHOTOGRAPHY MODE === -->
269
- <div id="modelMode" class="form-mode active">
270
- <!-- Fields are similar to the original, but with updated defaults -->
271
- <div class="form-group">
272
- <label for="gender">Пол</label>
273
- <select id="gender" onchange="autoAdjustDefaults()">
274
- <option value="Woman">Женщина</option>
275
- <option value="Man">Мужчина</option>
276
- </select>
277
- </div>
278
- <div class="form-group">
279
- <label for="age">Возраст</label>
280
- <select id="age">
281
- <option value="18-20 years old">18-20 лет</option>
282
- <option value="20-25 years old" selected>20-25 лет</option>
283
- <option value="25-30 years old">25-30 лет</option>
284
- <option value="30-40 years old">30-40 лет</option>
285
- </select>
286
- </div>
287
- <div class="form-group">
288
- <label for="nationality">Внешность/Этнос</label>
289
- <select id="nationality">
290
- <option value="Eastern European">Восточная Европа</option>
291
- <option value="Northern European">Скандинавская</option>
292
- <option value="Asian">Азиатская</option>
293
- <option value="Latin American">Латиноамериканская</option>
294
- <option value="Mixed Race">Смешанная</option>
295
- </select>
296
- </div>
297
- <div class="form-group">
298
- <label for="bodyType">Телосложение</label>
299
- <select id="bodyType">
300
- <option value="Fit and slim">Стройное/Подтянутое</option>
301
- <option value="Athletic">Спортивное</option>
302
- <option value="Curvy">Пышное (Curvy)</option>
303
- <option value="Skinny model look">Модельная худоба</option>
304
- </select>
305
- </div>
306
- <div class="form-group">
307
- <label for="hairColor">Цвет волос</label>
308
- <select id="hairColor">
309
- <option value="Brunette">Брюнет</option>
310
- <option value="Blonde">Блонд</option>
311
- <option value="Black">Черные</option>
312
- <option value="Redhead">Рыжие</option>
313
- </select>
314
- </div>
315
- <div class="form-group">
316
- <label for="hairstyle">Стрижка</label>
317
- <select id="hairstyle">
318
- <option value="Long loose wavy hair">Длинные волны</option>
319
- <option value="Straight long hair">Длинные прямые</option>
320
- <option value="Messy bun">Небрежный пучок</option>
321
- <option value="Bob cut">Каре</option>
322
- <option value="Fade cut">Фейд (Мужской)</option>
323
- </select>
324
- </div>
325
- <div class="form-group">
326
- <label for="emotion">Эмоция/Выражение лица</label>
327
- <select id="emotion">
328
- <option value="Confident look">Уверенный взгляд</option>
329
- <option value="Smiling gently">Легкая улыбка</option>
330
- <option value="Serious and thoughtful">Серьезное и вдумчивое</option>
331
- <option value="Playful wink">Игривое подмигивание</option>
332
- <option value="Mysterious gaze">Загадочный взгляд</option>
333
- </select>
334
- </div>
335
- <div class="form-group">
336
- <label for="pose">Поза</label>
337
- <select id="pose">
338
- <option value="dynamic action pose" selected>Динамичная поза</option>
339
- <option value="standing confidently">Стоит уверенно</option>
340
- <option value="walking towards camera">Идет на камеру</option>
341
- <option value="sitting relaxed">Сидит расслабленно</option>
342
- <option value="leaning against a wall">Оперевшись о стену</option>
343
- </select>
344
- </div>
345
- <div class="form-group">
346
- <label for="shotType">Ракурс/План</label>
347
- <select id="shotType">
348
- <option value="Full body shot">В полный рост</option>
349
- <option value="Medium shot, waist up">По пояс</option>
350
- <option value="Cowboy shot, mid-thigh up">"Ковбойский" план</option>
351
- <option value="Portrait shot">Портрет</option>
352
- <option value="Close-up">Крупный план</option>
353
- </select>
354
- </div>
355
- <div class="form-group">
356
- <label for="light">Свет</label>
357
- <select id="light">
358
- <option value="volumetric studio lighting">Объемный студийный</option>
359
- <option value="cinematic lighting">Кинематографичный</option>
360
- <option value="natural morning light">Естественный утренний</option>
361
- <option value="dramatic side light">Драматичный боковой</option>
362
- <option value="neon lights">Неоновый</option>
363
- </select>
364
- </div>
365
- <div class="form-group">
366
- <label for="style">Эстетика</label>
367
- <select id="style">
368
- <option value="Raw Candid Photography">Живое фото (Raw)</option>
369
- <option value="Cinematic Movie Still">Кадр из фильма</option>
370
- <option value="Fashion Editorial">Модный журнал</option>
371
- <option value="Street Style Photo">Уличный стиль</option>
372
- <option value="Dark Moody Atmosphere">Мрачная атмосфера</option>
373
- <option value="Vintage Analog Film">Пленка (Vintage)</option>
374
- </select>
375
- </div>
376
- <div class="form-group">
377
- <label for="camera">Камера/Объектив</label>
378
- <select id="camera">
379
- <option value="Fujifilm XT4, 56mm F1.2 lens">Fuji 56mm (Портрет)</option>
380
- <option value="Sony A7III, 35mm F1.4 lens">Sony 35mm (Универсал)</option>
381
- <option value="Canon EOS R5, 85mm F1.2 lens">Canon 85mm (Боке)</option>
382
- <option value="Leica M11, Summilux 50mm">Leica 50mm (Стрит)</option>
383
- <option value="shot on 35mm film, Kodak Portra 400">Пленка Kodak Portra</option>
384
- </select>
385
- </div>
386
- <div class="form-group full-width">
387
- <label for="location">Локация</label>
388
- <select id="location">
389
- <option value="in a clean white seamless studio background">Студия (белый фон)</option>
390
- <option value="in a creative editorial studio with mirrors and geometric shapes">Студия "Эдиториал" (зеркала)</option>
391
- <option value="on a rainy night street in Tokyo with neon lights">Улица (ночной Токио, неон)</option>
392
- <option value="in a minimalist modern interior with concrete walls">Минимализм (лофт, бетон)</option>
393
- <option value="on a rooftop overlooking the city skyline at sunset">Крыша с видом на город</option>
394
- <option value="in a luxurious vintage room with classic furniture">Роскошный интерьер (винтаж)</option>
395
- <option value="in a dense, magical forest with sunbeams filtering through">Природа (сказочный лес)</option>
396
- <option value="on a beautiful sandy beach during the golden hour">Природа (пляж, закат)</option>
397
- <option value="in a vibrant, bustling urban market">Город (оживленный рынок)</option>
398
- <option value="inside a futuristic, sci-fi corridor with glowing lines">Фантастика (коридор)</option>
399
- </select>
400
- </div>
401
- <div class="form-group full-width">
402
- <label for="model_details">Одежда и Детали</label>
403
- <textarea id="model_details" placeholder="Пример: в черном кожаном плаще и грубых ботинках, смотрит в камеру"></textarea>
404
- </div>
405
- </div>
406
-
407
- <!-- === KIDS PHOTOGRAPHY MODE === -->
408
- <div id="kidsMode" class="form-mode">
409
- <div class="sub-mode-selector">
410
- <button id="newbornSubModeBtn" type="button" class="sub-mode-btn active" onclick="switchKidsSubMode('newborn')">Новорожденные</button>
411
- <button id="olderSubModeBtn" type="button" class="sub-mode-btn" onclick="switchKidsSubMode('older')">Остальные</button>
412
- </div>
413
 
414
- <!-- Newborn Sub-Mode -->
415
- <div id="newbornSubMode" class="form-mode active">
 
416
  <div class="form-group">
417
- <label for="newborn_age">Возраст</label>
418
- <select id="newborn_age">
419
- <option value="Newborn baby, 0-3 months old">0-3 месяца</option>
420
- <option value="Baby, 3-6 months old">3-6 месяцев</option>
421
  </select>
422
  </div>
423
  <div class="form-group">
424
- <label for="newborn_pose">Поза</label>
425
- <select id="newborn_pose">
426
- <option value="sleeping peacefully in a basket">Спит в корзинке</option>
427
- <option value="wrapped in a soft blanket">Завернут в плед</option>
428
- <option value="lying on its tummy">Лежит на животике</option>
429
- <option value="yawning cutely">Мило зевает</option>
430
  </select>
431
  </div>
432
- <div class="form-group full-width">
433
- <label for="newborn_details">Одежда и Детали</label>
434
- <textarea id="newborn_details" placeholder="Пример: в милой вязаной шапочке с ушками"></textarea>
 
 
 
 
 
 
 
435
  </div>
436
- </div>
437
-
438
- <!-- Older Kids Sub-Mode -->
439
- <div id="olderSubMode" class="form-mode">
440
- <div class="form-group">
441
- <label for="older_gender">Пол</label>
442
- <select id="older_gender">
443
- <option value="Boy">Мальчик</option>
444
- <option value="Girl">Девочка</option>
445
  </select>
446
  </div>
 
447
  <div class="form-group">
448
- <label for="older_age">Возраст</label>
449
- <select id="older_age">
450
- <option value="1-2 years old child">1-2 года</option>
451
- <option value="3-5 years old child">3-5 лет</option>
452
- <option value="6-9 years old child">6-9 лет</option>
453
- <option value="10-13 years old teenager">10-13 лет</option>
454
- <option value="14-17 years old teenager">14-17 лет</option>
455
  </select>
456
  </div>
457
- <div class="form-group">
458
- <label for="older_emotion">Эмоция</label>
459
- <select id="older_emotion">
460
- <option value="laughing joyfully">Радостно смеется</option>
461
- <option value="curious look">Любопытный взгляд</option>
462
- <option value="playing and having fun">Играет и веселится</option>
463
- <option value="thoughtful and dreamy">Задумчивый и мечтательный</option>
 
464
  </select>
465
  </div>
 
466
  <div class="form-group">
467
- <label for="older_pose">Поза</label>
468
- <select id="older_pose">
469
- <option value="running in a field">Бежит по полю</option>
470
- <option value="playing with toys">Играет с игрушками</option>
471
- <option value="sitting on a swing">Сидит на качелях</option>
472
- <option value="hugging a pet">Обнимает питомца</option>
 
473
  </select>
474
  </div>
475
- <div class="form-group full-width">
476
- <label for="older_details">Одежда и Детали</label>
477
- <textarea id="older_details" placeholder="Пример: в джинсовом комбинезоне и с воздушным змеем"></textarea>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
478
  </div>
479
- </div>
480
 
481
- <!-- Common fields for all kids -->
482
- <div class="form-group">
483
- <label for="kids_nationality">Внешность/Этнос</label>
484
- <select id="kids_nationality">
485
- <option value="Eastern European">Восточная Европа</option>
486
- <option value="Northern European">Скандинавская</option>
487
- <option value="Asian">Азиатская</option>
488
- <option value="Latin American">Латиноамериканская</option>
489
- </select>
490
- </div>
491
- <div class="form-group">
492
- <label for="kids_shotType">Ракурс/План</label>
493
- <select id="kids_shotType">
494
- <option value="Full body shot" полный рост</option>
495
- <option value="Medium shot, waist up">По пояс</option>
496
- <option value="Portrait shot">Портрет</option>
497
- </select>
498
- </div>
499
- <div class="form-group">
500
- <label for="kids_light">Свет</label>
501
- <select id="kids_light">
502
- <option value="soft natural light">Мягкий естественный</option>
503
- <option value="golden hour lighting">Свет "золотого часа"</option>
504
- <option value="bright and airy studio light">Яркий студийный</option>
505
- </select>
506
- </div>
507
- <div class="form-group">
508
- <label for="kids_style">Эстетика</label>
509
- <select id="kids_style">
510
- <option value="Candid lifestyle photography">Лайфстайл фото</option>
511
- <option value="Dreamy and magical">Сказочная и волшебная</option>
512
- <option value="Clean and minimalist">Минимализм</option>
513
- <option value="Vintage film look">Пленка (винтаж)</option>
514
- </select>
515
- </div>
516
- <div class="form-group full-width">
517
- <label for="kids_location">Локация</label>
518
- <select id="kids_location">
519
- <option value="in a bright, cozy nursery room">Детская комната</option>
520
- <option value="in a sunny green park with flowers">Солнечный парк</option>
521
- <option value="on a sandy beach building sandcastles">Пляж</option>
522
- <option value="in a magical forest">Сказочный лес</option>
523
- <option value="in a clean white seamless studio background">Студия (белый фон)</option>
524
- </select>
525
  </div>
526
 
527
- </div>
 
 
 
 
 
528
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
529
 
530
- <!-- === OBJECT PHOTOGRAPHY MODE === -->
531
- <div id="objectMode" class="form-mode">
532
- <!-- Fields are the same as the original -->
533
- <div class="form-group full-width">
534
- <label for="object_name">Название/Описание предмета</label>
535
- <input type="text" id="object_name" placeholder="Например: флакон духов 'Noir', кроссовки 'CyberRun', часы 'Classic Timepiece'">
536
- </div>
537
- <div class="form-group">
538
- <label for="object_style">Стилистика съемки</label>
539
- <select id="object_style">
540
- <option value="Minimalism on a cyclorama">Минимализм на циклораме</option>
541
- <option value="Lifestyle, in context">Лайфстайл (в контексте)</option>
542
- <option value="Detailed macro shot">Макросъемка деталей</option>
543
- <option value="Levitation shot">Левитация (в воздухе)</option>
544
- <option value="Creative flat lay">Креативная раскладка (Flat lay)</option>
545
- </select>
546
- </div>
547
- <div class="form-group">
548
- <label for="object_lighting">Освещение</label>
549
- <select id="object_lighting">
550
- <option value="soft, diffused studio light">Мягкий студийный свет</option>
551
- <option value="hard direct sunlight with dramatic shadows">Жесткий солнечный с тенями</option>
552
- <option value="backlit with a beautiful glow">Контровой свет (с сиянием)</option>
553
- <option value="moody, low-key lighting">Мрачное, низкий ключ</option>
554
- <option value="vibrant neon and colored gels">Цветной/неоновый свет</option>
555
- </select>
556
- </div>
557
- <div class="form-group">
558
- <label for="object_composition">Композиция</label>
559
- <select id="object_composition">
560
- <option value="centered composition">Центральная</option>
561
- <option value="dynamic diagonal angle">Динамичная диагональная</option>
562
- <option value="rule of thirds">По правилу третей</option>
563
- <option value="symmetrical composition">Симметричная</option>
564
- </select>
565
- </div>
566
- <div class="form-group">
567
- <label for="object_background">Тип фона</label>
568
- <select id="object_background">
569
- <option value="clean studio background (white/grey)">Однотонный студийный</option>
570
- <option value="on a wooden surface">Деревянная поверхность</option>
571
- <option value="on a marble surface">Мрамор</option>
572
- <option value="on a concrete texture">Бетон</option>
573
- <option value="on a silk/linen fabric">Ткань (шелк/лен)</option>
574
- <option value="in a natural environment (moss, sand, water)">Природное окружение (мох, песок)</option>
575
- </select>
576
- </div>
577
- <div class="form-group full-width">
578
- <label for="object_details">Дополнительные детали окружения</label>
579
- <textarea id="object_details" placeholder="Пример: капли воды на флаконе, рядом лежат кофейные зерна и палочка корицы"></textarea>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
580
  </div>
581
- <div class="form-group full-width">
582
- <label class="checkbox-label">Креативность</label>
583
- <div class="checkbox-container">
584
- <input type="checkbox" id="creative_mode" onchange="toggleCreativeMode()">
585
- <label for="creative_mode" style="color: var(--text); text-transform: none; letter-spacing: 0;">Креативный фон от ИИ (игнорирует "Тип фона")</label>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
586
  </div>
587
  </div>
588
  </div>
589
- </div>
590
 
591
- <div class="btn-container">
592
- <button type="button" class="action-btn" onclick="processAndOpen()">
593
- <span>Launch Synkris AI</span>
594
- <span style="font-size: 1.2em">⚡</span>
595
- </button>
596
- </div>
597
- </form>
598
  </div>
599
 
600
  <script>
601
  let currentMode = 'model';
602
- let currentKidsSubMode = 'newborn';
603
 
604
  function switchMode(mode) {
605
  currentMode = mode;
606
  document.getElementById('modelMode').classList.toggle('active', mode === 'model');
607
- document.getElementById('kidsMode').classList.toggle('active', mode === 'kids');
608
  document.getElementById('objectMode').classList.toggle('active', mode === 'object');
609
-
610
  document.getElementById('modeModelBtn').classList.toggle('active', mode === 'model');
611
- document.getElementById('modeKidsBtn').classList.toggle('active', mode === 'kids');
612
  document.getElementById('modeObjectBtn').classList.toggle('active', mode === 'object');
613
  }
614
 
615
- function switchKidsSubMode(subMode) {
616
- currentKidsSubMode = subMode;
617
  document.getElementById('newbornSubMode').classList.toggle('active', subMode === 'newborn');
618
- document.getElementById('olderSubMode').classList.toggle('active', subMode === 'older');
619
 
620
- document.getElementById('newbornSubModeBtn').classList.toggle('active', subMode === 'newborn');
621
- document.getElementById('olderSubModeBtn').classList.toggle('active', subMode === 'older');
622
  }
623
 
624
 
@@ -648,7 +690,7 @@ async function processAndOpen() {
648
  const originalText = btn.innerHTML;
649
  let fullPrompt = '';
650
 
651
- const negative_prompt = "cropped, watermark, text, 3d render, cartoon, anime, plastic look, doll, artificial, blurry, distorted, malformed, ugly, disfigured, amputation, ugly, gross, disgusting, nsfw, text, error, extra digit, fewer digits, worst quality, low quality, normal quality, jpeg artifacts, signature, watermark, username, blurry";
652
 
653
  if (currentMode === 'model') {
654
  const style = document.getElementById('style').value;
@@ -665,7 +707,9 @@ async function processAndOpen() {
665
  const location = document.getElementById('location').value;
666
  const light = document.getElementById('light').value;
667
  const camera = document.getElementById('camera').value;
 
668
  const scene = `${details}, ${location}`;
 
669
  fullPrompt = `style:: ${style}.
670
  composition:: ${shotType}.
671
  subject:: A photorealistic portrait of a ${age} ${nationality} ${gender}.
@@ -673,39 +717,40 @@ model_details:: physique is ${bodyType}, ${hairColor} ${hairstyle}, face express
673
  scene:: ${scene}.
674
  technical:: professional photography, ${light}, shot on ${camera}, 8k, sharp focus, hyper-detailed, realistic skin texture with pores, masterpiece.`;
675
 
676
- } else if (currentMode === 'kids') {
677
- const kids_style = document.getElementById('kids_style').value;
678
- const kids_shotType = document.getElementById('kids_shotType').value;
679
- const kids_nationality = document.getElementById('kids_nationality').value;
680
- const kids_location = document.getElementById('kids_location').value;
681
- const kids_light = document.getElementById('kids_light').value;
682
-
683
- let subject_details = '';
684
  let scene_details = '';
685
-
686
- if(currentKidsSubMode === 'newborn') {
687
  const age = document.getElementById('newborn_age').value;
 
 
688
  const pose = document.getElementById('newborn_pose').value;
689
- const details = document.getElementById('newborn_details').value || 'in a cute outfit';
690
- subject_details = `A photorealistic portrait of a ${age}, ${kids_nationality}, pose is ${pose}.`;
691
- scene_details = `${details}, ${kids_location}.`;
692
- } else { // older
693
- const gender = document.getElementById('older_gender').value;
694
- const age = document.getElementById('older_age').value;
695
- const emotion = document.getElementById('older_emotion').value;
696
- const pose = document.getElementById('older_pose').value;
697
- const details = document.getElementById('older_details').value || 'in stylish clothes';
698
- subject_details = `A photorealistic portrait of a ${age} ${kids_nationality} ${gender}, expression is ${emotion}, pose is ${pose}.`;
699
- scene_details = `${details}, ${kids_location}.`;
 
700
  }
701
 
702
- fullPrompt = `style:: ${kids_style}.
703
- composition:: ${kids_shotType}.
704
- subject:: ${subject_details}
705
- scene:: ${scene_details}
706
- technical:: professional child photography, ${kids_light}, shot on Sony A7III, 35mm F1.4 lens, 8k, sharp focus, hyper-detailed, masterpiece.`;
707
 
708
- } else { // object mode
709
  const objectName = document.getElementById('object_name').value || "a product";
710
  const objectStyle = document.getElementById('object_style').value;
711
  const objectLighting = document.getElementById('object_lighting').value;
@@ -727,19 +772,18 @@ composition:: ${objectComposition}.
727
  technical:: commercial studio quality, ${objectLighting}, 8k resolution, sharp focus, ultra-realistic, masterpiece.`;
728
  }
729
 
730
- const cleanPrompt = fullPrompt.replace(/\s+/g, ' ').trim();
731
 
732
  try {
733
  await navigator.clipboard.writeText(cleanPrompt);
734
- btn.style.backgroundColor = "#fff";
735
  btn.style.color = "#000";
736
  btn.innerHTML = "ПРОМПТ СКОПИРОВАН. ЗАПУСК... 🚀";
737
 
738
  setTimeout(() => {
739
  window.open('https://lmarena.ai/ru?chat-modality=image&mode=direct', '_blank');
740
  setTimeout(() => {
741
- btn.style.backgroundColor = "";
742
- btn.style.color = "";
743
  btn.innerHTML = originalText;
744
  }, 1000);
745
  }, 800);
@@ -747,13 +791,12 @@ technical:: commercial studio quality, ${objectLighting}, 8k resolution, sharp f
747
  console.error('Failed to copy: ', err);
748
  alert("Не удалось скопировать. Промпт в консоли разработчика.");
749
  console.log("Ваш промпт:\n", cleanPrompt);
750
- console.log("Ваш негативный промпт (скопируйте вручную при необходимости):\n", negative_prompt);
751
  }
752
  }
753
 
754
  document.addEventListener('DOMContentLoaded', () => {
755
  switchMode('model');
756
- switchKidsSubMode('newborn');
757
  autoAdjustDefaults();
758
  });
759
  </script>
 
3
  <head>
4
  <meta charset="UTF-8">
5
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
6
+ <title>Synkris Look</title>
7
  <style>
8
  :root {
9
  --bg: #000000;
10
  --card-bg: #0a0a0a;
11
  --primary: #ccff00;
12
  --primary-hover: #b3e600;
13
+ --primary-gradient: linear-gradient(45deg, #ccff00, #b3e600);
14
  --text: #ffffff;
15
  --text-secondary: #a1a1a1;
16
  --border: #333333;
 
32
  .container {
33
  background-color: var(--card-bg);
34
  width: 100%;
35
+ max-width: 750px; /* Немного увеличена ширина */
36
  padding: 35px;
37
  border-radius: 20px;
38
+ border: 1px solid #222;
39
  box-shadow: 0 0 40px rgba(204, 255, 0, 0.08);
40
  }
41
 
 
45
  margin-top: 0;
46
  margin-bottom: 5px;
47
  font-size: 2.2rem;
 
48
  text-transform: uppercase;
49
  letter-spacing: 2px;
50
  text-shadow: 0 0 10px rgba(204, 255, 0, 0.3);
 
58
  letter-spacing: 0.5px;
59
  }
60
 
61
+ /* Стилизация селекторов режимов */
62
  .mode-selector {
63
+ display: grid;
64
+ grid-template-columns: repeat(3, 1fr);
65
+ margin-bottom: 30px;
66
  background-color: var(--input-bg);
67
  border-radius: 12px;
68
  padding: 5px;
 
70
  }
71
 
72
  .mode-btn {
73
+ padding: 12px 10px;
 
74
  background-color: transparent;
75
  border: none;
76
  color: var(--text-secondary);
77
+ font-size: 0.85rem;
78
  font-weight: 700;
79
  cursor: pointer;
80
  border-radius: 8px;
81
+ transition: all 0.3s cubic-bezier(0.25, 0.8, 0.25, 1);
82
  text-transform: uppercase;
83
  letter-spacing: 0.5px;
84
  }
 
87
  background-color: var(--primary);
88
  color: #000;
89
  box-shadow: 0 0 15px rgba(204, 255, 0, 0.4);
90
+ transform: scale(1.02);
91
  }
92
 
93
  .form-grid {
 
107
 
108
  label, .checkbox-label {
109
  font-weight: 600;
110
+ margin-bottom: 8px;
111
  font-size: 0.8rem;
112
  color: var(--primary);
113
  text-transform: uppercase;
114
  letter-spacing: 0.8px;
115
  }
116
 
117
+ label i { /* Иконки для заголовков */
118
+ margin-right: 6px;
119
+ font-size: 0.9em;
120
+ }
121
+
122
+
123
  select, textarea, input[type="text"] {
124
  padding: 12px 14px;
125
  border: 1px solid var(--border);
 
150
  }
151
 
152
  .action-btn {
153
+ background-image: var(--primary-gradient);
154
  color: #000;
155
  border: none;
156
  padding: 16px 30px;
 
160
  cursor: pointer;
161
  width: 100%;
162
  transition: all 0.2s ease;
163
+ box-shadow: 0 0 20px rgba(204, 255, 0, 0.4);
164
  display: flex;
165
  justify-content: center;
166
  align-items: center;
167
  gap: 12px;
168
  text-transform: uppercase;
 
169
  }
170
 
171
  .action-btn:hover {
172
+ transform: scale(1.02);
173
+ box-shadow: 0 0 30px rgba(204, 255, 0, 0.6);
 
174
  }
175
 
176
  .action-btn:active {
177
+ transform: scale(0.98);
178
  }
179
 
180
  select option {
 
200
  }
201
 
202
  .checkbox-container input {
203
+ margin-right: 10px;
 
 
204
  }
205
 
206
+ /* Стили для вложенного селектора в детском режиме */
207
  .sub-mode-selector {
 
208
  display: flex;
209
  justify-content: center;
210
+ background-color: #000;
 
211
  border-radius: 10px;
212
  padding: 4px;
213
  border: 1px solid var(--border);
214
+ margin-bottom: 25px;
215
  }
 
216
  .sub-mode-btn {
217
  flex: 1;
218
+ padding: 9px 15px;
219
+ background: transparent;
220
  border: none;
221
  color: var(--text-secondary);
222
+ font-size: 0.8rem;
223
  font-weight: 600;
224
  cursor: pointer;
225
  border-radius: 7px;
226
  transition: all 0.3s ease;
227
+ text-transform: uppercase;
228
  }
 
229
  .sub-mode-btn.active {
230
+ background-color: var(--primary);
231
+ color: #000;
232
+ box-shadow: 0 0 10px rgba(204, 255, 0, 0.3);
233
+ }
234
+ .sub-form-mode {
235
+ display: none;
236
+ }
237
+ .sub-form-mode.active {
238
+ display: contents;
239
  }
240
 
241
 
242
+ /* Responsive Design */
243
  @media (max-width: 600px) {
244
  .form-grid {
245
  grid-template-columns: 1fr;
 
254
  font-size: 1.8rem;
255
  }
256
  .mode-selector {
257
+ grid-template-columns: 1fr; /* Кнопки режимов в столбик на мобильных */
258
  gap: 5px;
259
  }
260
  }
261
+
262
  </style>
263
  </head>
264
  <body>
 
268
  <p class="subtitle">PROMPT GENERATOR & LAUNCHER</p>
269
 
270
  <div class="mode-selector">
271
+ <button id="modeModelBtn" class="mode-btn" onclick="switchMode('model')">Фото на модели</button>
272
+ <button id="modeChildrenBtn" class="mode-btn" onclick="switchMode('children')">Модели (дети)</button>
273
  <button id="modeObjectBtn" class="mode-btn" onclick="switchMode('object')">Предметное фото</button>
274
  </div>
275
 
276
+ <form id="promptForm">
277
+ <div class="form-grid">
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
278
 
279
+ <!-- === MODEL PHOTOGRAPHY MODE === -->
280
+ <div id="modelMode" class="form-mode">
281
+ <!-- Row 1 -->
282
  <div class="form-group">
283
+ <label for="gender">Пол</label>
284
+ <select id="gender" onchange="autoAdjustDefaults()">
285
+ <option value="Woman">Женщина</option>
286
+ <option value="Man">Мужчина</option>
287
  </select>
288
  </div>
289
  <div class="form-group">
290
+ <label for="age">Возраст</label>
291
+ <select id="age">
292
+ <option value="18 years old">18 лет</option>
293
+ <option value="20-25 years old" selected>20-25 лет</option>
294
+ <option value="25-30 years old">25-30 лет</option>
295
+ <option value="30-40 years old">30-40 лет</option>
296
  </select>
297
  </div>
298
+ <!-- Row 2 -->
299
+ <div class="form-group">
300
+ <label for="nationality">Внешность/Этнос</label>
301
+ <select id="nationality">
302
+ <option value="Eastern European">Восточная Европа</option>
303
+ <option value="Northern European">Скандинавская</option>
304
+ <option value="Asian">Азиатская</option>
305
+ <option value="Latin American">Латиноамериканская</option>
306
+ <option value="Mixed Race">Смешанная</option>
307
+ </select>
308
  </div>
309
+ <div class="form-group">
310
+ <label for="bodyType">Телосложение</label>
311
+ <select id="bodyType">
312
+ <option value="Fit and slim">Стройное/Подтянутое</option>
313
+ <option value="Athletic">Спортивное</option>
314
+ <option value="Curvy">Пышное (Curvy)</option>
315
+ <option value="Skinny model look">Модельная худоба</option>
 
 
316
  </select>
317
  </div>
318
+ <!-- Row 3 -->
319
  <div class="form-group">
320
+ <label for="hairColor">Цвет волос</label>
321
+ <select id="hairColor">
322
+ <option value="Brunette">Брюнет</option>
323
+ <option value="Blonde">Блонд</option>
324
+ <option value="Black">Черные</option>
325
+ <option value="Redhead">Рыжие</option>
 
326
  </select>
327
  </div>
328
+ <div class="form-group">
329
+ <label for="hairstyle">Стрижка</label>
330
+ <select id="hairstyle">
331
+ <option value="Long loose wavy hair">Длинные волны</option>
332
+ <option value="Straight long hair">Длинные прямые</option>
333
+ <option value="Messy bun">Небрежный пучок</option>
334
+ <option value="Bob cut">Каре</option>
335
+ <option value="Fade cut">Фейд (Мужской)</option>
336
  </select>
337
  </div>
338
+ <!-- Row 4 -->
339
  <div class="form-group">
340
+ <label for="emotion">Эмоция/Выражение лица</label>
341
+ <select id="emotion">
342
+ <option value="Confident look">Уверенный взгляд</option>
343
+ <option value="Smiling gently">Легкая улыбка</option>
344
+ <option value="Serious and thoughtful">Серьезное и вдумчивое</option>
345
+ <option value="Playful wink">Игривое подмигивание</option>
346
+ <option value="Mysterious gaze">Загадочный взгляд</option>
347
  </select>
348
  </div>
349
+ <div class="form-group">
350
+ <label for="pose">Поза</label>
351
+ <select id="pose">
352
+ <option value="standing confidently">Стоит уверенно</option>
353
+ <option value="walking towards camera">Идет на камеру</option>
354
+ <option value="sitting relaxed">Сидит расслабленно</option>
355
+ <option value="leaning against a wall">Оперевшись о стену</option>
356
+ <option value="dynamic action pose" selected>Динамичная поза</option> <!-- ИЗМЕНЕНО -->
357
+ </select>
358
+ </div>
359
+ <!-- Row 5 - COMPOSITION -->
360
+ <div class="form-group">
361
+ <label for="shotType">Ракурс/План</label>
362
+ <select id="shotType">
363
+ <option value="Full body shot">В полный рост</option>
364
+ <option value="Medium shot, waist up">По пояс</option>
365
+ <option value="Cowboy shot, mid-thigh up">"Ковбойский" план</option>
366
+ <option value="Portrait shot">Портрет</option>
367
+ <option value="Close-up">Крупный план</option>
368
+ </select>
369
+ </div>
370
+ <div class="form-group">
371
+ <label for="light">Свет</label>
372
+ <select id="light">
373
+ <option value="volumetric studio lighting">Объемный студийный</option>
374
+ <option value="cinematic lighting">Кинематографичный</option>
375
+ <option value="natural morning light">Естественный утренний</option>
376
+ <option value="dramatic side light">Драматичный боковой</option>
377
+ <option value="neon lights">Неоновый</option>
378
+ </select>
379
+ </div>
380
+ <!-- Row 6 - TECHNICAL STYLE -->
381
+ <div class="form-group">
382
+ <label for="style">Эстетика</label>
383
+ <select id="style">
384
+ <option value="Raw Candid Photography">Живое фото (Raw)</option>
385
+ <option value="Cinematic Movie Still">Кадр из фильма</option>
386
+ <option value="Fashion Editorial">Модный журнал</option>
387
+ <option value="Street Style Photo">Уличный стиль</option>
388
+ <option value="Dark Moody Atmosphere">Мрачная атмосфера</option>
389
+ <option value="Vintage Analog Film">Пленка (Vintage)</option>
390
+ </select>
391
+ </div>
392
+ <div class="form-group">
393
+ <label for="camera">Камера/Объектив</label>
394
+ <select id="camera">
395
+ <option value="Fujifilm XT4, 56mm F1.2 lens">Fuji 56mm (Портрет)</option>
396
+ <option value="Sony A7III, 35mm F1.4 lens">Sony 35mm (Универсал)</option>
397
+ <option value="Canon EOS R5, 85mm F1.2 lens">Canon 85mm (Боке)</option>
398
+ <option value="Leica M11, Summilux 50mm">Leica 50mm (Стрит)</option>
399
+ <option value="shot on 35mm film, Kodak Portra 400">Пленка Kodak Portra</option>
400
+ </select>
401
  </div>
 
402
 
403
+ <!-- Row 7 - LOCATION -->
404
+ <div class="form-group full-width">
405
+ <label for="location">Локация</label>
406
+ <select id="location">
407
+ <option value="in a clean white seamless studio background">Студия (белый фон)</option>
408
+ <option value="in a creative editorial studio with mirrors and geometric shapes">Студия "Эдиториал" (зеркала)</option>
409
+ <option value="on a rainy night street in Tokyo with neon lights">Улица (ночной Токио, неон)</option>
410
+ <option value="in a minimalist modern interior with concrete walls">Минимализм (лофт, бетон)</option>
411
+ <option value="on a rooftop overlooking the city skyline at sunset">Крыша с видом на город</option>
412
+ <option value="in a luxurious vintage room with classic furniture">Роскошный интерьер (винтаж)</option>
413
+ <option value="in a dense, magical forest with sunbeams filtering through">Природа (сказочный лес)</option>
414
+ <option value="on a beautiful sandy beach during the golden hour">Природа (пляж, закат)</option>
415
+ <option value="in a vibrant, bustling urban market">Город (оживленный рынок)</option>
416
+ <option value="inside a futuristic, sci-fi corridor with glowing lines">Фантастика (коридор)</option>
417
+ </select>
418
+ </div>
419
+
420
+ <div class="form-group full-width">
421
+ <label for="model_details">Одежда и Детали</label>
422
+ <textarea id="model_details" placeholder="Пример: в черном кожаном плаще и грубых ботинках, смотрит в камеру"></textarea>
423
+ </div>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
424
  </div>
425
 
426
+ <!-- === CHILDREN PHOTOGRAPHY MODE === -->
427
+ <div id="childrenMode" class="form-mode">
428
+ <div class="full-width sub-mode-selector">
429
+ <button id="newbornBtn" type="button" class="sub-mode-btn" onclick="switchChildrenSubMode('newborn')">Новорождённые</button>
430
+ <button id="olderChildrenBtn" type="button" class="sub-mode-btn" onclick="switchChildrenSubMode('older')">Дети и подростки</button>
431
+ </div>
432
 
433
+ <!-- Newborn Sub-Mode -->
434
+ <div id="newbornSubMode" class="sub-form-mode">
435
+ <div class="form-group">
436
+ <label>Пол</label>
437
+ <select disabled><option>Нейтральный</option></select>
438
+ </div>
439
+ <div class="form-group">
440
+ <label for="newborn_age">Возраст</label>
441
+ <select id="newborn_age">
442
+ <option value="1 month old newborn baby">0-3 месяца</option>
443
+ <option value="4 months old baby">3-6 месяцев</option>
444
+ </select>
445
+ </div>
446
+ <div class="form-group">
447
+ <label for="newborn_ethnicity">Внешность/Этнос</label>
448
+ <select id="newborn_ethnicity">
449
+ <option value="European">Европейская</option>
450
+ <option value="Asian">Азиатская</option>
451
+ <option value="Latin">Латиноамериканская</option>
452
+ <option value="Mixed Race">Смешанная</option>
453
+ </select>
454
+ </div>
455
+ <div class="form-group">
456
+ <label for="newborn_emotion">Эмоция/Состояние</label>
457
+ <select id="newborn_emotion">
458
+ <option value="sleeping peacefully">Мирно спит</option>
459
+ <option value="calm and awake">Спокоен и бодрствует</option>
460
+ <option value="cute yawn">Мило зевает</option>
461
+ <option value="gentle smile in sleep">Улыбается во сне</option>
462
+ </select>
463
+ </div>
464
+ <div class="form-group full-width">
465
+ <label for="newborn_pose">Поза</label>
466
+ <select id="newborn_pose">
467
+ <option value="wrapped in a soft swaddle">Завернут в пеленку</option>
468
+ <option value="lying in a cozy basket">Лежит в уютной корзинке</option>
469
+ <option value="on a fluffy white blanket">На пушистом белом пледе</option>
470
+ <option value="tummy time pose">Лежит на животике</option>
471
+ </select>
472
+ </div>
473
+ <div class="form-group full-width">
474
+ <label for="newborn_details">Одежда и Детали</label>
475
+ <textarea id="newborn_details" placeholder="Пример: в милой вязаной шапочке с ушками"></textarea>
476
+ </div>
477
+ </div>
478
 
479
+ <!-- Older Children Sub-Mode -->
480
+ <div id="olderChildrenSubMode" class="sub-form-mode">
481
+ <div class="form-group">
482
+ <label for="child_gender">Пол</label>
483
+ <select id="child_gender">
484
+ <option value="Boy">Мальчик</option>
485
+ <option value="Girl">Девочка</option>
486
+ </select>
487
+ </div>
488
+ <div class="form-group">
489
+ <label for="child_age">Возраст</label>
490
+ <select id="child_age">
491
+ <option value="2 years old toddler">1-3 года</option>
492
+ <option value="5 years old child">4-6 лет</option>
493
+ <option value="8 years old child">7-10 лет</option>
494
+ <option value="12 years old pre-teen">11-14 лет</option>
495
+ <option value="16 years old teenager">15-17 лет</option>
496
+ </select>
497
+ </div>
498
+ <div class="form-group">
499
+ <label for="child_ethnicity">Внешность/Этнос</label>
500
+ <select id="child_ethnicity">
501
+ <option value="Eastern European">Восточная Европа</option>
502
+ <option value="Northern European">Скандинавская</option>
503
+ <option value="Asian">Азиатская</option>
504
+ <option value="Latin American">Латиноамериканская</option>
505
+ </select>
506
+ </div>
507
+ <div class="form-group">
508
+ <label for="child_emotion">Эмоция/Выражение лица</label>
509
+ <select id="child_emotion">
510
+ <option value="happy and laughing">Счастливый, смеется</option>
511
+ <option value="curious and looking at camera">Любопытный взгляд</option>
512
+ <option value="thoughtful and calm">Задумчивый</option>
513
+ <option value="energetic and playful">Энергичный, игривый</option>
514
+ </select>
515
+ </div>
516
+ <div class="form-group full-width">
517
+ <label for="child_pose">Поза/Действие</label>
518
+ <select id="child_pose">
519
+ <option value="running in a field">Бежит по полю</option>
520
+ <option value="playing with toys">Играет с игрушками</option>
521
+ <option value="sitting and reading a book">Сидит с книгой</option>
522
+ <option value="hugging a pet">Обнимает питомца</option>
523
+ <option value="posing for a school photo">Позирует для фото</option>
524
+ </select>
525
+ </div>
526
+ <div class="form-group full-width">
527
+ <label for="child_details">Одежда и Детали</label>
528
+ <textarea id="child_details" placeholder="Пример: в джинсовом комбинезоне и яркой футболке"></textarea>
529
+ </div>
530
+ </div>
531
+
532
+ <!-- Common settings for all children -->
533
+ <div class="form-group">
534
+ <label for="child_shotType">Ракурс/План</label>
535
+ <select id="child_shotType">
536
+ <option value="Full body shot">В полный рост</option>
537
+ <option value="Medium shot, waist up">По пояс</option>
538
+ <option value="Portrait shot">Портрет</option>
539
+ <option value="Candid action shot">Репортажный (в движении)</option>
540
+ </select>
541
+ </div>
542
+ <div class="form-group">
543
+ <label for="child_light">Свет</label>
544
+ <select id="child_light">
545
+ <option value="soft natural daylight">Мягкий дневной свет</option>
546
+ <option value="golden hour lighting">Свет "золотого часа"</option>
547
+ <option value="bright studio light">Яркий студийный</option>
548
+ <option value="cinematic lighting">Кинематографичный</option>
549
+ </select>
550
+ </div>
551
+ <div class="form-group full-width">
552
+ <label for="child_location">Локация</label>
553
+ <select id="child_location">
554
+ <option value="in a clean white seamless studio background">Студия (белый фон)</option>
555
+ <option value="in a sunlit green park">Солнечный парк</option>
556
+ <option value="on a sandy beach">Песчаный пляж</option>
557
+ <option value="in a cozy, decorated children's room">Уютная детская комната</option>
558
+ <option value="in a magical forest">Сказочный лес</option>
559
+ <option value="at an urban playground">Городская площадка</option>
560
+ </select>
561
+ </div>
562
+ <div class="form-group full-width">
563
+ <label for="child_style">Эстетика</label>
564
+ <select id="child_style">
565
+ <option value="Candid lifestyle photography">Лайфстайл фото</option>
566
+ <option value="Fine art portrait">Художественный портрет</option>
567
+ <option value="Cinematic Movie Still">Кадр из фильма</option>
568
+ <option value="Vintage Analog Film">Пленка (Vintage)</option>
569
+ </select>
570
+ </div>
571
  </div>
572
+
573
+ <!-- === OBJECT PHOTOGRAPHY MODE === -->
574
+ <div id="objectMode" class="form-mode">
575
+ <div class="form-group full-width">
576
+ <label for="object_name">Название/Описание предмета</label>
577
+ <input type="text" id="object_name" placeholder="Например: флакон духов 'Noir', кроссовки 'CyberRun', часы 'Classic Timepiece'">
578
+ </div>
579
+ <div class="form-group">
580
+ <label for="object_style">Стилистика съемки</label>
581
+ <select id="object_style">
582
+ <option value="Minimalism on a cyclorama">Минимализм на циклораме</option>
583
+ <option value="Lifestyle, in context">Лайфстайл (в контексте)</option>
584
+ <option value="Detailed macro shot">Макросъемка деталей</option>
585
+ <option value="Levitation shot">Левитация (в воздухе)</option>
586
+ <option value="Creative flat lay">Креативная раскладка (Flat lay)</option>
587
+ </select>
588
+ </div>
589
+ <div class="form-group">
590
+ <label for="object_lighting">Освещение</label>
591
+ <select id="object_lighting">
592
+ <option value="soft, diffused studio light">Мягкий студийный свет</option>
593
+ <option value="hard direct sunlight with dramatic shadows">Жесткий солнечный с тенями</option>
594
+ <option value="backlit with a beautiful glow">Контровой свет (с сиянием)</option>
595
+ <option value="moody, low-key lighting">Мрачное, низкий ключ</option>
596
+ <option value="vibrant neon and colored gels">Цветной/неоновый свет</option>
597
+ </select>
598
+ </div>
599
+ <div class="form-group">
600
+ <label for="object_composition">Композиция</label>
601
+ <select id="object_composition">
602
+ <option value="centered composition">Центральная</option>
603
+ <option value="dynamic diagonal angle">Динамичная диагональная</option>
604
+ <option value="rule of thirds">По правилу третей</option>
605
+ <option value="symmetrical composition">Симметричная</option>
606
+ </select>
607
+ </div>
608
+ <div class="form-group">
609
+ <label for="object_background">Тип фона</label>
610
+ <select id="object_background">
611
+ <option value="clean studio background (white/grey)">Однотонный студийный</option>
612
+ <option value="on a wooden surface">Деревянная поверхность</option>
613
+ <option value="on a marble surface">Мрамор</option>
614
+ <option value="on a concrete texture">Бетон</option>
615
+ <option value="on a silk/linen fabric">Ткань (шелк/лен)</option>
616
+ <option value="in a natural environment (moss, sand, water)">Природное окружение (мох, песок)</option>
617
+ </select>
618
+ </div>
619
+ <div class="form-group full-width">
620
+ <label for="object_details">Дополнительные детали окружения</label>
621
+ <textarea id="object_details" placeholder="Пример: капли воды на флаконе, рядом лежат кофейные зерна и палочка корицы"></textarea>
622
+ </div>
623
+ <div class="form-group full-width">
624
+ <label class="checkbox-label">Креативность</label>
625
+ <div class="checkbox-container">
626
+ <input type="checkbox" id="creative_mode" onchange="toggleCreativeMode()">
627
+ <label for="creative_mode" style="color: var(--text); text-transform: none; letter-spacing: 0;">Креативный фон от ИИ (игнорирует "Тип фона")</label>
628
+ </div>
629
  </div>
630
  </div>
631
  </div>
 
632
 
633
+ <div class="btn-container">
634
+ <button type="button" class="action-btn" onclick="processAndOpen()">
635
+ <span>Launch Synkris AI</span>
636
+ <span style="font-size: 1.2em">⚡</span>
637
+ </button>
638
+ </div>
639
+ </form>
640
  </div>
641
 
642
  <script>
643
  let currentMode = 'model';
644
+ let currentChildrenSubMode = 'newborn';
645
 
646
  function switchMode(mode) {
647
  currentMode = mode;
648
  document.getElementById('modelMode').classList.toggle('active', mode === 'model');
649
+ document.getElementById('childrenMode').classList.toggle('active', mode === 'children');
650
  document.getElementById('objectMode').classList.toggle('active', mode === 'object');
651
+
652
  document.getElementById('modeModelBtn').classList.toggle('active', mode === 'model');
653
+ document.getElementById('modeChildrenBtn').classList.toggle('active', mode === 'children');
654
  document.getElementById('modeObjectBtn').classList.toggle('active', mode === 'object');
655
  }
656
 
657
+ function switchChildrenSubMode(subMode) {
658
+ currentChildrenSubMode = subMode;
659
  document.getElementById('newbornSubMode').classList.toggle('active', subMode === 'newborn');
660
+ document.getElementById('olderChildrenSubMode').classList.toggle('active', subMode === 'older');
661
 
662
+ document.getElementById('newbornBtn').classList.toggle('active', subMode === 'newborn');
663
+ document.getElementById('olderChildrenBtn').classList.toggle('active', subMode === 'older');
664
  }
665
 
666
 
 
690
  const originalText = btn.innerHTML;
691
  let fullPrompt = '';
692
 
693
+ const negative_prompt = "cropped, watermark, text, 3d render, cartoon, anime, plastic look, doll, artificial, blurry, distorted, malformed, ugly, disfigured, amputation, ugly, gross, disgusting, nsfw";
694
 
695
  if (currentMode === 'model') {
696
  const style = document.getElementById('style').value;
 
707
  const location = document.getElementById('location').value;
708
  const light = document.getElementById('light').value;
709
  const camera = document.getElementById('camera').value;
710
+
711
  const scene = `${details}, ${location}`;
712
+
713
  fullPrompt = `style:: ${style}.
714
  composition:: ${shotType}.
715
  subject:: A photorealistic portrait of a ${age} ${nationality} ${gender}.
 
717
  scene:: ${scene}.
718
  technical:: professional photography, ${light}, shot on ${camera}, 8k, sharp focus, hyper-detailed, realistic skin texture with pores, masterpiece.`;
719
 
720
+ } else if (currentMode === 'children') {
721
+ const style = document.getElementById('child_style').value;
722
+ const shotType = document.getElementById('child_shotType').value;
723
+ const location = document.getElementById('child_location').value;
724
+ const light = document.getElementById('child_light').value;
725
+ let subject = '';
 
 
726
  let scene_details = '';
727
+
728
+ if(currentChildrenSubMode === 'newborn') {
729
  const age = document.getElementById('newborn_age').value;
730
+ const ethnicity = document.getElementById('newborn_ethnicity').value;
731
+ const emotion = document.getElementById('newborn_emotion').value;
732
  const pose = document.getElementById('newborn_pose').value;
733
+ const details = document.getElementById('newborn_details').value || "wearing cute and simple clothes";
734
+ subject = `A beautiful, photorealistic portrait of a ${age} ${ethnicity} baby. Face expression is ${emotion}.`;
735
+ scene_details = `The baby is ${pose}. The baby is ${details}.`;
736
+ } else { // 'older' sub-mode
737
+ const age = document.getElementById('child_age').value;
738
+ const gender = document.getElementById('child_gender').value;
739
+ const ethnicity = document.getElementById('child_ethnicity').value;
740
+ const emotion = document.getElementById('child_emotion').value;
741
+ const pose = document.getElementById('child_pose').value;
742
+ const details = document.getElementById('child_details').value || "in stylish casual clothes";
743
+ subject = `A beautiful, photorealistic portrait of a ${age} ${ethnicity} ${gender}. Face expression is ${emotion}.`;
744
+ scene_details = `The child is ${pose}. The child is ${details}.`;
745
  }
746
 
747
+ fullPrompt = `style:: ${style}.
748
+ composition:: ${shotType}.
749
+ subject:: ${subject}
750
+ scene:: ${scene_details} The scene is ${location}.
751
+ technical:: professional photography, ${light}, shot on Fujifilm XT4, 56mm F1.2 lens, 8k, sharp focus, hyper-detailed, realistic skin texture, masterpiece.`;
752
 
753
+ } else { // Object mode
754
  const objectName = document.getElementById('object_name').value || "a product";
755
  const objectStyle = document.getElementById('object_style').value;
756
  const objectLighting = document.getElementById('object_lighting').value;
 
772
  technical:: commercial studio quality, ${objectLighting}, 8k resolution, sharp focus, ultra-realistic, masterpiece.`;
773
  }
774
 
775
+ const cleanPrompt = fullPrompt.replace(/\s+/g, ' ').replace(/\n/g, ' ').trim();
776
 
777
  try {
778
  await navigator.clipboard.writeText(cleanPrompt);
779
+ btn.style.backgroundImage = "linear-gradient(45deg, #ffffff, #e0e0e0)";
780
  btn.style.color = "#000";
781
  btn.innerHTML = "ПРОМПТ СКОПИРОВАН. ЗАПУСК... 🚀";
782
 
783
  setTimeout(() => {
784
  window.open('https://lmarena.ai/ru?chat-modality=image&mode=direct', '_blank');
785
  setTimeout(() => {
786
+ btn.style.backgroundImage = "";
 
787
  btn.innerHTML = originalText;
788
  }, 1000);
789
  }, 800);
 
791
  console.error('Failed to copy: ', err);
792
  alert("Не удалось скопировать. Промпт в консоли разработчика.");
793
  console.log("Ваш промпт:\n", cleanPrompt);
 
794
  }
795
  }
796
 
797
  document.addEventListener('DOMContentLoaded', () => {
798
  switchMode('model');
799
+ switchChildrenSubMode('newborn');
800
  autoAdjustDefaults();
801
  });
802
  </script>