00 - OneTrainer
Оригинал: https://github.com/Nerogar/OneTrainer
OneTrainer — это универсальное решение для всех ваших потребностей в обучении моделей stable diffusion.
Аппаратное обеспечение для разработки, спонсируемое https://shakker.ai
Функции
- Поддерживаемые модели: Ernie Image, Z-Image, Qwen Image, FLUX.1, Flux.2 Dev and Klein, Chroma, Stable Diffusion 1.5, 2.0, 2.1, 3.0, 3.5, SDXL, Würstchen-v2, Stable Cascade, PixArt-Alpha, PixArt-Sigma, Sana, Hunyuan Video и Inpainting-модели.
- Форматы моделей: diffusers и ckpt
- Методы обучения: Полная тонкая настройка, LoRA, встраивания (embeddings).
- Маскированное обучение: Пусть обучение сосредоточится только на определенных частях образцов.
- Автоматические резервные копии: Полностью резервный ваш прогресс тренировки регулярно во время обучения. Это включает всю информацию, чтобы беспрепятственно продолжать обучение.
- Размножение изображения: Применение случайных преобразований, таких как вращение, яркость, контраст или насыщенность к каждому образцу изображения для быстрого создания более разнообразного набора данных.
- Тензорная доска: Простая интеграция с тензорной доской для отслеживания прогресса обучения.
- Несколько подсказок для каждого изображения: Обучите модель нескольким различным подсказкам для каждого образца изображения.
- Изменение масштаба планировщика шума: Из статьи следует, что Распространенные схемы распространения шума и этапы выборки имеют недостатки
- EMA: Тренируйте свою собственную модель EMA. При необходимости сохраняйте значения EMA в памяти процессора, чтобы уменьшить использование видеопамяти.
- Группирование по соотношению сторон: Автоматически настраивайте несколько форматов изображения одновременно. Просто выберите желаемое разрешение, и группы будут созданы автоматически.
- Тренировка с несколькими разрешениями: Тренируйте несколько разрешений одновременно.
- Инструменты набора данных: Автоматически добавляйте подписи к набору данных с помощью BLIP, BLIP2 и WD-1.4 или создавайте маски для обучения в масках с помощью ClipSeg или Rembg.
- Инструменты модели: Преобразование между различными форматами моделей с помощью простого пользовательского интерфейса.
- Выборка пользовательского интерфейса: Проба модели во время обучения без переключения на другое приложение.
- AlignProp: Метод обучения с подкреплением для сетей diffusion из статьи Согласование моделей Diffusion текста в изображение с коррекцией обратным распространением
Примечание
Ознакомьтесь с нашей📚 -страницей для получения основных советов и руководств по установке. Начните здесь!. Информацию об использовании командной строки смотрите в разделе Режим командной строки.
Установка
Для установки OneTrainer требуется Python >=3.10 и <3.14. Вы можете скачать Python здесь https://www.python.org/downloads/windows/. Затем выполните следующие действия:
Автоматическая установка
- Клонировать репозиторий git clone https://github.com/Nerogar/OneTrainer.git
- Запустить:
- Windows: install.bat
- Системы на базе Linux и Mac: install.sh
Ручная установка
- Клонировать репозиторий git clone https://github.com/Nerogar/OneTrainer.git
- Перейдите в клонированный каталог cd OneTrainer
- Настройка виртуальной среды python -m venv venv
- Активируйте новый venv:
- Windows: venv\scripts\activate
- Системы на базе Linux и Mac: В зависимости от вашей оболочки, активируйте venv соответствующим образом
- Установите зависимости 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
Использование
OneTrainer можно использовать в двух основных режимах: графический интерфейс пользователя (GUI) и интерфейс командной строки (CLI) для более точного управления.
Чтобы запустить пользовательский интерфейс, запустите start-ui.bat. Краткое руководство по началу работы вы можете найти здесь., а более подробный обзор различных тем - здесь. Или посетите нашу wiki!
Графический режим
Windows
- Чтобы запустить пользовательский интерфейс, перейдите в папку OneTrainer и дважды щелкните start-ui.bat
Системы на базе Unix
- Выполните команду start-ui.sh, и появится графический интерфейс пользователя.
Режим CLI
Если вам нужно больше возможностей для управления, 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 и его различные скрипты в вашей системе.
Диагностика
Для общего устранения неполадок или вопросов задавайте их в обсуждениях, загляните в Wiki или присоединяйтесь к нашему Discord.
Если вы столкнулись с воспроизводимой ошибкой, сначала запустите update.bat или update.sh и убедитесь, что проблема по-прежнему может быть воспроизведена. Затем экспортируйте анонимную отладочную информацию, чтобы помочь нам решить проблему, с которой вы столкнулись, и загрузите ее как часть вашего сообщения о проблемах на Github.
- В Windows dдважды щелкните export_debug.bat
- В системах на базе Unix выполните ./run-cmd.sh generate_debug_report
Они оба создадут файл debug_report.log.
Предупреждение
Этот файл необходим нам для решения проблем с GitHub в будущем. Его непредоставление или отсутствие необходимой информации вручную в большинстве случаев приведет к закрытию проблемы
Содействие
Мы всегда приветствуем вклады в любой форме. Вы можете открывать вопросы, участвовать в обсуждениях или даже отправлять запросы на получение новой или улучшенной функциональности. Более подробную информацию вы можете найти здесь
Прежде чем вы начнете изучать код, я рекомендую ознакомиться со структурой проекта здесь. Для более подробного обсуждения вам следует рассмотреть возможность присоединения к серверу Discord.
Связанные проекты
- MGDS: Пользовательская реализация набора данных для Pytorch, основанная на идее графа, основанного на узлах.
- StableTuner: Еще одно обучающее приложение для Stable Diffusion. OneTrainer во многом вдохновлен StableTuner и без него не существовал бы.
- Visions of Chaos: Коллекция инструментов машинного обучения, которая также включает в себя OneTrainer.
