Это руководство предназначено для объяснения основных принципов тонкой настройки модели с помощью OneTrainer в том порядке, в котором вы увидите их в пользовательском интерфейсе. Для получения более подробных объяснений, пожалуйста, ознакомьтесь с wiki здесь:: https://github.com/Nerogar/OneTrainer/wiki

Подготовка набора данных

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

  1. Для каждого изображения добавьте текстовый файл с таким же именем в тот же каталог. Текстовый файл должен содержать подсказку для тренировки.
  2. Переименуйте все изображения с помощью подсказки, на которой вы хотите тренироваться.

Пресеты

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

Рабочие пространства (Workspaces)

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

Кэширование (Caching)

Кэширование ускоряет обучение за счет сохранения промежуточных данных из ваших тренировочных изображений на диске. Эти данные нужно создать только один раз и их можно повторно использовать между периодами или даже разными тренировочными циклами. Если вы изменяете какие-либо настройки, связанные с данными, вам следует либо очистить каталог кэша, либо выбрать новый.

Тензорная доска (Tensorboard)

Тензорная доска позволяет легко отслеживать ход тренировки во время тренировки. Чтобы использовать его, включите Tensorboard. Во время тренировки нажмите на кнопку Tensorboard внизу, чтобы открыть веб-интерфейс. В этом веб-интерфейсе будут отображаться значения потерь и выборки.

Настройки входной модели

Выберите базовую модель (base model) для тренировки. Это может быть модель в самых разных форматах:

  1. Имя файла контрольной точки в формате ckpt или safetensors
  2. Название модели в каталоге в формате diffusers
  3. Имя в хранилище Huggingface
  4. Резервная копия каталога с предыдущего тренировочного запуска

Вам также необходимо указать тип входной модели.

Настройки выходной модели

Просто укажите имя файла или каталога, в который вы хотите сохранить конечную модель, и формат вывода. Тип данных (data type) определяет точность конечной модели. Float16 создаст модели меньшего размера, но качество может быть снижено.

Настройки данных (Data)

Группировка по соотношению сторон (Aspect Ratio Bucketing) позволяет одновременно обучать модель на изображениях с разным соотношением сторон. Размер всех изображений изменяется таким образом, чтобы общее количество пикселей примерно соответствовало общему количеству точек.

Скрытое кэширование (Latent caching)

Скрытое кэширование (как описано в разделе "Кэширование") ускорит обучение за счет сохранения промежуточных данных. Если этот параметр включен, некоторые данные будут рассчитаны на основе ваших тренировочных изображений и сохранены на диске. Если вы включаете увеличение данных, вам следует увеличить параметр "Вариации изображений" для этой концепции, в противном случае будет кэшироваться только одна версия увеличения.

Добавление концепций (concepts)

Концепции определяют данные, на которых вы хотите обучаться. Сначала вы можете создать конфигурацию. Затем вы можете добавить в эту конфигурацию столько концепций, сколько захотите. После добавления концепции вы можете щелкнуть по появившемуся новому виджету, чтобы открыть окно сведений. В этом окне вы можете дополнительно выбрать имя, а затем указать каталог, в который будут сохранены изображения. Источник подсказок определяет, откуда загружаются подсказки. Вы можете выбрать, загружать ли их из текстовых файлов в том же каталоге, из имен файлов изображений или из одного текстового файла, содержащего несколько строк на случайный выбор. Если вы решите использовать один текстовый файл, вам также необходимо указать, где этот файл будет сохранен. При желании вы также можете включить подкаталоги выбранного каталога в определение концепции.

На вкладке "Дополнение" (augmentation) вы можете указать, как OneTrainer должен изменять ваши изображения перед тренировкой на них. Эти изменения могут увеличить разнообразие ваших тренировочных данных.

Настройки для обучения (Training)

Здесь вы можете задать все параметры, которые используются во время тренировки. Вероятно, вам не потребуется изменять большинство из этих настроек, но вот несколько примеров наиболее важных из них:

  • Скорость обучения (Learning Rate): Этот параметр определяет, насколько быстро вы хотите, чтобы модель обучалась. Но слишком высокое значение приведет к поломке модели.
  • Эпохи (Epochs): Это определяет, сколько шагов модель должна пройти обучение на каждом изображении в наборе данных.
  • Размер пакета (Batch Size): определяет количество изображений для одновременной обработки. Более высокая настройка приведет к получению более обобщенных результатов, но потребует больше времени для обработки и видеопамяти.
  • Этапы накопления (Accumulation Steps): Если вы не можете увеличить размер пакета из-за ограничений в видеопамяти, вы можете увеличить этот параметр, чтобы добиться того же эффекта, но еще больше замедлить процесс обучения.

"Обучение текстового кодировщика (Train Text Encoder)" и "Обучение UNet (Train UNet)" можно отключить, чтобы обучать только части модели. В большинстве случаев оба параметра должны оставаться активными. Вы также можете указать, на сколько периодов времени должна быть обучена каждая часть, а также конкретную скорость обучения для каждой части.

Тип данных тренировки (Train Data Type)

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

Разрешение (Resolution)

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

Маскировки при обучении (Masked training)

С помощью маскированного обучения вы можете указать модели, чтобы она изучала только некоторые части ваших обучающих изображений. Например, если вы хотите обучить объект, но не фон, эта настройка поможет. Чтобы включить маскированное обучение, вам нужно добавить маску для каждого обучающего изображения. Эта маска представляет собой черно-белый графический файл, в котором белые области определяют, что должно быть включено, а черные области исключаются. Имена файлов должны совпадать с именами изображений, с добавлением расширения "-masklabel.png".

Отбор проб (Sampling)

Здесь вы можете задать запросы для регулярного тестирования модели во время обучения. Результаты будут отображаться в tensorboard, а также сохраняться в каталоге workspace.

Резервное копирование и продолжение (Backup and Continue)

На вкладке Резервное копирование вы можете настроить регулярные резервные копии, которые будут создаваться во время учебного цикла. Эти резервные копии сохраняются в рабочей области. Кроме того, вы можете создать резервную копию в конце учебного цикла. Резервная копия содержит все данные модели для продолжения обучения. Чтобы продолжить обучение из предыдущей резервной копии, просто выберите каталог резервной копии в качестве базовой модели.

Резервную копию можно преобразовать в файл модели с помощью инструмента преобразования модели.