Запускаем Stable Diffusion и рисуем нейроарт на MacOS за один простой шаг
easy

Запускаем Stable Diffusion и рисуем нейроарт на MacOS за один простой шаг

Инструкция для тех, кто не хочет долго копаться

В интернете навалом инструкций, как потратить четыре часа в попытках установить на компьютер всё необходимое для создания нейроарта. Но если у вас MacOS и вы просто хотите поиграть с моделькой, вам это всё не нужно: вам нужно просто установить программу DiffusionBee и расслабиться. В этой статье — всё, что нужно знать.

Если в предыдущем абзаце мало понятного, вот основное: 

  • Существуют алгоритмы создания изображений по текстовым запросам.
  • Алгоритм основан на нейросетях, а они — на векторной алгебре и матрицах.
  • Это просто много сложной математики.
  • Сейчас бум нейрокартинок, множество людей исследуют возможности этой технологии.
  • Но если вы попробуете запустить какой-нибудь веб-генератор, там будет очередь на много часов. А если не будет — непонятно, кто использует ваши данные для собственного машинного обучения. Но можете попробовать: stablediffusionweb.com.
  • Если попробуете запустить генератор на своём компьютере, на настройку окружения уйдут часы плюс время на танцы с бубном.
  • Один из алгоритмов и обученных под него баз данных — Stable Diffusion. Она не самая передовая (сейчас все больше любят Midjourney), но доступная.
  • Под эту модель есть простое приложение на MacOS. Сейчас мы его запустим.

Шаг 1: Скачиваем и запускаем Diffusion Bee для MacOS

Заходите на сайт diffusionbee.com, выбираете нужную версию приложения — для процессоров Intel или Apple. Нужен MacOS 12.3 (Monterey).

Скачиваете приложение и устанавливаете его обычным перетаскиванием. Запускаете. 

После запуска нужно будет дать программе засосать обученную модель, после чего сразу можно работать: задаёте текстовый запрос по-английски, нажимаете Generate и ждёте. 

На процессоре M1 Max картинка 768 × 512 пикселей с 32 этапами (steps) генерируется за 10–15 секунд.

Получаете картинку по вашему текстовому запросу. Дальше можно её сохранить или попробовать сгенерировать что-то другое.

Stable Diffusion — это модель, полученная в результате обучения нейросети. Эту нейросеть натравили на огромный массив картинок с текстовыми описаниями. Нейронка как-то изучала эти картинки с текстами и строила связи. В результате получилась большая база данных связей — около 3—5 ГБ. 

Можно представить, что Stable Diffusion — это попытка машины понять, что и как выглядит в нашем мире. Но слово «понять» тут очень условное, потому что машина просто совершает математические операции по сложному алгоритму. Выглядит так, будто в этой базе написано, что «кошка» — это «вот так». Хотя ничего такого там буквально не написано.

Diffusion Bee — это оболочка для Stable Diffusion. Под капотом там какая-то версия Python, все нужные библиотеки для нейронных алгоритмов и приятный веб-интерфейс. Всё завёрнуто в приложение.

Как генерировать нормальные картинки

Вы заметите, что картинки часто получаются странными: у людей искажённые лица или странные выражения; непонятные руки или ноги; физиологически невозможные позы или соединения.

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

Если у вас мощный компьютер или вы хотите поставить генератор на ночь, можете в настройке (Options) сразу сказать, чтобы он нарисовал вам много картинок. Утром приходите — а у вас полна коробочка вариантов от нейронки. Авось что-нибудь можно будет выбрать.

Генератору можно подсказать, в каком стиле вы хотите видеть картинку и что там должно находиться. Чем больше деталей вы расскажете, тем больше шансов получить что-то вменяемое (но гарантии нет). Поэтому смело залезайте в Styles и добавляйте к текстовому запросу стиль, инструмент и материал. Стилистические пожелания добавятся в текст. А потом добавляйте к описанию любые детали, которые вы хотите видеть на картинке.

Также советуем посмотреть, какие запросы пишут другие люди. Для этого можно было бы пойти на «Артхаб», но мужики там уже нагенерировали эротики, а нам нельзя вам предлагать эротику посреди рабочего дня (хотя сегодня и среда). Поэтому просто впишите в поисковик Best Stable Diffusion Prompts и посмотрите, что люди пишут. Некоторые запросы длиной со школьное сочинение. 

Как сделать картинку побольше

Если вы нагенерили что-то годное, нажмите на контекстное меню слева наверху и скажите Upscale Image. Картинку отправят в алгоритм повышения разрешения.

Что ещё можно сделать

На вкладке Image to Image можно загрузить свою картинку и сделать на её основе новую. Например: 

  • Сохранить композицию и позу, но изменить стиль или смысловое наполнение картинки.
  • Перекрасить или заменить какие-то части картинки (например, перекрасить волосы или добавить украшения).
  • Сделать набросок и попросить его наполнить деталями.

Inpainting — загружаете картинку и выделяете в ней место, которое нужно заменить с помощью нейронки. Говорите, что там нужно изобразить. Нейронка постарается вставить нужный объект.

Outpainting — загружаете картинку в центр и ставите прямоугольник сбоку, с небольшим нахлестом. В этом прямоугольнике соцсеть дорисует что-то по вашему запросу. Можно дорисовать себе друга.

Загрузка других моделей

На момент написания статьи приложение работало с моделью Stable Diffusion 1.4 для TensorFlow. Это уже довольно старая версия модели: прямо сейчас есть версия 2.1. Говорят, на новой версии картинки получше, меньше проблем с лицами и руками. 

В теории вы можете скачать самую свежую версию модели и использовать её как дополнительную модель. Инструкция об этом есть на Гитхабе приложения. В реальности последние версии модели в приложение не встали. Но мы смогли импортировать модель для классических диснеевских мультфильмов (скачивайте файл classicAnim-v1.ckpt). В ней нужно использовать запрос classic Disney style, и получится что-то такое:

Запрос: Donald Trump chopping wood, classic disney style

История

Все ваши сгенерённые картинки хранятся на вкладке History. Не забывайте чистить историю от того, чего там быть не должно. 

И каков вердикт

Поиграв с моделью час-другой, вы обнаружите следующее: 

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

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

Беда с текстом. Почему-то модель бессильна, когда нужно положить на картинку текст, подпись, надпись, что угодно шрифтовое. Вместо текста там письмена пришельцев: издалека как будто всё нормально, а вблизи какой-то бред. 

Ну и руки тоже для неё сложны. Но для людей руки тоже сложны. 

Проблема с абстракциями. Модель, с которой мы работали, была натренирована на конкретных вещах: вот котик, вот речка, вот город, вот девочка. Для этой статьи мы безуспешно пытались нагенерировать картинки по запросу «Цифра 1 зависла в воздухе…», но так как такое природное явление встречается довольно редко, нейронка просто не знала, что с этим делать. Нам дали много абстрактных картинок, но ни одной цифры 1.

Нейросеть не знает, что такое цифра 1, потому что люди обычно не рисовали цифру 1 на картинах, гравюрах, в классическом и современном искусстве

Зато как только мы попросили нарисовать «девушку-хакера в VR-шлеме» при всех тех же стилистических подсказках, картинки попёрли. Потому что как выглядит девушка, нейронка знает; а как выглядит цифра 1 — нет.

Так как в мире очень много изображения женщин, нейронка запросто рисует их с разных ракурсов

Слишком много случайности и экспериментов. Нужно много раз дать разные задания нейронке, чтобы получить сколько-нибудь вменяемый результат: постоянно подкручиваешь запрос, добавляешь и убираешь слова, меняешь стили — это всё требует времени. И на выходе нет никаких гарантий: может быть, ты сразу угадаешь с запросом и твоя первая картинка подойдёт под задачу. А может быть, ты попробуешь 30 запросов, и ни один тебе ничего не даст. 

Нам повезло, что в редакции был компьютер с быстрым многоядерным процессором, и пачку из девяти картинок мы могли сгенерировать за 5–7 минут. А если бы компьютер был помедленнее, нам бы пришлось ждать эти картинки часами. Притом что иллюстратор сразу рисует нам нужную картинку за полтора-два часа. 

Важно не вглядываться. Если не приглядываться к тому, что там нарисовано, в целом издалека картинки иногда выглядят здраво. Но стоит приблизить и рассмотреть детали, начинает ломаться голова. 

Нужен художественный вкус. Даже если машина рисует за тебя, ты должен понимать, что такое хорошо и плохо; нужно направлять машину и потом вручную корректировать её результаты. Если не уметь отличать хорошую картину от плохой, вы будете публиковать плохие картинки.

Стиль Пикассо тут явно не в кассу

Перспектива

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

Совсем заменить художников нейронки не смогут. Дополнить — да, заменить — нет. 

Огромную роль будут играть инженеры по моделям и массивам данных. Например, появятся задачи в духе «Обучить нейронку строго по чертежам Леонардо» или «Сделать самую детальную в мире модель по импрессионизму». А дальше — «обучить нейронку расчёту нагрузки на инженерные конструкции» или «обучить нейронку моделированию аэродинамических характеристик для таких-то объектов». Запрос будет всё сложнее, его должен будет кто-то удовлетворять. 

Короче, нейронки станут частью народного хозяйства, как ей стала 3D-графика, анимация, САПРы, электронная почта, мессенджеры и интернет. Для всего найдётся место, везде будет работа. Если вас это прёт — учитесь на дата-сайентистов и в путь. 

Статья написана в Wednesday, my dudes.

Запрос: 19th century programmer fixing bug in production

Корректор:

Ира Михеева

Художник:

Алексей Сухов

Вёрстка:

Кирилл Климентьев

Соцсети:

Виталий Вебер

Получите ИТ-профессию
В «Яндекс Практикуме» можно стать разработчиком, тестировщиком, аналитиком и менеджером цифровых продуктов. Первая часть обучения всегда бесплатная, чтобы попробовать и найти то, что вам по душе. Дальше — программы трудоустройства.
Вам может быть интересно
easy
[anycomment]
Exit mobile version