Чему учится модель на этапе обучения

Разработчики собирают гигантский набор пар: фотография или рисунок плюс подпись к нему. Источник подписей — альтернативный текст на веб-страницах, описания в базах данных, разметка, которую добавляют вручную специально для обучения. Счёт таких пар идёт на сотни миллионов и миллиарды. Модель не запоминает отдельные снимки. Она извлекает из этой массы статистические закономерности: как обычно выглядит кошка, какими цветами чаще всего рисуют закат над морем, какая геометрия у чашки на столе. Знание нейросети живёт в виде миллиардов числовых параметров, которые в сжатом виде описывают эти закономерности, а не в виде отдельных картинок-образцов где-то на диске.

Как диффузия превращает шум в рисунок

Ключевой механизм современных генераторов картинок называется диффузией и работает он в двух противоположных направлениях. На этапе обучения модель берёт настоящую фотографию из обучающего набора и постепенно добавляет к ней случайный шум. Шаг за шагом, пока изображение не превратится в бесформенную кашу из пикселей. На каждом таком шаге модель училась предсказывать, какая именно порция шума была добавлена. Дальше процесс запускают в обратную сторону: генерация начинается с полностью случайного шума, и модель шаг за шагом убирает из него ровно ту порцию, которую сама же научилась распознавать, только теперь в сторону, заданную текстовым описанием. За двадцать-пятьдесят таких шагов бесформенное пятно превращается в узнаваемое изображение.

Как текстовый запрос управляет результатом

Прежде чем начать рисовать, система переводит текстовый запрос в числовой код — вектор, который отражает смысл слов примерно так, как переводчик передаёт содержание фразы на другом языке. Этот код влияет на каждый шаг очистки от шума. Специальный механизм внимания на лету сверяет, какая часть будущей картинки должна соответствовать какому слову запроса. Попросите нарисовать рыжего кота на синем диване, и механизм внимания на протяжении всей генерации будет удерживать одновременно цвет кота, его позу и цвет мебели, пока шум постепенно уходит. Чем конкретнее и подробнее запрос, тем точнее модель способна его соблюсти. Расплывчатая формулировка вроде «красиво» оставляет модели слишком много свободы для собственной интерпретации.

Что происходит внутри одного сеанса генерации

Один сеанс генерации обычно занимает от двадцати до полусотни шагов, и на каждом из них картинка становится чуть более узнаваемой. На первых шагах формируется общая композиция: где на холсте окажутся крупные объекты, каким будет освещение, какой получится общий силуэт сцены. На последних шагах прорисовываются мелкие детали — текстура шерсти, складки ткани, отражения в глазах. Стартовая точка процесса — случайный шум, а не пустой холст, и число, которое этот шум задаёт, часто называют seed. Его можно сохранить и использовать повторно: с тем же запросом и тем же числом модель выдаст почти идентичную картинку, а с другим числом при том же тексте получится совсем другая композиция.

Почему у нейросети путаются пальцы и буквы

У генераторов картинок есть узнаваемые слабые места, и у них есть техническое объяснение. Рука человека — сложный объект с изменчивым числом пальцев в кадре в зависимости от ракурса, и модель, обучавшаяся статистически, а не по анатомической схеме, регулярно путает их количество или форму сустава. Буквы и надписи получаются искажёнными по похожей причине: модель воспроизводит визуальный рисунок символов, но не понимает алфавит как систему правил, поэтому вместо осмысленного слова нередко выходит псевдотекст, похожий на письмо, но нечитаемый. Похожая история с числом предметов в кадре. Попросите нарисовать семь яблок на столе, и модель может нарисовать пять или девять, потому что она угадывает правдоподобную картинку по общему стилю запроса, а предметы не считает. Новые поколения моделей заметно снизили частоту таких ошибок, но ни одна модель на рынке не убрала их полностью.

  • искажённые кисти рук, лишние или недостающие пальцы
  • нечитаемый псевдотекст на вывесках и обложках книг
  • неверное количество одинаковых предметов в кадре
  • странные отражения в зеркалах и на стеклянных поверхностях
  • сросшиеся или задвоенные части тела на групповых сценах

Чем один генератор отличается от другого

На рынке сейчас работает несколько известных семейств таких моделей. Закрытые сервисы вроде DALL-E от OpenAI и Midjourney доступны через подписку и облачный интерфейс, без установки чего-либо на свой компьютер. Модели с открытыми весами вроде Stable Diffusion можно скачать и запустить на собственном компьютере с достаточно мощной видеокартой. Российская модель Kandinsky, которую развивает Сбер, — ещё один пример системы с открытыми весами. Разница между генераторами прежде всего в том, какие данные использовались при обучении и как модель дополнительно донастраивали под конкретную эстетику. Отсюда фирменный стиль каждого сервиса, который постоянные пользователи узнают с первого взгляда.

Частые вопросы

Может ли нейросеть нарисовать точно то, что я себе представляю

Буквально прочитать мысли модель не умеет — она интерпретирует именно текст запроса, а не образ в голове автора. Приблизиться к задуманному помогает подробное и конкретное описание. Чем больше деталей названо словами, тем меньше остаётся зазора между тем, что представлял человек, и тем, что в итоге нарисовала модель.

Нарушает ли нейросеть авторские права художников, если рисует в их стиле

Вопрос остаётся предметом судебных разбирательств в разных странах, и однозначного ответа пока не существует. Модель обучалась на изображениях, среди которых были и работы живых художников, в части случаев без явного разрешения авторов, и это главный аргумент в исках против разработчиков таких систем. Итоговая картинка при этом воспроизводит уловленные общие черты стиля, а пиксель в пиксель конкретную работу не копирует.

Почему одна и та же нейросеть иногда рисует хорошо, а иногда плохо на похожий запрос

Случайное число, с которого стартует генерация, каждый раз новое, если его не зафиксировать вручную, поэтому результат колеблется даже при неизменном тексте запроса. Чем сложнее сцена, чем больше в ней персонажей и взаимодействующих объектов, тем выше шанс, что модель ошибётся хотя бы в одной детали. Простой запрос с одним объектом на нейтральном фоне почти всегда получается стабильно.

Нужен ли мощный компьютер, чтобы пользоваться такой нейросетью

Для облачных сервисов вроде DALL-E или Midjourney достаточно браузера и интернета, потому что вычисления происходят на серверах компании. Запуск открытой модели вроде Stable Diffusion на собственном компьютере — другая история: для комфортной работы нужна видеокарта с достаточным объёмом видеопамяти, иначе генерация одной картинки может занять несколько минут вместо нескольких секунд.