OneTrainer - программа для тренировки моделей FLUX.1, Stable Diffusion 1.5, 2.0, 2.1, 3.0, 3.5, SDXL, Würstchen-v2, Stable Cascade, PixArt-Alpha, PixArt-Sigma и моделей для рисования.
Ссылка на GitHub: https://github.com/Nerogar/OneTrainer
OneTrainer
OneTrainer - это универсальное решение для всех ваших потребностей в обучении stable diffusion.
Features
- Поддерживаемые модели: FLUX.1, Stable Diffusion 1.5, 2.0, 2.1, 3.0, 3.5, SDXL, Würstchen-v2, Stable Cascade, PixArt-Alpha, PixArt-Sigma и модели для рисования (inpainting)
- Форматы моделей: diffusers и ckpt модели
- Методы обучения: Полная тонкая настройка, LoRa, встраивание
- Маскировка при обучении: Пусть обучение будет сосредоточено только на определенных частях образцов.
- Автоматическое резервное копирование: Регулярно создавайте полные резервные копии результатов своих тренировок. Это включает в себя всю информацию, необходимую для беспрепятственного продолжения тренировок.
- Увеличение изображения: Применяйте случайные преобразования, такие как поворот, яркость, контрастность или насыщенность, к каждому образцу изображения, чтобы быстро создать более разнообразный набор данных.
- Тензорная доска: Простая интеграция с тензорной доской для отслеживания прогресса в обучении.
- Несколько подсказок для каждого изображения: Обучите модель нескольким различным подсказкам для каждого образца изображения.
- Изменение масштаба планировщика шума: Из статьи следует, что Распространенные схемы распространения шума и этапы выборки имеют недостатки
- EMA: Обучите свою собственную модель EMA. При необходимости сохраняйте значения EMA в памяти процессора, чтобы сократить использование видеопамяти.
- Группирование по соотношению сторон: Автоматическое обучение нескольким соотношениям сторон одновременно. Просто выберите целевые разрешения, сегменты создаются автоматически.
- Тренировка с несколькими разрешениями: Тренируйте несколько разрешений одновременно.
- Инструменты набора данных: Автоматически добавляйте подписи к набору данных с помощью BLIP, BLIP2 и WD-1.4 или создавайте маски для обучения в масках с помощью ClipSeg или Rembg.
- Инструменты для моделирования: Преобразование между различными форматами моделей с помощью простого пользовательского интерфейса.
- Выборка пользовательского интерфейса: Проба модели во время обучения без переключения на другое приложение.
- AlignProp: Метод обучения с подкреплением для диффузионных сетей из статьи Выравнивание моделей диффузии текста в изображение с обратным распространением вознаграждения
Установка
Для установки OneTrainer требуется Python >=3.10 и <3.13. Вы можете скачать Python здесь https://www.python.org/downloads/windows/. Затем выполните следующие действия:
Автоматическая установка
- Клонировать репозиторий git clone https://github.com/Nerogar/OneTrainer.git
- Запустить:
- Windows: install.bat
- Системы на базе Unix: install.sh
Ручная установка
- Клонировать репозиторий git clone https://github.com/Nerogar/OneTrainer.git
- Перейдите в клонированный каталог cd OneTrainer
- Настройка виртуальной среды python -m venv venv
- Активируйте новый venv:
- Windows: venv\scripts\activate
- Системы на базе Unix: source 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, созданного во время установки.
Вся функциональность разделена на разные скрипты, расположенные в каталоге скриптов. В настоящее время это включает в себя:
- train.py Центральный сценарий обучения
- train_ui.py Пользовательский интерфейс для обучения
- caption_ui.py Пользовательский интерфейс для ручного или автоматического создания субтитров и создания масок для обучения в маске.
- convert_model_ui.py Пользовательский интерфейс для преобразования моделей
- convert_model.py Утилита для преобразования между различными форматами моделей.
- sample.py Утилита для выборки любой модели
- create_train_files.py Утилита для создания файлов, необходимых при обучении только из CLI
- generate_captions.py Утилита для автоматического создания подписей для вашего набора данных.
- generate_masks.py Утилита для автоматического создания масок для вашего набора данных.
- calculate_loss.py Утилита для расчета потерь обучения каждого изображения в вашем наборе данных.
Чтобы узнать больше о различных параметрах, выполните <имя-скрипта> -h. Например, скрипты Python\train.py -h
Если вы используете Mac или Linux, прочтите документацию по сценарию запуска для получения подробной информации о том, как запустить OneTrainer и его различные сценарии в вашей системе.
Содействие
Пожертвования всегда приветствуются в любой форме. Вы можете открывать проблемы, участвовать в обсуждениях или даже открывать запросы на включение новых или улучшенных функций. Дополнительную информацию можно найти здесь.
Прежде чем приступить к изучению кода, рекомендую прочитать о структуре проекта здесь. Для более подробного обсуждения вам следует рассмотреть возможность присоединения к серверу Discord.
Вам также НЕОБХОДИМО установить необходимые зависимости разработчика для вашего текущего пользователя и включить перехватчики фиксации Git с помощью следующих команд (работает на всех платформах; Windows, Linux и Mac):
pip install -r requirements-dev.txt pre-commit install
(Обязательно запускайте эти команды без активации среды venv или Conda, поскольку предполагается, что pre-commit устанавливается вне какой-либо среды.)
Теперь все ваши коммиты будут автоматически проверяться на наличие распространенных ошибок и проблем со стилем кода, так что рецензенты кода смогут сосредоточиться на архитектуре ваших изменений, не тратя время на проблемы со стилем/форматированием, что значительно повышает шансы на то, что ваш запрос на включение будет принят. быстро и без усилий.
Связанные проекты
- MGDS: Реализация пользовательского набора данных для Pytorch, построенная на идее графа на основе узлов.
- StableTuner: Еще одно обучающее приложение для стабильной диффузии. OneTrainer во многом вдохновлен StableTuner, и без него он бы не существовал.
- Visions of Chaos: Коллекция инструментов машинного обучения, в которую также входит OneTrainer.