Модуль I · IT Skills (Cloud Services & Documents) · тема 4, урок 1 з 2 · 120 хвилин
Сьогодні ти робиш комікс на шість панелей. Складність не в тому, щоб отримати гарну картинку, — це ти вже вмієш. Складність у тому, щоб на всіх шести панелях був один і той самий герой.
У 8 класі ти вже розбирав, як модель перетворює текст на зображення.
Звідти в тебе лишилися слова «шум», «денойзинг» і seed.
Сьогодні ми цього не повторюємо.
Сьогодні задача починається там, де закінчується одна вдала картинка. Кілька зображень з тим самим героєм звуться серією.
Одна вдала генерація — це везіння. Шість генерацій з тим самим героєм — це вже робота за правилами. Правил три, і сьогодні ти опануєш кожне.
Перше: герой описаний на папері. Ти складаєш список ознак, за якими його впізнають, — це і є канон персонажа. Друге: цей опис іде в кожен промпт незмінним, слово в слово. Третє: якщо панель не вийшла, міняєш один параметр, а не всі одразу. Інакше не зрозумієш, що саме допомогло.
~/local/comic/images/.
По FTP у кабінет ти вантажиш рівно три текстові файли:
comic/prompts.json, comic/character.md,
comic/storyboard.md. Самі панелі вчитель дивиться очно,
на твоєму екрані. Спробу залити .png у ~/www/comic/
сервер відхилить автоматично.seed, міняєш одну річ і дивишся, що дала саме вона;prompts.json, за яким будь-хто відтворить твої
шість панелей.| Хв | Що робимо |
|---|---|
| 10 | правило «медіа лишається локально», перевірка теки ~/local/comic/ |
| 20 | чому герой «пливе»: опис класу людей проти опису конкретної людини |
| 20 | аркуш канону: вісім ознак, конструктор, сталий блок |
| 15 | плани, ракурс, rule of thirds — керування кадром |
| 15 | seed і серії: зміна по одному параметру |
| 30 | практика: character.md, storyboard.md, 6 панелей, prompts.json |
| 10 | здача по FTP, автоперевірка, показ панелей учителю |
У PowerShell 5.1 && не працює — команди дають
окремими рядками. Це та сама пастка, що й у попередніх темах.
Тут немає збою. Модель робить рівно те, про що її попросили, — просто просили не те, що ти думав.
Модель не має пам'яті між генераціями. Кожен запуск починається з нуля: новий шум, новий прохід, нове обличчя. Єдине, що переходить із генерації в генерацію, — текст, який ти написав. Усе, чого в тексті немає, модель домальовує сама, і щоразу по-новому.
Запис «гарна дівчина» — це не опис людини. Це опис класу людей. Під нього підходять мільйони облич, і модель щоразу бере з цього класу когось іншого. Тому питання «як змусити модель запам'ятати героя» — неправильне. Правильне: що я забув написати.
| Запис у промпті | Що з цього виходить |
|---|---|
a beautiful girl |
оцінка, а не ознака: намалювати «гарну» можна тисячею способів — і буде тисяча різних людей |
a cool teenager |
те саме: «крутий» нічого не задає, бо це не видно оком |
a 14-year-old girl |
уже ознака: звужує вік, але не звужує обличчя |
short red bob haircut, freckles across the nose |
дві ознаки, які видно на малюнку: силует зачіски і фактура обличчя |
a green jacket with a yellow lightning patch on the left sleeve |
найсильніша ознака в серії: колір + крій + унікальна деталь із указаним місцем |
Робоче правило. Ознака годиться в канон, якщо двоє різних людей, прочитавши її, намалюють приблизно те саме. «Ластовиння на носі» — годиться. «Милий вигляд» — ні.
Панель 1 вийшла точно такою, як ти уявляв. Ти копіюєш той самий промпт для панелі 2, не міняючи жодного слова, — і на ній інша дівчина. Що насправді сталося?
Назвемо це прямо: дрейф героя — це різниця між тим, що ти уявляв, і тим, що написав. Модель заповнює цю різницю щоразу заново.
Однокласник каже: «я написав аж дванадцять ознак, і герой усе одно пливе». Дивишся його список — серед дванадцяти є «красиве обличчя», «крутий стиль», «модний одяг», «приємна усмішка». У чому проблема?
У мультиплікації й коміксі це називають model sheet або character sheet — аркуш, за яким десяток різних художників малює того самого героя однаково. Твій аркуш буде не малюнком, а текстом.
Студія не покладається на те, що всі художники «уявляють однаково». Вона друкує аркуш: герой спереду, збоку, ззаду, пропорції, палітра, деталі костюма, типові вирази обличчя. Далі кожен художник звіряється з аркушем, а не з пам'яттю.
Модель — той самий десяток художників, тільки їх нескінченно багато і жоден нічого не пам'ятає. Отже, аркуш потрібен тим більше. Різниця лише в тому, що модель читає не малюнок, а слова, — тому кожну ознаку доводиться проговорити.
Кожна ознака відрізає частину простору, з якого модель бере обличчя. Одна ознака відрізає мало. Вісім разом дають опис, під який випадково потрапити майже неможливо — і саме тому герой перестає «пливти».
Дуже важливо: ознака має бути видимою. «Любить котів» не малюється.
«Значок із котом на лямці рюкзака» — малюється. Канон описує зовнішність,
а не біографію; біографія піде в storyboard.md.
У твоєму каноні три ознаки, зате точні: «14 років», «руде каре», «зелена куртка». Ти кажеш: «мало, але влучно». Що буде на шести панелях?
Промпт панелі складається з двох шматків, і плутати їх — найчастіша помилка на цьому уроці.
| Частина | Що туди йде | Чи змінюється між панелями |
|---|---|---|
| Сталий блок (канон) | вісім ознак героя і стиль малюнка | ніколи. Копіюється символ у символ |
| Змінна частина | дія, місце, план, ракурс, композиція, світло | щопанелі — саме заради цього й робиться комікс |
Порядок теж має значення: канон іде першим. У більшості моделей слова на початку промпта важать більше за слова в кінці. А нам треба, щоб герой важив більше за фон.
the green jacket left on the bench behind him.
Тоді куртка й далі в кадрі, і герой упізнаваний.Панель 3 у тебе — герой біжить нічним дахом. Щоб не переписувати щоразу,
ти дописав running across a rooftop at night просто в канон.
На панелі 4 герой мав сидіти в класі — а знову опинився на нічному даху.
Чому?
Заповни вісім полів — сторінка складе сталий блок англійською,
покаже, скільки ознак зафіксовано, і видасть готові character.md
та заготовку prompts.json на шість панелей.
Верхня частина конструктора — канон: він однаковий для всіх шести панелей. Нижня — змінна частина однієї панелі. Обери номер панелі й подивись, як той самий канон обростає різною дією і різним кадром.
Натисни артефакти, які найчастіше псують саме твої панелі.
model, tool
і changed_after_first_try заповни своїми словами.
changed_after_first_try заповнюєш
тільки після того, як справді щось змінив і перегенерував. Чекер вимагає
там не менше 40 символів, і «нічого не міняв» туди не влізе за змістом.Канон каже, хто в кадрі. План і ракурс кажуть, як близько і звідки ми на нього дивимось. Без цього шість панелей виходять шістьма однаковими портретами.
Кінематографісти й автори коміксів користуються тими самими трьома основними планами. Це не жаргон заради жаргону: кожен план виконує свою роботу в оповіді.
| План | Англійською | Для чого потрібен у коміксі |
|---|---|---|
| загальний | wide shot |
сказати читачеві, де ми і хто ще тут є. Перша панель майже завжди загальна |
| середній | medium shot |
показати дію руками й позу: несе, відкриває, віддає. Робочий план діалогу |
| крупний | close-up |
показати емоцію. Працює лише коли рідкісний: шість крупних поспіль нічого не підсилюють |
| деталь | extreme close-up |
одна річ у кадрі: записка, ключ, екран телефона. Сильний акцент, одна панель на комікс |
У твоїй розкадровці всі шість панелей — крупний план обличчя героя. Учитель просить переробити. Чому це проблема саме для коміксу?
На загальному плані герой — фігурка сантиметр заввишки. Ластовиння і колір очей там не видно взагалі. Які ознаки канону тримають героя упізнаваним саме на такій панелі?
Ракурс — окреме слово в промпті, і він змінює не картинку, а сенс панелі.
eye level — нейтрально, читач нарівні з героєм;low angle — камера знизу: герой виглядає більшим, сильнішим;high angle — камера згори: герой дрібніший, вразливіший;over-the-shoulder — з-за плеча співрозмовника: класика діалогу.Уяви, що кадр розкреслили на дев'ять однакових частин — як поле для хрестиків-нуликів. Ділять його дві вертикальні лінії і дві горизонтальні. Героя ставлять не в центральну клітинку, а на одну з ліній або в перетин.
Тоді збоку лишається «повітря» — порожнє місце, куди герой дивиться або
йде. Це і є правило третин, англійською rule of thirds.
Саме цими словами його розуміє модель.
Але тільки якщо сказати конкретно. «Гарна композиція» не працює.
Працює ось таке:
rule of thirds, subject on the left third,
empty corridor filling the right two thirds.
rule of thirds, subject on the left third.Потрібна панель, де герой стоїть скраю і дивиться в довгий порожній коридор, куди піде на наступній панелі. Що написати в промпті?
Seed ти вже знаєш: це число, з якого починається стартовий шум. Сьогодні важливе інше — навіщо він потрібен, коли картинок шість, а не одна.
Головна властивість seed: однаковий seed + однакові промпт, модель і параметри = однакове зображення. Це не магія, а звичайна псевдовипадковість. Генератор випадкових чисел стартує з того самого місця й видає ту саму послідовність.
Саме тому seed — не «кнопка схожості героя», а інструмент експерименту. Він дає змогу зафіксувати все, окрім однієї речі, і чесно побачити, що робить саме ця річ.
changed_after_first_try.На четвертій панелі герой раптом став блондином, хоча промпт ти не міняв. Що перевіряєш першим?
Панель майже вийшла: поза добра, але куртка синя замість зеленої і кадр занадто широкий. Ти одразу міняєш колір, план і seed — і отримуєш зовсім інше зображення. Як треба було?
Позитивний промпт каже, що має бути. Негативний — чого бути не повинно. Це різні інструменти, і плутанина між ними псує серію.
Негативний промпт прибирає ознаку цілком. Він не вміє «трохи
підправити»: якщо написати туди green jacket, зникне не відтінок,
а вся куртка. Виправлення відтінку — робота позитивного промпта:
muted olive-green jacket.
| Що псує панель | Що писати в негатив |
|---|---|
| шість пальців, зламані кисті | extra fingers, deformed hands, fused fingers |
| нерозбірливі літери на вивісках і футболках | text, letters, watermark, signature, logo |
| у кадрі раптом двоє однакових героїв | two heads, duplicated character, twins |
| голову зрізало краєм кадру | cropped head, out of frame |
| підліток виглядає на тридцять | adult face, aged skin, heavy makeup |
| каша й шум замість деталей | blurry, low quality, jpeg artifacts |
Не в кожному інструменті негатив є окремим полем: у частини
веб-генераторів його немає взагалі, у Midjourney роль негатива грає
параметр --no. У prompts.json поле
negative_prompt заповнюють у будь-якому разі — якщо поля
в інструменті немає, пиши, чого ти намагався уникнути іншими словами.
Порядок важливий: перші три пункти закривають більшість випадків, і жоден із них не потребує перегенерації.
red hair у негативі «щоб не було надто рудим» — і герой
русявіє на всіх панелях.steps, семплер і решту
параметрів. Вони майже ніколи не є причиною.На одній панелі куртка вийшла отруйно-салатовою. Ти дописав
green jacket у негативний промпт — і тепер на всіх панелях
куртки немає взагалі. Що зробити натомість?
Панелі лишаються в тебе. На сервер їде опис того, як вони зроблені, — і саме він доводить, що робота твоя і що її можна повторити.
character.md — канон словамиНе менше 400 символів. Це не твір: це аркуш ознак плюс готовий сталий блок англійською, який ти справді вставляєш у промпти. Конструктор вище складає цей файл сам.
character.md з промптами
Автоперевірка бере найчастіші іменники з character.md і шукає їх
у промптах: вони мають зустрітися щонайменше в п'яти записах із шести.
Так консистентність героя доводиться машинно, без жодної картинки.
Якщо ти писав канон окремо, а промпти окремо, перевірка це помітить.storyboard.md — шість панелей словамиПо одному пункту на панель: план, дія, репліка. Щонайменше три різні плани на шість панелей — це вимога перевірки і водночас просто здоровий глузд.
prompts.json — один запис на панельПоля model і tool заповнюй чесно тим,
чим справді користувався. Якщо інструмент не показує steps —
став 0 і напиши в changed_after_first_try, що цей
параметр недоступний. Вигадане число гірше за чесний нуль.
prompts.json у нормальному редакторі як UTF-8 без BOM.
У Windows PowerShell 5.1 echo … > prompts.json дає файл у UTF-16,
а Out-File -Encoding utf8 — UTF-8 із BOM: у першому випадку чекер
бачить кашу, у другому спотикається на невидимому символі перед першою дужкою.
Дужки при цьому на місці, і шукати помилку можна довго.Порядок здачі той самий, що й у попередніх темах. Відкриваєш FileZilla
або WinSCP. Логін і пароль — ті самі, що й по SSH. Файли кладеш спершу
в ~/upload/, а звідти переносиш у ~/www/comic/.
Хто вже звик до термінала — кладе одразу по SSH.
Ти згенерував шість панелей на уроці, а prompts.json заповнив
увечері вдома по пам'яті. На очній здачі вчитель відкриває
panel-3.png і питає, який у неї seed. Чому це провал,
навіть якщо JSON валідний?
Ти хочеш, щоб учитель побачив панелі зі свого місця. Тому заливаєш шість
PNG по 1,2 МБ у ~/www/comic/. Що станеться?
Кроки 1–8 — у тебе на комп'ютері, кроки 9–11 — здача на сервер. Галочки зберігаються, сторінку можна закрити.
~/local/comic/images/, — твоє й лишається
в тебе. На сервер піднімаються рівно три текстові файли:
prompts.json, character.md, storyboard.md.Чекер не бачить жодної картинки. Він перевіряє, чи твій опис узгоджений сам із собою — і промпти, зібрані навмання, тут не сходяться. Спроби не обмежені.
Демонстраційний режим: результат згенеровано для показу.
На сервері ця кнопка викликає POST /api/check, який запускає
check 07 від імені учня.
~/local/comic/images/:
шість панелей ідуть поспіль, у порядку розкадровки;character.md, який, на твою думку,
найсильніше тримає героя, — і пояснюєш чому;prompts.json;Це те, що бачить учитель, коли виставляє оцінку.
| Складник | Вага | Результат |
|---|
prompts.json заповнюють постфактум — seed і назви файлів
не збігаються з реальними;Догенеруй панелі, яких бракує. Далі заповни поле
changed_after_first_try у кожному з шести записів:
що змінив, чому і що вийшло. Одне речення на запис, але конкретне.
«Покращив промпт» — так не годиться. А от так годиться: «на першій спробі рюкзак зникав на середньому плані. Переніс його з кінця канону ближче до початку, seed лишив 8103».
На наступному уроці ці самі три файли стануть основою верстки. З них
виросте index.html: панелі, бульбашки текстом у DOM і позначка
про AI. Якщо prompts.json зроблено чесно, наступний урок буде
вдвічі коротшим.
Усе на цій сторінці — з відкритих джерел: документації інструментів, довідників з кіномови й стандартів. Перевіряти дозволено й корисно.
seed у запиті генерації.
platform.stability.ai/docs/api-reference--seed,
--no (роль негативного промпта) і засоби консистентності
персонажа.
docs.midjourney.comПовний список із поясненнями, що звідки взято, —
у файлі urok-07-джерела.md поруч із цією сторінкою.