Spaces:
Running
Running
Update index.html
Browse files- index.html +225 -7
index.html
CHANGED
|
@@ -3,7 +3,7 @@
|
|
| 3 |
<head>
|
| 4 |
<meta charset="UTF-8">
|
| 5 |
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
| 6 |
-
<title>Synkris Look
|
| 7 |
<style>
|
| 8 |
:root {
|
| 9 |
--bg: #000000;
|
|
@@ -79,6 +79,7 @@ p.subtitle {
|
|
| 79 |
border-radius: 8px;
|
| 80 |
transition: all 0.3s ease;
|
| 81 |
text-transform: uppercase;
|
|
|
|
| 82 |
}
|
| 83 |
|
| 84 |
.mode-btn.active {
|
|
@@ -224,6 +225,7 @@ select option {
|
|
| 224 |
|
| 225 |
<div class="mode-selector">
|
| 226 |
<button id="modeModelBtn" class="mode-btn active" onclick="switchMode('model')">Фото на модели</button>
|
|
|
|
| 227 |
<button id="modeObjectBtn" class="mode-btn" onclick="switchMode('object')">Предметное фото</button>
|
| 228 |
</div>
|
| 229 |
|
|
@@ -307,7 +309,7 @@ select option {
|
|
| 307 |
<option value="walking towards camera">Идет на камеру</option>
|
| 308 |
<option value="sitting relaxed">Сидит расслабленно</option>
|
| 309 |
<option value="leaning against a wall">Оперевшись о стену</option>
|
| 310 |
-
<option value="dynamic action pose">Динамичная поза</option>
|
| 311 |
</select>
|
| 312 |
</div>
|
| 313 |
<!-- Row 5 - COMPOSITION -->
|
|
@@ -354,7 +356,7 @@ select option {
|
|
| 354 |
</select>
|
| 355 |
</div>
|
| 356 |
|
| 357 |
-
<!--
|
| 358 |
<div class="form-group full-width">
|
| 359 |
<label for="location">Локация</label>
|
| 360 |
<select id="location">
|
|
@@ -377,6 +379,173 @@ select option {
|
|
| 377 |
</div>
|
| 378 |
</div>
|
| 379 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 380 |
<!-- === OBJECT PHOTOGRAPHY MODE === -->
|
| 381 |
<div id="objectMode" class="form-mode">
|
| 382 |
<div class="form-group full-width">
|
|
@@ -448,15 +617,27 @@ select option {
|
|
| 448 |
|
| 449 |
<script>
|
| 450 |
let currentMode = 'model';
|
|
|
|
| 451 |
|
| 452 |
function switchMode(mode) {
|
| 453 |
currentMode = mode;
|
| 454 |
document.getElementById('modelMode').classList.toggle('active', mode === 'model');
|
|
|
|
| 455 |
document.getElementById('objectMode').classList.toggle('active', mode === 'object');
|
| 456 |
document.getElementById('modeModelBtn').classList.toggle('active', mode === 'model');
|
|
|
|
| 457 |
document.getElementById('modeObjectBtn').classList.toggle('active', mode === 'object');
|
| 458 |
}
|
| 459 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 460 |
function autoAdjustDefaults() {
|
| 461 |
if (currentMode !== 'model') return;
|
| 462 |
const gender = document.getElementById('gender').value;
|
|
@@ -483,7 +664,6 @@ async function processAndOpen() {
|
|
| 483 |
const originalText = btn.innerHTML;
|
| 484 |
let fullPrompt = '';
|
| 485 |
|
| 486 |
-
// Этот негативный промпт можно вставлять в соответствующее поле на сайте, если оно есть
|
| 487 |
const negative_prompt = "cropped, watermark, text, 3d render, cartoon, anime, plastic look, doll, artificial, blurry, distorted, malformed, ugly, disfigured, amputation, ugly, gross, disgusting";
|
| 488 |
|
| 489 |
if (currentMode === 'model') {
|
|
@@ -498,11 +678,10 @@ async function processAndOpen() {
|
|
| 498 |
const emotion = document.getElementById('emotion').value;
|
| 499 |
const pose = document.getElementById('pose').value;
|
| 500 |
const details = document.getElementById('model_details').value || "in a casual stylish outfit";
|
| 501 |
-
const location = document.getElementById('location').value;
|
| 502 |
const light = document.getElementById('light').value;
|
| 503 |
const camera = document.getElementById('camera').value;
|
| 504 |
|
| 505 |
-
// Собираем сцену из локации и деталей
|
| 506 |
const scene = `${details}, ${location}`;
|
| 507 |
|
| 508 |
fullPrompt = `style:: ${style}.
|
|
@@ -512,6 +691,45 @@ model_details:: physique is ${bodyType}, ${hairColor} ${hairstyle}, face express
|
|
| 512 |
scene:: ${scene}.
|
| 513 |
technical:: professional photography, ${light}, shot on ${camera}, 8k, sharp focus, hyper-detailed, realistic skin texture with pores, masterpiece.`;
|
| 514 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 515 |
} else { // Object mode
|
| 516 |
const objectName = document.getElementById('object_name').value || "a product";
|
| 517 |
const objectStyle = document.getElementById('object_style').value;
|
|
@@ -534,7 +752,6 @@ composition:: ${objectComposition}.
|
|
| 534 |
technical:: commercial studio quality, ${objectLighting}, 8k resolution, sharp focus, ultra-realistic, masterpiece.`;
|
| 535 |
}
|
| 536 |
|
| 537 |
-
// Убираем лишние пробелы и переносы строк, делая промпт чище
|
| 538 |
const cleanPrompt = fullPrompt.replace(/\s+/g, ' ').trim();
|
| 539 |
|
| 540 |
try {
|
|
@@ -561,6 +778,7 @@ technical:: commercial studio quality, ${objectLighting}, 8k resolution, sharp f
|
|
| 561 |
document.addEventListener('DOMContentLoaded', () => {
|
| 562 |
switchMode('model');
|
| 563 |
autoAdjustDefaults();
|
|
|
|
| 564 |
});
|
| 565 |
</script>
|
| 566 |
|
|
|
|
| 3 |
<head>
|
| 4 |
<meta charset="UTF-8">
|
| 5 |
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
| 6 |
+
<title>Synkris Look 8</title>
|
| 7 |
<style>
|
| 8 |
:root {
|
| 9 |
--bg: #000000;
|
|
|
|
| 79 |
border-radius: 8px;
|
| 80 |
transition: all 0.3s ease;
|
| 81 |
text-transform: uppercase;
|
| 82 |
+
white-space: nowrap;
|
| 83 |
}
|
| 84 |
|
| 85 |
.mode-btn.active {
|
|
|
|
| 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 |
|
|
|
|
| 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 -->
|
|
|
|
| 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">
|
|
|
|
| 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">
|
|
|
|
| 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 |
+
|
| 641 |
function autoAdjustDefaults() {
|
| 642 |
if (currentMode !== 'model') return;
|
| 643 |
const gender = document.getElementById('gender').value;
|
|
|
|
| 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') {
|
|
|
|
| 678 |
const emotion = document.getElementById('emotion').value;
|
| 679 |
const pose = document.getElementById('pose').value;
|
| 680 |
const details = document.getElementById('model_details').value || "in a casual stylish outfit";
|
| 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}.
|
|
|
|
| 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;
|
|
|
|
| 752 |
technical:: commercial studio quality, ${objectLighting}, 8k resolution, sharp focus, ultra-realistic, masterpiece.`;
|
| 753 |
}
|
| 754 |
|
|
|
|
| 755 |
const cleanPrompt = fullPrompt.replace(/\s+/g, ' ').trim();
|
| 756 |
|
| 757 |
try {
|
|
|
|
| 778 |
document.addEventListener('DOMContentLoaded', () => {
|
| 779 |
switchMode('model');
|
| 780 |
autoAdjustDefaults();
|
| 781 |
+
switchChildMode('newborn');
|
| 782 |
});
|
| 783 |
</script>
|
| 784 |
|