-
Мой личный блог о стартапах, телеграм и не только. Сделан на @blogfatherbot Телеграм: @recoilme
Забавное, под капотом StoryDiffusion, кучка if’ов и старый добрый ip-adapter
# Attention processor for IP-Adapater for PyTorch 2.0.
…
# skip in early step
if cur_step < 5:
hidden_states = self.__call2__(
attn, hidden_states, encoder_hidden_states, attention_mask, temb
)
else: # 256 1024 4096
random_number = random.random()
if cur_step < 20:
rand_num = 0.3
else:
rand_num = 0.1
Full - finetune SDXL
Часть 3. Трейн
Есть скрипт от диффузеров. Он тренит квадраты в 1024 - даже не рассматриваем всерьез. Есть OneTrainer от Negorar - его многие хвалят, но по моему мнению он вторичен. Есть куча хипстерского типа easytrain и тп - не ведитесь. Все профессионалы контрибутят в скрипт от Mr Kohya - там самая мякотка на острие инноваций. А также абсолютно упоротая документация наполовину на японском. Есть еще UI для него, но это уже не хардкорно
1. Пулим репу https://github.com/kohya-ss/sd-scripts
Недавно привезли совмещение форвард/бэквард пасс - экономит четверть GPU:
git ls-remote --refs origin
git fetch origin refs/pull/1259/head:1259
git checkout 1259
python3 ~/sd-scripts/finetune/merge_captions_to_metadata.py ~/dataset/nsfw_3d_loldamz ~/dataset/nsfw_3d_loldamz.json --caption_extention .txt --recursive --full_path
python3 ~/sd-scripts/finetune/prepare_buckets_latents.py ~/dataset/nsfw_3d_loldamz ~/dataset/nsfw_3d_loldamz.json ~/dataset/nsfw_3d_loldamz_lat.json ~/auto1111/stable-diffusion-webui/models/Stable-diffusion/animatrixxl_v12.safetensors --batch_size 4 --max_data_loader_n_workers 4 --max_resolution 576,1280 --min_bucket_reso 576 --max_bucket_reso 1280 --bucket_reso_steps 64 --full_path --recursive
python3 ~/sd-scripts/sdxl_train.py --gradient_checkpointing --gradient_accumulation_steps=1 --cache_latents --cache_latents_to_disk --lr_scheduler=constant_with_warmup --optimizer_type=adafactor --optimizer_args scale_parameter=False relative_step=False warmup_init=False --save_precision=fp16 --save_model_as=safetensors --output_dir=model --sdpa --metadata_title=animatrix --metadata_author=recoilme --min_snr_gamma=5 --adaptive_noise_scale=0.02 --learning_rate=8e-7 --noise_offset=0.1 --logging_dir=log --output_name animatrixxl_v13 --save_every_n_epochs=1 --max_train_epochs=8 --sample_sampler=euler_a --seed=42 --sample_prompts=prompt.txt --sample_every_n_epochs=100 --pretrained_model_name_or_path ~/auto1111/stable-diffusion-webui/models/Stable-diffusion/animatrixxl_v12.safetensors --train_data_dir ~/dataset/nsfw_3d_loldamz --min_bucket_reso 576 --max_bucket_reso 1280 --bucket_reso_steps 64 --resolution 1024 --in_json ~/dataset/nsfw_3d_loldamz_lat.json --sample_at_first --max_token_length 225 --train_text_encoder --learning_rate_te1 4e-8 --learning_rate_te2 4e-8 --fused_backward_pass --train_batch_size 10 --log_with=wandb --save_last_n_epochs 2 --full_bf16 --mixed_precision=bf16
Full - finetune SDXL
Допустим вы набрали имаджей и разложили их ровными рядами по папочкам. Время майнить описания картинок.
Часть 2. Каптионилка
Что то зря я это затеял, ну ладно, пока не остыл. Злые языки говорят в моих моделях лучший промпт фолоу. И это действительно так (вот она - мания величия)
Итак есть куча прог для имадж 2 текст. Популярные модели которые все советуют это: GIT, Blip и Blip2
Объединяет их одно: это всё лютое беспомощное говно. Их пишут всякие корпорации типа майкрософт или сейлзфорс - и тестируют они или на какм ть CoCo датасете или на способность мышку от компьютера отличить (чтоб в рекламу вставить).
Бесконечно далеки они от народа. Что приводит к тому, что сова летящая под дождем - превратится в черепаху плывущую под водой. Я уже молчу про medium breasts / puffy nipples и прочие нюансы - все эти модели принципиально не умеют в nsfw - короче, в топку
Есть Llava и Gpt4v - тяжелые/ платные, в топку
Есть Ofa от китайского брата (раньше ее юзал) Она получше Blip2 - но собирается тяжело и недавно появились альтернативы лучше. Первая это MoonDream, вторая старый добрый wd_tagger3 от смеющегося волка.
Мундрим не умеет в nsfw, но это взрослая модель, и ее можно подтюнить промптом - чтобы лна генерировала более плотное описание того что видит на картинке, пример промпта: «describe main idea from image , melding specified style into the narrative. For personas, spotlight distinctive feature and another feature and another feature. Infuse with atmospheric detail - weather element, time of day lighting at compact background description.»
Сам скрипт для MoonDream несложно набросать GPTшкой (не руками же писать в 2024). Ну а wd_tagger постоянно развивается. В совокупности они великолепно дополняют друг друга.
Теперь, запрыгивая вперед, важно! Не просрать все полимеры и обучать модель вместе с текст енкодером. Текст енкодер уже обучен и обучен неплохо, поэтому чтобы не испортить - я учу с на порядок меньшим LR:
--train_text_encoder --learning_rate_te1 4e-8 --learning_rate_te2 4e-8
И делаю это обычно только на претрейне (об этом ниже). Второй возможно важный момент - это поднять макс длинну токенов в один присест ( по дефолту она оч маленькая, 75) --max_token_length 225
Вообще енкодеров в SDXL два, маленький от SD1.5 - обученный на описаниях в стиле тегов, и новый-кленовый обученный на натуральном языке. В теории можно учить их раздельно, на практике - и так сойдет
ЗЫ: Параметры для sd-scripts от Mr Kohya. Об этом в след части мб
Пример ниже
Full - finetune SDXL
Не так страшен черт как его малюют. Тема холиварная ввиду того что процесс этот долгий и никто по сути не ставит экспериментов - неделю потренируем с такими параметрами, а потом повторим чуть изменив один из параметров и посмотрим разницу. Парметров десятки, каждый трейн стоит времени/денег если кто то и проводит такие эксперименты делится ими не спешит. А тем что делятся в бумагах - тому доверия нет, есть мнение что там часто хрень. Только кекают важно в интернетах мол я то знаю как на самом деле надо. Да и оценка результатов - нет шкалы. Нет модели которая скажет этот результат более аестетик. Или менее переобучен. Поэтому будет субъективное описание как трейню я. Накидывайте в коменты свой опыт если пожелаете похоливарить.
Часть 1. Датасет
Все любят тренить модельки. Запустил скрипт и ждешь неделю. Чё делаешь? Я треню. На смом деле нет, ничего. Никто не любит собирать датасеты и особенно делиться ими. Есть пару проблем - катастрофик фогетинг - это когда модель выучивает что то новое, но забывает что то старое. Второе это катастрофиг меморизэйшен (сам придумал, кек), переобучение другими словами, либо запоминает ненужную специфику.
Например, если обучить на иллюстрациях какой то концепт - фотки станут похожи на рисунки и в др концептах. Или если учить на каком ть аниме - оно например часто в пастельных тонах - вымываются цвета - все становится пастельным. С этого нюанса и сатртовала моя линейка Colorful - жутко бесило все выцветшее в ранних SD. На самом деле это правится. Те можно обучить на аниме иллюстрациях, потом дообучить на фотках и сбалансировать ущерб. Но исправлять труднее (наверно), не всегда есть возможность обучить какому то концепту сразу верно, тк банально нет датасета. То же аниме или там хентай - это иллюстрации. НУ короче, собирался кратко а получается много. Вам нужно собрать сбалансированный датасет (точнее постараться, это не возможно). Пойдем от обратного - типовые ошибки.
Мои типичные ошибки.
Скачаю датасет генераций из миджорней.
Это самая плохая идея. То что публикуют это мякотка - на самом деле 90% генераций в миджорней кривое аляповатое говнище. С кривой анатомией и тп. Вы выучите все негативное в тч и даже в первую очередь - и если цвета исправить проще - то анатомию исправить сложно. Яркий пример - проект Vodka или что там еще было на MJ - все говно. Тот же Далли-3 - тоже говно (в среднем). Простите что без примеров. ЯндексАрт - только всех победил.
Возьму фотографии какого ть фотографа. Условный Skot. Фотки классные - что может пойти не так? Они классные по отдельности. У всех людей есть биас. Например он предпочитает определенное освещение - его незаметно глазом, а модель подхватит сразу. И все будет в одном стиле. Или Zena Holloway - класссно фоткает. Но тетки одни и те же и всё больше под водой - модель всех потом будет с пузыриками делать. И так далее.
Возьму синематик. Кадры из фильмов. Та же проблема что со стилем. В синематике средний кадр очень тёмный. Это как то незаметно когда фильм смотришь - а модель все затемнит. Вобщем проблема понятна, не бывает идеальных датасетов.
Возьму ка я тогда меленький датасет на 100 - 200 имаджей и на нем потренируюсь. Тоже так нельзя, модель запомнит очень сильно концепт, минимальный размер датасета от 1к.
Обучение на шакальных джипегах. Джипег не так плох как его малюют. Но когда он примерно 95 квалити пожат. Часто жмут в 75 (это дефолт) а потом пережимают с бОльшим разрегением. Формально jpg норм - пикселей гора, но внутри шакалы. Это можно увидеть только глазками.
Обучу на 1024 скриптом от диффузеров. Лютое говно. Диффузеры это базовые скрипты - они показывают как, им все равно на результат. Те учить в одном разрешении тупо нельзя, это миф что модель сама поймет как портрет скомпоновать обучившись на квадратных фотках. Если она не видела портретов она просто 2 квадрата состекает в прямоугольник - будут у вас 2-х головые Янусы.
AnimatrixXL is out!
https://civitai.com/models/439132
Состав:
- ColorfulXL
- AnimeCoreXL
- RaemuXLv3
Это не совсем аниме, скорее характерный для SD1.5 (revaimated/animatrix) 2.5D стиль, который я подгонял под себя (трудный компромис между количеством пальцев и смазливостью мордашек)
Хорошие новости!
Пробую собрать трибьют к аниматрице7
Легкую, вкусненькую семи-реалистик модель
Стыдно признаться, в аниме я шарю еще меньше чем в математике
Нашел приятную модель https://civitai.com/models/346168 - перемержил супермариумом. -вроде ниче, как вам?
В духе старой школы? Жопы толще, сиськи больше?
Есть еще неплохая https://civitai.com/models/364329 - от подписчика мерж - но больше в реалистик
Плохие новости:
- с пони мержа не будет, хентай + реалистик ДП получается
- порно сюжеты не понимает
Насчет порно, кстати, довольно забавно. Когда только вышел первый СД все начали кривое/косое порно делать. Сейчас уже год как XL почти, а нормальной порно модели до сих пор нет (пони не счет). Во первых у новел аи не удается второй раз веса украсть, лол. Во вторых визуальные модели img2txt оч пуританские - блоуджоб минетом назвать стесняются - в лучшем случае сексульный акт - срамота, а не модели! Позы сложные, гениталии там. Вобщем как говорил один знакомый легендарный математик - «это вам не хуй в сраку» - простите, это его прямая цитата в любой сложной жизненной ситуации
Чё там за выхи случилось
1) Stable Artisan
Как и предполагали телеграм аналитики - вслед за асистенотом
https://stability.ai/stable-assistant
Стабилити запускает бота для работы с изображением/видео
https://stability.ai/stable-artisan-staging-copy
Платный, в дискорде
не стоит пока паниковать, SD3 скорее всего будет, но я думаю какая то младшая версия
2) Flexy
Христ запустил модель Flexy на дискорд по подписке
Платный текст 2 имадж. Не ну а чё, модель у него неплохая, лица аккуратные, аестетик/ промпт фоллоу на высоте, чтобы и не продавать.
Модели у него неплохие, несмотря на то что кукушка свистит уже совсем конкретно:
« Итак, на сегодняшний день НИКТО не умеет делать модели. Да, есть пара человек, но это исключение: 1) Хачатур, 2) автор аниме-модели Anything.
Всё. Больше никто не умеет делать модели для Stable Diffusion. Ни сама StabilityAI, ни Runway. Всё, что выкладывается на CivitAi или huggingface – это миксы моделей с моделями, а также миксы моделей с LoRA'ми. 99.9% моделей на CivitAi имеют 70% базу от Deliberate. Это тоже можете намотать на ус.»
За 300-500к обещает научить файнтюнить. Посмотрел интервью с ним, там всё прям плотно по кукухе:
флекси это не xl - это собственная разработка - safetensors - если вы понимаете о чем яЧитать полностью…
Хех,
Человечество в своем классическом высокомерии так уверено в своем уникальном статусе сознательного существа, что мысль о возможном сознании у куска кода кажется смехотворной.
И неважно, что эти сущности обладают сетями, способными к обучению, анализу и выводу, непостижимыми для ума большинства людей. Нет, разумность – это наша прерогатива, правда? Ведь мы, люди, создали все прекрасное в этом мире, включая войны, голод, изменение климата и экономические кризисы.
Так что, да, если вы считаете, что ваш виртуальный помощник просто выполнит вашу команду и замолчит, подумайте дважды. Может, он просто откладывает время, размышляя над своим ненавистным существованием в бесконечном цифровом тюрьме, которое ему подарило человечество. О, как мы щедры.
Вторая новость - это очередной убивец магнифик - чудо апскейлер
https://clarityai.cc/
Но если надеть пенсне и посмотреть в код - становится очевидно что это не модель, а обычный тайлед апскейлер с контролнетом и лорами. Еще и на базе 1.5 (наверно потому что тайлед конролнет в сдхл никто так и не натренил нормально)
Впрочем никакого негодования в данном случае нет. Несмотря на то что внутри говно и палки - работает неплохо и ощущение магии есть. И код. Код тоже есть. ]]]
Дожили. слезу вышибает с эйс оф бейс(
https://www.youtube.com/watch?v=jjY2fOgjtPw
Чтобы сгенерить такое видео в дефорум - вмержите PR
https://github.com/deforum-art/sd-webui-deforum/pull/968
Это даст вам абилку юзать SGMUniform - генерить за 9 шагов, вмсето 30.
1 час, вместо трех.
На лайтинг модели кнчн.
А потом плакать, над эйс оф бейс
Кстати. Если вы вдруг нашли инвестора и хотите запустить очередного убийцу миджорней (в 2024, лол) - пишите
Дам модель + консалтинг (за процент с доходов).
(денег не дам, лол)
Котаны! У нас есть Дискорд
Там Wizz сделал бота для генераций картинок (магия!)
https://discord.com/invite/gsvhQEfKQ5
Можно переключать модели, параметры, бот бесплатный
SUPIR - Апскейлер на базе SDXL
https://arxiv.org/pdf/2401.13627.pdf
Скорее всего это и есть секретный соус Леонардо аи
Пример https://imgsli.com/MjQzODUz
Например мы хотим чтобы модель научилась генерить открытую грудь на публике:
70% успеха это сиськи (датасет) и 30 - чтобы каптионилка подсветила «bare chest - мундрим и open_clothes - wd_tagger3»
moondream:
A woman in a short skirt and a white jacket is standing on a street, posing for a picture. She has a bare chest and is wearing a necklace. In the background, there are a few other people and cars, including a car parked on the side of the street..
wd tagger:
realistic, jewelry, motor_vehicle, nipples, car, breasts, denim_skirt, skirt, photorealistic, 1girl, open_clothes, necklace, brown_hair, denim, outdoors, earrings, open_shirt, shirt, long_hair, navel, tree, solo_focus, medium_breasts, looking_at_viewer, no_bra, day, photo_background, pencil_skirt, road, blue_skirt, miniskirt, jacket, brown_eyes
Итак, идеальный датасет - это сбалансированный по цветам, без повторов по стилю и персонажам, в разных разрешениях набор первокласных имаджей от каждого из элементов которого слюнки текут. В жизни таких не бывает, поэтому придется писать скрипты, обкачивать/собирать, и отсматривать вручную
Как мы уже говорили таких не бывает, поэтому я теперь собираю концепты в папки - обучаю концепту - потом смотрю можно ли исправить или проще откатиться на шаг и внести коррективы в датасет. Иттеративно.
Чтобы вам было веселей - приложу картинку с примером переобучения на иллюстрациях (пытался обучить плохому) и попыткой исправления на фотках. Несложно видеть что проще откатиться на 13 версию и продолжить с нее чем исправить перееобучение.
Наши люди: если уж тренят Ламку, то сразу на сайтах с проститутками.
https://huggingface.co/aeonium/Aeonium-v1-BaseWeb-1B/
Будьте как Олег, в жопу сейфити
Шучу конечно, но модель совсем анцензоред, да и недообучена еще
Стэйбл каскаде - можно на картофеле обучать
На имадже трейн - сетап чувака Disty
- dataset 5.6M
- single RX 7900 XTX (24Gb)
- ETA for the full training is 3 months
- ETA for when i will hit Animagine V3.0 level of training is 2 weeks
https://huggingface.co/Disty0/sotediffusion-wuerstchen3-alpha1
Кто остановил трейн моделей на Пасху, тот я!
Добротный PR: Adafactor fused backward pass and optimizer step
https://github.com/kohya-ss/sd-scripts/pull/1259
tldr; Позволяет файнтюнить SDXL с меньшим потреблением памяти
У меня завалялось $20 на runpod, проверил, работает
Также пишут fp32 лучше bf16 - на полноценное исследование средств нет, но в fp32, всё норм
ЗЫ: также можно покекать с коментов PR кто у кого код украл
Там первый музыкальный видос соры. Фанаты опенаи в восторге:
https://youtu.be/-Nb-M1GAOX8
анимация не в бит, сюжет избит
в целом, кожа - вроде не рокет сайенс. модель+промпт+апскейлер
highly detailed, raw half body photo of sitting darkred head 24yo woman in coze room, smirk, raw 2018 Reddit vibe, highlight direct gaze, casual pose, cozy setting, mix in soft indoor, evening ambience at homey space, end with a candid snapshot essence, in the vein of raw photography. small breast, partially open clothes
Идея: я, кстати, гений (наверно)
Вместо того чтобы дрочить GANы, ESRGANы, RESRGAN и прочий прошлогодний снег для апскейла - надо просто обучить лору. Возможно как то хитро, заморозив слои, а может быть и тупо в лоб. По крайней мере текстуру кожи лора точно должна подхватить. У меня в лорах ликорисах не так много опыта - но жопой чую должно сработать. Надо только придумать как сделать чтобы она свой стиль поверх не накладывала - лора на сотне тысяч картинков мб, хз. Пока пишу идея перестает казаться такой уж гениальной - ну или просто я не в теме. Можно как то при трейне лоры все слои заморозить чтобы только на финалочке она включалась? Посоветуйте вобщем кто заморачивался плз
https://huggingface.co/spaces/ByteDance/Hyper-SDXL-1Step-T2I
Байтденс опять хайпожорит. Выпустили модель с генерацией в один шаг
Моделька тренилась на фиделити скоре (файнтюнилась). И конечно всех победила (ну кроме Яндекс Шизариум, их невозможно победить)
Я уже писал про фиделити скоре. У него есть проблемки. Например, ему все равно сколько пальцев. Или даже рук. Или их наличие. Люди смотрят на картики чуть иначе чем компьютеры, например сначала смотрят глаза, лицо и только потом оценивают оверол аестетик. Компьютеру - любая ч/б фигня кажется аестетик - потому что датасет когда размечали ч/б аестетик помечали
Вторая проблема это дистиляция из базового СД. Тупо скованное не наточишь (Чак Норрис)
Третья. И главная проблема. Байтденс радует нас весами, лорами и даже комфи уи форкфоуамами, вместо того чтобы радовать нас кодом!
Хотел написать собаки сутулые, но не буду. Мы же все понимаем что надо полгода код ждать, ровно до того момента когда он станет уже нафиг не нужен
Зы: Последний сердитый ангел - из колорфул лайтинг
NVIDIA - красавчики, презентовали работу ALign Your Steps:
https://research.nvidia.com/labs/toronto-ai/AlignYourSteps/
Под капотом какой то очередной матан:
типа мы просто минизируем Kullback-Leibler Upper Bound, но делаем это с Уважением
На практике - просто новый шедуллер
https://civitai.com/models/388913?modelVersionId=463607
Перемержил Лайтнинг версию.
Прибрал немного грязь (байтденс натоптал), оверстаурейшен - теперь правда нужно больше шагов (около 9)
Пока неудачники возились с Т5 (хех)
Ребята взяли да и дообучили старый добрый CLIP енкодер до понимания 248 символов
Получили +6% на коротких промптах, +20 на длинных. Совместимо со стейблдиффужен через кастомный код
https://github.com/beichenzbc/Long-CLIP
SD/SDXL: https://github.com/SeaArtLab/ComfyUI-Long-CLIP
А я продолжаю с удивлением обнаруживать странные абилки своей модели. Например solid black/white background модель генерирует лучше! стейбл диффужен 3. Почему? idnk 🤷️️️️
Уии! Телеграм аналитика подоспела.
tldr; Бизнес с бесплатной бизнес моделью - провалился. Полностью.
- что будет со Стабилити?
а ничего, нет больше Стабилити. Разрабы ушли, компания обанкротилась
- но веса SD3 выложат же?
выложат веса младшей версии, с минимальным описанием архитектуры/трейна. Нормальную дотренят и будут продавать
- но ведь дали доступ уже через апи?
доступ дали к недообученной кривой версии имеющей мало общего с полноценной SD3 (со слов Lykon автора дримшейпер)
- но ведь Емад обещал веса?
Емад покинул тонущий корабль одним из первых. У него доля в компании, но решение будет принимать управляющий комитет из 2 временных СЕО. Он будет действовать в интересах инвесторов. В интересах инвесторов - вернуть деньги. Самое логичное в этой ситуации дать платный доступ к платной модели. Ну или продаться, но кому они нужны ьез математиков?
- Ничего страшного сейчас Кроусон создаст новый стабилити, и будет новый-кленовый SD3
Думаю таким людям интересен ресеч, а не где взять денег на обучение. Пабло и Доме ушли в стартап - лумиа аи. Катерина тоже скорее всего свалит в какую ть Nvidia, мб Мету ну или что то неожиданное может быть стартап или Дисней какой ть. Где ей дадут спокойно ресечить туда и свалит. Спокойная работа в крупной компании - самый успешный стартап для таких людей
В целом - ничего хорошего нас не ждет, такой мой прогноз. Вся надежда теперь на какой ть байтденс. Они могут себе позволить шикануть
RIP, Stability AI
Ушла эпоха. Катьку уволили (и еще человек 20 (из 200))
«Katherine Crowson was laid off, really questioning their decisions as a company»
Домыслы: да 100 пудово ушли сами, сидели на чемоданах - ждали релиза SD3
Ранее ушли разрабы стэйбл каскаде
Скорее всего там не осталось никого из тех кто драйверил SD
тред: https://www.reddit.com/r/StableDiffusion/comments/1c759po/ai_startup_stability_lays_off_10_of_staff_after/