Сколько VRAM нужно для локальной генерации изображений
Вы решили поставить Stable Diffusion, ComfyUI или Automatic1111 на свой сервер и упёрлись в первый вопрос: а сколько видеопамяти вообще нужно? Продавцы GPU-серверов называют разные цифры, форумы спорят, а купить видеокарту с запасом «на всякий случай» — дорого. Разберём по-честному: что именно ест VRAM, сколько её нужно под разные модели и разрешения, и что делать, если карта слабее, чем хотелось бы.
Содержание
Обсудить статью, задать вопрос или начать новую тему
Есть вопрос по этой статье, идея для обсуждения или просто хотите поделиться опытом? Сообщество MAATRIX ждёт. Для общения, пожалуйста, зарегистрируйтесь в нашем личном кабинете.
Перейти в сообщество →Что такое VRAM и чем она отличается от RAM
Если вы никогда не разбирались в этом — вот суть в двух словах. RAM (оперативная память) — это память самого компьютера или сервера, она обслуживает процессор (CPU) и общие задачи операционной системы. VRAM (видеопамять) — это отдельная, намного более быстрая память, распаянная прямо на видеокарте (GPU). Она нужна, потому что процессор генерации изображений — это GPU, а не CPU, и все веса модели, промежуточные вычисления и результат должны находиться максимально близко к вычислительным ядрам видеокарты — иначе всё упрётся в скорость обмена данными между CPU и GPU.
Ключевой момент для новичка: 32 ГБ обычной RAM на сервере вообще не помогут, если у видеокарты всего 6 ГБ VRAM. Генерация изображений (в отличие от многих других задач) работает почти целиком в видеопамяти, и именно её объём определяет, какую модель и в каком разрешении вы сможете запустить. RAM в этой истории — второстепенный ресурс: она нужна для загрузки данных, работы самого ComfyUI/Automatic1111 и, как вы увидите ниже, как «аварийный выход» при нехватке VRAM ценой скорости.
От чего зависит расход VRAM
Объём видеопамяти, который съедает генерация, складывается из нескольких факторов, и все они умножаются друг на друга:
- Сама модель — её веса надо целиком (или почти целиком) загрузить в VRAM. SD 1.5 весит около 2-4 ГБ в зависимости от версии и точности, SDXL — заметно больше, потому что архитектура крупнее и работает с более крупными латентными представлениями.
- Разрешение изображения — генерация 1024×1024 требует ощутимо больше памяти, чем 512×512, потому что промежуточные тензоры (по сути, черновики изображения на разных этапах диффузии) растут вместе с разрешением, причём не линейно, а быстрее.
- Batch size — если вы генерируете не одну картинку, а сразу несколько (batch), VRAM расходуется на каждую параллельно. Батч из 4 изображений грубо в несколько раз прожорливее одного.
- Дополнительные модули — ControlNet, IP-Adapter, несколько одновременно подключённых LoRA, upscaler, refiner у SDXL — каждый добавляет свою долю VRAM поверх базовой модели.
- Точность вычислений (precision) — fp32 (полная точность) требует вдвое больше памяти, чем fp16 (половинная точность), при этом визуальная разница в большинстве случаев малозаметна.
Важная оговорка: конкретные цифры ниже — ориентировочные диапазоны, а не гарантия. Реальный расход зависит от версии ПО (Automatic1111, ComfyUI, ComfyUI с разными нодами), настроек оптимизации, драйверов CUDA и конкретной сборки модели. Смотрите на них как на порядок величины для планирования, а не как на точный бенчмарк.
Нужен сервер под эту задачу?
Разверните VPS MAATRIX за пару минут: NVMe, AMD EPYC, root-доступ, локации UK, США, Франция и РФ. Оплата картой РФ и по СБП.
Арендовать VPSТаблица: сколько VRAM нужно для типовых сценариев
| Сценарий | Модель | Разрешение | Минимум VRAM (ориентировочно) | Комфортный запас |
|---|---|---|---|---|
| Базовая генерация | Stable Diffusion 1.5 | 512×512 | ~4-6 ГБ (с оптимизациями) | 8 ГБ |
| Генерация в высоком разрешении | SD 1.5 | 768×768 и выше | 6-8 ГБ | 12 ГБ |
| SD 1.5 + ControlNet / несколько LoRA | SD 1.5 | 512-768 | 8 ГБ | 12 ГБ |
| Базовая генерация SDXL | SDXL base | 1024×1024 | 8-10 ГБ (fp16, режим экономии) | 12-16 ГБ |
| SDXL + refiner, ControlNet, LoRA | SDXL | 1024×1024 | 12 ГБ | 16-24 ГБ |
| Батч-генерация (4+ картинок разом) | SD 1.5 / SDXL | любое | заметно больше базового сценария — растёт вместе с размером батча | 16-24 ГБ |
| Обучение своей LoRA | SD 1.5 / SDXL | - | 8-12 ГБ (SD 1.5) / 16-24 ГБ (SDXL) | 24 ГБ+ |
Если резюмировать: для «просто попробовать» SD 1.5 хватит скромной карты уровня 6-8 ГБ VRAM. Для SDXL в его родном разрешении 1024×1024 закладывайте от 10 ГБ, а для комфортной работы с ControlNet, несколькими LoRA и refiner — от 16 ГБ. Обучение (fine-tuning, LoRA-тренировка) всегда прожорливее инференса той же модели.
Что происходит при нехватке VRAM
Здесь важно понимать: нехватка видеопамяти — это не «будет медленнее». Если видеопамяти физически не хватает под загрузку модели и текущий батч, процесс просто падает с ошибкой, чаще всего это CUDA out of memory (иногда сокращают до OOM). Генерация прерывается, вы теряете прогресс текущего запроса, и в консоли ComfyUI или Automatic1111 появляется трейсбек с указанием, сколько памяти было доступно и сколько пытались выделить.
Типичный текст ошибки выглядит примерно так:
torch.cuda.OutOfMemoryError: CUDA out of memory. Tried to allocate 2.50 GiB
(GPU 0; 8.00 GiB total capacity; 6.12 GiB already allocated; ...)
Это принципиально отличается от нехватки обычной оперативной памяти, где система может начать использовать своп-раздел и просто «затормозить». VRAM так не работает: если данные не помещаются на карту, операция обрывается. Отсюда и практическая рекомендация — при выборе GPU для генерации изображений закладывать объём VRAM с запасом, а не впритык под «минимальные требования», которые часто написаны для самого лёгкого сценария без ControlNet и без батчей.
Как уложиться в меньший объём VRAM
Если карта, которая у вас есть или которую хочется арендовать, меньше «комфортного» значения из таблицы — это не значит, что запуск невозможен. Есть несколько рабочих способов снизить расход:
Пониженная точность (fp16 вместо fp32). Большинство современных сборок Stable Diffusion и SDXL по умолчанию используют fp16 — это уже наполовину снижает расход памяти по сравнению с полной точностью fp32, почти без видимой потери качества. Проверьте, что в настройках вашей сборки (в Automatic1111 это флаг --precision full для fp32 — по умолчанию его быть не должно) fp16 действительно включён.
Квантование модели. Более агрессивный вариант — квантованные версии моделей (например, форматы с пониженной битностью весов), которые ещё сильнее ужимают объём в памяти ценой части качества или скорости. Это тот же принцип, что применяется при квантовании языковых моделей — если хотите разобраться в логике quantization подробнее, у нас есть отдельный разбор квантования моделей и форматов q4/q5/q8.
Меньший batch size. Самый простой рычаг — генерировать по одному изображению за раз вместо батча из 4-8. Это прямо пропорционально снижает пиковый расход VRAM, хотя и увеличивает суммарное время на получение того же количества картинок.
Model offloading (разгрузка в RAM). И ComfyUI, и Automatic1111 умеют держать часть весов модели не в видеопамяти, а в обычной оперативной, подгружая нужные слои в VRAM по мере необходимости. В Automatic1111 это флаги вроде --medvram и --lowvram, в ComfyUI — соответствующие режимы работы с моделью. Плата за это — заметное снижение скорости генерации, потому что данные приходится постоянно перекачивать между RAM и VRAM через куда более медленную шину, чем внутренняя память самой видеокарты. Это рабочий компромисс «запустить хоть как-то» на слабой карте, но не решение для регулярной продуктивной работы.
Меньшее разрешение и постобработка upscaler-ом отдельным шагом. Генерировать сразу в 512×512 или 768×768, а затем при необходимости увеличивать разрешение отдельным более лёгким upscale-проходом — часто дешевле по VRAM, чем сразу считать высокое разрешение целиком.
Комбинация из fp16 + меньший batch size + offloading при нехватке памяти обычно позволяет запустить даже SDXL на карте с 8 ГБ VRAM — но будьте готовы к заметно более долгой генерации по сравнению с картой, где памяти хватает с запасом.
Как выбрать GPU-сервер под свою задачу
Если своей видеокарты нет или её не хватает, разумный путь — взять GPU-сервер в аренду под конкретную задачу, а не покупать железо «на вырост». Логика простая: смотрите на верхнюю строку таблицы выше, которая соответствует вашему реальному сценарию (не идеальному, а с ControlNet/LoRA/батчами, если вы их используете), и берёте карту с объёмом VRAM на уровне «комфортного запаса», а не «минимума» — минимум оставляет вас без права на ошибку при первом же более тяжёлом запросе.
Практический ориентир по установке: ComfyUI обычно легче по требованиям и гибче в управлении памятью благодаря нодовой архитектуре (можно вручную выгружать неиспользуемые части графа), Automatic1111 — проще в освоении новичку, но менее гибок в тонкой настройке VRAM. Если сомневаетесь, что выбрать, у нас есть сравнение ComfyUI и Automatic1111 по задачам и ресурсам, а пошаговая установка ComfyUI на сервер описана в статье как поднять ComfyUI для генерации изображений на сервере.
Отдельный вопрос — брать ли GPU-сервер под конкретно Stable Diffusion или присматриваться к более универсальной конфигурации. Если задача разовая или редкая (пара сессий генерации в месяц), почасовая аренда GPU обычно выгоднее, чем держать сервер постоянно; если генерация — часть регулярного рабочего процесса, разница в стоимости между простаивающим и активно используемым сервером быстро выравнивается. Подбор конкретной конфигурации под Stable Diffusion разобран в статье выбор GPU-сервера для Stable Diffusion.
Нужен сервер под эту задачу?
Разверните VPS MAATRIX за пару минут: NVMe, AMD EPYC, root-доступ, локации UK, США, Франция и РФ. Оплата картой РФ и по СБП.
Арендовать VPSОбсудить статью, задать вопрос или начать новую тему
Есть вопрос по этой статье, идея для обсуждения или просто хотите поделиться опытом? Сообщество MAATRIX ждёт. Для общения, пожалуйста, зарегистрируйтесь в нашем личном кабинете.
Перейти в сообщество →Частые вопросы
Хватит ли видеокарты с 4 ГБ VRAM вообще для чего-нибудь?
Для SD 1.5 в 512×512 с оптимизациями (fp16, --lowvram) запуск возможен, но с ограничениями — без батчей, без тяжёлых ControlNet-цепочек и с медленной генерацией. Для SDXL 4 ГБ практически недостаточно даже с оптимизациями.
Можно ли компенсировать нехватку VRAM большим объёмом обычной RAM?
Частично — через model offloading, но это не полноценная замена: скорость генерации заметно падает, потому что обмен данными между RAM и VRAM намного медленнее, чем работа внутри самой видеопамяти. RAM тут «подстраховка», а не равноценная замена.
SDXL всегда требует значительно больше VRAM, чем SD 1.5?
Да, как правило заметно больше — из-за более крупной архитектуры и более высокого нативного разрешения (1024×1024 против 512×512 у SD 1.5). Точная разница зависит от конкретной сборки и включённых оптимизаций, поэтому ориентируйтесь на диапазоны, а не на одно число.
Что выгоднее — купить видеокарту или арендовать GPU-сервер?
Зависит от частоты использования и бюджета: разовые или нерегулярные задачи обычно выгоднее закрывать арендой, регулярная ежедневная нагрузка со временем может окупить собственное железо. Сравнение факторов есть в статье своя видеокарта против аренды GPU.
Ошибка CUDA out of memory — это всегда нехватка VRAM, или может быть что-то другое?
В подавляющем большинстве случаев это именно нехватка видеопамяти под текущую операцию. Реже причина — утечка памяти из-за незавершённого предыдущего процесса, всё ещё занимающего VRAM; в этом случае помогает перезапуск процесса генерации (и в целом стоит проверить, не висит ли в фоне другой процесс, использующий ту же карту).
Нужны сами нейросети для контента?
Генерируйте изображения, видео и озвучку нейросетями на falapi.io — десятки моделей в одном окне. Оплата картой РФ и по СБП.