AI Toolkit LoRA Training Guides

Исправление ошибок CUDA Out of Memory в AI Toolkit

Краткое руководство по устранению OOM в AI Toolkit: определите, на каком этапе происходит сбой — при загрузке модели, обучении или сэмплировании, затем настройте batch size, gradient checkpointing, разрешения, кадры или параметры превью.

Train Diffusion Models with Ostris AI Toolkit

AI Toolkit CUDA Out of Memory: исправление OOM при загрузке модели, обучении и сэмплировании

Если ваше задание AI Toolkit падает с ошибкой CUDA out of memory, OOM during training step 3 times in a row или 0 bytes is free, не продолжайте перезапускать то же задание без изменений.

На практике большинство OOM-ошибок в AI Toolkit возникают в одном из четырёх мест:

  1. загрузка модели (до начала реального обучения)
  2. первые шаги обучения
  3. сэмплирование превью / генерация базового сэмпла
  4. видео-специфичные пики из-за слишком большого количества кадров, слишком больших бакетов или и того, и другого

Это руководство — быстрый путь к восстановлению: определите, какой у вас OOM, измените правильные настройки в RunComfy AI Toolkit и быстрее добейтесь успешного перезапуска.


Быстрый чеклист (начните здесь)

  • ✅ В Training уменьшите Batch Size
  • ✅ В Datasets отключите самый высокий Resolution-бакет первым
  • ✅ В Sample уменьшите Width / Height / Sample Steps или временно включите Disable Sampling
  • ✅ Нажмите Show Advanced и убедитесь, что gradient_checkpointing: true
  • ✅ Для видеомоделей уменьшите Num Frames прежде, чем трогать learning rate
  • ✅ Если ошибка возникает даже с очень консервативной конфигурацией, рассматривайте как возможную проблему состояния worker / GPU, а не только конфигурации

1) Подтвердите, что это та же проблема

Вы в правильном месте, если ваши логи содержат такие сообщения:

CUDA out of memory
torch.OutOfMemoryError
OOM during training step 3 times in a row
Tried to allocate ...
0 bytes is free
CUBLAS_STATUS_ALLOC_FAILED

Типичные ситуации:

  • задание падает до шага 1
  • задание доходит до шага 2–10 и потом многократно OOM
  • обучение вроде нормально, но крэш при генерации сэмплов
  • одна и та же конфигурация то работает, то нет

2) Сначала: какой тип OOM?

A. OOM при загрузке модели или до начала обучения

Обычно означает одно из:

  • модель слишком тяжела для текущих настроек экономии памяти
  • генерация превью / базового сэмпла уже слишком дорогая
  • worker / GPU в плохом состоянии и не стартует с чистой памятью

Типичные признаки:

  • сбой до начала осмысленных шагов обучения
  • ошибка сразу после загрузки модели или при первом сэмпле
  • логи показывают почти нет свободной VRAM или ошибку аллокации CUBLAS

B. OOM в первых шагах обучения

Самый частый случай, вызванный конфигурацией.

Типичные причины:

  • gradient_checkpointing выключен
  • Batch Size слишком высокий
  • самый большой бакет датасета слишком амбициозен
  • для видео, Num Frames — реальный пик памяти

C. OOM при сэмплировании / генерации превью

Очень распространённая ловушка.

Ваша конфигурация обучения может быть почти нормальной, но превью слишком дорогое:

  • Sample Width / Height слишком большие
  • Sample Steps слишком высокие
  • Sample Every слишком часто
  • превью-видео использует слишком много кадров

D. OOM только иногда

Обычно это пограничная конфигурация, а не загадка.

Примеры:

  • запуск выживает на маленьких бакетах, но падает на самом большом бакете
  • видео-запуски падают только на самых тяжёлых клипах
  • ядро обучения помещается, но генерация сэмплов выводит за предел

3) Самые быстрые исправления в RunComfy AI Toolkit

Fix A — Снова включить gradient checkpointing

Первое, что проверять при OOM моделей изображений.

Где изменить

  1. Откройте упавшее задание
  2. Нажмите Show Advanced
  3. Под train: убедитесь:
gradient_checkpointing: true

Если не уверены — оставьте включённым.


Fix B — Уменьшить Batch Size, использовать Gradient Accumulation для стабильности

Где изменить

  • Откройте редактор задания
  • В панели Training:
    • уменьшите Batch Size
    • сохраните или увеличьте Gradient Accumulation, если хотите чуть больший эффективный batch без увеличения пикового VRAM

Правило безопасного перезапуска

  • Модели изображений: при OOM сначала опуститесь до Batch Size = 1
  • Видеомодели: считайте Batch Size = 1 стандартом, если конфигурация не доказала свою стабильность

Не рассматривайте learning rate как первый рычаг памяти. Обычно это не так.


Fix C — Сначала убрать самый высокий бакет датасета

Где изменить

  • Перейдите в панель Datasets
  • В Resolutions отключите самый высокий бакет первым

Безопасный порядок отката

  • 1024 / 1536 → убрать первым
  • оставить 512 / 768 пока проверяете стабильность
  • после стабилизации добавляйте большие бакеты по одному

Это один из самых быстрых способов превратить пограничный запуск в воспроизводимый.


Fix D — Сделать сэмплирование превью дешёвым или временно отключить

Если крэш происходит до реального начала обучения или при каждом сэмплировании, сначала исправьте превью.

Где изменить

  • Откройте панель Sample

Затем сделайте одно или несколько:

  • уменьшите Width
  • уменьшите Height
  • уменьшите Sample Steps
  • увеличьте Sample Every
  • включите Disable Sampling для валидационного запуска

Хороший первый перезапуск

Если цель — «доказать, что задание может обучаться», временный запуск без сэмплирования — нормально.

После стабилизации включите превью обратно с меньшими настройками.


Fix E — Видеомодели: уменьшить Num Frames прежде всего

Для видеомоделей кадры обычно самый большой рычаг памяти.

Где изменить

  • Панель DatasetsNum Frames
  • Панель SampleNum Frames

Если обучаете видео и видите OOM, уменьшайте кадры первыми, затем batch size, затем разрешение.

Не начинайте с изменения optimizer или LR.


Fix F — Использовать путь экономии памяти модели

Некоторые архитектуры предназначены для обучения с настройками экономии памяти при ограниченной VRAM.

Где изменить

  • Нажмите Show Advanced
  • Под model: найдите:
low_vram: true

Для некоторых моделей правильный путь также включает модель-специфичную квантизацию или обработку text-encoder. Следуйте руководству модели, а не гадайте.


4) Быстрая диагностика по времени сбоя

Когда падает Наиболее вероятная причина Первое изменение
До шага 1 / при начальном сэмпле превью слишком тяжёлое, давление при загрузке или грязный worker отключить сэмплирование или уменьшить превью
Шаг 1–10 GC выключен, batch слишком высокий, бакет слишком большой включить GC, batch в 1, убрать самый большой бакет
Только при сэмплировании настройки превью слишком дорогие уменьшить Width/Height/Sample Steps или отключить сэмплирование
Иногда да, иногда нет пограничная конфигурация уменьшить самый большой бакет / кадры и стабилизировать
Даже консервативная конфигурация падает сразу возможная проблема состояния GPU / worker пересоздать на свежем worker или обратиться в поддержку

5) Как отличить OOM конфигурации от проблем среды / состояния GPU

Рассматривайте это как не только проблему конфигурации, когда всё это верно:

  • Batch Size = 1
  • gradient_checkpointing: true
  • консервативное разрешение / кадры
  • задание всё равно падает до осмысленного начала обучения
  • логи показывают 0 bytes is free или ошибку аллокации CUBLAS

В этой ситуации:

  1. прекратите повторять тот же перезапуск
  2. создайте новое задание на свежем worker, если возможно
  3. если та же консервативная конфигурация работала раньше и теперь падает мгновенно, эскалируйте в поддержку

Это важно, потому что повторные перезапуски могут тратить и время, и бюджет GPU.


6) Самый безопасный порядок отката

Для моделей изображений

  1. gradient_checkpointing: true
  2. Batch Size → 1
  3. убрать самый большой Resolution-бакет
  4. уменьшить или отключить Sample
  5. включить low_vram или путь экономии памяти модели

Для видеомоделей

  1. уменьшить Num Frames
  2. Batch Size → 1
  3. убрать самый большой Resolution-бакет
  4. уменьшить или отключить Sample
  5. включить low_vram или модель-специфичное offloading / квантизацию

7) После первого успешного перезапуска

Когда стабильный запуск получен:

  • возвращайте только одну более тяжёлую настройку за раз
  • записывайте, что изменили
  • не возвращайте несколько высокорисковых настроек одновременно

Хороший порядок масштабирования:

  1. сохранить те же стабильные настройки памяти
  2. увеличить Steps
  3. вернуть больший бакет
  4. вернуть более богатое сэмплирование
  5. только потом тестировать больший batch или более длинное видео

Итог одной строкой

Если AI Toolkit выдаёт OOM, прекратите случайные эксперименты.

Включите gradient_checkpointing, уменьшите Batch Size, уберите самый большой Resolution-бакет и сделайте сэмплирование превью дешевле перед повторной попыткой.


Связанные руководства

Ready to start training?