00 - OneTrainer
Оригинал: 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 текста в изображение с коррекцией обратным распространением
Установка
Для установки OneTrainer требуется Python 3.10. Вы можете скачать Python здесь https://www.python.org/downloads/windows/. Затем выполните следующие действия:
Automatic installation
- Клонировать репозиторий 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: источник 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.