Aleksmorshen commited on
Commit
5c19f8c
·
verified ·
1 Parent(s): 9434d7b

Update index.html

Browse files
Files changed (1) hide show
  1. index.html +398 -422
index.html CHANGED
@@ -31,11 +31,11 @@ body {
31
  .container {
32
  background-color: var(--card-bg);
33
  width: 100%;
34
- max-width: 700px;
35
  padding: 35px;
36
  border-radius: 20px;
37
- border: 1px solid #222;
38
- box-shadow: 0 0 30px rgba(204, 255, 0, 0.05);
39
  }
40
 
41
  h1 {
@@ -43,7 +43,8 @@ h1 {
43
  color: var(--primary);
44
  margin-top: 0;
45
  margin-bottom: 5px;
46
- font-size: 2rem;
 
47
  text-transform: uppercase;
48
  letter-spacing: 2px;
49
  text-shadow: 0 0 10px rgba(204, 255, 0, 0.3);
@@ -60,7 +61,7 @@ p.subtitle {
60
  .mode-selector {
61
  display: flex;
62
  justify-content: center;
63
- margin-bottom: 30px;
64
  background-color: var(--input-bg);
65
  border-radius: 12px;
66
  padding: 5px;
@@ -69,29 +70,29 @@ p.subtitle {
69
 
70
  .mode-btn {
71
  flex: 1;
72
- padding: 10px 15px;
73
  background-color: transparent;
74
  border: none;
75
  color: var(--text-secondary);
76
  font-size: 0.9rem;
77
- font-weight: 600;
78
  cursor: pointer;
79
  border-radius: 8px;
80
  transition: all 0.3s ease;
81
  text-transform: uppercase;
82
- white-space: nowrap;
83
  }
84
 
85
  .mode-btn.active {
86
  background-color: var(--primary);
87
  color: #000;
88
- box-shadow: 0 0 10px rgba(204, 255, 0, 0.3);
89
  }
90
 
91
  .form-grid {
92
  display: grid;
93
  grid-template-columns: 1fr 1fr;
94
- gap: 20px;
95
  }
96
 
97
  .full-width {
@@ -104,12 +105,12 @@ p.subtitle {
104
  }
105
 
106
  label, .checkbox-label {
107
- font-weight: 500;
108
- margin-bottom: 8px;
109
- font-size: 0.85rem;
110
  color: var(--primary);
111
  text-transform: uppercase;
112
- letter-spacing: 0.5px;
113
  }
114
 
115
  select, textarea, input[type="text"] {
@@ -137,7 +138,7 @@ textarea {
137
  }
138
 
139
  .btn-container {
140
- margin-top: 30px;
141
  text-align: center;
142
  }
143
 
@@ -158,16 +159,17 @@ textarea {
158
  align-items: center;
159
  gap: 12px;
160
  text-transform: uppercase;
 
161
  }
162
 
163
  .action-btn:hover {
164
  background-color: var(--primary-hover);
165
- transform: scale(1.02);
166
  box-shadow: 0 0 25px rgba(204, 255, 0, 0.6);
167
  }
168
 
169
  .action-btn:active {
170
- transform: scale(0.98);
171
  }
172
 
173
  select option {
@@ -193,10 +195,41 @@ select option {
193
  }
194
 
195
  .checkbox-container input {
196
- margin-right: 10px;
 
 
 
 
 
 
 
 
 
 
 
 
 
197
  }
198
 
199
- /* Responsive Design */
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
200
  @media (max-width: 600px) {
201
  .form-grid {
202
  grid-template-columns: 1fr;
@@ -210,11 +243,11 @@ select option {
210
  h1 {
211
  font-size: 1.8rem;
212
  }
213
- .mode-btn {
214
- font-size: 0.8rem;
 
215
  }
216
  }
217
-
218
  </style>
219
  </head>
220
  <body>
@@ -225,416 +258,367 @@ select option {
225
 
226
  <div class="mode-selector">
227
  <button id="modeModelBtn" class="mode-btn active" onclick="switchMode('model')">Фото на модели</button>
228
- <button id="modeChildBtn" class="mode-btn" onclick="switchMode('child')">Фото на модели (дети)</button>
229
  <button id="modeObjectBtn" class="mode-btn" onclick="switchMode('object')">Предметное фото</button>
230
  </div>
231
 
232
- <form id="promptForm">
233
- <div class="form-grid">
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
234
 
235
- <!-- === MODEL PHOTOGRAPHY MODE === -->
236
- <div id="modelMode" class="form-mode active">
237
- <!-- Row 1 -->
238
- <div class="form-group">
239
- <label for="gender">Пол</label>
240
- <select id="gender" onchange="autoAdjustDefaults()">
241
- <option value="Woman">Женщина</option>
242
- <option value="Man">Мужчина</option>
243
- </select>
244
- </div>
245
  <div class="form-group">
246
- <label for="age">Возраст</label>
247
- <select id="age">
248
- <option value="18 years old">18 лет</option>
249
- <option value="20-25 years old" selected>20-25 лет</option>
250
- <option value="25-30 years old">25-30 лет</option>
251
- <option value="30-40 years old">30-40 лет</option>
252
  </select>
253
  </div>
254
- <!-- Row 2 -->
255
  <div class="form-group">
256
- <label for="nationality">Внешность/Этнос</label>
257
- <select id="nationality">
258
- <option value="Eastern European">Восточная Европа</option>
259
- <option value="Northern European">Скандинавская</option>
260
- <option value="Asian">Азиатская</option>
261
- <option value="Latin American">Латиноамериканская</option>
262
- <option value="Mixed Race">Смешанная</option>
263
  </select>
264
  </div>
265
- <div class="form-group">
266
- <label for="bodyType">Телосложение</label>
267
- <select id="bodyType">
268
- <option value="Fit and slim">Стройное/Подтянутое</option>
269
- <option value="Athletic">Спортивное</option>
270
- <option value="Curvy">Пышное (Curvy)</option>
271
- <option value="Skinny model look">Модельная худоба</option>
272
- </select>
273
  </div>
274
- <!-- Row 3 -->
 
 
 
275
  <div class="form-group">
276
- <label for="hairColor">Цвет волос</label>
277
- <select id="hairColor">
278
- <option value="Brunette">Брюнет</option>
279
- <option value="Blonde">Блонд</option>
280
- <option value="Black">Черные</option>
281
- <option value="Redhead">Рыжие</option>
282
  </select>
283
  </div>
284
  <div class="form-group">
285
- <label for="hairstyle">Стрижка</label>
286
- <select id="hairstyle">
287
- <option value="Long loose wavy hair">Длинные волны</option>
288
- <option value="Straight long hair">Длинные прямые</option>
289
- <option value="Messy bun">Небрежный пучок</option>
290
- <option value="Bob cut">Каре</option>
291
- <option value="Fade cut">Фейд (Мужской)</option>
292
  </select>
293
  </div>
294
- <!-- Row 4 -->
295
  <div class="form-group">
296
- <label for="emotion">Эмоция/Выражение лица</label>
297
- <select id="emotion">
298
- <option value="Confident look">Уверенный взгляд</option>
299
- <option value="Smiling gently">Легкая улыбка</option>
300
- <option value="Serious and thoughtful">Серьезное и вдумчивое</option>
301
- <option value="Playful wink">Игривое подмигивание</option>
302
- <option value="Mysterious gaze">Загадочный взгляд</option>
303
- </select>
304
- </div>
305
- <div class="form-group">
306
- <label for="pose">Поза</label>
307
- <select id="pose">
308
- <option value="standing confidently">Стоит уверенно</option>
309
- <option value="walking towards camera">Идет на камеру</option>
310
- <option value="sitting relaxed">Сидит расслабленно</option>
311
- <option value="leaning against a wall">Оперевшись о стену</option>
312
- <option value="dynamic action pose" selected>Динамичная поза</option>
313
- </select>
314
- </div>
315
- <!-- Row 5 - COMPOSITION -->
316
- <div class="form-group">
317
- <label for="shotType">Ракурс/План</label>
318
- <select id="shotType">
319
- <option value="Full body shot">В полный рост</option>
320
- <option value="Medium shot, waist up">По пояс</option>
321
- <option value="Cowboy shot, mid-thigh up">"Ковбойский" план</option>
322
- <option value="Portrait shot">Портрет</option>
323
- <option value="Close-up">Крупный план</option>
324
- </select>
325
- </div>
326
- <div class="form-group">
327
- <label for="light">Свет</label>
328
- <select id="light">
329
- <option value="volumetric studio lighting">Объемный студийный</option>
330
- <option value="cinematic lighting">Кинематографичный</option>
331
- <option value="natural morning light">Естественный утренний</option>
332
- <option value="dramatic side light">Драматичный боковой</option>
333
- <option value="neon lights">Неоновый</option>
334
- </select>
335
- </div>
336
- <!-- Row 6 - TECHNICAL STYLE -->
337
- <div class="form-group">
338
- <label for="style">Эстетика</label>
339
- <select id="style">
340
- <option value="Raw Candid Photography">Живое фото (Raw)</option>
341
- <option value="Cinematic Movie Still">Кадр из фильма</option>
342
- <option value="Fashion Editorial">Модный журнал</option>
343
- <option value="Street Style Photo">Уличный стиль</option>
344
- <option value="Dark Moody Atmosphere">Мрачная атмосфера</option>
345
- <option value="Vintage Analog Film">Пленка (Vintage)</option>
346
  </select>
347
  </div>
348
  <div class="form-group">
349
- <label for="camera">Камера/Объектив</label>
350
- <select id="camera">
351
- <option value="Fujifilm XT4, 56mm F1.2 lens">Fuji 56mm (Портрет)</option>
352
- <option value="Sony A7III, 35mm F1.4 lens">Sony 35mm (Универсал)</option>
353
- <option value="Canon EOS R5, 85mm F1.2 lens">Canon 85mm (Боке)</option>
354
- <option value="Leica M11, Summilux 50mm">Leica 50mm (Стрит)</option>
355
- <option value="shot on 35mm film, Kodak Portra 400">Пленка Kodak Portra</option>
356
  </select>
357
  </div>
358
-
359
- <!-- Row 7 - LOCATION -->
360
- <div class="form-group full-width">
361
- <label for="location">Локация</label>
362
- <select id="location">
363
- <option value="in a clean white seamless studio background">Студия (белый фон)</option>
364
- <option value="in a creative editorial studio with mirrors and geometric shapes">Студия "Эдиториал" (зеркала)</option>
365
- <option value="on a rainy night street in Tokyo with neon lights">Улица (ночной Токио, неон)</option>
366
- <option value="in a minimalist modern interior with concrete walls">Минимализм (лофт, бетон)</option>
367
- <option value="on a rooftop overlooking the city skyline at sunset">Крыша с видом на город</option>
368
- <option value="in a luxurious vintage room with classic furniture">Роскошный интерьер (винтаж)</option>
369
- <option value="in a dense, magical forest with sunbeams filtering through">Природа (сказочный лес)</option>
370
- <option value="on a beautiful sandy beach during the golden hour">Природа (пляж, закат)</option>
371
- <option value="in a vibrant, bustling urban market">Город (оживленный рынок)</option>
372
- <option value="inside a futuristic, sci-fi corridor with glowing lines">Фантастика (коридор)</option>
373
- </select>
374
  </div>
 
375
 
376
- <div class="form-group full-width">
377
- <label for="model_details">Одежда и Детали</label>
378
- <textarea id="model_details" placeholder="Пример: в черном кожаном плаще и грубых ботинках, смотрит в камеру"></textarea>
379
- </div>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
380
  </div>
381
 
382
- <!-- === CHILD MODEL PHOTOGRAPHY MODE === -->
383
- <div id="childModelMode" class="form-mode">
384
- <div class="full-width">
385
- <div class="mode-selector">
386
- <button id="modeNewbornBtn" class="mode-btn active" onclick="switchChildMode('newborn')">Новорожденные (0-6 мес)</button>
387
- <button id="modeOlderChildBtn" class="mode-btn" onclick="switchChildMode('older')">Дети (1-17 лет)</button>
388
- </div>
389
- </div>
390
 
391
- <!-- Newborn Sub-Mode -->
392
- <div id="newbornMode" class="form-mode active">
393
- <div class="form-group">
394
- <label for="newborn_age">Возраст</label>
395
- <select id="newborn_age">
396
- <option value="newborn baby, 0-3 months old">0-3 месяца</option>
397
- <option value="baby, 3-6 months old">3-6 месяцев</option>
398
- </select>
399
- </div>
400
- <div class="form-group">
401
- <label for="newborn_emotion">Эмоция/Состояние</label>
402
- <select id="newborn_emotion">
403
- <option value="sleeping peacefully">Сладко спит</option>
404
- <option value="calm and serene">Спокойное</option>
405
- <option value="a gentle, slight smile">Легкая улыбка</option>
406
- <option value="curious look">Любопытный взгляд</option>
407
- </select>
408
- </div>
409
- <div class="form-group full-width">
410
- <label for="newborn_pose">Поза</label>
411
- <select id="newborn_pose">
412
- <option value="lying on its back, wrapped in a soft blanket">Лежит на спине в одеяле</option>
413
- <option value="in a cute tummy time pose">Лежит на животике</option>
414
- <option value="held gently in parents' hands (hands only visible)">В руках родителей (видны только руки)</option>
415
- <option value="sleeping in a cute prop like a basket">Спит в корзинке</option>
416
- </select>
417
- </div>
418
- <div class="form-group full-width">
419
- <label for="newborn_details">Одежда и Детали</label>
420
- <textarea id="newborn_details" placeholder="Пример: в милой вязаной шапочке с ушками, на бежевом фоне"></textarea>
421
- </div>
422
- <div class="form-group">
423
- <label for="child_shotType">Ракурс/План</label>
424
- <select id="child_shotType">
425
- <option value="Close-up on face">Крупный план лица</option>
426
- <option value="Medium shot">Средний план</option>
427
- <option value="Full body shot from above">В полный рост (вид сверху)</option>
428
- </select>
429
- </div>
430
- <div class="form-group">
431
- <label for="child_light">Свет</label>
432
- <select id="child_light">
433
- <option value="soft, natural window light">Мягкий дневной свет</option>
434
- <option value="warm, gentle studio light">Теплый студийный</option>
435
- <option value="dreamy backlight">Сказочный контровой</option>
436
- </select>
437
- </div>
438
- <div class="form-group full-width">
439
- <label for="child_style">Эстетика</label>
440
- <select id="child_style">
441
- <option value="Bright and Airy photography">Светлая и воздушная</option>
442
- <option value="Cozy and warm mood">Уютная и теплая</option>
443
- <option value="Minimalistic and clean">Минимализм</option>
444
- <option value="Vintage film look">Пленка (винтаж)</option>
445
- </select>
446
- </div>
447
- </div>
448
 
449
- <!-- Older Child Sub-Mode -->
450
- <div id="olderChildMode" class="form-mode">
451
- <div class="form-group">
452
- <label for="older_gender">Пол</label>
453
- <select id="older_gender">
454
- <option value="girl">Девочка</option>
455
- <option value="boy">Мальчик</option>
456
- </select>
457
- </div>
458
- <div class="form-group">
459
- <label for="older_age">Возраст</label>
460
- <select id="older_age">
461
- <option value="1-2 years old toddler">1-2 года</option>
462
- <option value="3-5 years old child">3-5 лет</option>
463
- <option value="6-9 years old child">6-9 лет</option>
464
- <option value="10-13 years old pre-teen">10-13 лет</option>
465
- <option value="14-17 years old teenager">14-17 лет</option>
466
- </select>
467
- </div>
468
- <div class="form-group">
469
- <label for="older_nationality">Внешность/Этнос</label>
470
- <select id="older_nationality">
471
- <option value="Eastern European">Восточная Европа</option>
472
- <option value="Northern European">Скандинавская</option>
473
- <option value="Asian">Азиатская</option>
474
- <option value="Latin American">Латиноамериканская</option>
475
- <option value="Mixed Race">Смешанная</option>
476
- </select>
477
- </div>
478
- <div class="form-group">
479
- <label for="older_emotion">Эмоция/Выражение лица</label>
480
- <select id="older_emotion">
481
- <option value="happy and laughing">Счастливый, смеется</option>
482
- <option value="curious and exploring">Любопытный</option>
483
- <option value="thoughtful and calm">Задумчивый</option>
484
- <option value="energetic and playful">Игривый</option>
485
- </select>
486
- </div>
487
- <div class="form-group full-width">
488
- <label for="older_pose">Поза</label>
489
- <select id="older_pose">
490
- <option value="running in a field">Бежит по полю</option>
491
- <option value="sitting and playing with toys">Сидит, играя с игрушками</option>
492
- <option value="hugging a pet">Обнимает питомца</option>
493
- <option value="looking confidently at the camera">Уверенно смотрит в камеру</option>
494
- </select>
495
- </div>
496
- <div class="form-group full-width">
497
- <label for="older_details">Одежда и Детали</label>
498
- <textarea id="older_details" placeholder="Пример: в джинсовом комбинезоне и желтой футболке, с веснушками на лице"></textarea>
499
- </div>
500
- <!-- Copied Technical Fields -->
501
- <div class="form-group">
502
- <label for="older_shotType">Ракурс/План</label>
503
- <select id="older_shotType">
504
- <option value="Full body shot">В полный рост</option>
505
- <option value="Medium shot, waist up">По пояс</option>
506
- <option value="Portrait shot">Портрет</option>
507
- <option value="Action shot">В движении</option>
508
- </select>
509
- </div>
510
- <div class="form-group">
511
- <label for="older_light">Свет</label>
512
- <select id="older_light">
513
- <option value="natural morning light">Естественный утренний</option>
514
- <option value="golden hour sunset light">Закатный "золотой час"</option>
515
- <option value="cinematic lighting">Кинематографичный</option>
516
- <option value="volumetric studio lighting">Объемный студийный</option>
517
- </select>
518
- </div>
519
- <div class="form-group">
520
- <label for="older_style">Эстетика</label>
521
- <select id="older_style">
522
- <option value="Raw Candid Photography">Живое фото (Raw)</option>
523
- <option value="Cinematic Movie Still">Кадр из фильма</option>
524
- <option value="Street Style Photo">Уличный стиль</option>
525
- <option value="Vintage Analog Film">Пленка (Vintage)</option>
526
- </select>
527
- </div>
528
- <div class="form-group">
529
- <label for="older_camera">Камера/Объектив</label>
530
- <select id="older_camera">
531
- <option value="Sony A7III, 35mm F1.4 lens">Sony 35mm (Универсал)</option>
532
- <option value="Canon EOS R5, 85mm F1.2 lens">Canon 85mm (Боке)</option>
533
- <option value="shot on 35mm film, Kodak Portra 400">Пленка Kodak Portra</option>
534
- </select>
535
- </div>
536
- <div class="form-group full-width">
537
- <label for="older_location">Локация</label>
538
- <select id="older_location">
539
- <option value="in a sunny park with green grass">Солнечный парк</option>
540
- <option value="on a sandy beach building sandcastles">Пляж</option>
541
- <option value="in a cozy, brightly lit playroom">Уютная игровая комната</option>
542
- <option value="on a city street during a walk">Городская улица</option>
543
- <option value="in a magical forest">Сказочный лес</option>
544
- </select>
545
- </div>
546
- </div>
547
  </div>
548
-
549
- <!-- === OBJECT PHOTOGRAPHY MODE === -->
550
- <div id="objectMode" class="form-mode">
551
- <div class="form-group full-width">
552
- <label for="object_name">Название/Описание предмета</label>
553
- <input type="text" id="object_name" placeholder="Например: флакон духов 'Noir', кроссовки 'CyberRun', часы 'Classic Timepiece'">
554
- </div>
555
- <div class="form-group">
556
- <label for="object_style">Стилистика съемки</label>
557
- <select id="object_style">
558
- <option value="Minimalism on a cyclorama">Минимализм на циклораме</option>
559
- <option value="Lifestyle, in context">Лайфстайл (в контексте)</option>
560
- <option value="Detailed macro shot">Макросъемка деталей</option>
561
- <option value="Levitation shot">Левитация воздухе)</option>
562
- <option value="Creative flat lay">Креативная раскладка (Flat lay)</option>
563
- </select>
564
- </div>
565
- <div class="form-group">
566
- <label for="object_lighting">Освещение</label>
567
- <select id="object_lighting">
568
- <option value="soft, diffused studio light">Мягкий студийный свет</option>
569
- <option value="hard direct sunlight with dramatic shadows">Жесткий солнечный с тенями</option>
570
- <option value="backlit with a beautiful glow">Контровой свет (с сиянием)</option>
571
- <option value="moody, low-key lighting">Мрачное, низкий ключ</option>
572
- <option value="vibrant neon and colored gels">Цветной/неоновый свет</option>
573
- </select>
574
- </div>
575
- <div class="form-group">
576
- <label for="object_composition">Композиция</label>
577
- <select id="object_composition">
578
- <option value="centered composition">Центральная</option>
579
- <option value="dynamic diagonal angle">Динамичная диагональная</option>
580
- <option value="rule of thirds">По правилу третей</option>
581
- <option value="symmetrical composition">Симметричная</option>
582
- </select>
583
- </div>
584
- <div class="form-group">
585
- <label for="object_background">Тип фона</label>
586
- <select id="object_background">
587
- <option value="clean studio background (white/grey)">Однотонный студийный</option>
588
- <option value="on a wooden surface">Деревянная поверхность</option>
589
- <option value="on a marble surface">Мрамор</option>
590
- <option value="on a concrete texture">Бетон</option>
591
- <option value="on a silk/linen fabric">Ткань (шелк/лен)</option>
592
- <option value="in a natural environment (moss, sand, water)">Природное окружение (мох, песок)</option>
593
- </select>
594
- </div>
595
- <div class="form-group full-width">
596
- <label for="object_details">Дополнительные детали окружения</label>
597
- <textarea id="object_details" placeholder="Пример: капли воды на флаконе, рядом лежат кофейные зерна и палочка корицы"></textarea>
598
- </div>
599
- <div class="form-group full-width">
600
- <label class="checkbox-label">Креативность</label>
601
- <div class="checkbox-container">
602
- <input type="checkbox" id="creative_mode" onchange="toggleCreativeMode()">
603
- <label for="creative_mode" style="color: var(--text); text-transform: none; letter-spacing: 0;">Креативный фон от ИИ (игнорирует "Тип фона")</label>
604
- </div>
605
  </div>
606
  </div>
607
  </div>
 
608
 
609
- <div class="btn-container">
610
- <button type="button" class="action-btn" onclick="processAndOpen()">
611
- <span>Launch Synkris AI</span>
612
- <span style="font-size: 1.2em">⚡</span>
613
- </button>
614
- </div>
615
- </form>
616
  </div>
617
 
618
  <script>
619
  let currentMode = 'model';
620
- let currentChildMode = 'newborn';
621
 
622
  function switchMode(mode) {
623
  currentMode = mode;
624
  document.getElementById('modelMode').classList.toggle('active', mode === 'model');
625
- document.getElementById('childModelMode').classList.toggle('active', mode === 'child');
626
  document.getElementById('objectMode').classList.toggle('active', mode === 'object');
 
627
  document.getElementById('modeModelBtn').classList.toggle('active', mode === 'model');
628
- document.getElementById('modeChildBtn').classList.toggle('active', mode === 'child');
629
  document.getElementById('modeObjectBtn').classList.toggle('active', mode === 'object');
630
  }
631
 
632
- function switchChildMode(childMode) {
633
- currentChildMode = childMode;
634
- document.getElementById('newbornMode').classList.toggle('active', childMode === 'newborn');
635
- document.getElementById('olderChildMode').classList.toggle('active', childMode === 'older');
636
- document.getElementById('modeNewbornBtn').classList.toggle('active', childMode === 'newborn');
637
- document.getElementById('modeOlderChildBtn').classList.toggle('active', childMode === 'older');
 
638
  }
639
 
640
 
@@ -664,7 +648,7 @@ async function processAndOpen() {
664
  const originalText = btn.innerHTML;
665
  let fullPrompt = '';
666
 
667
- const negative_prompt = "cropped, watermark, text, 3d render, cartoon, anime, plastic look, doll, artificial, blurry, distorted, malformed, ugly, disfigured, amputation, ugly, gross, disgusting";
668
 
669
  if (currentMode === 'model') {
670
  const style = document.getElementById('style').value;
@@ -681,9 +665,7 @@ async function processAndOpen() {
681
  const location = document.getElementById('location').value;
682
  const light = document.getElementById('light').value;
683
  const camera = document.getElementById('camera').value;
684
-
685
  const scene = `${details}, ${location}`;
686
-
687
  fullPrompt = `style:: ${style}.
688
  composition:: ${shotType}.
689
  subject:: A photorealistic portrait of a ${age} ${nationality} ${gender}.
@@ -691,46 +673,39 @@ model_details:: physique is ${bodyType}, ${hairColor} ${hairstyle}, face express
691
  scene:: ${scene}.
692
  technical:: professional photography, ${light}, shot on ${camera}, 8k, sharp focus, hyper-detailed, realistic skin texture with pores, masterpiece.`;
693
 
694
- } else if (currentMode === 'child') {
695
- if (currentChildMode === 'newborn') {
696
- const style = document.getElementById('child_style').value;
697
- const shotType = document.getElementById('child_shotType').value;
 
 
 
 
 
 
 
698
  const age = document.getElementById('newborn_age').value;
699
- const emotion = document.getElementById('newborn_emotion').value;
700
  const pose = document.getElementById('newborn_pose').value;
701
- const details = document.getElementById('newborn_details').value || "wearing a cute outfit";
702
- const light = document.getElementById('child_light').value;
703
-
704
- fullPrompt = `style:: ${style}, tender and heartwarming.
705
- composition:: ${shotType}.
706
- subject:: A photorealistic portrait of a cute ${age}.
707
- details:: Expression is ${emotion}, ${pose}, ${details}.
708
- technical:: professional newborn photography, ${light}, shot on Canon EOS R5, 85mm F1.2 lens, 8k, sharp focus on eyes, hyper-detailed, realistic soft baby skin texture, masterpiece.`;
709
-
710
- } else { // Older child
711
- const style = document.getElementById('older_style').value;
712
- const shotType = document.getElementById('older_shotType').value;
713
- const age = document.getElementById('older_age').value;
714
  const gender = document.getElementById('older_gender').value;
715
- const nationality = document.getElementById('older_nationality').value;
716
  const emotion = document.getElementById('older_emotion').value;
717
  const pose = document.getElementById('older_pose').value;
718
- const details = document.getElementById('older_details').value || "in a stylish casual outfit";
719
- const location = document.getElementById('older_location').value;
720
- const light = document.getElementById('older_light').value;
721
- const camera = document.getElementById('older_camera').value;
722
-
723
- const scene = `${details}, ${location}`;
724
-
725
- fullPrompt = `style:: ${style}.
726
- composition:: ${shotType}.
727
- subject:: A photorealistic portrait of a ${age} ${nationality} ${gender}.
728
- details:: Face expression is ${emotion}, pose is ${pose}.
729
- scene:: ${scene}.
730
- technical:: professional photography, ${light}, shot on ${camera}, 8k, sharp focus, hyper-detailed, realistic skin texture, masterpiece.`;
731
  }
732
 
733
- } else { // Object mode
 
 
 
 
 
 
734
  const objectName = document.getElementById('object_name').value || "a product";
735
  const objectStyle = document.getElementById('object_style').value;
736
  const objectLighting = document.getElementById('object_lighting').value;
@@ -772,13 +747,14 @@ technical:: commercial studio quality, ${objectLighting}, 8k resolution, sharp f
772
  console.error('Failed to copy: ', err);
773
  alert("Не удалось скопировать. Промпт в консоли разработчика.");
774
  console.log("Ваш промпт:\n", cleanPrompt);
 
775
  }
776
  }
777
 
778
  document.addEventListener('DOMContentLoaded', () => {
779
  switchMode('model');
 
780
  autoAdjustDefaults();
781
- switchChildMode('newborn');
782
  });
783
  </script>
784
 
 
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
 
41
  h1 {
 
43
  color: var(--primary);
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);
 
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;
 
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
  }
85
 
86
  .mode-btn.active {
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 {
93
  display: grid;
94
  grid-template-columns: 1fr 1fr;
95
+ gap: 22px;
96
  }
97
 
98
  .full-width {
 
105
  }
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"] {
 
138
  }
139
 
140
  .btn-container {
141
+ margin-top: 35px;
142
  text-align: center;
143
  }
144
 
 
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
  }
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;
 
243
  h1 {
244
  font-size: 1.8rem;
245
  }
246
+ .mode-selector {
247
+ flex-direction: column;
248
+ gap: 5px;
249
  }
250
  }
 
251
  </style>
252
  </head>
253
  <body>
 
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
  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
  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
  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;
 
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>
760