Нейросети формата «текст в картинку» за короткое время обрели огромную популярность. Еще недавно они генерировали лишь смазанные абстрактные изображения, которые только отдаленно напоминали то, что от них требовали. Сегодня результаты генерации по невнимательности можно спутать с реальными фотографиями.
Такие нейросети как Stable Diffusion, Midjourney, DALL·E 2 в руках умелого пользователя способны визуализировать любые фантазии. В рамках проекта «Kant as an artist», который приурочен к приближающемуся 300-летию Иммануила Канта, сотрудники Центра нейротехнологий и машинного обучения БФУ им. И. Канта решили представить, какие картины мог бы написать философ, будь он художником.
Пресс-служба узнала от сотрудников Центра Глеба Камышова и Владимира Савина подробнее о том, как устроены такие «нейронки» и о том, как с ними работать, чтобы получить необходимый результат.
— Что на данном этапе представляет собой проект «Kant as an artist»?
Владимир Савинов, младший научный сотрудник Центра нейротехнологий и машинного обучения: |
— Есть такое ПО — Stable diffusion (SB). Это обученная нейросеть, которая принимает в качестве затравки текст и по этому запросу генерирует изображение. На его основе работает и наша модель. |
— Чем это отличается от Midjourney, DALL-E 2 (другие известные нейросети типа «текст в картинку»)?
— Это фактически одно и то же. Просто как альтернатива.
— Планируете ли вы сделать проект общедоступным?
— Фишка в том, что мы взяли готовые решения. Оно уже доступно. Можно брать модели* для Stable diffusion и бесплатно использовать. А для генерации можно скачать веб-интерфейс с GitHub (крупнейший сервис хостинга IT-проектов). Мы на своем сервере его запускаем.
*Модели — контрольные файлы, которые представляют собой предварительно обученные нейронные связи. Они предназначены для генерации определенных изображений. Например, это может быть модель, которая лучше подходит для генерации изображений животных.
— Нам пришла идея: «Какие картины писал бы Иммануил Кант, будь он художником?». Мы начинали с того, что брали в качестве промптов* его популярные цитаты и вбивали их в Stable diffusion-модель. Возможно, это ожидаемо, но нейросеть стала генерировать что-то в духе мотивационных плакатов: картинка и поверх нее какой-то псевдотекст (как правило, нейросети пока не справляются с интеграцией текста в картинку. Пример ниже). Это нас не удовлетворяло.
*Промпт — текстовый запрос, на который опирается нейросеть при создании изображения.
Глеб Камышов, младший научный сотрудник Центра нейротехнологий и машинного обучения: |
— Потом мы обратились к другой нейросети — ChatGPT. Мы спросили у нее: «Какие основные тезисы в философии Канта?». Она написала про априорное знание, категорический императив... Тогда мы спросили: «Что бы Кант нарисовал, если бы он был художником?». Она сказала, что точно неизвестно, что бы он нарисовал. Но эмпирический императив можно изобразить в виде луча света или прожектора... Так ChatGPT помогла нам подобрать промпты, которые мы скармливали SD-модели. |
Владимир Савинов:
— Правильно подобрать промпты — это задача нетривиальная. Чтобы добиться от нейросети желаемого порой приходится потратить немало времени. Поэтому сейчас в отдельное направление выделяется промпт-инжиниринг — собственно деятельность по их подбору и работе с моделями.
Глеб Камышов рассказал подробнее о том, как вбивать запросы для нейросетей.
— В основном акцент на токенах*. Каждое слово — это каждый токен. В Stable Diffusion-моделях чем левее слово, тем оно важнее. При этом нужно учитывать, что слово после запятой влияет на все остальные и перекрывает их по значимости. Поэтому иногда токены нужно повторять, чтобы они не перекрывали друг друга. И так, жонглируя токенами и уровнем их значимости, можно получить нужный результат.
*Токен — отдельная смысловая единица внутри промпта.
Каждая нейросеть имеет свой синтаксис, так как их код пишется на одном из языков программирования. Если вы пробовали генерировать изображения, то, возможно замечали, что изображения получаются не такими качественными, как те, что вы видели в Интернете. Скорее всего, дело именно в синтаксисе.
Ведь если знать синтаксис нейронки, можно говорить с ней на одном языке и доступнее объяснить, что вам нужно. Так у Stable Diffusion основной элемент синтаксиса — разные виды скобок: (), []. Они соответственно позволяют либо увеличить значимость токена, либо уменьшить.
Владимир Савинов:
— У SD-моделей есть еще negative prompt. Он дает команду, что не нужно в результате.
Запрос: «Человек, взаимодействие между математическими истинами и сенсорного опыта, сложные детали, стиль художника 18-го века, детальный, философия, абстракт, модернизм».
Исключить при поиске (negative prompt): деформированный, искаженный, изуродованный, некачественно нарисованный, анатомически неправильный, дополнительная конечность, недостающая конечность, блуждающая конечность, мутированные руки и пальцы, разъединенные конечности, мутация, мутировавший, уродливый, отвратительный, размытый, ампутация, размытые лица.
— Как долго нужно работать над запросом, чтобы получить желаемое?
Глеб Камышов:
— В первый день мы вбивали их чуть ли не в слепую. Но на второй-третий день мы стали получать то, что хотели. Опыт набиваешь, начинаешь понимать какие слова важнее. К тому же Stable Diffusion училась на определенных базах данных, поэтому на некоторые слова она лучше реагирует, что улучшает качество выдаваемых результатов.
Владимир Савинов:
— Потому что все эти нейросети обучаются на разных наборах данных. Им скармливают набор изображений, чтобы они потом могли на их основе генерировать картинки.
— То есть вы сами ее не обучали?
— Нет, для обучения моделей нужно очень много изображений и большие вычислительные мощности. У нас есть свои, но для обучения нужно гораздо больше. Поэтому мы взяли уже готовый инструментарий — модель SD. Раньше мы работали с другой, но нам результаты не очень понравились. Потому что генерация зависит не только от токенов, но и от модели. Мы скачали другую, и она куда лучше справлялась. С анатомией тела уж точно. К тому же она все более красочно рисовала.
— Какие перспективы развития вы видите у этого проекта?
— Конечная точка — создание веб-интерфейса. Это будет галерея изображений, где пользователь сможет увидеть сгенерированную картинку и узнать, из какого текстового запроса она взялась.
Напоследок мы решили сгенерировать изображения по тем же запросам, что и сотрудники Центра нейротехнологий и машинного обучения, но с помощью другой нейросети — Midjourney (SD — слева, Mj— справа)
Голова как сложная сеть взаимосвязанных узлов, где разные типы знаний представлены разными цветами или частями мозга. Абстракция, в стиле художника 18-го века, детализированный, философия, абстракция, модернизм.
|
|
|
Автор: Михаил Степанов
Ещё по теме
Личный кабинет для
Личный кабинет для cтудента
Даю согласие на обработку представленных персональных данных, с Политикой обработки персональных данных ознакомлен
Подтверждаю согласие