Spaces:
Running
Running
Update index.html
Browse files- 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:
|
| 35 |
padding: 35px;
|
| 36 |
border-radius: 20px;
|
| 37 |
-
border: 1px solid
|
| 38 |
-
box-shadow: 0 0
|
| 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:
|
| 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:
|
| 73 |
background-color: transparent;
|
| 74 |
border: none;
|
| 75 |
color: var(--text-secondary);
|
| 76 |
font-size: 0.9rem;
|
| 77 |
-
font-weight:
|
| 78 |
cursor: pointer;
|
| 79 |
border-radius: 8px;
|
| 80 |
transition: all 0.3s ease;
|
| 81 |
text-transform: uppercase;
|
| 82 |
-
|
| 83 |
}
|
| 84 |
|
| 85 |
.mode-btn.active {
|
| 86 |
background-color: var(--primary);
|
| 87 |
color: #000;
|
| 88 |
-
box-shadow: 0 0
|
| 89 |
}
|
| 90 |
|
| 91 |
.form-grid {
|
| 92 |
display: grid;
|
| 93 |
grid-template-columns: 1fr 1fr;
|
| 94 |
-
gap:
|
| 95 |
}
|
| 96 |
|
| 97 |
.full-width {
|
|
@@ -104,12 +105,12 @@ p.subtitle {
|
|
| 104 |
}
|
| 105 |
|
| 106 |
label, .checkbox-label {
|
| 107 |
-
font-weight:
|
| 108 |
-
margin-bottom:
|
| 109 |
-
font-size: 0.
|
| 110 |
color: var(--primary);
|
| 111 |
text-transform: uppercase;
|
| 112 |
-
letter-spacing: 0.
|
| 113 |
}
|
| 114 |
|
| 115 |
select, textarea, input[type="text"] {
|
|
@@ -137,7 +138,7 @@ textarea {
|
|
| 137 |
}
|
| 138 |
|
| 139 |
.btn-container {
|
| 140 |
-
margin-top:
|
| 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:
|
| 166 |
box-shadow: 0 0 25px rgba(204, 255, 0, 0.6);
|
| 167 |
}
|
| 168 |
|
| 169 |
.action-btn:active {
|
| 170 |
-
transform: scale(0.
|
| 171 |
}
|
| 172 |
|
| 173 |
select option {
|
|
@@ -193,10 +195,41 @@ select option {
|
|
| 193 |
}
|
| 194 |
|
| 195 |
.checkbox-container input {
|
| 196 |
-
margin-right:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 197 |
}
|
| 198 |
|
| 199 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 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-
|
| 214 |
-
|
|
|
|
| 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="
|
| 229 |
<button id="modeObjectBtn" class="mode-btn" onclick="switchMode('object')">Предметное фото</button>
|
| 230 |
</div>
|
| 231 |
|
| 232 |
-
|
| 233 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 234 |
|
| 235 |
-
<!--
|
| 236 |
-
<div id="
|
| 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="
|
| 247 |
-
<select id="
|
| 248 |
-
<option value="
|
| 249 |
-
<option value="
|
| 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="
|
| 257 |
-
|
| 258 |
-
<option value="
|
| 259 |
-
<option value="
|
| 260 |
-
<option value="
|
| 261 |
-
<option value="
|
| 262 |
-
<option value="Mixed Race">Смешанная</option>
|
| 263 |
</select>
|
| 264 |
</div>
|
| 265 |
-
|
| 266 |
-
<label for="
|
| 267 |
-
<
|
| 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 |
-
|
|
|
|
|
|
|
|
|
|
| 275 |
<div class="form-group">
|
| 276 |
-
<label for="
|
| 277 |
-
<select id="
|
| 278 |
-
<option value="
|
| 279 |
-
<option value="
|
| 280 |
-
<option value="Black">Черные</option>
|
| 281 |
-
<option value="Redhead">Рыжие</option>
|
| 282 |
</select>
|
| 283 |
</div>
|
| 284 |
<div class="form-group">
|
| 285 |
-
<label for="
|
| 286 |
-
<select id="
|
| 287 |
-
<option value="
|
| 288 |
-
<option value="
|
| 289 |
-
<option value="
|
| 290 |
-
<option value="
|
| 291 |
-
<option value="
|
| 292 |
</select>
|
| 293 |
</div>
|
| 294 |
-
<!-- Row 4 -->
|
| 295 |
<div class="form-group">
|
| 296 |
-
<label for="
|
| 297 |
-
<select id="
|
| 298 |
-
<option value="
|
| 299 |
-
<option value="
|
| 300 |
-
<option value="
|
| 301 |
-
<option value="
|
| 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="
|
| 350 |
-
|
| 351 |
-
<option value="
|
| 352 |
-
<option value="
|
| 353 |
-
<option value="
|
| 354 |
-
<option value="
|
| 355 |
-
<option value="shot on 35mm film, Kodak Portra 400">Пленка Kodak Portra</option>
|
| 356 |
</select>
|
| 357 |
</div>
|
| 358 |
-
|
| 359 |
-
|
| 360 |
-
|
| 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 |
-
|
| 377 |
-
|
| 378 |
-
|
| 379 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 380 |
</div>
|
| 381 |
|
| 382 |
-
|
| 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 |
-
|
| 450 |
-
|
| 451 |
-
|
| 452 |
-
|
| 453 |
-
|
| 454 |
-
|
| 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 |
-
|
| 550 |
-
|
| 551 |
-
|
| 552 |
-
<
|
| 553 |
-
<
|
| 554 |
-
|
| 555 |
-
|
| 556 |
-
|
| 557 |
-
|
| 558 |
-
|
| 559 |
-
|
| 560 |
-
|
| 561 |
-
|
| 562 |
-
|
| 563 |
-
</
|
| 564 |
-
|
| 565 |
-
|
| 566 |
-
|
| 567 |
-
|
| 568 |
-
|
| 569 |
-
|
| 570 |
-
|
| 571 |
-
|
| 572 |
-
|
| 573 |
-
|
| 574 |
-
|
| 575 |
-
|
| 576 |
-
|
| 577 |
-
|
| 578 |
-
|
| 579 |
-
|
| 580 |
-
|
| 581 |
-
|
| 582 |
-
|
| 583 |
-
|
| 584 |
-
|
| 585 |
-
<
|
| 586 |
-
|
| 587 |
-
|
| 588 |
-
|
| 589 |
-
|
| 590 |
-
|
| 591 |
-
|
| 592 |
-
|
| 593 |
-
|
| 594 |
-
|
| 595 |
-
|
| 596 |
-
<label for="
|
| 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 |
-
|
| 610 |
-
|
| 611 |
-
|
| 612 |
-
|
| 613 |
-
|
| 614 |
-
|
| 615 |
-
|
| 616 |
</div>
|
| 617 |
|
| 618 |
<script>
|
| 619 |
let currentMode = 'model';
|
| 620 |
-
let
|
| 621 |
|
| 622 |
function switchMode(mode) {
|
| 623 |
currentMode = mode;
|
| 624 |
document.getElementById('modelMode').classList.toggle('active', mode === 'model');
|
| 625 |
-
document.getElementById('
|
| 626 |
document.getElementById('objectMode').classList.toggle('active', mode === 'object');
|
|
|
|
| 627 |
document.getElementById('modeModelBtn').classList.toggle('active', mode === 'model');
|
| 628 |
-
document.getElementById('
|
| 629 |
document.getElementById('modeObjectBtn').classList.toggle('active', mode === 'object');
|
| 630 |
}
|
| 631 |
|
| 632 |
-
function
|
| 633 |
-
|
| 634 |
-
document.getElementById('
|
| 635 |
-
document.getElementById('
|
| 636 |
-
|
| 637 |
-
document.getElementById('
|
|
|
|
| 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 === '
|
| 695 |
-
|
| 696 |
-
|
| 697 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 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 ||
|
| 702 |
-
|
| 703 |
-
|
| 704 |
-
|
| 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
|
| 716 |
const emotion = document.getElementById('older_emotion').value;
|
| 717 |
const pose = document.getElementById('older_pose').value;
|
| 718 |
-
const details = document.getElementById('older_details').value ||
|
| 719 |
-
|
| 720 |
-
|
| 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 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 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 |
|