Оригинал:  https://github.com/Nerogar/OneTrainer

OneTrainer — это универсальное решение для всех ваших потребностей в обучении моделей stable diffusion.

 Аппаратное обеспечение для разработки, спонсируемое https://shakker.ai

Функции

  • Поддерживаемые модели: FLUX.1, Stable Diffusion 1.5, 2.0, 2.1, 3.0, SDXL, Würstchen-v2, Stable Cascade, PixArt-Alpha, PixArt-Sigma и модели для рисования.
  • Форматы моделей: diffusers и ckpt
  • Методы обучения: Полная тонкая настройка, LoRA, встраивания.
  • Маскированное обучение: Пусть обучение сосредоточится только на определенных частях образцов.
  • Автоматические резервные копии: Полностью резервный ваш прогресс тренировки регулярно во время обучения. Это включает всю информацию, чтобы беспрепятственно продолжать обучение.
  • Размножение изображения: Применение случайных преобразований, таких как вращение, яркость, контраст или насыщенность к каждому образцу изображения для быстрого создания более разнообразного набора данных.
  • Тензорная доска: Простая интеграция с тензорной доской для отслеживания прогресса обучения.
  • Несколько подсказок для каждого изображения: Обучите модель нескольким различным подсказкам для каждого образца изображения.
  • Изменение масштаба планировщика шума: Из статьи следует, что Распространенные схемы распространения шума и этапы выборки имеют недостатки
  • EMA: Тренируйте свою собственную модель EMA. При необходимости сохраняйте значения EMA в памяти процессора, чтобы уменьшить использование видеопамяти.
  • Группирование по соотношению сторон: Автоматически настраивайте несколько форматов изображения одновременно. Просто выберите желаемое разрешение, и группы будут созданы автоматически.
  • Тренировка с несколькими разрешениями: Тренируйте несколько разрешений одновременно.
  • Инструменты набора данных: Автоматически добавляйте подписи к набору данных с помощью BLIP, BLIP2 и WD-1.4 или создавайте маски для обучения в масках с помощью ClipSeg или Rembg.
  • Инструменты модели: Преобразование между различными форматами моделей с помощью простого пользовательского интерфейса.
  • Выборка пользовательского интерфейса: Проба модели во время обучения без переключения на другое приложение.
  • AlignProp: Метод обучения с подкреплением для сетей diffusion из статьи Согласование моделей Diffusion текста в изображение с коррекцией обратным распространением

OneTrainerGUI.gif

Установка

Для установки OneTrainer требуется Python 3.10. Вы можете скачать Python здесь https://www.python.org/downloads/windows/. Затем выполните следующие действия:

Automatic installation

Ручная установка

  • Клонировать репозиторий git clone https://github.com/Nerogar/OneTrainer.git
  • Перейдите в клонированный каталог cd OneTrainer
  • Настройка виртуальной среды python -m venv venv
  • Активируйте новый venv:
    • Windows: venv\scripts\activate
    • Системы на базе Unix: источник venv/bin/activate
  • Установите зависимости pip install -r requirements.txt

В некоторых дистрибутивах Linux вам может потребоваться установить libGL, например, в ubuntu вам нужно будет запустить:

sudo apt-get update sudo apt-get install libgl1

Обновление

Автоматическое обновление

  • Запустите update.bat или update.sh

Обновление вручную

  • Вытащить изменения git pull
  • Активируйте venv venv\scripts\activate
  • Переустановите все зависимости pip install -r requirements.txt --force-reinstall

Использование

Чтобы запустить пользовательский интерфейс, запустите start-ui.bat. Краткое руководство по началу работы вы можете найти здесь.,а более подробный обзор различных тем - здесь.

Если вам нужно больше возможностей для управления, OneTrainer поддерживает два режима работы. Только командная строка и пользовательский интерфейс. Все команды должны выполняться в активном venv, созданном во время установки.

Вся функциональность разделена на различные скрипты, расположенные в каталоге scripts. В настоящее время это включает:

  • train.py Основной сценарий обучения
  • train_ui.py Пользовательский интерфейс для обучения
  • caption_ui.py Пользовательский интерфейс для ручного или автоматического создания субтитров и масок для обучения в масках
  • convert_model_ui.py Пользовательский интерфейс для преобразования моделей
  • convert_model.py Утилита для конвертации между различными форматами моделей
  • sample.py Утилита для выборки любой модели
  • create_train_files.py Утилита для создания файлов, необходимых при обучении только из командной строки
  • generate_captions.py Утилита для автоматического создания подписей к вашему набору данных
  • generate_masks.py Утилита для автоматического создания масок для вашего набора данных
  • calculate_loss.py Утилита для расчета потерь при обучении каждого изображения в вашем наборе данных

Чтобы узнать больше о различных параметрах, выполните команду <имя скрипта> -h. Например, python scripts\train.py -h

Если вы используете Mac или Linux, ознакомьтесь с документацией по сценарию запуска для получения подробной информации о том, как запустить OneTrainer и его различные скрипты в вашей системе.

Содействие

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

Прежде чем вы начнете изучать код, я рекомендую ознакомиться со структурой проекта здесь. Для более подробного обсуждения вам следует рассмотреть возможность присоединения к серверу Discord.

Связанные проекты

  • MGDS: Пользовательская реализация набора данных для Pytorch, основанная на идее графа, основанного на узлах.
  • StableTuner: Еще одно обучающее приложение для Stable Diffusion. OneTrainer во многом вдохновлен StableTuner и без него не существовал бы.
  • Visions of Chaos: Коллекция инструментов машинного обучения, которая также включает в себя OneTrainer.