Stable Diffusion на своём сервере: что нужно и с чего начать
Генерация изображений упирается в видеокарту сильнее, чем почти любая другая задача. На ноутбуке без дискретной графики картинка рисуется минутами, а на слабой карте модель просто не загружается. Отсюда и типовой путь: попробовать в облачном сервисе, упереться в лимиты и чужие правила, и поднять своё.
Разберём, сколько ресурсов нужно на самом деле, чем отличаются интерфейсы, куда уходит место на диске, и главное - почему веб-панель генерации нельзя оставлять открытой в интернет.
Сколько видеопамяти нужно
Требования зависят от поколения модели и разрешения, а не от того, сколько картинок вы делаете.
- Базовые модели прошлого поколения запускаются от 8-12 ГБ и вполне работают на скромной карте.
- Модели покрупнее и генерация в высоком разрешении комфортно себя чувствуют от 24 ГБ.
- Современные тяжёлые модели, видео и апскейл требуют заметно больше: в память одновременно попадает несколько кадров.
Второй фактор - пакетная генерация. Четыре картинки за один проход занимают примерно вчетверо больше памяти, чем одна. Именно поэтому запас по памяти означает не только доступ к более крупным моделям, но и возможность генерировать пачками, а не по одной.
Общая методика расчёта памяти под нейросети, включая языковые модели, разобрана в статье сколько видеопамяти нужно для нейросети.
Чем запускать
Сама модель работает без интерфейса, но пользуются ей обычно через веб-панель. Их три основных.
Классический веб-интерфейс с вкладками. Самый распространённый, максимум настроек на виду, огромное количество дополнений. Хорош, когда нужно быстро подобрать параметры руками.
Узловой редактор. Процесс генерации собирается из блоков и связей. Порог входа выше, зато получается воспроизводимый конвейер, который можно сохранить и запускать повторно. Выбор тех, кто генерирует потоком.
Упрощённый интерфейс. Минимум настроек, разумные значения по умолчанию. Подходит, когда нужен результат, а не тонкая настройка.
Все три ставятся на один сервер и могут сосуществовать, используя общую папку моделей. Начинать разумно с первого или третьего, а к узловому переходить, когда появится повторяющийся сценарий.
Про диск: расходится быстрее, чем кажется
Здесь чаще всего ошибаются при выборе тарифа.
Одна модель весит от двух до нескольких десятков гигабайт. Дальше добавляются дополнительные модели под разные стили, апскейлеры, вспомогательные сети управления композицией и небольшие адаптеры. Плюс сами результаты, если их складывать на сервере.
Практика простая: на диске под сотню гигабайт становится тесно за неделю активных экспериментов. Двести и больше - комфортный старт. И диск должен быть быстрым: модель читается с него при каждом переключении, а переключаются часто.
Почему сервер, а не свой компьютер
Три причины, по которым генерацию выносят на арендованную машину.
Нужной карты просто нет. Покупка видеокарты под задачу, которая может не повториться, - крупная разовая трата. Расчёт окупаемости с точкой перехода разобран в статье купить видеокарту или арендовать GPU.
Компьютер остаётся свободным. Генерация полностью занимает карту, и параллельно работать за этой машиной некомфортно.
Доступ у всей команды. Дизайнер, маркетолог и разработчик пользуются одной установкой с общей папкой моделей, а не настраивают каждый у себя.
Отдельный аргумент - почасовая оплата. Генерация редко идёт круглосуточно: сервер живёт несколько часов под задачу и удаляется, см. почасовая оплата.
Безопасность: панель не смотрит в интернет
Самая частая и самая дорогая ошибка при установке.
Веб-интерфейсы генерации по умолчанию не имеют ни авторизации, ни ограничений. Запущенный с открытым наружу портом интерфейс - это карта, доступная любому, кто нашёл адрес. А находят такие адреса автоматическими сканерами за часы.
Последствия конкретные: ваша карта занята чужими задачами, вы платите за это время, а что именно генерируют с вашего адреса - вы не контролируете вовсе. Отвечать за содержимое при этом будет владелец сервера.
Правильных вариантов два:
- Ограничить доступ по адресу. Правило файрвола, разрешающее подключение только с ваших адресов, см. порты на сервере.
- Закрыть авторизацией. Интерфейс прячется за веб-сервером с паролем и сертификатом, наружу смотрит только он.
Для одиночной работы есть третий путь - вообще не открывать порт и подключаться через SSH-туннель.
Сколько времени и денег
Считать удобно в часах работы карты, потому что генерация идёт сессиями.
Порядок такой: картинка в среднем разрешении на современной карте создаётся за секунды, пачка из нескольких штук - за десятки секунд. То есть за час работы получаются сотни изображений, если вы успеваете их отсматривать.
Отсюда практический вывод: основное время уходит не на генерацию, а на подбор промпта и отбор результатов. Планируя бюджет, считайте не количество картинок, а часы, которые человек проведёт за подбором. Час аренды карты при этом обычно дешевле часа работы этого человека, и экономить стоит на втором.
Частые ошибки
Оставляют панель открытой в интернет. Чужие задачи на вашей карте и ваша ответственность за результат.
Берут тариф с маленьким диском. Модели съедают место за неделю, и эксперимент останавливается на полпути.
Считают, что больше памяти означает быстрее. Память определяет, что вообще запустится и какими пачками, скорость же зависит от самой карты.
Держат сервер включённым между сессиями. Генерация идёт часами, а не сутками. Не нужен - удаляйте, предварительно забрав результаты.
Не забирают результаты с сервера. Удаление машины уносит и картинки, см. как передать файлы на сервер.
Начинают с узлового редактора. Порог входа выше, а для первых экспериментов он ничего не даёт.
Частые вопросы
Сколько видеопамяти нужно для Stable Diffusion? Базовые модели прошлого поколения запускаются от 8-12 ГБ. Для крупных моделей, высокого разрешения и пакетной генерации комфортно от 24 ГБ и выше.
Сколько места занимают модели? От двух до нескольких десятков гигабайт каждая, плюс дополнения и апскейлеры. Под активную работу закладывают от двухсот гигабайт быстрого диска.
Какой интерфейс выбрать? Начинать проще с классического веб-интерфейса или упрощённого. Узловой редактор берут, когда появляется повторяющийся сценарий, который хочется собрать один раз и запускать.
Можно ли генерировать без видеокарты? Технически да, на процессоре, но одна картинка займёт минуты вместо секунд. Для практической работы это не подходит.
Почему нельзя открывать веб-панель наружу? У неё нет авторизации по умолчанию. Открытый адрес находят сканерами, и ваша карта начинает работать на чужие задачи за ваш счёт, а отвечать за результат будете вы.
Сколько стоит поработать несколько часов? При почасовой оплате это стоимость нескольких часов аренды карты. Сервер поднимается под сессию и удаляется после, платить за простой не нужно.
Что быстрее: своя карта или аренда? По скорости генерации разницы нет, всё решает модель карты. Разница только в экономике, и она зависит от того, насколько плотно карта загружена.
Нужна карта под генерацию? Серверы с RTX 4090 на 48 ГБ видеопамяти - почасовая оплата от 149 руб, от одной до четырёх карт, NVMe от 250 ГБ под модели. Полный root-доступ: ставите любой интерфейс и свой стек.