Этот репозиторий в первую очередь предоставляет графический интерфейс Gradio для тренажеров Kohya Stable Diffusion. Однако поддержка ОС Linux также предлагается за счет вкладов сообщества. Поддержка macOS на данный момент не является оптимальной, но может работать, если условия будут благоприятными.
Графический интерфейс позволяет вам устанавливать параметры обучения, а также генерировать и запускать необходимые команды CLI для обучения модели.
Графический интерфейс Кохьи
Лимит файла подкачки
Нет модуля под названием tkinter
Обучение LORA на TESLA V100 — проблема с использованием графического процессора
Краткое описание проблемы
Возможные решения
Запуск графического интерфейса в Windows
Запуск графического интерфейса в Linux и macOS
Обновление Windows
Обновление Linux и macOS
Окна
Линукс и МакОС
Ранпод
Докер
Предварительные требования Windows
Настройка Windows
Необязательно: CUDNN 8.9.6.50.
Предварительные требования Linux
Настройка Linux
Место установки
Ручная установка
Готовый шаблон Runpod
Окна
Линукс, OSX
Подготовьте свой Docker к поддержке графического процессора
Дизайн нашего Dockerfile
Используйте готовый образ Docker.
Локальная сборка докера
Эшликлейнханс строит докеры с помощью runpod
Оглавление
? Колаб
Установка
Обновление
Запуск службы графического интерфейса
Пользовательские пути по умолчанию
ЛоРА
Генерация образца изображения во время обучения
Поиск неисправностей
Обучение SDXL
Замаскированная потеря
История изменений
Этот блокнот Colab создавался и поддерживался не мной; однако, похоже, он функционирует эффективно. Исходный код можно найти по адресу: https://github.com/camenduru/kohya_ss-colab.
Я хотел бы выразить благодарность камендуту за их ценный вклад. Если у вас возникнут какие-либо проблемы с блокнотом Colab, сообщите о них в их хранилище.
Колаб | Информация |
---|---|
kohya_ss_gui_colab |
Чтобы установить необходимые зависимости в системе Windows, выполните следующие действия:
Установите Python 3.10.11.
В процессе установки убедитесь, что вы выбрали опцию добавления Python в переменную среды PATH.
Установите набор инструментов CUDA 11.8.
Установите Гит.
Установите распространяемый пакет Visual Studio 2015, 2017, 2019 и 2022.
Чтобы настроить проект, выполните следующие действия:
Откройте терминал и перейдите в желаемый каталог установки.
Клонируйте репозиторий, выполнив следующую команду:
git clone --recursive https://github.com/bmaltais/kohya_ss.git
Перейдите в каталог kohya_ss
:
компакт-диск kohya_ss
Запустите один из следующих сценариев установки, выполнив следующую команду:
Для систем, где установлен только Python 3.10.11:
.setup.bat
Для систем, в которых установлено только несколько выпусков Python:
.setup-3.10.bat
На этапе ускоренной настройки используйте значения по умолчанию, предложенные во время настройки, если вы не знаете, что ваше оборудование требует иного. Объем видеопамяти вашего графического процессора не влияет на используемые значения.
Следующие шаги не являются обязательными, но они улучшат скорость обучения для владельцев графических процессоров NVIDIA 30X0/40X0. Эти шаги позволяют увеличить размер обучающей партии и повысить скорость обучения.
Запустите .setup.bat
и выберите 2. (Optional) Install cudnn files (if you want to use the latest supported cudnn version)
.
Чтобы установить необходимые зависимости в системе Linux, убедитесь, что вы выполняете следующие требования:
Убедитесь, что поддержка venv
предварительно установлена. Установить его на Ubuntu 22.04 можно с помощью команды:
подходящая установка python3.10-venv
Установите набор инструментов CUDA 11.8, следуя инструкциям, представленным по этой ссылке.
Убедитесь, что в вашей системе установлен Python версии 3.10.9 или выше (но ниже 3.11.0).
Чтобы настроить проект на Linux или macOS, выполните следующие действия:
Откройте терминал и перейдите в желаемый каталог установки.
Клонируйте репозиторий, выполнив следующую команду:
git clone --recursive https://github.com/bmaltais/kohya_ss.git
Перейдите в каталог kohya_ss
:
компакт-диск kohya_ss
Если у вас возникли проблемы с разрешениями, сделайте сценарий setup.sh
исполняемым, выполнив следующую команду:
chmod +x ./setup.sh
Запустите сценарий установки, выполнив следующую команду:
./setup.sh
Примечание. Если вам нужны дополнительные параметры или информация о среде runpod, вы можете использовать setup.sh -h
или setup.sh --help
для отображения справочного сообщения.
Местом установки по умолчанию в Linux является каталог, в котором находится сценарий. Если в этом месте обнаружена предыдущая установка, установка продолжится там. В противном случае установка вернется к /opt/kohya_ss
. Если /opt
недоступен для записи, резервным местоположением будет $HOME/kohya_ss
. Наконец, если ни один из предыдущих вариантов невозможен, установка будет выполнена в текущий каталог.
Для macOS и других систем, отличных от Linux, процесс установки попытается определить предыдущий каталог установки в зависимости от того, где был запущен сценарий. Если предыдущая установка не найдена, местоположением по умолчанию будет $HOME/kohya_ss
. Это поведение можно переопределить, указав собственный каталог установки с помощью параметра -d
или --dir
при запуске сценария установки.
Если вы решите использовать интерактивный режим, значениями по умолчанию для экрана ускоренной настройки будут «Этот компьютер», «Нет» и «Нет» для остальных вопросов. Эти ответы по умолчанию такие же, как при установке Windows.
Чтобы установить необходимые компоненты для Runpod и запустить kohya_ss, выполните следующие действия:
Выберите шаблон Runpod pytorch 2.0.1. Это важно. Другие шаблоны могут не работать.
SSH в Runpod.
Клонируйте репозиторий, выполнив следующую команду:
компакт-диск /рабочая область git clone --recursive https://github.com/bmaltais/kohya_ss.git
Запустите скрипт установки:
компакт-диск kohya_ss ./setup-runpod.sh
Запустите графический интерфейс с помощью:
./gui.sh --share --headless
или с этим, если вы выставляете 7860 напрямую через конфигурацию runpod:
./gui.sh --listen=0.0.0.0 --безголовый
Подключитесь к общедоступному URL-адресу, отображаемому после завершения процесса установки.
Для запуска из предварительно созданного шаблона Runpod вы можете:
Откройте шаблон Runpod, нажав https://runpod.io/gsc?template=ya6013lj5a&ref=w18gds2n.
Разверните шаблон на нужном хосте.
После развертывания подключитесь к Runpod по HTTP 3010, чтобы получить доступ к графическому интерфейсу kohya_ss. Вы также можете подключиться к auto1111 по HTTP 3000.
После того, как вы установили Docker Desktop , CUDA Toolkit , драйвер NVIDIA Windows и убедились, что ваш Docker работает с WSL2 , вы готовы к работе.
Вот официальная документация для дальнейшего использования.
https://docs.nvidia.com/cuda/wsl-user-guide/index.html#nvidia-compute-software-support-on-wsl-2 https://docs.docker.com/desktop/wsl/use -wsl/#gpu-поддержка
Установите драйвер графического процессора NVIDIA, если он у вас еще не установлен.
https://docs.nvidia.com/datacenter/tesla/tesla-installation-notes/index.html
Установите NVIDIA Container Toolkit с помощью этого руководства.
https://docs.nvidia.com/datacenter/cloud-native/container-toolkit/latest/install-guide.html
Требуется, чтобы все данные обучения хранились в подкаталоге dataset
, который монтируется в контейнер по адресу /dataset
.
Обратите внимание, что функция выбора файлов недоступна. Вместо этого вам нужно будет вручную ввести путь к папке и путь к файлу конфигурации.
TensorBoard был отделен от проекта.
TensorBoard не включен в образ Docker.
Кнопка «Запустить TensorBoard» скрыта.
TensorBoard запускается из отдельного контейнера, как показано здесь.
Браузер не запустится автоматически. Вам нужно будет вручную открыть браузер и перейти по адресам http://localhost:7860/ и http://localhost:6006/.
Этот Dockerfile был разработан так, чтобы его можно было легко использовать. Вы можете удалить контейнер в любой момент и перезапустить его с новой версией кода.
git clone --recursive https://github.com/bmaltais/kohya_ss.gitcd kohya_ss докер составить -d
Чтобы обновить систему, выполните docker compose down && docker compose up -d --pull always
Важный
Рекурсивно клонируйте репозиторий Git, чтобы включить подмодули:
git clone --recursive https://github.com/bmaltais/kohya_ss.git
git clone --recursive https://github.com/bmaltais/kohya_ss.gitcd kohya_ss докер составить -d --build
Примечание
Создание образа может занять до 20 минут.
Чтобы обновить систему, перейдите к новой версии кода и перестройте ее с помощью docker compose down && docker compose up -d --build --pull always
Если вы работаете в Linux, здесь доступен альтернативный порт контейнера Docker с меньшими ограничениями.
При работе на runpod вы можете использовать следующие репозитории:
Автономный шаблон Kohya_ss: https://github.com/ashleykleynhans/kohya-docker.
Шаблон графического интерфейса Auto1111 + Kohya_ss: https://github.com/ashleykleynhans/stable-diffusion-docker
Чтобы обновить установку до новой версии, следуйте инструкциям ниже.
Если станет доступен новый выпуск, вы можете обновить свой репозиторий, выполнив следующие команды из корневого каталога проекта:
Загрузите последние изменения из репозитория:
мерзавец тянуть
Запустите скрипт установки:
.setup.bat
Чтобы обновить вашу установку в Linux или macOS, выполните следующие действия:
Откройте терминал и перейдите в корневой каталог проекта.
Загрузите последние изменения из репозитория:
мерзавец тянуть
Обновите и обновите все:
./setup.sh
Чтобы запустить службу графического интерфейса, вы можете использовать предоставленные сценарии или напрямую запустить сценарий kohya_gui.py
. Используйте аргументы командной строки, перечисленные ниже, для настройки базовой службы.
--listen: Specify the IP address to listen on for connections to Gradio.
--username: Set a username for authentication.
--password: Set a password for authentication.
--server_port: Define the port to run the server listener on.
--inbrowser: Open the Gradio UI in a web browser.
--share: Share the Gradio UI.
--language: Set custom language
В Windows вы можете использовать скрипт gui.ps1
или gui.bat
расположенный в корневом каталоге. Выберите сценарий, который соответствует вашим предпочтениям, и запустите его в терминале, указав нужные аргументы командной строки. Вот пример:
gui.ps1 --listen 127.0.0.1 --server_port 7860 --inbrowser --share
или
gui.bat --listen 127.0.0.1 --server_port 7860 --inbrowser --share
Чтобы запустить графический интерфейс в Linux или macOS, запустите сценарий gui.sh
расположенный в корневом каталоге. Укажите нужные аргументы командной строки следующим образом:
gui.sh --listen 127.0.0.1 --server_port 7860 --inbrowser --share
Репозиторий теперь предоставляет файл конфигурации по умолчанию с именем config.toml
. Этот файл представляет собой шаблон, который вы можете настроить в соответствии со своими потребностями.
Чтобы использовать файл конфигурации по умолчанию, выполните следующие действия:
Скопируйте файл config example.toml
из корневого каталога репозитория в config.toml
.
Откройте файл config.toml
в текстовом редакторе.
Измените пути и настройки в соответствии с вашими требованиями.
Этот подход позволяет вам легко настроить конфигурацию в соответствии с вашими конкретными потребностями, открывая нужные папки по умолчанию для каждого типа ввода папок/файлов, поддерживаемых в графическом интерфейсе.
Вы можете указать путь к вашему config.toml (или любое другое имя, которое вам нравится) при запуске графического интерфейса. Например: ./gui.bat --config c:my_config.toml
Для обучения LoRA в настоящее время вы можете использовать код train_network.py
. Вы можете создать сеть LoRA, используя универсальный графический интерфейс.
После создания сети LoRA вы можете создавать изображения с помощью auto1111, установив это расширение.
Файл подсказки может выглядеть, например, так:
# подскажите 1 шедевр, лучшее качество, (1 девушка), в белых рубашках, верхняя часть тела, смотрит на зрителя, простой фон --n низкое качество, худшее качество, плохая анатомия, плохая композиция, плохо, мало усилий --w 768 --h 768 --d 1 --l 7.5 --s 28# подскажите 2шедевр, лучшее качество, 1 мальчик, в деловом костюме, стоит на улице, оглядывается назад --n (низкое качество, худшее качество), плохая анатомия, плохая композиция, плохой , малое усилие --w 576 --h 832 --d 2 --l 5,5 --s 40
Строки, начинающиеся с #
являются комментариями. Вы можете указать параметры сгенерированного изображения с помощью таких параметров, как --n
после запроса. Можно использовать следующие варианты:
--n
: Отрицательное приглашение к следующему варианту.
--w
: определяет ширину создаваемого изображения.
--h
: определяет высоту сгенерированного изображения.
--d
: указывает начальное число сгенерированного изображения.
--l
: определяет масштаб CFG сгенерированного изображения.
--s
: указывает количество шагов в генерации.
Быстрое взвешивание, такое как ( )
и [ ]
работает.
Если у вас возникнут какие-либо проблемы, обратитесь к инструкциям по устранению неполадок, приведенным ниже.
Если вы столкнулись с ошибкой X, связанной с файлом подкачки, вам может потребоваться увеличить ограничение размера файла подкачки в Windows.
Если вы столкнулись с ошибкой, указывающей на то, что модуль tkinter
не найден, попробуйте переустановить Python 3.10 в вашей системе.
При обучении LORA на TESLA V100 пользователи сообщили о низкой загрузке графического процессора. Кроме того, возникли трудности с указанием графических процессоров, отличных от используемых по умолчанию для обучения.
Выбор графического процессора: пользователи могут указать идентификаторы графических процессоров в конфигурации настройки, чтобы выбрать нужные графические процессоры для обучения.
Улучшение загрузки графического процессора. Использование оптимизатора adamW8bit
и увеличение размера пакета может помочь достичь загрузки графического процессора на 70–80 % без превышения ограничений памяти графического процессора.
Документация из этого раздела позже будет перенесена в отдельный документ.
Маскированная потеря поддерживается в каждом сценарии обучения. Чтобы включить маскированную потерю, укажите опцию --masked_loss
.
Функция не полностью протестирована, поэтому могут быть ошибки. Если вы обнаружите какие-либо проблемы, пожалуйста, откройте вопрос.
Набор данных ControlNet используется для указания маски. Изображения маски должны быть изображениями RGB. Значение пикселя 255 в канале R рассматривается как маска (потери рассчитываются только для пикселей с маской), а значение 0 рассматривается как не-маска. Значения пикселей 0–255 преобразуются в 0–1 (т. е. значение пикселя 128 рассматривается как половина веса потери). Подробности спецификации набора данных см. в документации LLLite.
См. информацию о выпуске.