Stable Diffusion — интересная нейросеть для генерации картинок, работающая прямо на компьютере. Правда, для её работы нужна современная видеокарта с объёмом памяти от 4 (а лучше от 8) гигабайт. Не у всех такой есть: кто-то работает на ноутбуке со встроенным видео, а кто-то вовсе использует для работы смартфон или планшет. Если у вас нет мощной видеокарты, а попробовать Stable Diffusion хочется, такая возможность есть. Понадобится только браузер, аккаунт Google и 15 минут на то, чтобы прочитать этот текст.
Что такое Google Collab
Google Colaboratory (или сокращённо просто Google Collab) — это среда для работы с кодом на языке программирования Python. Её используют и студенты для обучения, и специалисты, работающие с искусственным интеллектом, и люди, занимающиеся обработкой данных. При работе с Google Collab код хранится на диске Google, и выполняется на мощных облачных серверах того же Google — так что для доступа и работы нужен только браузер и аккаунт Гугл.
Используя Google Collab, можно получить доступ к вычислительным мощностям как обычных процессоров (CPU), так и к мощным графическим ускорителям с тензорными ядрами, которые идеально подходят для запуска современных нейросетей. Например, для запуска бесплатной нейросети Stable Diffusion.
Подготовка к запуску Stable Diffusion
Так как работать предстоит в принадлежащей Google среде, первым делом понадобится аккаунт Google. Следующий пункт — Google диск. Именно на нём будут храниться модели для нейросети Stable Diffusion. В среднем модели весят около 2 Гб, а некоторые доходят и до 4-5 Гб. Поэтому перед работой стоит убедиться, что на вашем гуглодиске есть 5-6 свободных гигабайт. Если их нет, диск придётся почистить или завести новый аккаунт с новым чистым диском.
Теперь самое важное. Так как Google Collab создан для работы с программами на Python, нам понадобится код на этом языке программирования, предназначенный для запуска Stable Diffusion. К счастью, экстренно учиться программировать не придётся: такой код уже написан, и его нужно всего лишь скопировать к себе на диск и запустить.
Файлы с кодом для Google Collab называются блокнотами (noteboks), и блокнотов для работы со Stable Diffusion на данный момент создано очень много. Мы будем использовать блокнот от TheLastBen, с помощью которого можно запустить Stable Diffusion c интерфейсом AUTOMATIC1111. Находится он вот здесь. Нажимаем на ссылку, и первым делом копируем открывшийся блокнот на свой диск с помощью соответствующей кнопки:
Копия блокнота откроется в новой вкладке, а исходную версию можно будет закрыть. После этого блокнот временно оставляем в покое, и идём добывать модель для Stable Diffusion. О том, что такое модели нейросети, чем они отличаются и где их берут, мы писали вот в этой статье.
Ну а мы традиционно воспользуемся универсальной моделью Deliberate v2, скачать её можно вот тут. Для начала нужно скачать модель (файл с расширением .safetensors) на компьютер, а после этого загрузить её на свой гуглодиск.
Запускаем Stable Diffusion
Всё готово к запуску. Возвращаемся к созданной копии блокнота с кодом, и первым делом нажимаем кнопку «Подключиться». Как только Google найдёт свободный сервер, вместо кнопки появится зелёная галочка — можно начинать работу и запускать код в блокноте. Судя по надписи T4 возле галочки, работать предстоит на профессиональном графическом ускорителе Nvidia Tesla T4 16Gb. По возможностям и архитектуре Tesla T4 похожа на игровые видеокарты Nvidia серии RTX 2xxx, но в отличие от них ориентирована не на игры, а на обработку больших объёмов данных и работу с ИИ.
Теперь нужно поочерёдно запустить блоки кода в блокноте. Для запуска достаточно нажать на стрелочки (1) в названии каждого блока. Важный момент: блоки с кодом должны выполняться поочерёдно, так что не стоит жать на все кнопки сразу. Запускаем первый (стрелочка превратится в кнопку остановки кода с прогресс-баром вокруг неё). Ждём, пока код отработает (внизу блока появится зелёная плашка с надписью «Done»), и после этого можно будет запускать следующий.
Первый блок нужен, чтобы подключиться к диску Google. После запуска вылезет всплывающее окно (2), с просьбой разрешить доступ к нашему диску. Нажимаем «Подключиться к Google диску», затем «Разрешить», и готово. В принципе, этого можно и не делать, пропустив этот блок: сервера Google Collab предоставляют не только процессор, видеокарту и оперативную память, но и около 20 Гб временного хранилища для работы кода. Но если связь с сервером прервётся (а такое бывает регулярно), вся информация из временного хранилища будет утеряна, включая сгенерированные нейросетью картинки. А ещё на гуглодиске лежит скачанная модель Stable Diffusion — чтобы её использовать, нужно разрешить доступ и подключиться к диску.
Второй и третий шаг установят интерфейс AUTOMATIC1111 для работы со Stable Diffusion и какие-то необходимые для работы файлы. Никаких всплывающих окон не будет, достаточно запустить соответствующие блоки кода стрелкой и дождаться появления надписи «Done».
Четвёртый блок самый интересный. Именно в нём задаётся модель Stable Diffusion, которая будет использоваться при работе. Модель можно либо скачать из интернета прямо на этом этапе, либо использовать уже скачанную и загруженную на диск Google.
Скачать модель Stable Diffusion из интернета можно двумя способами. Первый — выбрать модель из выпадающего списка (пункт 1 на иллюстрации ниже). В нём доступны только официальные модели Stable Diffusion: две версии модели 1.5, модель 2.1 и свежая SDXL. Второй вариант — вставить ссылку на нужную модель в поле (2). В обоих случаях после запуска этой части кода начнётся загрузка модели из интернета. А вот куда она будет загружаться, зависит от галочки (3). По умолчанию она выключена, и загрузка идёт на диск Google. Если её включить, модель загрузится во временную память сервера Google Collab и будет стёрта по окончании работы (или при случайном отключении от сервера).
Но мы рекомендуем использовать заранее скачанную модель, лежащую на диске Google. Во-первых, это позволит не ждать скачивания и быстрее перейти к работе с нейросетью. Во-вторых, это надёжнее: если блокнот с кодом внезапно отключится от серверов Google Collab, модель никуда не денется и её не нужно будет качать заново.
Так что нажимаем значок папки (4), и открываем боковую панель с папками подключенного диска Google. Находим папку SD, в которой лежит скачанная модель Deliberate v2. Жмём на три точки справа, в выпадающем меню выбираем пункт «Скопировать путь» и вставляем его в поле «PATH_to_MODEL» (5).
Пятый и шестой блоки кода в блокноте (Download LoRA и ControlNet) предлагают помимо основной модели загрузить модель LoRA (нужна ссылка на модель) и модели для ControlNet (выбираются из выпадающего списка). Эти модели нужны продвинутым пользователям Stable Diffusion для большего контроля над нейросетью и результатами генерации. Если вы продвинутый пользователь — скорее всего, вы знаете, нужны ли вам эти модели и где взять нужные ссылки. Ну а начинающим пользователям Stable Diffusion эти пункты можно смело пропустить и перейти сразу к последнему блоку кода.
Называется он «Start Stable Diffusion». Поля с предложением использовать токены, пароли и тоннели можно не трогать и сразу запускать блок кода. После запуска внизу блока начнут появляться строчки с описанием происходящего. Среди них будет и строка с надписью «Running on public URL» и адресом — это и есть адрес, по которому работает запущенный интерфейс Stable Diffusion. Его нужно скопировать и открыть в новой вкладке.
Если всё сделано верно, откроется интерфейс AUTOMATIC111 и можно будет генерировать картинки в Stable Diffusion. О том, как работать с этой нейросетью, мы писали вот в этих двух текстах: раз и два. А для тех, кто их не читал, и хочет побыстрей приступить к работе над картинками, напомним основные моменты:
- в поле «Prompt» пишем описание того, что должно быть на картинке (на английском языке);
- в поле «Negative prompt» — то, чего на ней быть не должно (например, плохая анатомия, размытие, водяные знаки, сросшиеся пальцы). Поле необязательное, можно оставить его пустым;
- ползунками Width и Height задаётся ширина и высота картинки (в пикселях). Лучше использовать кратные 256 значения (256, 512, 768,1024);
- Batch count — количество одновременно генерируемых вариантов. Рекомендуемое значение — от 4 до 8.
Во время теста на генерацию 4 картинок размером 768х512 пикселей ушло около 20 секунд. Это заметно быстрее, чем на тестовом компьютере со старенькой видеокартой GTX 1050Ti (у неё на такую задачу уходит 2-3 минуты), но помедленее, чем на топовой RTX 4090 24GB, которая справляется за 5-7 секунд.
К сожалению, вдумчиво протестировать работу Stable Diffusion на серверах Google Collab не получилось: буквально через пару минут нейросеть выдала ошибку с жалобой на то, что соединение разорвано. А во вкладке с Google Collab появилось уведомление о том, что среда выполнения кода отключена в связи с тем, что пользователей слишком много, бесплатных ресурсов всем не хватает и для стабильной работы лучше оформить платную подписку.
В целом, бесплатных возможностей Google Collab хватит для того, чтобы запустить Stable Diffusion, познакомиться с интерфейсом AUTOMATIC111 и немного поработать. А если понравится, то для дальнейшей работы можно установить нейросеть на свой компьютер и работать локально, не боясь потерять результаты из-за внезапного отключения удалённого сервера. Тем более что для обычной работы нет необходимости в очень дорогой топовой видеокарте. Хватит и модели среднего уровня с 8 Гб видеопамяти — например, RTX 2060 8GB или RTX 3050 8GB. А если есть ноутбук с дискретной видеокартой от 4 Гб, можно запустить нейросеть и на нём.