B-lora
anon s /ai/Как тренить билору бесплатно без смс
1. https://github.com/kohya-ss/sd-scripts клонируем, ставим реквайременты
2. https://github.com/ThereforeGames/blora_for_kohya - качаем, кидаем файлы папки в корень к sd-scripts где лежат реквайрменты
3. Клониуем sdxl_blora_fast.bat и переименовываем в удобное, этот файл для запуска тренировки, внутри оставляем только
accelerate launch --num_cpu_threads_per_process 8 sdxl_train_network.py ^
--pretrained_model_name_or_path="K:/абсолютный путь к модели" ^
--train_data_dir="example" ^
--output_dir="output_dir" ^
--output_name="pidoras" ^
--network_args "preset=K:/sd-scripts/sd-scripts/lycoris_presets/blora_content_layout_style.toml" dora_wd=True ^
--resolution="1024,1024" ^
--save_model_as="safetensors" ^
--network_module="lycoris.kohya" ^
--max_train_steps=100 ^
--save_every_n_steps=20 ^
--save_every_n_epochs=20 ^
--network_dim=64 ^
--network_alpha=64 ^
--train_batch_size 1 ^
--gradient_checkpointing ^
--persistent_data_loader_workers ^
--enable_bucket ^
--random_crop ^
--bucket_reso_steps=32 ^
--min_bucket_reso=512 ^
--mixed_precision="fp16" ^
--caption_extension=".txt" ^
--lr_scheduler="constant" ^
--lr_warmup_steps=0 ^
--network_train_unet_only ^
--prior_loss_weight=0 ^
--use_8bit_adam ^
--learning_rate=5e-5 ^
--seed=0 ^
pause
Соответственно pretrained_model_name_or_path указываем модель (билора тренируется под модель), train_data_dir - папка рядом с батником с датасетом и кепчер файлами (структура самой стандртного вида "exmpale/1/файлы тренировки", где 1 количество повторений), output_dir - очевидно то место где будут храниться промежутки тренинга и финал билора, output_name - название, network_args - томл файл для тренировки билоры (находятся в lycoris_presets, можно выбрать другие), дора_вд - применение декомпрессии весов как у доры, остальные настройки по своему усмотрению, данные были взяты из оригинального репо https://github.com/yardenfren1996/B-LoRA , но можно и всякие продижи в качестве оптимайзер юзать в доп аргументами и тд. Если тренируется под пони или нубай то указывается аргумент --clip_skip 2
4. Если во время обучения кмд ебет мозги депрекейт фучур варнингами их можно вырубить в sdxl_train_network.py прописав выше всего:
import warnings
warnings.filterwarnings("ignore", category=FutureWarning)
5. Подготовить датасет можно ручками, достаточно раскопировать тхт с одним и тем же токеном вида "A [токен]" или "[токен]" без кавычек, будь внимателен и бери слабый или незанятый токен, или вообще последовательность цифр, потому что допустим тренировка под [v] согласно паперу не совсем корректна, т.к. большинство файнтюнов в курсе насчет v-gesture и будет токенликинг и все объекты генерации будут вам два пальчика пытаться показать. В идеале сеть не должна знать о токене, поэтому берите ченить на транслите типа [pidoras] или цифрах [34452], можно кобинировать в [p1d0r45]. Квадратные скобки кстати не обязательны, просто дополнительное отделение токена от токенов сети.
6. Если требуется раздрочить кепчер (что для билоры в принципе не требуется но мало ли), то картинки прогоняются условным дипданбуру или вайфудифужн таггером и получаешь последовательности концептов. Если хочется натренить на сорт оф хуман лангвиж, то хорошая нсфв модель для кепчеринга это Torii-Gate.
Модель в nf4 https://huggingface.co/2dameneko/ToriiGate-v0.3-nf4/tree/main
Скрипт для использования https://github.com/2dameneko/ide-cap-chan
Ставишь скрипт, создаешь папку внутри 2dameneko внутри ToriiGate-v0.3-nf4 куда кидаешь все файлы с хага.
Команда генерации для торигейта находится в файле ide-cap-chan.py в строке user_prompt = "Give...", можно свободно менять, т.к. по дефолту торий генерит огромные шизопосты с детальным описанием. Команда типа "Give a detailed description of the picture (subjects, objects, background, colors, etc). Make the description short as possible." на мой взгляд работает гораздо лучше.
Кидаешь все картинки в папку 2tag, запускаешь batch_processing.bat, ждешь. В среднем на 3060 одну картинку кепчерит за 20 сек.
Алсо торигейту можно скормить бурушный кепчер для более лучшей генерации.
7. Когда получилась лора ее можно оставить как есть, либо разрезать на составные части. Допустим если взят томл конфиг тренировки blora_content_layout_style то лору можно разрезать на три лоры - content, layout и stye.
Слайсинг делается с помощью blora_slicer.bat, blora_slicer.py и blora_traits.json, их можно скопировать в аутпут папку к билоре и оттуда поменять blora_slicer.bat настройки и запустить.
Алсо если билора недотренена, то у нее спокойно можно поднимать вес при использовании.
Вооот.