Шапка технотреда

Обновлённая версия шапки здесь: https://2ch-ai.gitgud.site/wiki/tech/tech-shapka/

Тег: tech
Тема: Stable Diffusion технотред #xxxx


(4 стула) (выебоны) (оверфит) (число итераций для GPU)

[I]ИТТ делимся советами, лайфхаками, наблюдениями, результатами обучения, обсуждаем внутреннее устройство диффузионных моделей, собираем датасеты, решаем проблемы и экспериментируем[/I]
[I]Тред общенаправленныей, тренировка дедов, лупоглазых и фуррей приветствуются[/I]

Предыдущий тред: >>#############

[B]➤ Софт для обучения[/B]

https://github.com/kohya-ss/sd-scripts
Набор скриптов для тренировки, используется под капотом в большей части готовых GUI и прочих скриптах.
Для удобства запуска можно использовать дополнительные скрипты в целях передачи параметров, например: https://rentry.org/simple_kohya_ss

[B]➤ GUI-обёртки для kohya-ss[/B]

https://github.com/bmaltais/kohya_ss
https://github.com/derrian-distro/LoRA_Easy_Training_Scripts
https://github.com/anon-1337/LoRA-train-GUI

[B]➤ Обучение SDXL[/B]

Если вы используете скрипты https://github.com/kohya-ss/sd-scripts напрямую, то, для обучения SDXL, вам необходимо переключиться на ветку "sdxl" и обновить зависимости. Эта операция может привести к проблемам совместимости, так что, желательно, делать отдельную установку для обучения SDXL и использовать отдельную venv-среду. Скрипты для тренировки SDXL имеют в имени файла префикс sdxl_.

Подробнее про обучение SDXL через kohya-ss можно почитать тут: https://github.com/kohya-ss/sd-scripts/tree/sdxl#about-sdxl-training

Для GUI https://github.com/bmaltais/kohya_ss и https://github.com/derrian-distro/LoRA_Easy_Training_Scripts/tree/SDXL так же вышли обновления, позволяющее делать файнтьюны для SDXL. Кроме полноценного файнтьюна и обучения лор, для bmaltais/kohya_ss так же доступны пресеты для обучения LoRA/LoHa/LoKr, в том числе и для SDXL, требующие больше VRAM.

Всё пока сырое и имеет проблемы с совместимостью, только для самых нетерпеливых. Требования к системе для обучения SDXL выше, чем для обучения SD 1.x.

[B]➤ Гайды по обучению[/B]

Существующую модель можно обучить симулировать определенный стиль или рисовать конкретного персонажа.

✱ [I]Текстуальная инверсия (Textual inversion)[/I] может подойти, если сеть уже умеет рисовать что-то похожее:
https://rentry.org/textard (англ.)

✱ [I]Гиперсеть (Hypernetwork)[/I] может подойти, если она этого делать не умеет; позволяет добавить более существенные изменения в существующую модель, но тренируется медленнее:
https://rentry.org/hypernetwork4dumdums (англ.)

✱ [I]Dreambooth[/I] – выбор 24 Гб VRAM-бояр. Выдаёт отличные результаты. Генерирует полноразмерные модели:
https://github.com/nitrosocke/dreambooth-training-guide (англ.)

✱ [I]LoRA[/I] – "легковесный Dreambooth" – подойдет для любых задач. Отличается малыми требованиями к VRAM (6 Гб+) и быстрым обучением:
https://rentry.org/2chAI_easy_LORA_guide_re - гайд по подготовке датасета и обучению LoRA для неофитов
https://rentry.org/2chAI_hard_LoRA_guide - ещё один гайд по использованию и обучению LoRA
https://rentry.org/59xed3 - более углубленный гайд по лорам, содержит много инфы для уже разбирающихся (англ.)

✱ [I]LyCORIS[/I] (Lora beYond Conventional methods, Other Rank adaptation Implementations for Stable diffusion) - это проект по созданию алгоритма для более эффективного дообучения SD. Ранее носил название LoCon. В настоящий момент включает в себя алгоритмы LoCon, LoHa, LoKr и DyLoRA:
https://github.com/KohakuBlueleaf/LyCORIS

✱ [I]LoCon[/I] (LoRA for Convolution layer) - тренирует дополнительные слои в UNet. Теоретически должен давать лучший результат тренировки по сравнению с LoRA, меньше вероятность перетренировки и большая вариативность при генерации. Тренируется примерно в два раза медленнее чистой LoRA, требует меньший параметр network_dim, поэтому размер выходного файла меньше.

✱ [I]LoHa[/I] (LoRA with Hadamard Product representation) - тренировка с использованием алгоритма произведения Адамара. Теоретически должен давать лучший результат при тренировках с датасетом в котором будет и персонаж и стилистика одновременно.

✱ [I]LoKr[/I] (LoRA with Kronecker product representation) - тренировка с использованием алгоритма произведения Кронекера. Алгоритм довольно чувствителен к learning_rate, так что требуется его тонкая подгонка. Из плюсов - очень маленький размер выходного файла (auto factor: 900~2500KB), из минусов - слабая переносимость между моделями.

✱ [I]DyLoRA[/I] (Dynamic Search-Free LoRA) - по сути та же LoRA, только теперь в выходном файле размер ранга (network_dim) не фиксирован максимальным, а может принимать кратные промежуточные значения. После обучения на выходе будет один многоранговый файл модели, который можно разбить на отдельные одноранговые. Количество рангов указывается параметром --network_args "unit=x", т.е. допустим если network_dim=128, network_args "unit=4", то в выходном файле будут ранги 32,64,96,128. По заявлению разработчиков алгоритма, обучение одного многорангового файла в 4-7 раз быстрее, чем учить их по отдельности.

✱ [I]Text-to-image fine-tuning[/I] для Nvidia A100/Tesla V100-бояр:
https://keras.io/examples/generative/finetune_stable_diffusion (англ.)

[I]Не забываем про золотое правило GIGO ("Garbage in, garbage out"): какой датасет, такой и результат.[/I]

[B]➤ Тренировка YOLO-моделей для ADetailer[/B]
YOLO-модели (You Only Look Once) могут быть обучены для поиска определённых объектов на изображении. В паре с ADetailer они могут быть использованы для автоматического инпеинта по найденной области.

Гайд: https://civitai.com/articles/1224/training-a-custom-adetailer-model
Тулза для датасета: https://github.com/vietanhdev/anylabeling
Больше про параметры: https://docs.ultralytics.com/modes/train

[B]➤ Гугл колабы[/B]

﹡Текстуальная инверсия: https://colab.research.google.com/github/huggingface/notebooks/blob/main/diffusers/sd_textual_inversion_training.ipynb
﹡Dreambooth: https://colab.research.google.com/github/TheLastBen/fast-stable-diffusion/blob/main/fast-DreamBooth.ipynb
﹡LoRA [1] https://colab.research.google.com/github/Linaqruf/kohya-trainer/blob/main/kohya-trainer.ipynb
﹡LoRA [2] https://colab.research.google.com/drive/1bFX0pZczeApeFadrz1AdOb5TDdet2U0Z

[B]➤ Полезное[/B]

Гайд по фиксу сломанных моделей: https://rentry.org/clipfix (англ.)
Расширение WebUI для проверки "сломаных" тензоров модели: https://github.com/iiiytn1k/sd-webui-check-tensors
Гайд по блок мерджингу: https://rentry.org/BlockMergeExplained (англ.)
Гайд по ControlNet: https://stable-diffusion-art.com/controlnet (англ.)

Гайды по апскейлу от анонов:
https://rentry.org/SD_upscale
https://rentry.org/sd__upscale
https://rentry.org/2ch_nai_guide#апскейл
https://rentry.org/UpscaleByControl

Ручная сборка и установка последней версии xformers и torch в venv автоматика:
Windows: https://rentry.org/sd_performance
Linux: https://rentry.org/SD_torch2_linux_guide

Подборка мокрописек от анона: https://rentry.org/te3oh
Группы тегов для бур: https://danbooru.donmai.us/wiki_pages/tag_groups (англ.)
Коллекция лор от анонов: https://rentry.org/2chAI_LoRA

Гайды, эмбеды, хайпернетворки, лоры с форча:
https://rentry.org/sdgoldmine
https://rentry.org/sdg-link
https://rentry.org/hdgfaq
https://rentry.org/hdglorarepo
https://gitgud.io/gayshit/makesomefuckingporn

Шапка: https://rentry.org/catb8

Прошлые треды:
№1 https://arhivach.top/thread/859827/
№2 https://arhivach.top/thread/860317/
№3 https://arhivach.top/thread/861387/
№4 https://arhivach.top/thread/863252/
№5 https://arhivach.top/thread/863834/
№6 https://arhivach.top/thread/864377/
№7 https://arhivach.top/thread/868143/
№8 https://arhivach.top/thread/873010/
№9 https://arhivach.top/thread/878287/
№10 https://arhivach.top/thread/893334/
№11 https://arhivach.top/thread/908751/
№12 https://arhivach.top/thread/927830/
№13 https://arhivach.top/thread/946884/




















Что хорошо бы добавить:

  1. Как с умом крутить веса модели (см. картинка в шапку 2) гайд в шапке, но нужно заполнить. Пароль 2ch https://rentry.org/mp2dt
  2. Мокрописьки для создания датасетов - грабберы, таггеры
Edit
Pub: 14 Mar 2023 12:10 UTC
Edit: 14 Nov 2023 00:12 UTC
Views: 1120