Месяц назад попросил Midjourney нарисовать «кота в космосе». Получил фиолетовый blob с четырьмя ушами на фоне, который мог быть чем угодно — космосом, водой, абстрактным хаосом. Переписал промт — добавил детали, убрал лишнее, поменял структуру. Через десять итераций вышел ровно тот кот, который был в голове: в скафандре, на фоне Земли, с читаемым выражением морды.
Вся разница — в промте. И дело не в магических словах, а в том, как ты объясняешь нейросети что именно хочешь увидеть.
Почему промты вообще работают
Генеративные модели — Midjourney, DALL-E, Stable Diffusion — обучались на миллионах пар «картинка + подпись». Они не понимают смысл слов, но знают статистические связи. «Закат» чаще встречается с оранжевым и красным, «киберпанк» — с неоном и дождём, «студийный портрет» — с мягким светом и размытым фоном.
Когда пишешь промт, ты не даёшь инструкцию. Ты настраиваешь вероятности. Каждое слово сдвигает генерацию в определённую сторону. Проблема в том, что модель не знает что важно, а что нет. Для неё «кот в космосе» и «космический кот в реалистичном скафандре, вид сбоку, на фоне Земли, студийный свет» — разные запросы с разным весом элементов.
Отсюда главное: чем конкретнее промт, тем предсказуемее результат. Но конкретность — не значит длина. Можно написать три абзаца и получить кашу, потому что модель не поняла приоритеты.
Структура промта: что идёт первым
Я пишу промты по шаблону. Не потому что так правильно, а потому что работает стабильнее. Сначала — главный объект, потом — действие или состояние, дальше — контекст, стиль, технические детали.
Вот пример плохого промта: «Красивый закат, горы, озеро, отражение, HDR, 8k, высокая детализация, профессиональное фото»
А вот переписанный: «Mountain lake at sunset, mirror reflection of peaks in still water, golden hour lighting, shot on medium format camera, cinematic composition»
Разница не в языке (хотя на английском модели обучены лучше). Разница в том, что во втором случае я задал визуальную сцену, а потом уточнил как она снята. В первом — перечислил теги и надеялся что модель сама разберётся.
Логика такая: модель читает промт слева направо и первые слова весят больше. Если начинаешь с «8k HDR», она считает что твой главный запрос — техническое качество, а не сюжет. Если начинаешь с объекта и действия — она строит сцену вокруг этого.
Ещё один момент: глаголы работают лучше прилагательных. «Cat sitting on a windowsill, looking at the rain» сильнее чем «cute cat, windowsill, rainy mood». Первое — конкретная сцена, второе — набор ассоциаций.
Стиль и референсы
Модели знают художников, жанры, технические термины. Можно писать «в стиле Хаяо Миядзаки», «как кадр из Blade Runner», «oil painting, Renaissance style» — и это сработает. Но тут ловушка: ты не знаешь как именно модель интерпретирует этот стиль.
Я обычно комбинирую. Вместо «Miyazaki style» пишу «Studio Ghibli style, hand-drawn animation, soft colors, whimsical details». Так я страхуюсь: даже если модель неправильно поняла отсылку, остальные слова вытянут картинку в нужную сторону.
С фотографическими стилями проще — там есть устоявшиеся термины. «Shot on 35mm film» даёт зерно и тёплые оттенки. «Studio lighting, soft shadows» — чистый свет без жёстких контрастов. «Bokeh background» — размытый фон. Эти фразы работают почти всегда, потому что в обучающей выборке их встречалось много.
Но если хочешь что-то специфичное — лучше описать своими словами. «Фотография в стиле Уэса Андерсона» может дать симметрию и пастель, а может — вообще ничего похожего. Зато «perfectly symmetrical composition, pastel pink and blue tones, centered subject, flat lighting» даёт предсказуемый результат.
Что убирать из промта
Частая ошибка — напихать в промт всё что придёт в голову. Модель не игнорирует лишнее, она пытается впихнуть всё в картинку. Получается перегруженная композиция, где каждый элемент борется за внимание.
Я убираю:
- Оценочные прилагательные («красивый», «потрясающий», «эпичный») — они ничего не значат для модели
- Дубли смысла («high quality, detailed, 8k, photorealistic») — одно слово из этого ряда достаточно
- Противоречия («realistic fantasy dragon») — модель запутается между стилями
- Абстракции без визуала («атмосфера одиночества») — лучше показать через детали: пустая комната, один источник света, человек у окна
Вместо «beautiful sunset over the ocean, amazing colors, breathtaking view, high quality» пиши «ocean sunset, orange and pink sky, sun half below horizon, calm water». Конкретика бьёт эмоции.
Итерации и веса
Первая генерация почти никогда не попадает в точку. Я обычно делаю 3-5 итераций: смотрю что модель поняла неправильно, правлю промт, генерю снова.
Если модель игнорирует какой-то элемент — можно добавить вес. В Midjourney это делается через ::2 после слова, в Stable Diffusion — через (слово:1.5). Но злоупотреблять не стоит: если ты повышаешь вес трёх элементов из пяти, ты просто размываешь приоритеты.
Иногда проще убрать всё лишнее, чем усиливать нужное. Если в промте десять объектов и модель рисует не тот — попробуй оставить пять. Чем короче промт, тем чётче фокус.
Что я делаю сейчас
Мой текущий процесс: пишу короткий промт (10-15 слов), генерю, смотрю что не так, дописываю детали. Не начинаю с идеального промта, потому что не знаю как модель интерпретирует запрос. Лучше увидеть первый результат и скорректировать.
Ещё я веду файл с работающими фразами. Не копирую промты целиком — это бессмысленно, контекст всегда разный. Но если нашёл удачную формулировку для освещения или композиции — сохраняю. Со временем набирается словарь, который можно комбинировать под новые задачи.
И главное: если модель упорно не рисует то что ты хочешь — возможно, проблема не в промте. Может, этой сцены просто не было в обучающей выборке. Тогда либо меняешь подход (ищешь похожий визуальный аналог), либо принимаешь что эта конкретная модель не умеет в твою задачу.
