Многие новички, впервые открыв Discord с ботом Midjourney или установив локальный Stable Diffusion, сталкиваются с одной и той же досадной ситуацией: загружаешь фотографию, ожидая получить её стилизованную версию, а на выходе видишь нечто совершенно чужеродное. Знакомая картина? Кажется, что искусственный интеллект просто игнорирует исходник, создавая галлюцинации на вольную тему. Но ведь в сети полно примеров, где люди превращают свои селфи в портреты эпохи Ренессанса или делают из хрущёвки киберпанк-небоскрёб, сохраняя при этом узнаваемые черты оригинала. Весь секрет кроется не в магии и не в удаче. Дело в том, что нейросеть — это не ксерокс и не фотошоп-фильтр, а сложный интерпретатор, которому нужно объяснить задачу на его же языке. И чтобы получить желаемый результат, стоит разобраться в анатомии правильного запроса.
Как на самом деле работает Image-to-Image?
Обыватель часто думает, что нейросеть «смотрит» на картинку глазами человека. На самом деле она раскладывает изображение на шум и пытается собрать его заново, опираясь на ваши текстовые подсказки. Процесс этот довольно сложный. Если вы просто кинете фото без слов, ИИ окажется в тупике и начнет импровизировать. А если напишете слишком много текста, то уже слова начнут перетягивать одеяло на себя, искажая исходную композицию. Здесь важен баланс. Львиная доля успеха зависит от параметра, который в разных нейросетях называется по-разному: Image Weight (вес изображения) или Denoising Strength (сила перерисовки). Именно этот ползунок или цифра определяет, насколько далеко фантазия алгоритма уйдёт от оригинала.
С чего начинается составление запроса?
Первым делом нужно научиться описывать то, что вы видите, сухим языком фактов. Это упражнение. Посмотрите на свое фото. Что там главного? Мужчина в очках? Рыжий кот на подоконнике? Старый автомобиль? Именно с главного субъекта и должен начинаться ваш текстовый промт. К слову, многие забывают указывать очевидные вещи, полагая, что ИИ и так всё видит. Это ошибка. Если на фото девушка в красном платье, в тексте обязательно должно прозвучать «woman in red dress». Иначе при перерисовке платье может стать синим или вовсе исчезнуть, превратившись в скафандр. Ведь для нейросети цветовые пятна исходника — это просто ориентир, а не жёсткое правило.
Важность технических токенов
Далее следует блок стилизации и технического описания. Именно здесь мы задаём атмосферу. Хотите фотореализм? Добавляйте «photorealistic, 8k, unreal engine 5 render, cinematic lighting». Грезят о чём-то рисованном? В ход идут «oil painting, illustration, vector art» или имена конкретных художников. Но есть нюанс. Не стоит перегружать промт противоречивыми командами. Если вы напишете «чёрно-белое фото» и «яркие цвета», результат будет непредсказуемым и, скорее всего, удручающим. Кроме того, стоит обращать внимание на пропорции. Исходная картинка и генерируемая должны совпадать по соотношению сторон. Если вы скармливаете квадратное фото, а просите широкоформатный кадр 16:9, нейросеть будет вынуждена додумывать края или растягивать изображение, что выглядит, мягко говоря, непрезентабельно.
Пример работы с портретом: превращаем фото в арт
Разберём конкретную задачу. Допустим, у нас есть обычное селфи при плохом освещении, и мы хотим сделать из него стильный киберпанк-портрет. Просто написать «cyberpunk style» недостаточно. Ссылка на ваше изображение должна стоять в самом начале (если мы говорим о Midjourney). А вот текстовая часть может выглядеть так:
«a portrait of a young man, cyberpunk aesthetic, neon lights, futuristic city background, detailed face, cinematic lighting, purple and blue colors»
Заметьте, мы сначала обозначили объект (портрет молодого человека), затем задали стиль (киберпанк) и уточнили детали (неон, цвета). К слову, довольно часто помогает добавление веса изображения. В Midjourney это параметр «–iw». Значение варьируется от 0.5 до 2. Если поставить «–iw 2», нейросеть будет максимально держаться за черты лица оригинала. А при значении «–iw 0.5» от вашего селфи останется лишь общая поза и, возможно, цветовая гамма.
Архитектурные трансформации: от эскиза к рендеру
Другой популярный сценарий — визуализация недвижимости или интерьеров. Архитекторы и дизайнеры часто используют наброски от руки, чтобы превратить их в добротный рендер. Здесь подход немного иной. Текст должен быть максимально конкретным в плане материалов и освещения. Допустим, вы загружаете фото чернового наброска здания. Промт может звучать следующим образом:
«modern minimal house, concrete and glass facade, forest surroundings, morning sunlight, photorealistic, architectural photography, –iw 1.5»
Обратите внимание на словосочетание «architectural photography». Оно служит мощным триггером для нейросети, заставляя её выстраивать композицию по правилам профессиональной съёмки, с ровными вертикалями и правильной перспективой. Без этого уточнения дом может «поплыть» или искривиться.
Стилизация под живопись и рисунок
А что, если хочется превратить фотографию питомца в иллюстрацию для детской книги? Это задача не из лёгких. Фотография слишком детализирована, а иллюстрация требует упрощения. Здесь нам помогут токены, отвечающие за технику рисования. Хорошим вариантом станет такой запрос:
«cute fluffy cat sitting on a rug, storybook illustration style, soft pastel colors, watercolor texture, dreamy atmosphere, by Beatrix Potter»
Мы не просто сказали «нарисуй», мы уточнили текстуру (акварель) и даже дали референс на известного иллюстратора. И всё же, результат может оказаться слишком похожим на фото. В таком случае стоит снизить вес изображения (Image Weight) или добавить негативный промт (если позволяет интерфейс), исключив слова «photorealistic» и «detail».
Инструмент «Describe»: когда нет слов
Бывает и так, что смотришь на референс и даже не знаешь, как описать этот стиль. Вычурный? Грандиозный? Сюрреалистичный? На помощь приходит функция обратного инжиниринга промтов. В Midjourney это команда «/describe», а в аналогах — кнопка «Interrogate CLIP». Вы скармливаете системе картинку, а она выдаёт вам четыре варианта текстового описания, которые она «видит». Это настоящий кладезь идей. Часто там всплывают названия художников или специфические термины, о которых обыватель даже не подозревал. Можно взять один из предложенных вариантов, слегка его подкорректировать под свои нужды и запустить генерацию. Это отличный способ учиться языку нейросети на практике.
Тонкости работы со Stable Diffusion и ControlNet
Если Midjourney — это айфон в мире нейросетей (красиво, но закрыто), то Stable Diffusion — это конструктор для инженеров. Здесь простой загрузкой картинки в img2img не обойтись, если нужен качественный результат. Настоящие чудеса творит расширение ControlNet. Оно позволяет скопировать с исходника не просто «цвета», а конкретно позу (OpenPose), карту глубины (Depth) или контуры (Canny). Промт при этом может быть довольно коротким. Например, загружаем фото человека в сложной позе танцора. Включаем ControlNet OpenPose. В промте пишем: «cybernetic robot dancing, sci-fi sci-fi station background, masterpiece, best quality». И вуаля — поза сохранена идеально, но человек полностью заменён на робота. Без ControlNet нейросеть почти гарантированно переврала бы положение рук или ног. Это серьёзное вложение времени в изучение инструмента, но оно того стоит.
Ошибки, которые убивают результат
Самая распространённая ошибка — это «винегрет» из стилей. Нельзя не упомянуть и о чрезмерной длине запроса. Когда промт занимает десять строк, нейросеть начинает забывать начало, пока дочитывает конец. Лучше разбивать описание на логические блоки, разделенные запятыми. Ещё один подводный камень — конфликт между картинкой и текстом. Если на фото день, а вы пишете «night», нейросеть попытается затемнить изображение, но тени и блики останутся дневными. Выглядит это неестественно, как плохой фотошоп. Лучше либо искать исходник с нужным освещением, либо давать нейросети больше свободы, снижая влияние оригинала. Ну и, конечно же, не стоит ждать чуда с первой попытки. Нейроарт — это процесс перебора и селекции.
Работа с весами слов
Внутри самого текстового запроса тоже есть своя иерархия. Не все слова одинаково полезны. Чтобы усилить влияние конкретного слова, используются скобки или цифры. В большинстве интерфейсов конструкция «(blue eyes:1.2)» скажет алгоритму, что голубые глаза на 20% важнее остального текста. Это спасательный круг, когда какая-то деталь упорно не хочет появляться на генерации. Допустим, вы делаете портрет, но нейросеть забывает надеть на героя шляпу. Пишем «(wearing a hat:1.3)», и шанс её появления резко возрастает. Однако не стоит перебарщивать. Значения выше 1.5 могут «сломать» картинку, превратив её в шум или цветовое месиво.
Примеры готовых шаблонов для разных ситуаций
Разумеется, универсального рецепта не существует, но есть проверенные конструкции, от которых можно оттолкнуться.
Для реалистичной обработки фото человека подойдёт такая связка:
«[Ссылка на фото] RAW photo of [описание человека], [одежда], soft skin texture, realistic eyes, natural lighting, bokeh background, 8k uhd, dslr –iw 1.2»
Здесь мы делаем упор на качество текстур и фототехнику.
Для создания мультяшного 3D-персонажа (а-ля Pixar) попробуйте следующее:
«[Ссылка на фото] 3d render of [персонаж], disney pixar style, cute, big eyes, vibrant colors, 3d blender render, unreal engine, cgsociety –iw 0.7»
Заметьте, вес изображения снижен до 0.7, чтобы дать нейросети свободу изменить пропорции лица на более «мультяшные».
Если цель — мрачный арт или хоррор:
«[Ссылка на фото] dark gloomy atmosphere, [субъект], horror movie still, fog, mysterious, silent hill vibes, muted colors, high contrast, detailed texture –iw 1.0»
Такой промт отлично работает с пейзажами или силуэтами.
Эстетика ретро-аниме 90-х:
«[Ссылка на фото] anime style screenshot from 1990s, [описание сцены], retro vhs glitch effect, studio ghibli inspired, cel shading, pastel palette –iw 0.8»
Этот запрос добавляет характерные помехи и цветовую гамму старых кассет.
Постулаты успешной генерации
Главное — угадать с палитрой и настроением. Техническая часть важна, но без художественного видения результат будет сухим. Не бойтесь экспериментировать с порядком слов. Иногда перестановка одного прилагательного из конца в начало кардинально меняет акценты. И всё-таки, даже самый идеальный промт не спасёт, если исходник крайне низкого качества. Чем больше пикселей и деталей вы скормите «машине» на входе, тем более внушительный результат получите на выходе.
Ложка дёгтя в бочке мёда
Тем не менее, стоит быть готовым к тому, что нейросеть плохо справляется с текстом (надписями на фото), пальцами рук (классическая проблема) и сложным взаимодействием множества объектов. Если на вашем фото пять человек обнимаются, сгенерировать их стилизованную копию, где у всех лица будут на своих местах — задача архисложная. В таких случаях лучше обрабатывать каждого персонажа по отдельности или использовать уже упомянутый ControlNet. Бьёт ли это по времени? Безусловно. Но для качественного результата усидчивость просто необходима.
Впрочем, путь осилит идущий. Начните с простых портретов, поиграйте с параметром веса, попробуйте разные стили от киберпанка до масляной живописи. Со временем вы наработаете свою личную базу «золотых» промтов, которые будут выдавать шедевры с пол-оборота. Пусть каждая ваша генерация становится маленьким открытием и радует глаз!