Прошлые домены не функционирует! Используйте адрес ARHIVACH.VC.
24 декабря 2023 г. Архивач восстановлен после серьёзной аварии. К сожалению, значительная часть сохранённых изображений и видео была потеряна. Подробности случившегося. Мы призываем всех неравнодушных помочь нам с восстановлением утраченного контента!

Stable Diffusion технотред #20 /tech/

 Аноним 11/07/25 Птн 04:39:36 #1 №1272560 
training methods.png
diffusion process.png
lr.png
performance chart.webp
flux arch.jpg
sd3 mmdit arch.png
ИТТ делимся советами, лайфхаками, наблюдениями, результатами обучения, обсуждаем внутреннее устройство диффузионных моделей, собираем датасеты, решаем проблемы и экспериментируем Тред общенаправленныей, тренировка дедов, лупоглазых и фуррей приветствуются

Предыдущий тред: >>1118663 (OP)

➤ Софт для обучения

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

https://github.com/bghira/SimpleTuner Линукс онли, бэк отличается от сд-скриптс

https://github.com/Nerogar/OneTrainer Фич меньше, чем в сд-скриптс, бэк тоже свой

➤ GUI-обёртки для sd-scripts

https://github.com/bmaltais/kohya_ss
https://github.com/derrian-distro/LoRA_Easy_Training_Scripts

➤ Обучение SDXL

https://2ch-ai.gitgud.site/wiki/tech/sdxl/

➤ Flux

https://2ch-ai.gitgud.site/wiki/nai/models/flux/

➤ Гайды по обучению

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

LoRA – "Low Rank Adaptation" – подойдет для любых задач. Отличается малыми требованиями к VRAM (6 Гб+) и быстрым обучением. https://github.com/cloneofsimo/lora - изначальная имплементация алгоритма, пришедшая из мира архитектуры transformers, тренирует лишь attention слои, гайды по тренировкам:
https://rentry.co/waavd - гайд по подготовке датасета и обучению LoRA для неофитов
https://rentry.org/2chAI_hard_LoRA_guide - ещё один гайд по использованию и обучению LoRA
https://rentry.org/59xed3 - более углубленный гайд по лорам, содержит много инфы для уже разбирающихся (англ.)

LyCORIS (Lora beYond Conventional methods, Other Rank adaptation Implementations for Stable diffusion) - проект по созданию алгоритмов для обучения дополнительных частей модели. Ранее имел название LoCon и предлагал лишь тренировку дополнительных conv слоёв. В настоящий момент включает в себя алгоритмы LoCon, LoHa, LoKr, DyLoRA, IA3, а так же на последних dev ветках возможность тренировки всех (или не всех, в зависимости от конфига) частей сети на выбранном ранге:
https://github.com/KohakuBlueleaf/LyCORIS

Подробнее про алгоритмы в вики https://2ch-ai.gitgud.site/wiki/tech/lycoris/

Dreambooth – для SD 1.5 обучение доступно начиная с 16 GB VRAM. Ни одна из потребительских карт не осилит тренировку будки для SDXL. Выдаёт отличные результаты. Генерирует полноразмерные модели:
https://rentry.co/lycoris-and-lora-from-dreambooth (англ.)
https://github.com/nitrosocke/dreambooth-training-guide (англ.) https://rentry.org/lora-is-not-a-finetune (англ.)

Текстуальная инверсия (Textual inversion), или же просто Embedding, может подойти, если сеть уже умеет рисовать что-то похожее, этот способ тренирует лишь текстовый энкодер модели, не затрагивая UNet:
https://rentry.org/textard (англ.)

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

Подробнее в вики: https://2ch-ai.gitgud.site/wiki/tech/yolo/

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

➤ Гугл колабы

﹡Текстуальная инверсия: 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 https://colab.research.google.com/github/hollowstrawberry/kohya-colab/blob/main/Lora_Trainer.ipynb

➤ Полезное

Расширение для фикса CLIP модели, изменения её точности в один клик и более продвинутых вещей, по типу замены клипа на кастомный: https://github.com/arenasys/stable-diffusion-webui-model-toolkit
Гайд по блок мерджингу: https://rentry.org/BlockMergeExplained (англ.)
Гайд по ControlNet: https://stable-diffusion-art.com/controlnet (англ.)

Подборка мокрописек для датасетов от анона: https://rentry.org/te3oh
Группы тегов для бур: https://danbooru.donmai.us/wiki_pages/tag_groups (англ.)
NLP тэггер для кэпшенов T5: https://github.com/2dameneko/ide-cap-chan (gui), https://huggingface.co/Minthy/ToriiGate-v0.3 (модель), https://huggingface.co/2dameneko/ToriiGate-v0.3-nf4/tree/main (квант для врамлетов)

Оптимайзеры: https://2ch-ai.gitgud.site/wiki/tech/optimizers/
Визуализация работы разных оптимайзеров: https://github.com/kozistr/pytorch_optimizer/blob/main/docs/visualization.md

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

Старая коллекция лор от анонов: 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/badhands/makesomefuckingporn
https://rentry.org/ponyxl_loras_n_stuff - пони лоры
https://rentry.org/illustrious_loras_n_stuff - люстролоры

➤ Legacy ссылки на устаревшие технологии и гайды с дополнительной информацией

https://2ch-ai.gitgud.site/wiki/tech/legacy/

➤ Прошлые треды

https://2ch-ai.gitgud.site/wiki/tech/old_threads/

Шапка: https://2ch-ai.gitgud.site/wiki/tech/tech-shapka/
Аноним 13/07/25 Вск 03:29:54 #2 №1274873 DELETED
МАМУ ЕБАЛ ТВОЮ
Аноним 13/07/25 Вск 22:35:15 #3 №1275731 
image.png
14 часов достаточно агрессивной тренировки на продижах с идеально выдроченным микродатасетом, и ошибка все еще снижается.
Вопрос: какая комбуха из лосс функции и оптимайзера по вашему мнению имеет наиболее быстрое, эффективное и мощное схождение?
Аноним 13/07/25 Вск 22:45:23 #4 №1275745 
1690712757307.png
1656195902382.png
1640148602337.png
>>1275731
Loss это не метрика. Он куда угодно идти может. Пикрил на 1 пике датасет на 3к пикч с парой десятков концептов, лосс как будто бы даже вверх идёт, потому что некуда сходиться, все пики разные, вот и лосс как рандомный шум. На втором пике датасет из 10 пикч на стиль, с абсолютно такими же параметрами. Оба оттренились как положено.
> лосс функции
Пик3 - как выглядит loss настоящих мужчин.
Аноним 13/07/25 Вск 23:40:25 #5 №1275855 
>>1275745
>Loss это не метрика. Он куда угодно идти может.
Позвольте, снижение ошибки предсказания это главная метрика стабильного вывода.
>Пикрил на 1 пике датасет на 3к пикч с парой десятков концептов, лосс как будто бы даже вверх идёт, потому что некуда сходиться, все пики разные, вот и лосс как рандомный шум.
Это говорит о том, что модель не может сообразить как правильно предсказывать, поэтому наоборот старается вычленить более общее сначала и лосс растет. В далеком будущем она обобщит лучше и лосс будет снижаться. Плюс надо иметь в виду что вероятно это лора, а она парметрическую емкость низкую имеет.
Аноним 14/07/25 Пнд 01:28:54 #6 №1275958 
>>1275855
На втором пике у меня лосс вниз пошёл потому что было 500 эпох, а в первом случае 3. На качество финального результата это никак не влияет, это ты просто видишь как сетка запоминает конкретные пикчи. Попробуй потренить большой датасет в одну эпоху с тем же стилем как и у модели, тоже не увидишь снижения лосса.
Аноним 14/07/25 Пнд 18:07:09 #7 №1276638 
Для тренировки на noobai нужно ставить debiased_estimation_loss если с edm2 тренируешь? edm2 же автоматически выставляет приоритет таймстепов, а как я понял debiased_estimation_loss тоже выставляет приоритет, только статически и увеличивает важность последних шагов
Аноним 14/07/25 Пнд 19:27:02 #8 №1276769 
это нормально, что Forge больше чем в 2 раза быстрее, чем automatic1111? там в районе 250% ускорение - было примерно 2 it/s, стало примерно 5

я что-то не верю в такие оптимизации и мне кажется, что где-то что-то отвалилось или скипается посередине генерации.
модель и лоры запускаю такие же, семплеры и их конфиги тоже такие же, настройки в Settings тоже вроде похожи, а картинки генерятся быстрее, что за фигня? или там реально прям так сильно оптимизировано (или автоматик1111 - тормознутая хуйня?)
Аноним 15/07/25 Втр 00:41:55 #9 №1277383 
>>1276769
>(или автоматик1111 - тормознутая хуйня?)
Да, если бы ты сидел на нём с начала, ты был бы в курсе кто его и руками из какого места торчащими делал.
Аноним 15/07/25 Втр 02:22:26 #10 №1277456 
>>1276638
Что то одно юзай
>>1276769
> или автоматик1111 - тормознутая хуйня?
Да, на заре эпохи xl было буквально в два раза медленнее, чем сейчас можно выжать
Аноним 15/07/25 Втр 11:02:08 #11 №1277670 
>>1276638
а в каком тренере едм2 вкостылен нормально?
Аноним 15/07/25 Втр 11:08:48 #12 №1277678 
>>1276769
скорее всего такая большая разница из-за версий сопутствующего софта. автоматик1111 я запускал с питоном 3.11 и какими-то старыми трансформерами и торчем, а форж с питоном 3.13 и свежими трансформерами и торчем.
так шо не всегда обновления делают только хуже, иногда и улучшают.
Аноним 16/07/25 Срд 15:21:18 #13 №1279002 
Клайбиус накодил наканецта свой магнум опус оказывается

https://github.com/Clybius/Personalized-Optimizers/blob/main/TALON.py

Что ето: Temporal Adaptation via Level and Orientation Normalization, адаптивный оптимизатор, направлен на стабильность, адаптацию к направлению и масштабу градиента, и устойчивость к шуму (судя по мои тестам полностью насрать в хорошем смысле на неоднородность даты и количество концептов). Наследует идеи из Compass, AdaNorm, Adam, Adan, DoRA и адаптивных спектральных нормализаторов, но соединяет их в единую систему, при этом не требуя тонкой настройки гиперпараметров (там буквально нечего менять, вставил и поехал).

Общие майлстоуны:
1. Отдельно отслеживает знак и величину градиента через два EMA, рассчитан на работу с высоким lr.
2. Применяет атан2-нормализацию вместо обычного деления (то есть никаких клипперов использовать дополнительно не нужно, если ты используешь, но атан2 замедляет обучение вместо деления, имейте в виду).
3. Может использовать спектральное клиппирование (вкл по дефолту), инвариантное преобразование (тестовая опция, выкл) и ортогональные градиенты (опция, выкл).

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

Из личных минусов разве что медлительность с Huber с адаптивным snr (что очевидно, т.к. талон сам супер осторожный, а тут еще слабые сигналы от snr фильтра хубера, кароче мультипликативный эффект), там прямо чуть ли не 1e-1 скорость можно выставлять, шестичасовой тест на 1e-3 с двумя десятками эпох дал прекрасный тонкий результат без говна в выдаче, но точно скорость можно выше выставить, возможно требует дельту подкорректировать. С l2 работает бодрее и lr наоборот пониже. l1 не тестировал.

Debiased est loss переваривает отлично (многие оптимайзеры не переваривают задранные таймстепы), так что в целом любое вмешательство в них допускается, кому не лень может едм подрочить.
Аноним 16/07/25 Срд 21:23:41 #14 №1279630 
>>1279002
> градиент-клиппинг погоняет градиент-клиппингом
Бесполезное говно, как и десяток подобных до него, ещё и медленное. Смысл чистить всратый mse/huber-лосс душением градиентов, если уже давно придумали делать wavelet-декомпозицию лосса, сужай сколько хочешь влияние мусора.
Аноним 16/07/25 Срд 23:47:37 #15 №1279759 
>>1279002
Цифры бы увидеть, метрики или хоть какой-то живой результат, а то хуй поймешь шиза это или нет.
Вот мюон например уже показали что на 30% лучше работает, но только если с нуля обучать, но если не с нуля то хотя бы память экономит. Но может вызывать дополнительную нестабильность на долгой тренировке.
А на лорах это вообще другой мир где по нюансам оптимизации 0 работ.
Аноним 16/07/25 Срд 23:51:54 #16 №1279762 
image.png
>>1279630
>делать wavelet-декомпозицию
Ты про эту хуйню с пика из дифужн4к чтоли? Не работает с bf16, только с флоат32 -> на хуй идет.

>Бесполезное говно
Мне понравилось, рукопожатие крепкое, не выебонит на сверхмалых или сверхвсратых датасетах и всегда знаешь что не пизданется и не начнет ходить по кругу.

>как и десяток подобных до него
Перечисляй.

>ещё и медленное
Медленное это FMARSCropV2, а тут чуть медленнее продижей.
Аноним 17/07/25 Чтв 08:52:26 #17 №1279861 
>>1279762
> Не работает с bf16
С чего бы ей не работать? Всё работает.
Аноним 17/07/25 Чтв 20:47:31 #18 №1280531 
>>1279861
пруфы
Аноним 17/07/25 Чтв 21:12:28 #19 №1280584 
>>1280531
Пруфы чего? Я сейчас только так и треню, обычного лосса нет у меня, выше скрин кидал с кодом расчёта лосса с автоматическими весами от timestep.
Аноним 17/07/25 Чтв 22:58:19 #20 №1280677 
>>1280584
ну дай код реализации и как впендюрить в скрипты, че из тебя щипцами вытягивать?
Аноним 18/07/25 Птн 06:46:56 #21 №1280881 
image.png
image.png
image.png
>>1280677

кароче вроде впердолил эту поебистику

нигде нихуя не написано как куда сувать, как будтов се погромисты дохуя

1. в трейн нетворке

строка 465 loss = train_util.conditional_loss(noise_pred.float(), target.float(), args.loss_type, "none", huber_c, timesteps)
строка 470 loss = loss

(вероятно будут ошибки если с классическими лоссами включать обратно, не проверял)

2. в трейн утиле

а) пик1, ввести новый тип лосса
б) после импортов запихать пик2
в) добавить в импорты
import torch.nn.functional as F
from pytorch_wavelets import DWTForward

вроде работает гавно, уже сдохло нахуй
Аноним 18/07/25 Птн 06:55:17 #22 №1280885 
>>1280881
>уже сдохло нахуй
ха, прикол, не сдохло с такими конскими значениями оказывается, прям четенько результат уже на первой эпохе
Аноним 18/07/25 Птн 06:59:52 #23 №1280886 
image.png
>>1280881
Там кстати погромист который дрочится с вейвлетом полевельно веса сделал, можно типа отключать каждый лвл отдельно и влиять только на чтото конкретное, в коде отсюда >>1275745 не реализовано

кароче можно пул реквест для кои открывать, пусть добавляет, ток проверю как с другими лоссами работает теперь
Аноним 18/07/25 Птн 21:38:47 #24 №1281884 
>>1280881
ну это прям шикардос результы у меня с этим, я еще таких крутых тренингов не делал ни с л2, ни с хубером, почему это еще не зарелизено везде по дефолту-то, дифужн 4к вышел в марте такто
Аноним 18/07/25 Птн 21:57:13 #25 №1281928 
>>1281884
А в пулах лежит оказывается внедрение вейвлетов https://github.com/kohya-ss/sd-scripts/pull/2037 ток там какая-то суперпедольная реализация с миллиардом выведенных отдельно настраиваемых параметров.
Аноним 18/07/25 Птн 22:10:37 #26 №1281964 
>>1281884
Потому что веса для уровней не очень универсальные, надо под задачу подбирать. А тренировка без весов заметно хуже чем правильные веса. А с автовесами ещё больше подстроек надо, я довольно долго пердолился чтоб ширину пика подобрать.
Можно для XL проще делать - трансформации Фурье. Результат тоже лучше mse/huber.
>>1281928
Все волны кроме haar говно, я уже всё это говно перетестил давно. У него ещё в списке недискретные, они не работают с дискретным DWT. Тот кто делал pr явно отбалды все возможное параметры впердолил не тестируя.
Аноним 18/07/25 Птн 23:38:42 #27 №1282159 
>>1281964
>Потому что веса для уровней не очень универсальные, надо под задачу подбирать. А тренировка без весов заметно хуже чем правильные веса. А с автовесами ещё больше подстроек надо, я довольно долго пердолился чтоб ширину пика подобрать.
>Можно для XL проще делать - трансформации Фурье. Результат тоже лучше mse/huber.
Эта часть поста ответ на >>1280886 ?

>А тренировка без весов заметно хуже чем правильные веса.
А почему ты взял именно 6 уровней?

>А с автовесами ещё больше подстроек надо, я довольно долго пердолился чтоб ширину пика подобрать.
А что если их адаптивными сделать от timesteps или num_levels?

>Можно для XL проще делать - трансформации Фурье. Результат тоже лучше mse/huber.
Есть код?

>Все волны кроме haar говно
В чем их проблема?
Аноним 18/07/25 Птн 23:44:44 #28 №1282179 
>>1282159
>А что если их
Его, в смысле пик
Аноним 18/07/25 Птн 23:54:50 #29 №1282206 
>>1281964
Кстати твоя реализация отлично работает с дебиаседом. Несколько более когерентные результаты получаются и чуть быстрее тренирует.
Аноним 19/07/25 Суб 04:21:35 #30 №1282334 
Вкратце можно как работает эта частотка с латентами? Латент в сд же говно, не инвариантен к масштабу/поворотам/сдвигам, и канал для формы сильно отличается от цветности и яркости по структуре.
Аноним 19/07/25 Суб 12:23:45 #31 №1282509 
>>1282334
>как работает
прицельно настроенные веса уровней
Аноним 20/07/25 Вск 00:55:25 #32 №1283160 
>>1282159
> Есть код?
Брал отсюда либу - https://github.com/tunakasif/torch-frft
Просто пропускаешь латенты через трансформацию. Там на выходе будет тензор с комплексными числами - амплитуда и фаза. Фазу можно просто выкинуть скастовав к float, без неё немного другой результат. Обычный лосс с комплексными числами не работает, mse будет вот так: torch.mean((pred - target).real ⚹⚹ 2 + (pred - target).imag ⚹⚹ 2)
Если упороться, то можно ещё маску накинуть, центр спектра с шифтом по центру.
> В чем их проблема?
Они усредняют пиксели латента. Всякие номерные типа db4 берут большими блоками пиксели, 4 тут - это в 4 раза больше блок. Ещё и смазывают если волна плавная. У haar просто резкие 2х2 блоки, для мелких деталей лучше всего должно быть.
Аноним 20/07/25 Вск 03:54:03 #33 №1283309 
>>1282509
Латент это не картинка. Особенно в канале "формы".
Аноним 26/07/25 Суб 11:21:56 #34 №1288832 
image.png
Нужен ли warmup при продолжении тренировки?
После использования каких счедулеров лучше не продолжать тренировку?
Аноним 26/07/25 Суб 18:57:37 #35 №1289186 
>>1288832
вармап в принципе излишный страховочный элемент, можно им вообще не пользоваться
Аноним 26/07/25 Суб 20:55:09 #36 №1289346 
>>1289186
Аноны в предыдущих тредах говорили что на начальных этапах шума слишком много чтобы извлечь полезную информацию и это сбивает модель. Ну и после увеличения вармап, у меня вроде как семплы стали более вариативные, но это не точно.
Аноним 26/07/25 Суб 21:38:45 #37 №1289403 
>>1288832
Позволяет оптимайзеру с накоплением (считай все) выйти в режим и не взорваться в начале при прохождении выбивающихся данных. При продолжении достаточно будет короткого, но его наличие крайне желательно.
Аноним 26/07/25 Суб 23:35:30 #38 №1289491 
>>1289346
>Аноны в предыдущих тредах говорили что на начальных этапах шума слишком много чтобы извлечь полезную информацию и это сбивает модель.
Ну я контраргументирую следующим:
1. Адаптивным лосс функциям насрать на взрывы градиентов при инициализации. Huber + SNR неубиваем практически. Вейвлеты рассмотренные выше по треду тоже стабильные на этот случай. L1 просто похуй на взрывы. Единственное что может обосраться от них это L2, не пользуйся л2 да и все.
2. На каком лр гоняешь? Если это не выше 1e-4 то выгода от вармапа сомнительна, т.к. все что ниже 1e-4 считается низкой скоростью и сила обновлений недостаточная чтобы поломать все.
3. Если ты обучаешь на датасете, который доменом уже имеется в модели - вармап тоже не нужен. Условно у тебя модель с бабами, ты берешь фотки бабы - резкой смены домена данных не будет.
4. Ты тренируешь лору а не фуллфт, у тебя нет огромного батча и биг даты чтобы переживать о взрыве знаний при инициализации.
5. Если ты используешь шедулерфри оптимы, то тем более тебе не нужен вармап, т.к. они по сути адаптивны и сами себе сделают вармап где нужно.
6. Если ты используешь CosineAnnealingWarmRestarts или какойнибудь вансайкл тоже вармап нинужон.
Аноним 27/07/25 Вск 01:55:08 #39 №1289563 
>>1288832
>Нужен ли warmup при продолжении тренировки?
Если не сохранил состояния оптимизатора, то нужен.
Прогрев нужен для того чтобы адаптивные оптимизаторы и моментумы накопили статистику. Иначе у тебя первая картинка может получить вес в 10 раз больше чем другие, как пример проблемы.
Этот бред >>1289491 не слушай, не имеет отношения к проблеме.
Разве что 6 имеет смысл, может быть 5.
Аноним 27/07/25 Вск 13:42:01 #40 №1289885 
>>1289403
>>1289491
>>1289563
Спасибо, раз он не наносит вред тогда лучше перестраховаться.
Аноним 28/07/25 Пнд 11:20:26 #41 №1290650 
>>1282206
Я по итогу дропнул wavelet лосс, говно какое-то. Надо дрочить веса, но как бы их не дрочил всё не то. Всегда что-то лучше становится, что-то хуже, а чтоб прям заебись было невозможно подобрать. Перешёл на Фурье, с ним стабильность просто ахуевшая и ничего не надо пердолить, что дало возможность сделать то что раньше ломало картинку - сделал фиксированный шум для каждого пика, а не как в ваниле рандом. С mse от такого пережаривало и почти неюзабельно было, а с FFT тренится заебись и при этом вариативность генераций огромная и стабильно всё. Ещё и на оптимизатор focus перешёл.
Аноним 28/07/25 Пнд 18:45:15 #42 №1291280 
>>1290650
>>1290650
> Перешёл на Фурье, с ним стабильность просто ахуевшая и ничего не надо пердолить, что дало возможность сделать то что раньше ломало картинку - сделал фиксированный шум для каждого пика, а не как в ваниле рандом.
Дай код реализации то
Аноним 28/07/25 Пнд 18:48:41 #43 №1291283 
1688821990249.png
>>1291280
Одна строчка. Либа вверху.
Аноним 28/07/25 Пнд 18:57:21 #44 №1291296 
>>1291283
пиздос опять пердолить трейнутиль
Аноним 28/07/25 Пнд 19:01:22 #45 №1291301 
>>1291283
Так, а насчет
>сделал фиксированный шум для каждого пика, а не как в ваниле рандом
Аноним 28/07/25 Пнд 19:14:22 #46 №1291323 
>>1291283
а def mse_complex код какой?
Аноним 28/07/25 Пнд 19:15:45 #47 №1291324 
1611184967974.png
1660682861281.png
>>1291301
Я при кешировании латентов шум генерю и потом только его использую, без генерации нового, у каждого латента свой фиксированный шум.
>>1291323
Выше писал же.
Аноним 28/07/25 Пнд 19:58:28 #48 №1291402 
>>1291324
>Я при кешировании латентов шум генерю и потом только его использую, без генерации нового, у каждого латента свой фиксированный шум.
а ну то есть если у меня не кешируется ниче, то мне нинужно
Аноним 28/07/25 Пнд 20:11:00 #49 №1291422 
Вопрос по B-LoRA

Как корректно в toml указать таргеты на conv слои?
Если в таргет модулях указывать conv2d, то оно начинает вообще все тренировать практически, независимо от регекса в таргет юнет
В фуловой лоре естественно conv_in и conv_out для таргет юнет нет, и при enable_conv = true и с/без конвин/конваут никакие конволюшены не тренируются.
Если брать базовые блоки в таргет модулях ResnetBlock2DDownsample2D Upsample2D то оно сразу перетренировывает моментально, супер анстейбл кароч
Аноним 28/07/25 Пнд 20:31:07 #50 №1291453 
>>1291324
>Выше писал же.
запустил кароч, а че он такой реактивный, в три раза быстрее считается чем другие
Аноним 28/07/25 Пнд 21:03:03 #51 №1291516 
>>1291453
ну прикольный результат, учитывая еще скорость бешеную
Аноним 28/07/25 Пнд 22:01:08 #52 №1291617 
>>1291402
В ваниле каждую эпоху у тебя разные сиды для одинаковых пиков, но логичнее чтобы одинаковые пики были с одним и тем же шумом. Но проблема в том что оно с mse оверфитится адово, до того как успеваешь что-то натренить лора уже запорота, а FFT фиксит это. Оно станет ещё быстрее трениться и повысится вариативность генераций. Тут где-то был любитель обобщения, ему это в первую очередь надо делать. При претрейне так не делают по очевидной причине - мало эпох и они большие.
>>1291422
Там авторы перебором нашли наиболее важные для тренировки слои. Тренятся только attentions.0 и attentions.1 в up-блоках. Один из них концепт, другой стиль. Вообще не рекомендую, у тебя будет всегда недотрен. Есть смысл только если тебе надо прям жестко отделить стиль и сам стиль довольно простой. Из плюсов оверфита нет, можно и надо тренить до усрачки, смысл б-лоры - это хуяк-хуяк как попало и оно даже норм натренилось. Если ты врубил другие слои, то это уже не б-лора.
Аноним 28/07/25 Пнд 23:52:24 #53 №1291781 
>>1291617
>Там авторы перебором нашли наиболее важные для тренировки слои. Тренятся только attentions.0 и attentions.1 в up-блоках. Один из них концепт, другой стиль.
Да я в курсе что там атеншены, мне нужно просто конвы указать правильно чтоб оно локальные данные изучило для точности т.к. с одними атеншенами прямо видно недостаточность ортоганальных изменений, я уже проверил такой вариант когда конвы врубаются - он рабочий, но конкретно указать конволюшены связанные с аутпут блоками 0.1 и 1.1 я не могу нормально.
>Вообще не рекомендую, у тебя будет всегда недотрен.
Я бы не скозал, зависит от настроек, плюс я офт надрачиваю, оно сохраняет данные основные слоев и юзаю в основном с плюснутым dmd, результат конфетный.
>Если ты врубил другие слои, то это уже не б-лора.
Ну называй как хочешь, разряженная тренировка, мне нужны конвы хоть тресни.
Аноним 29/07/25 Втр 00:11:12 #54 №1291797 
>>1291617

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

пока писал спросил у гпт, оно также сказало, что жестко обучать на фикс нойзе нахуй надо
Аноним 29/07/25 Втр 02:27:47 #55 №1291947 
>>1291797
У тебя генерации из шума. Если тренишь один пик на разных сидах, то модель и учится генерить один и тот же пик на разных сидах. Если так долго тренить, то модель начинает тупо с любых сидов генерить пики из датасета. И делает она не потому что оверфит или ещё что, а именно из-за того что ты научил её из любого шума их генерить. Собственно я это и на практике вижу, фиксированный сид даёт больше разнообразия генераций.
> гпт
Нашёл у кого спрашивать что-то, лол.
Аноним 29/07/25 Втр 11:49:16 #56 №1292123 
>>1291947
> Если тренишь один пик на разных сидах, то модель и учится генерить один и тот же пик на разных сидах.
но модель не учит картинки, она учит признаки на основе текстового описания
>фиксированный сид даёт больше разнообразия генераций.
как оцениваешь разнообразие?
>Нашёл у кого спрашивать что-то, лол.
че за трансформерный шовинизм? он мне код правит и он работает, да и нет смысла не доверять нейросетке в вопросах нейросеток
Аноним 29/07/25 Втр 13:42:07 #57 №1292292 
>>1291947
Кмк, смысл есть и там и там. Сделать шанс или заготовленного шума или случайного и получать профиты без подводных.
>>1292123
> нет смысла не доверять нейросетке в вопросах нейросеток
Они могут просто не понять твой вопрос и притащить случайную ассициацию, или просто взять предложенный тобою же вариант если в вопросе уже заложен ответ. Попросить ллм проанализировать вопрос с разных сторон и дать какую-то инфу о практике и как это может сыграть - хорошая идея, но желательно посвайпать оценивая выдачу. Требовать сделать вывод и дать ответ - плохая.
Аноним 29/07/25 Втр 14:39:07 #58 №1292349 
image.png
>>1292292
>Они могут просто не понять твой вопрос и притащить случайную ассициацию, или просто взять предложенный тобою же вариант если в вопросе уже заложен ответ. Попросить ллм проанализировать вопрос с разных сторон и дать какую-то инфу о практике и как это может сыграть - хорошая идея, но желательно посвайпать оценивая выдачу. Требовать сделать вывод и дать ответ - плохая.
Аноним 29/07/25 Втр 17:15:51 #59 №1292563 
>>1292123
> че за трансформерный шовинизм?
Скорее гопотный. Жпт очень тупая, если это не о-модели.
> нет смысла не доверять нейросетке в вопросах нейросеток
Нейросетки обычно гонят банальщину, выдают самый попсовый вариант ответа.
Аноним 30/07/25 Срд 01:52:15 #60 №1293353 
Bump
Аноним 31/07/25 Чтв 10:03:13 #61 №1294449 
1753945391652.jpg
Спустя полгода дрочки я понял структуру сдхл наканецта, что основные концепты датасета (форма, цвет, объекты, особенные особенности) пиздятся напрямую в ffnet и proj слои, причем в основном в конечные инпут блоки и мидл блок. При этом ффнет просто запоминает все подчистую (и по факту обладает наибольшей выразительностью), а не обобщает, являясь очень мощным фильтром, который способен любой вывод атеншенов перекроить, т.к. независим. А прожекшен слои это входы выходы для атеншенов, которые имеют более высокий приоритет над данными самих атеншенов, как бы рамки для атеншена, а атеншен это само наполнение рамок. Гдето в атеншенах еще нормы сидят, но я их не обучал для теста практически, не могу сказать фактическое влияние.

То есть логика сдхл такая: атеншен строит суть картиночки, прожекшен конструирует финальную структуру, которая пропускается через MLP ffnet, который независимо обмазывает уникальными независимыми параметрами, полученными из датасета внимание ПОЛНОСТЬЮ ВНЕ КОНТЕКСТА. То есть вся проблема переобучения строится на том что в ффнет подается слишком сильная дата, которая его ломает - отключи вест ффнет и модель/лору невозможно убить никаким конским лр. Алсо все лоры убыстрялки и модели дистилляты из которых их экстрагировали содержат переобученный, но нормализованный для конкретного семплера ффнет за счет которого и идёт выигрыш в скорости.

При этом все атеншены очень стабильные и осторожные, напичканные селфчекингом, поэтому невероятно трудно переобучить/дообучить конкретно их (как в блоре, где одни атеншены).

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

Надеюсь кому-то поможет данная инфа, основанная на рисерче из овер 300 моделек.
Аноним 31/07/25 Чтв 10:53:43 #62 №1294476 
>>1294449
Какая-то каша у тебя в башке. Фид-форварды нужны для нелинейности трансформера, т.к. трансформер только трансформирует данные, в трансформере даже активаций нет.
> в ффнет подается слишком сильная дата, которая его ломает
Во всех тренерах, в том числе у кохи, по умолчанию фф не тренится. Только если ты специально выбираешь тренить вообще все линейные, по умолчанию тренятся линейные в трансформерах (to_q, to_v, to_k, proj). А поломка почти всегда происходит в первых слоях, именно первые слои очень чувствительны к тренировке и легко превращают всё в кашу. Естественно у тебя средние слои менее чувствительны к кривой тренировке, ведь там уже нет пиксельных данных латента.
> для корректного обучения требуется обучать самый большой блок инпута
Для корректного обучения надо просто правильно обучать, ничего там не ломается при обучении фф/конволюшенов, если сделал всё правильно. Все попытки задушить тренировку отрубанием слоёв/обрезкой градиентов/душением лосса по snr и прочим весам - это лечение симптомов и проблема где-то в другом месте.
Аноним 31/07/25 Чтв 11:08:21 #63 №1294488 
>>1294476
> Какая-то каша у тебя в башке.
Я бы поотвечал на каждый пункт, но ты невоспитанный и категоричный, чувства такта нет, да и пост написан в ультимативной форме (я понимаю что тебе очень нужно чувствовать себя экспертом на анонимном форуме, но впредь держи себя в руках, мне лично твои "ря ты криворучка, просто дыши пук пук хрюк" неинтересны), я по таким правилам не буду играть. Добра, щастья, здоровья.
Аноним 01/08/25 Птн 01:13:51 #64 №1295330 
Двачую >>1294476 а ты >>1294488 слишком болезненно реагируешь на замечание по сути.
> невоспитанный и категоричный, чувства такта нет, да и пост написан в ультимативной форме (я понимаю что тебе очень нужно чувствовать себя экспертом на анонимном форуме
Вот этот пост >>1294449 много постулатов, никакой конкретики и примеров.
Аноним 01/08/25 Птн 06:39:57 #65 №1295419 
>>1294476
>Фид-форварды нужны для нелинейности трансформера, т.к. трансформер только трансформирует данные, в трансформере даже активаций нет.
Нелинейность и в софтмаксе атеншена есть. Ну и чет с "Фид-форварды нужны для нелинейности" орнул. Типа, по твоему они нужны ТОЛЬКО для нелинейности?
>Во всех тренерах, в том числе у кохи, по умолчанию фф не тренится.
Пиздабол. ff_net адаптеры присутствуют для всех млпшек, в дефолтной лоре.
>Для корректного обучения надо просто правильно обучать, ничего там не ломается при обучении фф/конволюшенов, если сделал всё правильно.
И по классике ты нам конечно не расскажешь как правильно. Просто пук в воздух.


Так что реакция вполне оправдана.
>>1294449
Впрочем, какие-то осмысленные выводы из изначального поста я не могу сделать. Настройку лр по слоям обычно просто так не делают, те же проекции атеншена частично впитывают в себя инфу вместе с ff, которая выбьется только другим устойчивым сигналом и переполнением емкости. Нахуя просто понижать лр для ff? То есть хочешь сказать, что нам надо усиленно тренить атеншн? Опять же, даже если мы треним только атеншн, проекции спокойно навпитают инфу как и ff. У меня одна из самых популярных лор одноранговая, на стиль, вполне хватает. Работает нормально.
Про переобучение спорно, какого-то конкретного пайплайна и сравнений нет. Кароч, очень интересно но нихуя не понятно.
Аноним 01/08/25 Птн 22:35:27 #66 №1295929 
>>1295419
>Настройку лр по слоям обычно просто так не делают,
layer-wise LR decay делают в больших тренировках большие вумные дяди обычно, лораёбы не заморачиваются конечно такой хуйней

>те же проекции атеншена частично впитывают в себя инфу вместе с ff, которая выбьется только другим устойчивым сигналом и переполнением емкости. Нахуя просто понижать лр для ff?

Ffnet это независимый фильтр и часть MLP, если ты полностью тренишь, то впитают, если не полностью то впитает только прожекшен.

Мой тезис был в том, что так как ффнет независимая часть сети и равномерно распределен во всех блоках, которые имеют разную емкость, то в каких-то его частях неизбежно так скажем бутылочное горлышко для фф из-за малого батча, малой даты, накопления градиентов от однотипных паттернов и гиперов оптимайзера (например стандартная бета для ффнет скорее деструктивна на микробатче и малой дате, т.к. ффнет запоминает паттерны даты без обобщения, а бета накапливает моментум - то есть на деле моментум приводит к накоплению старых градиентов, которые могут сохранять переобученные шаблоны ffnet, особенно при малом батче и нестабильной дате, что замедляет адаптацию к новым градиентам и форсирует запоминает мусорных паттернов в ффнет, которому поебать что запоминать;

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

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

Из этой ситуации можно выйти двумя путями - тренировать фф (и прожекшен) отдельно с другим лр, чем все остальное, или тренировать все сразу на нормальной скорости но с низким моментумом или вообще без моментума, целясь только в эффективные блоки.

Помимо этого надо учитывать, что ранние и поздние блоки сдхл не настолько важны для инъекции новой даты, они больше функциональные для полноценной модели, где первые инпут блоки занимаются понижением "разрешения" вычленяя признаки, а с середины аутпут блоков происходит незначительная относительно всего пайплайна инференса доводка картинки перед декодингом, соответственно внедрение узкой малой даты на протяжении всех блоков это скорее негативный эффект и призыв переобучения, т.к. ранние блоки это низкоуровневые признаки edge-level/shape (а мы работаем на основе модели, которая уже прекрасно умеет строить представления такого плана на основе массивной даты на которой ее обучали), а поздние для доработки структуры и цветовой координации (что также базовая модель и так умеет). Не вижу никакого фактического смысла перекраивать ранние и поздние блоки с помощью минимальных датасетов (менее 10к картиночек), поэтому внедрение узкой даты в эти блоки вредное действие и нужно действовать от принципа не навреди: да, блоки важны при генах, но не дают существенного прироста качества при их дообучении на малой дате из-за переобучения и затопления признаков. Проверяется элементарно - изолируй и тренируй только ранние или поздние блоки - выйдет какая-то хуита без задач (можешь не пробовать, я пробовал).

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

>То есть хочешь сказать, что нам надо усиленно тренить атеншн?
Нет, не хочу сказать.

>Опять же, даже если мы треним только атеншн, проекции спокойно навпитают инфу как и ff.
Только проекция и впитает, если только атеншен. Но носитель именно новых данных из датасета это ффнет, а не атеншен.

> У меня одна из самых популярных лор одноранговая, на стиль, вполне хватает. Работает нормально.
Тут вопрос не в том что хватает и с чем можно смириться и какой у тебя юзкейс (может ты просто форсируешь генерацию по референсу), а в самой логике тонкой эффективной донастройки модели на малой дате и малом батче при использовании консумерских карт.

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

То есть направляя тренировку в нужные эффективные элементы (предположим стандартные output_blocks 0 1, output_blocks 1 1, и input_blocks 8 1) ты можешь на наиболее популярной карте типа 3060 12 гигов все эти три блока разом полноценно засунуть в 12 гигов в 1024 разрешении на 1 батче и на выходе получить максимально нативную тренировку высокого качества, там модель получается в районе 2 гигов и просчет одной итерации в 5 секунд при этом на нормальном современном оптимайзере с FFT лоссом который выше обсуждали, это ниже чем даже дефолтная лора с ее 8 секундами, т.к. нет дополнительных преобразований. А на 16 гигах уже и мидл блок вприкуску влезет и чтонибудь еще (допустим можно в шахматном порядке по всем блокам выбрать эффективные слои оставшиеся), а это считай одномоментный полноценный файнтюн практически целой модели (2 гига от трех инпут/аутпут и 800 метров от мидла), но не нужно пердеть на зануленом fp8 или ухищряться с баквардпассами на адафакторе или восьмибитном кале. Если тренировать любой тип лор с конкретными блоками, то там еще плюсом меньший размер будет, помимо увеличенной скорости просчета, но минус в том что влияние лоры на модель не полноценное и все равно надо будет туда-сюда крутить силу как обычно, но лора это в любом случае компромисс. Сплошные плюсы в общем.

Уточню, что я не выступаю против полноблоковой тренировки, если она делает то что требуется, но меня всегда дико бесила все эти танцы с бубном чтобы выдрочить гиперы, выдрочить датасет, выдрочить соотношения чтобы не бох лора не сделала рухнум. Я кароч за принцип "если позволяет - упрощай".
Аноним 05/08/25 Втр 07:39:38 #67 №1299804 
Случайно придумал самый шизовый вариант инициализации лоры. Вкидываю чисто чтобы не забыть и уйти спать, может кому не лень будет протестить.
Кароч надо взять какую-нибудь другую модель и слить с нее экстракт.
Далее примерно логика как в >>1196940 →
Добавляем экстракт к исходной (той, которую хотим обучить) модели. Из наэкстракченой модели вычитаем исходную. Из исходной вычитаем наэкстракченую и это новая "исходная" модель.
В лору подсасываем чистый слитый экстракт. Объединение этих двух вещей должно давать исходную модель, но только в качестве инициализации лоры у нас экстракт другой, вот такой прикол.
Только надо не забыть сделать исправление из гайда, иначе все сломается. Для надо после получения экстракта закинуть его обучаться как лору на 1 шаг на минимальном лр и сохранить.
Ну и наверное есть смысл за инициализацию брать не полный экстракт, а разностный, может как-нибудь еще намешать их.

Если я нигде не обосрался с математикой, может получиться интересный эффект в виде мягкого пересаживания biasов с одной модели на другую в процессе просто обучения лоры на вообще другой задаче. По моей логике это может дать толчок лоре пойти по тому же пути по какому шла другая модель.
Важно, повторюсь, здесь именно обучается полноценная исходная модель которая как бы никак не модифицирована, но она разрезана на лору не по SVD как в том методе, а как бы плоскостью другой модели.
Аноним 07/08/25 Чтв 09:31:36 #68 №1302830 
Аноны, как персонажа вырезать на прозрачность? Перепробовал все доступные через интерфейс A1111 расширения для уберания бэкграунда - говно какое-то. У персонажа либо остаются арефакты во всех местах, либо края силуэта прозрачные.

Специально делаю генерацию на белом однородном фоне, размер под 2к. Даже с этим не справляются "вырезалки" эти.

Посоветуйте как быть. Нужно обработать огромное количество изображений.
Аноним 07/08/25 Чтв 14:17:38 #69 №1303296 
>>1302830
> A1111
Чел...
Аноним 07/08/25 Чтв 21:35:57 #70 №1304571 
>>1303296
Что чел? Под него штук 7 плагинов только для этой задачи написано. И они что на авто работают, что на форджах.
Лапша же ничего принципиально нового тут не предложит, больше чем уверен.

>>1302830
Если нужно идеально - только руками вырезать.
Ни одна модель не даст 100% точности в 100% случаев, косяки будут даже с белым фоном. Косяки будут всегда.
Можешь найти что-то более-менее точное, если повезет. Цивит покопать попробуй.
Аноним 07/08/25 Чтв 21:53:24 #71 №1304660 
>>1304571
Ничего не нашел толкового чел. Потому и спрашиваю. А ещё, потому что есть СЕРВИСЫ, которые вырезают идеально, но они конечно платные, там на поток процесс не поставить. Просто существование этих сервисов как бы говорит что где-то существует хороший варианты. Я больше чем уверен что все эти "сервисы" это просто аферисты, которые с гитхаба репы понабрали и продают воздух, ни каких своих закрытых разработок у них нет. Вот потому и спрашиваю в треде. Где-то есть хорошая вырезалка, просто её надо найти.
Аноним 07/08/25 Чтв 22:17:52 #72 №1304753 
1711028877247.png
1638154254358.png
1748846213763.png
1668223910040.png
>>1304571
> Лапша же ничего принципиально нового тут не предложит, больше чем уверен.
Тем не менее в лапше я могу вырезать фон нормально. На реалистике ещё проще.
Аноним 07/08/25 Чтв 22:41:18 #73 №1304852 
17545942734840.png
17545942735312.png
>>1304753
Аниме пики с обводкой никогда не были проблемой.
Плохо получается именно реалистичных персонажей вырезать.

У тебя на третьем пике 3д генерация, выглядит неплохо. Но при ближайшем рассмотрении есть много мест с белой короной и в спорных местах, например где волосы, появляется такой кисель из прозрачности. В этом плане А1111 даже лучше делает. Но это всё равно не подходит, таким вырезаниям нужна пост обработка всё равно. Сервисы же, например китайский 佐糖 таких косяков не делают.
Аноним 07/08/25 Чтв 23:18:46 #74 №1305002 
1688541309397.png
1692154675380.png
>>1304852
Ну хуй знает. Ебись тогда сам.
Аноним 08/08/25 Птн 00:11:52 #75 №1305129 
>>1305002
Не плохо, но я как набивший шишки сразу чую подвох. Такой результат надо на "шахматном фоне" смотреть, по моему горькому опыту многие модели просто делают края вырезаемого объекта немного прозрачными, это может выглядеть как идеальное вырезание, но по факту ты такой вырезанный объект на другой фон не поставишь, у него вся окантовка будет как у привидения.
Чем ты это вырезал, дай посмотрю, напиши плз адрес репы или модели или другую инфу чтобы я нашел.
Аноним 08/08/25 Птн 05:32:55 #76 №1305493 
>>1304753
>нормально
Нет.
Как я и говорил, куча косяков на всех картинках.
Аноним 08/08/25 Птн 07:04:56 #77 №1305516 
>>1302830
>>1304660
https://huggingface.co/spaces/jixin0101/ObjectClear
https://huggingface.co/spaces/briaai/BRIA-RMBG-2.0

А вообще знаешь что такое проблема XY? Самое главное забыл - сказать нахуя тебе это вообще надо и какую проблему ты собрался решать генерацией огромного количества изображений которые тебе надо вырезать? Ну и вопрос качества которое тебя устроит.
Аноним 08/08/25 Птн 08:29:17 #78 №1305569 
image
image
>>1305516
Чёт второе как-то слишком говно, а первое не завелось. Его как комфи ноду можно юзать?

>>1305002
А вот у тебя выглядит любопытно, чем чистил?
Аноним 08/08/25 Птн 18:57:36 #79 №1306739 
1605042375402.png
1719310315646.png
Wan тут кто-нибудь тюнит? Как с говном пикрил бороться? На первом пике XL, приемлемо выглядит. А на втором Wan, обратный проход в 6 раз дольше форварда. Хуйня с copy - это переключение на вторую карту, но хули в форварде обе карты одинаково отрабатывают, а на обратном одну с одинарными блоками растягивает как шлюху? Что за забор блядский? Заебался уже, не хочу тренить по 3 часа 1000 шагов.
Аноним 08/08/25 Птн 19:05:49 #80 №1306775 
1650248706156.png
>>1305569
BiRefNet хотя бы возьми, а то у тебя совсем плохо.
Аноним 08/08/25 Птн 21:05:17 #81 №1307042 
В репо козистра https://github.com/kozistr/pytorch_optimizer/tree/main загружено семейство Emo оптимайзеров. Фишка в том что компутит доп скаляр исходя из лооса, т.е. получает усреднённое значение лосса (ema) (затем превращает это в скаляр), по которому вычисляется коэффициент влияния. Кароче бля параметры плавно тянутся к прошлым значениям, если loss подсказывает, что надо откатиться.

Для лор еще терпимо, а если фул матрицы тренить то там EmoNavi оригинальный с селективными блоками x2 врама жрет, EmaFact (емо + адафактор) +50%. Так что имейте в виду.
Аноним 08/08/25 Птн 21:34:12 #82 №1307165 
1690417243717.png
>>1307042
Опять душат удава.
> если loss подсказывает, что надо откатиться
Это вообще неблагодарное дело ориентироваться на лосс в генерации картиночек в разрезе соседних значений. Какой-то референс лучше, какой-то хуже - лосс скачет как ебанутый и это норма. Пикрил литералли всегда на Хроме, просто рандомный шум, при этом тренится заебись.
> x2 врама жрет
Лучше бы делали чтоб меньше жрало без диких просеров как у 8-битных bnb. И так DiT приходится частично в q8 квантовать чтоб не сосать даже с 48 гигами врам.
Аноним 09/08/25 Суб 00:39:32 #83 №1307474 
Стикер
Аноны, обнаружил тут ВНЕЗАПНО, что у репозитория A1111 уже как год не было обновлений. Он что ВСЁ? Заброшен? Сдох?

Дело в том, что в А1111 меня всё устраивает, всё работает, плюс привычка, не один год в нем ковыряюсь, плагины настройки всё под себя идеально подстроил и привык.

Поверхностный гуглинг показал что сейчас модно КомфиУИ использовать, на втором месте Фордж, который говорят как раз для тех кто к А1111 привык.

В сявзи с этим вопросики.
1) Расширения для А1111 не встанут на этот ваш Фордж? Пологаю что разумеется не встанут, просто хочу уточнить.

2) В Форже другой синтаксис промптов, отличный от А1111? Т.е. все эти BREAK и [(shit:1.3)::0.7] там не работают?
Аноним 09/08/25 Суб 00:57:38 #84 №1307504 
65464.png
>>1305569
>>1306775
>>1305516
Второе, как написано, основано как раз на BiRefNet. Оригинальный BiRefNet - это пожалуй самый лучший вариант из всех что я перепробовал. Наверное лучше ничего не придумали.

Кстати этот BRIA-RMBG-2.0 делает вот такую шляпу, про которую я писал ранее. Он Может в некоторых случаях половину обьекта прозрачным сделать. Оригинальный BiRefNet в этом плане даже лучше.
Аноним 09/08/25 Суб 01:26:59 #85 №1307549 
>>1307474
>Он что ВСЁ? Заброшен? Сдох?
Ну автоматик перестал кодить в принципе. Или работка или выгорел, это ж все на энтузиазме для портфолио сделано.

>Дело в том, что в А1111 меня всё устраивает, всё работает, плюс привычка, не один год в нем ковыряюсь, плагины настройки всё под себя идеально подстроил и привык.
Ну плохая привычка на самом деле, время выходить из зоны комфорта.

>Поверхностный гуглинг показал что сейчас модно КомфиУИ использовать, на втором месте Фордж, который говорят как раз для тех кто к А1111 привык.
Не модно, а уже года джва является самой мощной и обновляемой средой для любых видов нейрокалов + парк расширялок монструзный. Буквально если что-то новое выходит (ну вон ван 2.2 например), то через пару часов оно уже поддерживается.
Фордж это говнина от ильясвила, который факас, контролнеты и прочее пилил, фордж тоже заброшен. Не заброшены форки форджа, типа рефорджа https://github.com/Panchovix/stable-diffusion-webui-reForge

>1) Расширения для А1111 не встанут на этот ваш Фордж? Пологаю что разумеется не встанут, просто хочу уточнить.
Рандом. У форджа в принципе свои нерешаемые баги были насколько я помню, ну и они в форки перекатились. Какие-то расширения встанут, какие-то нет.

>2) В Форже другой синтаксис промптов, отличный от А1111? Т.е. все эти BREAK и [(shit:1.3)::0.7] там не работают?
Фордж это форк каломатика, так что скорее всего работает это говно плацебное.
Аноним 09/08/25 Суб 01:44:56 #86 №1307567 
>>1307549
Спасибо за пояснение, анон.

>плацебное
Чому плацебное ? Можно в реальном времени менять весь промпта (shit:1.2) и прямо наблюдать как результат меняется на такую же фракцию процента. По-моему очень удобно, не может быть чтобы в современной КомфиУИ чего-то подобного не было.

>время выходить из зоны комфорта.
Для меня очень важно чтобы старые промпты можно было как-то повторить, я часто возвращаюсь к тому что делал год назад, например. Если синтаксис другой то понятное дело что повторить результат будет сложно. Может есть какой-нибудь плагин для КомфиУИ который позволяет использовать синтаксис промптов из Авто1111?
Аноним 09/08/25 Суб 06:11:38 #87 №1307690 
без лоры.jpg
2025-08-0113-28-11-save-3600-50-00007.jpg
2025-07-2317-01-08-save-24000003.jpg
>>1272560 (OP)
Как делать разбор полетов после тренировки? Про то что андерфит это когда результат слабо виден, а оверфит это когда лора воспроизводит датасет и не слушается промпта, я знаю. Но есть и другие ситуации когда лора берет знания из модели вместо датасета, когда низкий лр делает оверфит и пр. Хочу про это прочитать, чтобы хоть немного сориентироваться че за хуйня у меня происходит. Как извлекать информацию из результатов?
Месяцами тренирую разные стили в сд1.5, у меня шизу генерирует на при любом ЛР/количестве шагов. 2 и 3 пик разные попытки, но результат тот же.
Аноним 09/08/25 Суб 06:53:08 #88 №1307709 
>>1307567
>Можно в реальном времени менять весь промпта (shit:1.2)
обычный вейтинг токенов в комфе есть, я про брейки которые типа разъединяют кондишены и вот это [(shit:1.3)::0.7] которе я даже не помню че делает, а еще есть типа морфинг когда на лету в таймстеп инъекция другого токена происходит. Это кароче все полумеры и иллюзия управления. Вот допустим тебе два кондишена по 75 токенов надо - берешь две ноды для разных кондишенов в комфе в нужной конфигурации их смешивания и делаешь как задумано в сдхл изначально, а не костылем который придумали из-за UI вида "все в одном окне".
Но если тебе прям нужно дрочить синтаксис каломатика, то есть ноды для текста, которые поддерживают этот синтаксис.
>Для меня очень важно чтобы старые промпты можно было как-то повторить, я часто возвращаюсь к тому что делал год назад, например.
>Если синтаксис другой то понятное дело что повторить результат будет сложно.
Так у тя еще проблема в том откуда инишл нойз берется для генерации. То есть чтобы повторить ЗАЧЕМ, это же нейрослоп, всегда можно сделать лучше то что ты делал на каломатике тебе надо соблюсти неочевидные команды в поле промта (скачать ноды которые поддерживают такое) + ноды умеющие управлять инишл нойзом чтобы брался нойз с гпу, потому что в каломатике берется с гпу, а не с цпу, а это нестандартное решение, по классике должно быть с цпу т.к. это более унифицированнее (даже в том контексте что не у всех нвидия, некоторые дрочатся на линухе с амдкалом, а так свой инишл с гпу идет).
> Может есть какой-нибудь плагин для КомфиУИ который позволяет использовать синтаксис промптов из Авто1111?
Конечно, есть ноды под такое. Но лучше не пытайся создавать костыли заново.
Аноним 09/08/25 Суб 07:03:40 #89 №1307711 
image.png
>>1307690
Еще вопрос, могут ли эти косяки быть из-за того что я в этой менюшке я выбрал fp16 но в остальных всех fp32 хотя моя видеокарта не поддерживает half-preccision (gtx1660)?
Аноним 09/08/25 Суб 08:18:58 #90 №1307739 
>>1307709
Бле, я думал за шум отвечает только сэмплер, что это такой типовой алгоритм, который имея идентичную модель и все прочие настройки сможет воспроизвести тот же результат по промпту.
Но это как-то странно. На сивиай же например в инфе по генерации не пишут на каком она софте сделана, а повторить всегда получается, не 1 к 1, но очень близко обычно.
Аноним 09/08/25 Суб 08:57:14 #91 №1307749 
Desktop 2025.08.09 - 08.15.03.02H.264.mp4
32bit нихуя не изменилось.
Нормально ли подобное (видео рил) ухудшение в начале разогрева?
Lion Cosine
U-net LR 0.0001
Text encoder LR 0.00005
Warmup steps 731.0
Repetition per epoc 1
Batch 1
Epoc 50
Датасет 70 пикч
Lora rank 64
Lora Alpha 1
Все остальное дефолтное.
Аноним 09/08/25 Суб 09:18:48 #92 №1307757 
>>1307690
> Как делать разбор полетов после тренировки?
Э ну чтобы мучительно не надеяться на удачу и заниматьс разборами выходного продукта надо разобраться как работает модель (сам процесс генеративный) и гиперпараметров тренировки.

>Про то что андерфит это когда результат слабо виден, а оверфит это когда лора воспроизводит датасет и не слушается промпта, я знаю. Но есть и другие ситуации когда лора берет знания из модели вместо датасета, когда низкий лр делает оверфит и пр.
Ну вот ты видишь симптоматику, а что вызывает ее ты не знаешь. Не знаю насколько тебе поможет, но если кратко рассматривать проблему то не в лр дело а в том что ты тренируешь.
Предполагаю что ты тренируешь просто целую лору, которая охватывает все слои и все блоки. Так вот материнская модель состоит из трех частей - инпут блоки распиздячивающие картиночку, ботлнек мидл блок с общей инфой для приведения к единому знаменателю, и аутпут блок для сбора картиночки обратно, это происходит строго последовательно, блок за блоком и слой за слоем.
В каждом блоке содержатся компоненты:
1. Конволюшн блоки, которые содержат инфу о локальных данных. Они очень чувствительные к шуму и начальным данным и собственно изза них рекомендуется делать вармап в качестве страховки. При этом конволюшны не однородны в своих возможностях: конвы в мидл блоки устойчивые к любым данным, конвы в поздних аутпут слоях тоже, т.к. содержат стабильные конечные сборочные детали. Но конволюшны в позднем инпут блоке (кондесация в низкое разрешение), в первых четырех группах слоев инпута (низкоуровневые контуры) и первые два блока аутпута (крупные пространственные признаки, глобал текстуры и цвет) очень нежные и если в них подается кривой сигнал говна, то пизда твоей модельке прямо с первого шага, конволюшн будет накапливать неверные признаки.
2. Линейные слои - практически полностю то из чего состоит модель, представляет из себя атеншн слои и частично MLP. Все линейные слои стабильные и практически не переобучаемые.
3. Feed forward слои, идут после атеншенов и являются носителями новых данных, которые не обобщены. Представь, что это фильтр для собираемой картинки, который обмазывает выходной сигнал во что-то независимо от контекста. Если конволюшны носители локальных данных, то фф носитель уникальных признаков.

Помимо этого есть слои текстового енкодера, которые занимается связкой текстового описания и признаков из слоев. Текстэенкодер в принципе независим, и достаточно простой в тюнинге и требует небольшой лр относительно основных весов сети, но не всегда. Тренировка текстэенкодера буквально бустит понимание твоего датасета и гибкость модели. В текстовом енкодере опять же последовательно обрабатывающиеся слои от общих признаков до локальных узкий концептов (условно от woman до small green dog in forest smiling like a whore). Трен текст енкодера напрямую управляет управляемостью модели конечной, так что тут ситуация как с конволюшнами - если ты лезешь обучать поздние блоки с жестким нефильтруемым потоком данных, то пизда твоему текстэенкодеру.

Поэтому что? Поэтому тебе нужно изучить регекспы для toml конфигов тренировки чтобы делать изолированную тренировку эффективных слоев, если ты хочешь стабильный результат, а не сейфовую выдрочку полномодульной лоры на низком лр, которая может десятки тыщ шагов тренироваться до приемлемого результата. В любом другом случае когда ты просто выбрал "а тренируй мне вот этот алгоритм на этом датасете спасибо пока" в лучшем случае сделает тебе генератор картиночек по типу тех что в датасете, никакой глубокой донастройки сети получить скорее всего не выйдет. Плюс учитывай что у тебя консумерский тренинг на нищем батче 1 и с маленьким датасетом (все что ниже 10к картинок считается как маленький датасет), то есть к вышелписанным ограничениям сети и нежности ее некоторых частей прибавляется бутылочное горло в виде не разряженного батча и малой даты в датасете, что бустит оверфит само по себе, если ты тренируешь полноблоковую модель.

Второй важный подводный камень это оптимайзер, они разделены по семействам и имеют разные так скажем возможности и скорость до нахождения решения. Основной параметр оптимайзера это моментум, он управляет памятью о предыдущих градиентах (бета1) и реакцией на новые градиенты (бета2). Есть разные оптимы, где есть один моментум, пять моментов, вообще без моментов, но в основном оптим имеет два моментума. Соответственно если у тебя хуевый сигнал говна, то чем больше память моментумов тем хуевее твоей сети будет что конкретно отражается на управляемости финальной моделью. Чтобы понять принцип работы моментума можешь взять сгд с нестеров моментумом или amos с одной бетой и покрутить туда сюда. Алсо чем ниже моментум, тем быстрее сходимость до цели но при этом побольше нестабильность т.к. моментумы в целом предназначены для сглаживания неоднородной даты на больших батчах.
Вообще оптимов самых разных великое множество, протестировать все у тебя жизни не хватит, поэтому можно выбирать с помощью синтетических тестов например отсюда https://github.com/kozistr/pytorch_optimizer/blob/main/docs/visualization.md , растригин функция особо не нужна, она показывает залипание на гипотетических локал минимумах, для задач тренировки визуальных паттернов лучше смотреть на росенброк функцию, т.к. она напрямую показывает насколько оптимизатор силен в достижении особо уникальных паттернов в кривом косом прострастве признаков и насколько он делает это быстро и стабильно. Еще сюда можно совет впихнуть что если ты новичок и не хочешь ебаться с подбором лр под оптим, то бери адаптивные оптимайзеры, или шедулер фри. Но адаптивки обычно имеют более долгое достижение результата, т.к. ради сейфовоц адаптивности жертвуют скоростью.

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

Четвертвый момент это сама функция лосса. По дефолту у тебя доступны l1, l2 и huber. L1 очень медленный но стабильный, отсекает все критические ошибки. L2 быстрый но неустойчивый к ошибкам вообше, особенно на высоких скоростях и низких моментумах. Huber гибрид из двух предыдущих с удобной фильтрацией по SNR (что важно при малом батче и малом датасете), на практике является наиболее френдли лоссом к малым датасетам и быстрым скоростям из доступных изкаропки. Лоссов тоже очень много разных, все они впердоливаютя вручную, вон в этом треде вейвлет лосс и ффт лосс дрочили, я на ффт сижу теперь, батя грит малаца.


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

>Как извлекать информацию из результатов?
Имеешь в виду как понять что модель не говно? Ну есть небольшой лайфхак это использовать вместе с лорой дистиллят лору dmd2 под LCM 1CFG, она очень хорошо правит все огрехи тренировки, даже если лора полностью убита к хуям будет пытаться дать нормальный когерентный результат и показывает визуально куда упор при тренировке был сделан и надо ли пониже лр, есть ли оверфит на локальные признаки, насколько следует промту и тд и тп.
Сюда же хайпер лора, лайтнинг, турбо, пцм, тцд, но мощнее всех дмд конечно, эталонная дистилляция.

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

Но минус есть конечно - при 1 цфг у тебя не работают негативы и обобщение при генерации максимальное, поэтому сильно промт не имеет смысл расписывать вообще, буквально gay sex best quality пишешь и готовый результат оцениваешь.
Аноним 09/08/25 Суб 09:18:49 #93 №1307758 
>>1307749
> 32bit нихуя не изменилось.
И не должно. На 32 бита стоит уходить только если NaN лезут, но bf16 для этого предпочтительнее.
> Нормально ли подобное (видео рил) ухудшение в начале разогрева?
Не очень. Первые 200-300 шагов можно простить, но дальше должно нормально идти.
> Lora Alpha 1
Хуй знает как у тебя там альфа работает, попробуй сделать её как rank. При инференсе альфа берётся из лоры или если в лоре её нет - ставится как rank. Может у тебя она некорректно отрабатывает. Она у всех по разному работает - у кохи одно поведение, у ликориса другое, в peft третье. И на пики валидации сильно не ориентируйся, для начала протести финальную лору, может в валидации насрано.
Аноним 09/08/25 Суб 09:31:49 #94 №1307763 
>>1307711
> Еще вопрос, могут ли эти косяки быть из-за того что я в этой менюшке я выбрал fp16 но в остальных всех fp32 хотя моя видеокарта не поддерживает half-preccision (gtx1660)?
Нет, точность это про другое. Можно эффективно тренировать ирю на фп8 и на q4, да даже на q1. Фп32 нинужно, это для карт и больших дядь с бизнес грейд датацентрами для тренировки, там есть фп32 и соответственно точность выше нужна тем кому нужна. Если у тебя 1660 то у тебя выбора особо нет, только фп16. А так в идеале если 3000 серия и выше то бф16 надо, оно стабильнее и в целом лучше фп16.
Аноним 09/08/25 Суб 09:43:42 #95 №1307771 
>>1307749
> Нормально ли подобное (видео рил) ухудшение в начале разогрева?
Ту мач агрессив. У тебя верхнепороговая скорость 1е-4 стоит, оптим хз какой, лосс хз какой, от нуля до 1е-4 при 1 к 64 соотношение добавляемой даты исходя из альфы и дименшена (0,015625 per step) на стадии вармапа это очень жесткие изменения. Снижай лр и показывай полный конфиг тренировки.

Еще стоит козин в качестве шедулера, а у него кстати прикол есть что дефолтный без аргументов практически не снижается во времени (тензор борд открой посмотри на график), типа за 1к эпох он от условных 1е-4 упадет до 3.9е-5, что фактически не снижает ебку скоростью. Так что если тебе надо нормальный козин под конкретное количество шагов эпох то бери из библиотеки торча с аргументами настраиваемыми козины ихние.
Аноним 09/08/25 Суб 09:46:20 #96 №1307773 
>>1307771
> условных 1е-4 упадет до 3.9е-5
"3." лишнее
Аноним 09/08/25 Суб 09:49:58 #97 №1307775 
>>1307771
>оптим хз
А все увидел лион. Промежуток между 1е-5 - 5е-5 на нем вроде достаточно сейфово и без тупняка, но от лосса ещё зависит
Аноним 09/08/25 Суб 09:51:14 #98 №1307778 
>>1307474
>1) Расширения для А1111 не встанут на этот ваш Фордж?
В большинстве - встанут.

>2) В Форже другой синтаксис промптов, отличный от А1111?
Тот же самый.
Аноним 09/08/25 Суб 09:54:36 #99 №1307780 
>>1307504
>вот такую шляпу
Пишешь экшн для фотошопа, который дублирует базовый слой и сливает их между собой, и так несколько раз, потом сохраняет и закрывает файл.
Прогоняешь им всю папку с картинками.

Но, очевидно, что косяки на краях после такого вылезут во всей красе.
Аноним 09/08/25 Суб 12:16:22 #100 №1307881 
image.png
pythongFnrsGwyZL.jpg
pythonIxuXkNjrT3.jpg
pythonHJ4ihNeed2.jpg
>>1307757
Проблема проверок всех этих параметров это сколько ждать нужно. 3600 шагов занимает 6 часов.
Хорошо сейчас понял что простой промпт (1girl, solo) за ~20 мин (3 эпока) разоблачает косяки.

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

Мне кажется тут много того что ты написал что понадобится уже на более тонких вещах. Если у меня неправильно выставлена температура мне кажется трогать бета1 или 2 будет только сильнее запутывать. Т.е. если если вместо сломанных правых рук станут сломанные левые, то я вряд-ли это замечу. Если я не смогу хотя бы немного исправить текущий пиздец с экспериментируя 1-3 параметрами, то блять, вообще хуй с тренеровкой лор. Столько уже времени вложил, что еще столько же я уже не выдержу. Я готов сильно пожертвовать качеством если смогу убрать шизофринию.

Все эти аналогия на счет машинного обучения про то как обучения это слепой идет и изучает

>В каждом блоке содержатся компоненты:...
Мне кажется тут нужен набор знаний которого у меня нет.

У меня SD1.5 если что.
>>1307758
>Хуй знает как у тебя там альфа работает
Альфа 1.0 полное обучение без помех, 0.5 половина силы.
>>1307763
Понятно.
>>1307771
>верхнепороговая скорость
>соотношение добавляемой даты исходя из альфы и дименшена
>пики валидации
>peft третье
Моя твоя не понемай.
>Еще стоит козин в качестве шедулера, а у него кстати прикол есть что дефолтный без аргументов практически не снижается во времени (тензор борд открой посмотри на график), типа за 1к эпох он от условных 1е-4 упадет до 3.9е-5, что фактически не снижает ебку скоростью.
Пик1
>Снижай лр
У адаптивных оптимайзеров, если в начале изменения слишком маленькие у них крышу срывает, по этому нельзя вармап. А обычные нормально относятся если в начале слишком низкий ЛР.
Аноним 09/08/25 Суб 13:30:01 #101 №1307941 
>>1307881
>Проблема проверок всех этих параметров это сколько ждать нужно. 3600 шагов занимает 6 часов.
Так чтобы понять принцип работы того или иного параметра тебе буквально нужна 1 картинка, 1 тхт файл описания и 5 репитов на этот датасет из 1 картинки и условно 10 эпох тренировки длиной в 5-10 минут. Не надо выдрачивать по 6 часов, это так не работает вообще: если сеть изначально сломалась, то она из жопы магическим образом не вылезет дальше есть пара вариантов когда может, но это особая магия с косинанилингвармрестарт шедулером и не всегда работает. Забей хуй на тренировку, пробуй следующий вариант, если у тебя в первые 5-10 эпох нет когерентного результата.
>Хорошо сейчас понял что простой промпт (1girl, solo) за ~20 мин (3 эпока) разоблачает косяки.
Ну да. Но есть чуть более точный тест: сначала генишь примерно то на что тренил, затем генишь диаметрально противоположный концепт - скажем кот сидит на скамейке в городе, если оба теста проходит и ничего не поломалось, то модель сумела в обобщение. Естественно надо учитывать что от сида тоже зависит и если на одном сиде не работает, то на другом может работать, это норма для луковичных юнетов.
>Анон, мне нужна хоть какая-то победа. Сколько я бьюсь об стену и вижу этот шизофренический результат с искривленными руками. Либо странный андерфит где лора дает минус к анатомии. Мне нужно хоть какая-то надежда, хоть какой-то позитивный результат.
Если тебе нужен стопроцентный простой удобный результат, то берешь технику тренировки b-lora, это как раз про изоляцию и таргетированную тренировку. Там по дефолту отключены фф и прожекшен слои и конволюшены в конфиге, так что будут тренироваться только линейные слои в конкретных блоках, вследствие чего у тебя будет вопервых долго тренироваться до результата, а во вторых вообще насрать на гиперпараметры - оно сожрет практически любые.
Сам концепт описан тут https://b-lora.github.io/B-LoRA/
Конфиги тут https://github.com/ThereforeGames/blora_for_kohya/tree/main/lycoris_presets
Если захочешь включить все кроме конволюшенов в тренировку обратно, то в регулярных выражениях для юнета пропиши заместо старого
"output_blocks\\.0\\..$",
"output_blocks\\.1\\..
$",
"input_blocks\\.8\\..$"
Текстовый енкодер там два слоя тренируется
"text_model.encoder.layers.0",
"^text_model\\.encoder\\.layers\\.1(?!\\d)(\\..
)?$"
>Мне кажется тут много того что ты написал что понадобится уже на более тонких вещах.
Мой псто скорее про то что сначала изучи как работает мотор прежде чем заниматься его починкой изолентами.
>Столько уже времени вложил, что еще столько же я уже не выдержу.
Ооо ты бы знал сколько я времени убил впустю вообще наверно в окно выпрыгнул.

>Мне кажется тут нужен набор знаний которого у меня нет.
Ну я вроде описал принцип работы, теперь есть.
>У меня SD1.5 если что.
А, ты еще и на полторахе. Ну в принципе с изоляцией слоев в небольшом дименшене без текст енкодера и в фп8 юнете и фп8 оптимайзере сдхл должна влезть в 6 кеков даже на 1024 разрешении, а уж 768 и подавно. Могу проверить если хочешь и потом конфиг дать, сдхл во всем будет лучше полторахи даже в фп8 тренинге за счет того что там модели попизже будут базовые.

>Моя твоя не понемай.
У тебя стоит 0.0001, это в сайнтфиик нотейшен 1e-4, достаточно агрессивная скорость для лиона и лор в целом.
Дименшен и альфа работают так: ты указываешь дименшен ранк 64 и альфу 1, следовательно коэффициент влияния модуля лоры каждый шаг будет 1 поделенный на 64, то есть 0.015625силы влияния, что осторожно и не должно так въебывать уже на вармапе. Альфа это регуляризационная залупка кстати тоже.
>Пик1
А у тебя в вантрейнере выставлен num_cycles зависящий от тоталстепс, по дефолту его нет, я предположил что ты может выставляешь вечную тренировку на козине.
>У адаптивных оптимайзеров, если в начале изменения слишком маленькие у них крышу срывает, по этому нельзя вармап. А обычные нормально относятся если в начале слишком низкий ЛР.
Ну адаптивным и не ставят вармапы. А у тебя лион, он не адаптивный, у тебя 700 шагов на вармап при датасете в 70 картинок, это в целом дохуя и смысола не имеет, 5% от всего рана или эквивалент 1-2 эпохам достаточно, ато он 10 эпох дрочился у тебя до мощной скорости зачем-то (я только только видос посмотрел твой), только время проебал.
Аноним 09/08/25 Суб 14:50:18 #102 №1308066 
image.png
>>1307941
>Мне кажется тут нужен набор знаний которого у меня нет.
>Ну я вроде описал принцип работы, теперь есть.
Конволюшн блоков в этих u-net пикчах я не вижу.
Я попробую несколько раз перечитать твои посты но башка от сложности взрывается. Просто в большинстве туториалов говорят "хуяк-хуяк, поэкспериментируйте температурой и эпохами и все!". А тут непросто знать что каждая хуйня делает, нужно еще знать на какие еще 10 вещей она влияет, от каких 5 вещей зависит и какие 3 вещи делают её ненужной, а как все эти вещи работают вместе.

>сдхл во всем будет лучше полторахи даже в фп8 тренинге за счет того что там модели попизже будут базовые.
У меня gtx1660, full precision only. Генерация SDXL даже 768p 20 шагов занимает 2 минуты. Там вообще никак не поэкспериментируешь, я уже не говорю про тренировки.

>У тебя стоит 0.0001, это в сайнтфиик нотейшен 1e-4, достаточно агрессивная скорость для лиона и лор в целом.
>Дименшен и альфа работают так: ты указываешь дименшен ранк 64 и альфу 1, следовательно коэффициент влияния модуля лоры каждый шаг будет 1 поделенный на 64, то есть 0.015625силы влияния, что осторожно и не должно так въебывать уже на вармапе. Альфа это регуляризационная залупка кстати тоже.
Т.е. другими словами непонятна причина пиздеца?

Бонус: мнение. Аналогия с слепцом который ходит по горам, учится рельефу, и пытается найти дно, не отображает реальность машинного обучения. И это не просто грубое упрощение а активно мешающая пониманию процессов. Т.к. если вам задут хоть немного технический вопрос эту аналогию невозможно будет применить, потому что она изначально не имеет смысла. Лучшая аналогия необходима и поможет всем. Имхо.
Аноним 09/08/25 Суб 15:47:35 #103 №1308205 
>>1307757
>>1307941
Ты пиздец его изнасиловал сейчас инфой скорее всего, он хоть усрётся не получит нихуя от полторахи как не трень, ни анатомии, ни рук, ни стиля, может скорость только получит приемлемую
>>1307690
Что ты хоть тренить то собрался? Тебе легче будет в тредах попросить тебе потренить с твоей 1660, но про 1.5 можешь вообще забыть, сколько её не еби, оно мёртвое даже по сравнению с XLями. Но вообще с XL фп8 оптимайзер, фп8 веса, градиент чекпоинтинг, 1 батч, без энкодеров, может сниженное разрешение даже влезет в 6, в 8 точно влезает без энкодеров второй батч в 1024
>>1307881
> 3 эпока
Я очень надеюсь что ты не по методикам вин10твикера это всё пытаешься делать
Аноним 09/08/25 Суб 16:37:32 #104 №1308353 
>>1307749
Я насколько я знаю для фп8 нужны RTX 30ХХ+ серии (bitsandbytes), если конечно есть то чего я не знаю о 16xx серии И да те 2 минуты за 768px 20 шагов это на квантованных чекпойнтах. Обычные не влезают в ВРАМ.
> 3 эпока
>Я очень надеюсь что ты не по методикам вин10твикера это всё пытаешься делать
3 эпока это я преувеличил но так я ссылался на этот видеорил >>1307749
Аноним 09/08/25 Суб 20:57:18 #105 №1308791 
image.png
800455537328022.png
>>1308066
>Конволюшн блоков в этих u-net пикчах я не вижу.
Конволюшн слои внутри блоков, отдельных блоков с конволюшнами в сетях нет.
У тебя пикча схематичная, там справа снизу легенда расписана где стрелочки отдельные это и есть конволюшны частично.
Кароче, чтобы понять из чего состоит модель тебе надо взять любою лору натренированную даже на одном шаге, но с таргетами по всем блокам со включенными конв слоями, а дальше эту лору засунуть в верификатор лор, без разницы вручную через питон скрипт или через уи типа https://github.com/bmaltais/kohya_ss , на выходе ты получишь список всех слоев в твоей лоре, пикрелейтед, он для сдхл но тоже самое делается и для 1.5.

У тебя в пикчах твоих кстати выше стоит пресет attn+mlp, то есть ты изначально не тренируешь конволюшны, то есть они отпадают как причина агрессии или кривости лорки. Остается просто высокая скорость и недостаточная регуляризация.

Если надо тренить с конвами то переключись пресет на full и потрень 1 шаг с сохранением чтобы потом посмотреть состав лоры. Вообще вантрейнер я бы не использовал на твоем месте, он достаточно неудобен.
Рассказать как пользоваться говном для тренинга лучше?

>Я попробую несколько раз перечитать твои посты но башка от сложности взрывается.
Задавай вопросы что непонятно.

>Просто в большинстве туториалов говорят "хуяк-хуяк, поэкспериментируйте температурой и эпохами и все!". А тут непросто знать что каждая хуйня делает, нужно еще знать на какие еще 10 вещей она влияет, от каких 5 вещей зависит и какие 3 вещи делают её ненужной, а как все эти вещи работают вместе.
У тебя два стула буквально в контексте лоры - тренить вечность на низкой сейфовой скорости на уровне до 1e-5, но не думать о том, как оптимизировать процесс чтобы не обосраться, либо тренить эффективно но избегать страданий от переобучения через таргетинг (вот у тебя аттн+млп пресет, это по факту таргетная тренировка, ток ты изначально не так с ней работаешь) и тонну гиперпараметров.

>У меня gtx1660, full precision only. Генерация SDXL даже 768p 20 шагов занимает 2 минуты. Там вообще никак не поэкспериментируешь, я уже не говорю про тренировки.
Я имею в виду чтобы ты подготовленные сконверченный чекпоинт можешь использовать для генерации, через пик2 например, это мой скрин годичной давности почти, там потребление врама в пике 5.5 гигов, теоретически оно влезет тебе в 6 гигов твоей 1660, потому что были репорты что в 1050ти с 4 гигами влезало и терпимо было.

А тренинг тренируется через специальный параметр --fp8_base_unet, переводящий fp16 чекпоинт в fp8 точность, плюс использование оптимайзера с 8бит точностостью. То что у тебя карта не держит фп8 нативно это не проблема вообще, оно не влияет особо.

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

>Т.е. другими словами непонятна причина пиздеца?
Ну как такового пиздеца нет, из того какие данные от тебя я вижу ты зачемто тренил вармап 10 эпох до конского пика скорости и спрашиваешь а че почему в жопе все. Надо по другому тренить, помягче и поэкономичнее.

>Бонус: мнение. Аналогия с слепцом который ходит по горам, учится рельефу, и пытается найти дно, не отображает реальность машинного обучения. И это не просто грубое упрощение а активно мешающая пониманию процессов. Т.к. если вам задут хоть немного технический вопрос эту аналогию невозможно будет применить, потому что она изначально не имеет смысла. Лучшая аналогия необходима и поможет всем. Имхо.
Лучшая аналогия обучения нейросети это раб, которого бьют плеткой (лосс функцией и регуляризацией) за каждый неверный мув (ошибку) чтобы он больше таких мувов не делал и был хорошим рабом. Если бить раба слишком сильно, то он помрет не сделав ничего полезного, если недостаточно, то он будет филонить. Осуждаю, но выглядит это именно так. Обучение с тичером и подкреплением вообще концлагерь аналогией будет.

>
Аноним 09/08/25 Суб 21:33:14 #106 №1308864 
>>1308205
> Ты пиздец его изнасиловал сейчас инфой скорее всего,
Бля ну я не хотел, мне кажется лучше сразу показать что тренинг это не тяп ляп и результат как будто гпт 5 натренировал а ты сем альтман, в реальности ебешься будь здоров как и в любой деятельности которая с виду преподносится как жмаканье кнопки сделать пиздато.

>он хоть усрётся не получит нихуя от полторахи как не трень, ни анатомии, ни рук, ни стиля, может скорость только получит приемлемую
Ну кстати да, полторашка сама в целом сосет. Лучше пусть продает свой 1660 мусор и покупает срук 3060 12 кеков или из 4000/5000 серии ченить с 16 гигами если интересен процесс тренировок, не такие уж большие траты, 8 раз в пятерочку сходить.
Аноним 10/08/25 Вск 05:04:27 #107 №1309428 
>>1307757
>Вообще оптимов самых разных великое множество, протестировать все у тебя жизни не хватит, поэтому можно выбирать с помощью синтетических тестов например отсюда https://github.com/kozistr/pytorch_optimizer/blob/main/docs/visualization.md
Нельзя.
Осмысленных выводов по этим картинкам сделать невозможно.
>Еще сюда можно совет впихнуть что если ты новичок
Найс кормишь новичков дерьмом.
>бери адаптивные оптимайзеры, или шедулер фри.
Это хотя бы верно.
>dmd2
)))

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

>>1307749
>>1307881
>Lion
Выкинь, он не умеет обороты сбавлять и фулл лр хуячит, емнип.
1е-4 тем более с ним будет дохуя.

>Альфа 1.0 полное обучение без помех, 0.5 половина силы.
Не так. Ставь альфу как корень из ранга. В твоем случае 8. Альфа прост косвенный множитель инициализации весов. Он еще на ранг делится, так что полное это 64.
>У адаптивных оптимайзеров, если в начале изменения слишком маленькие у них крышу срывает, по этому нельзя вармап. А обычные нормально относятся если в начале слишком низкий ЛР.
Наоборот. Моментумы без прогрева могут дать очень большое обновление. Или просто временно "отключаются", и будет идти обучение как по обычному сгд.
И можно не плавно поднимать лр, а проехать сколько-нибудь на нулевом лр, а потом поднять. Это изначальная логика как задумывалось. Просто с маленьким лр можно не тратить шаги впустую а чутка успеть обучиться и никуда не улететь пока момент плавно стабилизируется.

Поставь аккумуляцию побольше, даст то же самое что и батч. Отключи ТЭ. Потести лоссфункции, включи дору.
Пресет слоев у тебя какой, где написано только атеншены? В этом гуе я хз, но если только атеншены тренирует то это не то.
Добавь wd, дропауты.
Ну и выкинь лион, ставь адамW обычный.

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


>>1307941
>Ну адаптивным и не ставят вармапы.
Пиздеж.

>>1308066
>Я попробую несколько раз перечитать твои посты но башка от сложности взрывается.
Ой бля лучше его не слушай, там надо шарить чтобы понять что мусор а что нет.
Лучше возьми да залей датасет и сюда вкинь, тут получше твоей некторы карточки будут. Да и я могу натренить если мне не лень будет. Только дай модель и тестовые промты. Прост интересно ради чего ты так ебешься.
И вообще нахуя 1.5? Она же кал. Если xl хотя бы запускать можешь, зареквесть других натренить. Сборка датасета это все равно самое ебаное из всего процесса, а на трене уже работает видимокарта а не ты, лол.


>>1308791
>Лучшая аналогия обучения нейросети это раб, которого бьют плеткой (лосс функцией и регуляризацией) за каждый неверный мув (ошибку) чтобы он больше таких мувов не делал и был хорошим рабом. Если бить раба слишком сильно, то он помрет не сделав ничего полезного, если недостаточно, то он будет филонить. Осуждаю, но выглядит это именно так. Обучение с тичером и подкреплением вообще концлагерь аналогией будет.
Хуйня аналогия. Вот лучшая:
Параметры нейросети это многомерные координаты, для многомерного ландшафта по которому она идет. Градиент дает направление и условно-относительную силу шага для каждого параметра-координаты. С каждым шагом ландшафт немного меняется, потому что параметры воздействуют друг на друга. Поэтому сильно шагать по вычисленному направлению мы не можем, только по чуть-чуть. Разные параметры влияют на ландшафт по-разному. И для того чтобы вычислять такие параметры придуман второй момент в адаме, который старается не дрочить сильно параметр если градиент по нему часто меняет направление.
И никаких аналогий не надо.

>>1308864
>Лучше пусть продает свой 1660 мусор и покупает срук 3060 12 кеков
3060/12 можно за 15к достать с мобильным чипом. Якобы новую из китая. Б/у за 12.
Мобильные 3080/16 в районе 20. v100/16 еще есть за 20 с небольшим, но там пердольная плата с охладом.
Аноним 10/08/25 Вск 05:09:56 #108 №1309431 DELETED
>>1309428
О, токсичный рак треда явился.
Аноним 10/08/25 Вск 05:40:43 #109 №1309439 DELETED
>>1309431
О, распространитель дизинфы порвался.
Аноним 10/08/25 Вск 05:44:19 #110 №1309441 DELETED
>>1309439
О, токсичный рак треда байтит на эмоции.
Аноним 10/08/25 Вск 05:58:24 #111 №1309442 DELETED
>>1309441
Заплачь.
Аноним 10/08/25 Вск 18:40:22 #112 №1310233 
Без названия.png
Без названия (1).png
>>1307749
Блять. Как минимум половина проблем была в Aspect Ratio Bucketing.
Новый тест с другим чекпойтом:
Пик1 Слева оригинальный датасет с разным соотношение сторон, справа датасет с квадратами Aspect Ratio Backeting ВЫКЛ (чужой датасет и абсолютная шиза в нем, у всех пикч один промпт, а теги со всякими мастерписями, 32к и пр)

Сорян, сегодня не отпишусь тем кто ответил.
Аноним 11/08/25 Пнд 23:26:51 #113 №1312164 
Какой же комфипидор всё же пидор. У него некоторый код инференса в режиме обучения. Видимо когда впердоливали ноды обучения никто даже не чекнул остальной код и не сделал torch.no_grad() как положено. Из-за этой хуйни "протекает" память, хотя на самом деле это так торч устроен - веса модели нельзя удалить из памяти пока на них ссылается тензор с requires_grad. Чекается легко, есть ли в воркфлоу говняк - генерим и жмём "выгрузить все модели", если память не очистилась под ноль, а после нажатия "инвалидация кэша" всё же освободилась, то говорим спасибо комфипидору. Пока тензоры в кэше нод не будут удалёны, не очистится и память моделей, зависящая от них. Хорошо хоть глобальное отключение автограда помогает и не надо разбираться в этом говнокоде. А ведь я помню как это чмо ещё пиздело на автора Форджа что он не знает что делает, по итогу это комфипидор не знает как менеджмент памяти в торче работает.
Аноним 12/08/25 Втр 00:13:27 #114 №1312224 
>>1312164
>обучать в комфе
двач_помогач_как_есть_с_ножа.тхт
Аноним 12/08/25 Втр 00:26:54 #115 №1312242 
>>1312224
Так я и не треню, это инференс сломан там этим говно для обучения.
Аноним 13/08/25 Срд 16:56:37 #116 №1315853 
image.png
Экспериментировал с CAWR шедулером, и случайно получилась такая кривая скорости из-за достижения лимита в min_lr.
Примерно с того момента как график отзеркалился (70 шаг) внезапно пошел ебический буст четкости и сходимости. Это я так понимаю обратная пилообразная синусоида, но я их ни разу в кастомных шедулерах не встречал потому что согласно всем обоснованиями базовая логика обучения подразумевает что из общих форм со временем высекается более точные формы на низких скоростях (нисходящий шедулинг). То есть получился эффект не варм рестарта, а ээээ вармап рестарта.

Сталкивался кто с подобным шедулингом?

Если что код тут https://pastebin.com/EHaTb1WY под классом
CosineAnnealingWarmupRestartsPD
Аноним 13/08/25 Срд 17:06:19 #117 №1315861 
image.png
>>1315853
а да настройки цикла

--unet_lr=1e-3 ^
--text_encoder_lr=5e-4 ^
--lr_scheduler_args "max_lr=1e-3" "min_lr=5e-4" "gamma=0.95" "first_cycle_steps=кол-во картинок в датасете" ^

Разворот произошел и на te и на unet планировщике потому что в коде шедулера пропорционально сделано исходя из стартовых значений скорости.
Аноним 14/08/25 Чтв 01:47:53 #118 №1316918 
Че узнал щас почему те пиздошится: оказывается скорость текстового энкодера любая которую назначаешь при тренинге является фейковой, т.к. лосс считается на выходе юнета, но градиенты для TE проходят через юнет в любом случае. Таким образом допустим большой шаг у юнета = большие изменения в распределении активаций на входе в TE при обратном проходе => TE начинает получать непредсказуемые градиенты => эффективно увеличивается лр TE по созависимости, хотя на бумаге он каким был таким и остался.
Аноним 14/08/25 Чтв 02:11:20 #119 №1316937 
>>1316918
Тут каждый тред про это пишут, а дурачки всё продолжают его тренить с lr почти как у unet.
Аноним 14/08/25 Чтв 02:14:33 #120 №1316938 
>>1316937
>Тут каждый тред про это пишут
Не видел
Аноним 14/08/25 Чтв 03:37:03 #121 №1316991 
АнонИИ, вижу тут разбирающиеся люди есть, тама Chroma v50 (это какой то гибрид 1dev и schnell) вышла, подскажите как на неё лоры тренировать кто в курсе? Я залетный и много не прошу мне бы только на лицо натренировать. Можно как то сделать это через one trainer или flux gym или аналоги не сложные?
Аноним 14/08/25 Чтв 05:25:12 #122 №1317023 
>>1316918
Скорость не фейковая, тут вопрос в том хули в текст энкодер большой градиент приходит?
Норму градиента можно мониторить, и можно делать константной, при желании.
Лучше замерять это инструментально, прежде чем делать какие-то выводы.
Аноним 14/08/25 Чтв 09:53:43 #123 №1317156 
>>1316991
> это какой то гибрид 1dev и schnell
Нет, это просто крайние слои от Флюкса отрезали и заново натренили с cfg.
> как на неё лоры тренировать кто в курсе?
В официальной репе есть код тренировки лор со скриптами запуска, должен работать. Я его адаптировал под свой тренер, всё чётко было. Но ты учти что надо либо две карты, либо квантовать, желательно через HQQ. В int8 чтоб в 24 гига залезло надо разрешение ниже 1024 опускать, что-то типа 768, хотя я думаю это не проблема, некоторые Ван в 256х256 тренят, лол. Для комфортной тренировки желательно конечно 5090. По скорости 2000 шагов в час на 5090.
Аноним 14/08/25 Чтв 10:10:34 #124 №1317169 
Решил посмотреть, какая математика лежит в корне VAE. Охуел пиздец. И это мне нейронка с упрощения расписала. А ведь когда то я играюче разобрался бы в это, техвышка это вам не шутка. А щас пук среньк, не могу даже интеграл взять
Посоветуйте книжку по городу генеративным сетям. Чтобы все основные компоненты, и вае, и клип, и u net разбирались. Я знаю, как они работают, но не настолько глубоко, как бы хотелось.
Аноним 14/08/25 Чтв 10:50:51 #125 №1317189 
1755157751779.png
1755157751781.png
>>1317169
> Посоветуйте книжку по городу генеративным сетям. Чтобы все основные компоненты, и вае, и клип, и u net разбирались.
Ну посоветую, это скорее историческая энциклопедия охватывающая всю историю нейросетей, чем что-то специальное узконаправленное
Книги бесплатны на сайте автора
Аноним 14/08/25 Чтв 11:02:44 #126 №1317198 
image.png
>>1317156
Тут пишут что это шинель

>что надо либо две карты, либо квантовать
Flux же не квантованный нормально тренируется на 24гб 3090 в 1024, а тут я так понял урезанный flux чего бы он не влез?

Если ты про эту репу https://huggingface.co/lodestones/Chroma/tree/main?not-for-all-audiences=true , то чтото я тут не нашел скриптов ничего такого чтобы можно было запустить не сложно.

Буду пробовать ее под флюкс жим подкладывать, под видом обычного flux 1dev.
Аноним 14/08/25 Чтв 11:05:37 #127 №1317200 
>>1317198
Sd scripts ветка sd3, хрому добавили ещё две недели назад
Аноним 14/08/25 Чтв 11:07:33 #128 №1317202 
>>1317198
> Тут пишут что это шинель
Да это шинель
Аноним 14/08/25 Чтв 11:08:24 #129 №1317203 
>>1317198
> Тут пишут что это шинель
Потому что у него лицензия нормальная, от шнеля там ничего не осталось, кроме архитектуры DiT.
> Flux же не квантованный нормально тренируется на 24гб 3090 в 1024, а тут я так понял урезанный flux чего бы он не влез?
Только если свапать блоки, но это дно по скорости. Как раз коха такими извращениями занимался.
> Если ты про эту репу
https://github.com/lodestone-rock/flow
Аноним 14/08/25 Чтв 11:10:53 #130 №1317204 
Эх вот бы лайтовую версию хрен-имейдж на примерно 5 миллиардов параметров, изи килл сдхл...
Аноним 14/08/25 Чтв 11:19:08 #131 №1317209 
>>1317198
> не квантованный
В fp8, что ещё хуже квантов. На Флюксе от этого лоры шакалили генерации, выдавая блочные артефакты. Если хочешь что-то вменяемое натренить, то модель должна быть либо в bf16, либо в нормальных квантах. Сама лора естественно должна быть bf16 всегда.
Аноним 14/08/25 Чтв 12:44:18 #132 №1317295 
>>1317203
>https://github.com/lodestone-rock/flow
Ага спасибо, качнул от туда flow, буду разбираться, но похоже консоль дрочить придется и руками писать а не параметры в окошечках выбирать.
>>1317209
Спасибо за подсказку, но вроде на FLUX неплохая лора получалась, модель была flux1-dev.sft на 23 гига
Аноним 14/08/25 Чтв 21:48:40 #133 №1317971 
vae.jpg
Screen-Shot-2018-03-18-at-7.22.24-PM.png
>>1317169
>Решил посмотреть, какая математика лежит в корне VAE. Охуел пиздец. И это мне нейронка с упрощения расписала.
Нейронки плохо умеют правильно упрощать.
Вообще вае это несложно, там просто математики насрали как обычно своей хуйней, которой не существует.
На самом деле есть просто обычный автоэнкодер, понять как он работает - тривиально. Если ты его просемплируешь на большом наборе данных, увидишь что латенты распределены всрато и неравномерно, они кучкуются в определенных областях пространства, в остальных есть дыры. Попытка взять случайный латент выдает сломанный результат, ибо ты почти всегда попадаешь в дыру или недопустимую комбинацию значений.
Задача вае сделать распределение равномерным. Достигается это двумя путями. Первый это просто дополнительный лосс на сами латенты, чем дальше значение от "центра", тем больше ошибка.
Это сила которая стягивает латенты к центру.
Второе - вводится дополнительный канал, который будет предсказывать насколько важно каждое значение латента. Если значение важное, значит оно сильно влияет на выход в данный момент и его нельзя сильно отклонять.
В момент прямого прохода будет взято случайное число из диапазона, который предсказан этим каналом, и прибавлено к латентам, затем отправлено в декодер.
Кароч суть в том что из-за этого канала в латенты постоянно подсирается шум, но если градиент ошибки большой, то канал учится ослаблять шум.
В итоге это становится силой, которая расталкивает латенты и все это вместе делает распределение гладким, а само обучение - осмысленным и структурированным.
На дополнительный канал тоже накладывается лосс, только наоборот, тянущий его от нуля. Иначе бы энкодер сразу схлопнулся и предсказывал бы одни нули на этих каналах, потому что они только мешают работать декодеру. Каждый канал начинает учиться выдавать большое значение только когда сильный разброс допустим и низкое когда нет. За счет разброса как раз закрываются дыры, декодер учится работать с полным диапазоном значений.

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

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

https://xnought.github.io/vae-explainer/
https://education.yandex.ru/handbook/ml/article/variational-autoencoder-(vae)
Аноним 14/08/25 Чтв 22:03:02 #134 №1318000 
Дополнение:
На второй картинке как раз видно, что итоговый латент получается таким, что если сделать небольшое отклонение, то попадешь по крайней мере во что-то похожее. Соответственно, получишь меньший лосс, и так автоэнкодер естественно учится делать хорошую и нужную нам структуру.
Аноним 15/08/25 Птн 11:42:10 #135 №1318592 
изображение.png
>>1317203
В общем мы с flow не подружились то одно ему надо то другое то вересия питона слишьком высокая то слишьком низкая то вообще на линуксе делать надо.

В флюксжим пропихнуть тоже не удалось не под видом дев не под видом шенель...

>>1317156
Поставил Ai toolkit красивый приятный удобный, все нормально влезло в 24 гига. Пришлось правда VS2022 переустановить ибо по дефолту он уставнолен был в програм файлс с пробелом и питоне не мог им пользоваться нормально. И тренить можно много чего, даже ван видео.
Аноним 15/08/25 Птн 12:05:02 #136 №1318603 
>>1318592
> даже ван видео
Там поддержка только старого 2.1. Ван 2.2, к сожалению, можно тренить только в говне кохи, которое ещё более говняное чем его говно для тренировки sd. Столько лет чел кодит и всё как в первый день, когда он писал код для тренировки лор полторахи.
Аноним 15/08/25 Птн 12:07:01 #137 №1318606 
>>1317971
Вроде и понятно, но если начнут задавать уточняющие вопросы - развалюсь.
Аноним 15/08/25 Птн 12:45:36 #138 №1318643 
изображение.png
>>1318603
2.2 есть только для 5B модели, ну можно сказать что и нет...
Аноним 17/08/25 Вск 11:47:48 #139 №1322699 
1755420464124.jpg
>>1315853
Сделал шедулер обратного косинуса с рестартом с независимыми скоростями для весов и те, работает заметно лучше чем классика. Основная проблема нисходящего шедулинга в том, что стартовые значения переоценены и потом эти переоцененные значения подкручиваются еще сильнее на стадии дикея, особенно если шумные входные данные, поэтому на одном и том же датасете получились совершенно разные эффекты (картинки заебусь прикладывать поэтому текстом) - в первом случае где старт с 1е-2 до 1е-3 (при эффективной скорости обучения примерно от 5е3 до 1е2) сильно жжет веса и конволюшены впитывают слишком мощный шумный сигнал (конкретно фьючерсы стилистики со всеми характерными засветами и квалити демеджом в датасете), во втором случае при бесконечном восхождении от 1е3 до 1е2 жарево полностью исчезает и теперь сеть не агрессивно подстраивается под датасет, а датасетные данные подстраиваются под сеть за счет бесконечного эффекта вармапа.
Эффект получился схожий с трапезоидальным шедулером, где весь график это вармап-плато на высокой скорости-косинусный дикей до нуля обратно, только там он длиной во всю тренировку, что усложняет контроль лучшей эпохи и может не докручивать себя чтобы найти более лучшее решение. Попробую сделать и попробовать циклический трапезоидал, где вармап длиной в датасет-плато длиной в датасет-дикей длиной в датасет и затем повторы, вероятно это наиболее удобный и сейфовый вариант тренировки будет вообще, но даже обратного косинуса как будто бы достаточно, особенно с большим батчем на уровне 10-50 картиночек за раз.

Кстати кохака чето высрал
Аноним 17/08/25 Вск 14:48:56 #140 №1322978 
>>1322699
>Кстати кохака чето высрал
Наверное, то самое, что он для рекламы своей вае тренировал.
comments powered by Disqus