Несмотря на появившийся в свежих версиях Adobe Photoshop нейросетевой инструмент Generative Fill, не все хотят (или не могут) его использовать. У кого-то не получается оплатить российской картой, кому-то хочется большей свободы в генерациях (например, некоторые диджитал-художники жалуются, что инструмент Adobe не позволяет создавать иллюстрации для ужастиков). В этом случае можно использовать открытую нейросеть Stable Diffusion. Сегодня посмотрим, как с помощью плагина подключить Stable Diffusion к Adobe Photoshop и работать с ней прямо из фоторедактора.

Установка плагина Stable.art
Для начала нужно скачать плагин для фотошопа. Находится он традиционно на Гитхабе, вот тут. После этого автор плагина предлагает открыть Adobe Creative Cloud, убедиться, что на компьютере стоит самая свежая версия Adobe Photoshop, и установить плагин двойным щелчком мыша. В случае, если у вас установлен самый свежий и самый лицензионный фотошоп, этот метод должен сработать. Если же нет, появится сообщение об ошибке.

В таком случае есть другой способ установки, который сработает с любой более-менее актуальной версией фоторедактора. Нужно переименовать скачанный файл с плагином (он называется stable.art_0.0.1.ccx), и заменить расширение с .ccx на .zip — после этого просто распаковываем получившийся архив в папку с плагинами Photoshop (например, для 23 версии путь по умолчанию C:Program FilesAdobeAdobe Photoshop 2023Plug-ins).
Теперь нужно убедиться, что на компьютере есть подходящая версия версия Stable Diffusion (сам по себе установленный плагин не содержит в себе нейросети, а лишь обеспечивает связь с ней и даёт возможность работать с запущенной нейросетью прямо из окна фоторедактора). Для работы понадобится сборка на основе AUTOMATIC1111 (например, Portable Stable Diffusion — о том, как её установить и использовать можно почитать вот тут).
После того, как нейросеть установлена, понадобится внести небольшие изменения в файл web ui-user.bat (он используется для запуска Stable Diffusion и находится в папке с установленной нейросетью). Открываем его с помощью Блокнота, находим строчку set COMMANDLINE_ARGS и добавляем в конец строки ––api. Всё готово, можно запускать нейросеть и Adobe Photoshop.

После запуска редактора, в меню Plugins/Подключаемые модули появится плагин Stable.art, а при его запуске откроется панель для взаимодействия с нейросетью с уже знакомыми пользователям Stable Diffusion полями. В них можно выбрать модель для генерации (при условии, что у вас их несколько), ввести описание в поля Promt и Negative Promt, и задать количество шагов генерации.

Есть и незнакомое поле Endpoint. В него нужно вставить адрес работающей нейросети. Для этого запускаем Stable Diffusion, ждём, пока откроется её интерфейс в браузере и копируем адрес нейросети из адресной строки:

Работа со Stable Diffusion с помощью плагина Stable.art
Генерация изображений принципиально ничем не отличается от работы в веб-интерфейсе нейросети, а сам интерфейс плагина похож на простые сборки Stable Diffusion — например, на Easy Diffusion. Доступна генерация с нуля по текстовому запросу (txt2img), генерации новых картинок на основе открытого в фотошопе изображения (img2img) и замена выделенных частей изображения (inpaint). Режимы переключаются с помощью трёх кнопок внизу плагина.
Режим txt2img проще всего: создаём новое изображение, вводим описание и жмём кнопку «Generate». Если хочется сгенерировать сразу несколько картинок и выбрать лучший вариант, открываем «Advanced Settings» и ставим нужное количество (за раз можно создать до 8 картинок).

В режиме img2img можно использовать открытую в Adobe Photoshop картинку в качестве основы для генерации. Нейросеть попытается создать картинку по запросу, сохраняя цвета и композицию оригинала. Например, с помощью этой вкладки можно превратить фотографию в картину маслом. Работает нейросеть только в выделенной области (как и Generative Fill от Adobe), так что перед началом генерации нужно выделить либо всё изображение командой CTRL+A, либо его часть.

Удобно, что при работе можно использовать все инструменты выделения, доступные в фотошопе: лассо, перо, быструю маску и умное выделение объектов:

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

В режиме inpaint Stable Diffusion должен учитывать окружение, и сгенерированная часть должна выписываться в остальную картинку. Пробуем открыть глаза невесте, переключившись в inpaint — действительно, вместо шума на месте глаз появляются новые глаза, они неплохо вписываются в исходное фото. Проблема только одна: эти глаза остались закрытыми:

Теперь попробуем поменять жениху серый пиджак на красную куртку. Увы, тоже безрезультатно. На некоторых результатах рука остаётся на месте, на некоторых появилась вторая рука в кармане куртки, но вот сама куртка так осталась серой. Максимум, чего удалось добиться за 10 минут — красная окантовка и несколько красных заплаток:

Ещё была попытка поменять фон, оставив людей нетронутыми. Выделяем их командой Select Subject/выделить предмет, инвертируем выделение комбинацией клавиш CTRL+SHIFT+I, и запускаем нейросеть с запросом «deep forest, old trees, sunset». Увы, никакого леса не вышло — генерация завершилась ошибкой и жалобой на нехватку видеопамяти.
В целом, по результатам теста плагина Stable.art сложилось впечатление, что он уступает как иструменту Generative Fill, так и обычному веб-интерфейсу Stable Diffusion. В отличии от Generative Fill, плагин не умеет расширять и дорисовывать изображение и не подходит для очистки фотографий от ненужных элементов. С его помощью можно поменять что-то на фотографии, но происходит это непредсказуемо и работает далеко не всегда, тогда как Generative Fill в большинстве случаев выдаёт красивый фотореалистичный результат.
Если же сравнивать плагин с веб-интерфейсом Stable Diffusion, то плагину очень не хватает множества дополнительных настроек, скриптов и расширений, которые можно использовать в веб-версии. И стоит отметить, что при использовании плагина нейросеть гораздо чаще жаловалась на нехватку видеопамяти, чем при работе через браузер.
Видеокарты GTX1660 на 6GB не хватало для стабильной работы. Так что тем, кто хочет попробовать установить Stable Diffusion в Photoshop стоит видеокарта на 12 Гб или больше.