как переименовать расширение файла
»пидоры помогите вирус переименование
Звонит щаз отец, говорит, вирус словил на комп.
Виряк переименовал гору текстовых и графических файлов, после чего с наглой рожей подвесил табличку "Расшифрую всё обратно за бабло".
Самого червяка-то я выгоню, обновив НОД32 (впервые за год, кек) или качнув паучью КурИтку, но как выцеплять обратно то, что было по архивам? Форточка у родителей стоит седьмая.
реактор помоги пидоры помогите
Точно знаю, что это видео. Но вот чем открыть - загадка. Интернет молчит. Плееры/конвертеры не распознают.
Решил обратиться к самых великим умам планеты Земля.
Как открыть это чудо?
P.S. Вероятней всего там прон с карликами.
Отличный комментарий!
Если уж сам Иисус не может понять что с этим файлом делать, то чем мы, простые смертные, помочь то сможем? У бати спроси на крайняк.
Это точно видео? Вполне возможно что-то другое, поэтому плееры и не реагируют.
outlook Microsoft microsoft office Update
Microsoft выпустило обновление для Outlook которое блокирует вложения в письмах
Короче мелкомягкие закрыли одну дырку и породили новый баг.
Обновления Microsoft Office, выпущенные 13.06.2017, а именно KB3191898 (Outlook 2007) и KB3203467 (Outlook 2010)
Блокирует вложенные файлы в письмах, в конце имени которых перед расширением есть знаки препинания.
Например: блабла..doc ; блабла!!!.doc ;
Чтобы решить проблему, нужно переименовать файл или удалить эти обновления.
Может кому поможет.
нейросеть песочница апскейл инструкция
Как апскелить у себя дома
Краткая предыстория: решил посмотреть первый сезон покемонов, но захотелось, чтоб прям всё красивишно в 4к, потому начал искать варианты.
Машина 1: Стационарный ПК, MX Linux, R7 7700X, RX 7900XTX, 32 ГБ ОЗУ
Машина 2: Ноутбук Win10, R7 5800H, RTX 3060 Laptop, 16 ГБ
-----
Первым делом попробовал dandere2x (https://github.com/akai-katto/dandere2x), он основан на waifu2x. Итог: тестовый отрывок (20 секунд) обработан на машине 1 за ~5 минут, покадровое сравнение выгоды относительно просмотра видео без апскейла не выявило. Инструкции по установке, которыми я пользовался, если кому интересно:
-----
После этого я обнаружил Anime4K (https://github.com/bloc97/Anime4K), апскейлер в реальном времени, основной минус - работа с ограниченным кол-вом проигрывателей (1-3 в зависимости от ОС). Инструкции по установке и применению находятся по ссылке выше в зависимости от проигрывателя. Но я пользуюсь SMPlayer, так что вот инструкция:
1) Следуем инструкции mpv
2) Открываем файл input.conf, открываем настройки SMPlayer (ПКМ - сервис - настройки - дополнительно - MPlaeyr/mpv) и вставляем необходимый нам профиль в поле "параметры"
Например: вы хотите профиль "A", в input.conf вы видете строку:CTRL+1 no-osd change-list glsl-shaders set "~~/shaders/Anime4K_Clamp_Highlights.glsl:~~/shaders/Anime4K_Restore_CNN_VL.glsl:~~/shaders/Anime4K_Upscale_CNN_x2_VL.glsl:~~/shaders/Anime4K_AutoDownscalePre_x2.glsl:~~/shaders/Anime4K_AutoDownscalePre_x4.glsl:~~/shaders/Anime4K_Upscale_CNN_x2_M.glsl"; show-text "Anime4K: Mode A (HQ)"
В параметры вы копируете только то, что находится в кавычках (вместе с кавычками) после слова set и до слова show-text, то есть:
"~~/shaders/Anime4K_Clamp_Highlights.glsl:~~/shaders/Anime4K_Restore_CNN_VL.glsl:~~/shaders/Anime4K_Upscale_CNN_x2_VL.glsl:~~/shaders/Anime4K_AutoDownscalePre_x2.glsl:~~/shaders/Anime4K_AutoDownscalePre_x4.glsl:~~/shaders/Anime4K_Upscale_CNN_x2_M.glsl"
И добавляете перед этим: --glsl-shaders=, получая что-то вроде этого:
--glsl-shaders="~~/shaders/Anime4K_Clamp_Highlights.glsl:~~/shaders/Anime4K_Restore_CNN_VL.glsl:~~/shaders/Anime4K_Upscale_CNN_x2_VL.glsl:~~/shaders/Anime4K_AutoDownscalePre_x2.glsl:~~/shaders/Anime4K_AutoDownscalePre_x4.glsl:~~/shaders/Anime4K_Upscale_CNN_x2_M.glsl"
3) Profit
Естесственно комбинации клавиш для переключения профилей в таком случае не будет.
Стоит упомянуть, что Anime4K не сохраняет апскельнутую версию, так что каждый раз будет апскелить как в первый.
-----
Там же на сайте Anime4K было сравнение разных алгоритмов:
Очевидно, что после такого я захотел установить real-ESRGAN, потому что я хотел бы как раз сохранить себе апскельнутую версию, плюс он всё таки визуально получше.В результате визуально качество Anime4K (я использовал пресет для higher-end gpu) и Real-ESRGAN довольно близко, но некоторую разницу при сравнении заметить можно.
Обработка тестового отрезка (20 секунд) на машине 1 заняла ~56.5 минут (заработала только на CPU), на машине 2 - ~2 минуты. Были мысли перед постом проверить работу через ZLUDA (https://github.com/vosen/ZLUDA) недавно вышедшую прослойку между CUDA и видеокартами AMD, но на Debian пока нет ROCm, так что когда-нибудь...
Дальше инструкция по установке Real-ESRGAN на Win10 и Linux и бонусные батники для винды для удобства.
Собственно инструкция:
1) Установка ffmpeg на Win10 (на linux по идее предустановлено)
1а) Открыть powershell (под администратором)
1б) Установить chocolatey (https://chocolatey.org/install#individual)
- Ввести команду:
Set-ExecutionPolicy Bypass -Scope Process -Force; [System.Net.ServicePointManager]::SecurityProtocol = [System.Net.ServicePointManager]::SecurityProtocol -bor 3072; iex ((New-Object System.Net.WebClient).DownloadString('https://community.chocolatey.org/install.ps1'))
- Проверить, что всё установилось:
1в) Установить ffmpeg
- Ввести команду:
choco install ffmpeg -y
1д) Закрыть powershell
2) Создание python3 virtual environment (venv) (необходим установленный python3)
Windows:
- Открыть командную строку (cmd) (под администратором)
- Ввести команду, чтобы установить virtualenv:
pip install virtualenv
- Перейти в директорию, где хотите создать venv
cd /d "G:/AI"
# /d указывает на то, что директория будет на другом диске (G)
- Создать venv
virtualenv anyname-venv
# Вместо anyname-venv можно указать любое допустимое в win10 имя
Linux:
- Открыть терминал
- Перейти в директорию, где хотите создать venv
cd ~/AI
# ~ означает домашнюю директорию пользователя
- Создать venv
python3 -m venv ./.anyname-venv
# Первая точка означает текущую директорию
# Вторая точка - часть названия, просто файлы и папки, начинающиеся с точки считаются скрытыми
# Вместо .anyname-venv можно указать любое допустимое в linux имя
3) Активация venv (Нужно будет делать каждый раз, когда захотите запустить Real-ESRGAN) (делается из директории в которой мы вводили предыдущую команду)
Windows:
- Заходим внутрь
cd anyname-venv
cd Scripts
- Активируем
activate
Linux:
source ./.anyname-venv/bin/activate
4а) Переходим в папку куда мы скачали и разархивировали Real-ESRGAN
Windows:
cd G:\AI\Real-ESRGAN-masterLinux:
cd ~/AI/Real-ESRGAN-master
4б) Устанавливаем необходимые библиотеки
pip install basicsr facexlib gfpgan ffmpeg ffmpeg-python
Windows:
pip install -r G:\AI\Real-ESRGAN-master\requirements.txt
Linux:
pip install -r ~/AI/Real-ESRGAN-master/requirements.txt
# -r указывает, что мы передадим файл со списком библиотек
# файл находится в скачанной директории
python setup.py develop
4в) Для владельцев ВК Nvidia отдельно устанавливаем pytorch с поддержкой CUDA
- Переходим на сайт https://pytorch.org/get-started/locally/
- Выбираем ОС, версию Cuda и установщик (pip)
- Копируем и выполняем выданную команду4г) Правим код библиотек, чтобы он заработал
- Открываем файл ...\anyname-venv\Lib\site-packages\basicsr\data\degradations.py любым текстовым редактором (блокнот подходит)
Правим 8-ую строчку, из
from torchvision.transforms.functional_tensor import rgb_to_grayscale
Делаем
from torchvision.transforms.functional import rgb_to_grayscale
- Открываем файл ...\anyname-venv\Lib\site-packages\ffmpeg\_probe.py (Необязательно. Обязательно для обработки .mkv)
Правим 16-ую строчку, из
from torchvision.transforms.functional_tensor import rgb_to_grayscale
Делаем
args = [cmd, '-show_format', '-show_streams', '-of', 'json', '-count_frames']
# Чтобы для каждого видеофайла "вручную" считалось кол-во кадров, потому что, например, в .mkv нет данных о кол-ве кадров
4д) Правим код Real-ESRGAN, чтобы он заработал (или берём готовые файлы из гугл диска)
Если добавляли ручной подсчёт кол-ва кадров:
- Открываем файл ...\Real-ESRGAN-master\inference_realesrgan_video.py
Правим 35-ую строчку, из
ret['nb_frames'] = int(video_streams[0]['nb_frames'])
Делаем
try:
ret['nb_frames'] = int(video_streams[0]['nb_frames'])
except(KeyError):
ret['nb_frames'] = int(video_streams[0]['nb_read_frames'])
# Обращаем внимание на отступы (их можно сделать нажатием кнопки Tab)
Если запускаем на процессоре:
- Открываем файл ...\Real-ESRGAN-master\inference_realesrgan_video.py
Правим 272-ую (275-ую, если делали предыдущую правку) строчку, из
torch.cuda.synchronize(device)
Делаем
#torch.cuda.synchronize(device)
Правим 291-ую (294-ую) строчку, из
if num_process == 1:
Делаем
if num_process <= 1:
5) Запускаем обработку видео (желательно из папки Real-ESRGAN)
python inference_realesrgan_video.py --fp32 --suffix esrgan -i G:\AI\Real-ESRGAN-master\inputs\[Timber_Maniacs]_Pokemon_043_(041)_[Rus-Eng]_[XviD]_[219F48A8].mkv
# параметр --fp32 нужен, чтобы не было ошибки
# параметр --suffix указывает какой суффикс будет у выходного файла, по умолчанию: out. Например: исходный файл: "name.mp4", файл на выходе: "name_out.mp4" или "name_esrgan.mp4" в случае этой команды.
# параметр -i говорит какой файл обрабатывать (по идее можжно обрабатывать несколько файлов и всё такое, но оно как-то криво работает, так что только так)
# итоговые файлы будут сохраняться в папке .../Real-ESRGAN/results
6) Для WIn10 из гугл диска можно взять один из файлов с расширением .bat, чтобы облегчить себе запуск нескольких видео сразу
7) Profit
-----
Гугл диск: https://drive.google.com/drive/folders/1kxS7yC750WqSBmvGQyFVrEMTCFP9S96w?usp=sharing
inference_realesrgan_video-CPU.py и inference_realesrgan_video-CUDA.py переименовать в inference_realesrgan_video.py и заменить оригинал.
Real-ESRGAN-autostart(video).bat запускает в обработку все файлы, которые находятся в папке "G:/AI/Real-ESRGAN-master/inputs/". Его надо открыть в том же блокноте и отредактировать пути на соответствующие вашим.
Спасибо за внимание!
JoyReactor Visitor реактор реактор благотворительный
Обновление 1.0.0
Наконец релизная версия. Весь функционал необходимо было причесать, избавиться от спагеттикода, и сделать многие другие архитектурные изменения, в том числе для упрощения дальнейшей разработки. Переделок невероятно много, потому по любому что-то упустил в процессе тестирования. Уже по результатам публичной обкатки быстро сделаю багфиксы. Основные функциональные изменения:
1. Переделаны настройки. При добавлении нового функционала не будет возникать ошибок, а расширение не будет превращаться в кирпич. Так же есть технические изменения, потому старые настройки - усе. Нужно настраивать по новой
2. Добавлена кнопка сохранения всех постов, что есть на странице. Возможно будет полезно для скачивания закладок, или тегов
3. Кнопка быстрого скачивания теперь адаптируется под дизайн фендома, что бы не так сильно резать глаз
4. Добавлена возможность сделать префикс файла при быстром скачивании
5. Кнопка настроек вынесена в шапочку реактора, для упрощения доступа к ним, особенно актуально для firefox
6. Улучшена совместимость с более старыми версиями браузеров. На динозаврах работать не будет, но расширение не требует последних версий7. Исправлена ошибка когда субдомены joy., old. - считались за фендомы
8. Добавлена поддержка gif в формате webm/mp4
9. Пост больше не разворачивается полностью по нажатию по нему
10. Информацию о том, когда был просмотрен пост можно отключить
11. Добавлена новая опция. Не трогать просмотренный пост, если в нем есть непрочитанные комментарии
12. Теперь когда пост добавляется в просмотренное при прокрутке страницы - появляется небольшая анимация в виде зеленого затухания фона. Это можно отключить
13. Информация когда был просмотрен пост теперь не перезаписывается. Сохраняется первая дата просмотра поста
14. Для всех взаимодействий со страницей теперь используется авторизация через токен(привет koka). Потому теперь заблокированные посты ничем не отличаются от обычных. Количество не просмотренных комментариев, дата просмотра комментариев, подсветка непрочитанных комментариев, плюсы/минусы на постах и комментариях и т.д.
15. Подсветка тегов на которые вы подписаны/заблокированы теперь выполняется по ID. Таким образом не важно подписаны вы на основной тег, или его синоним. Тоже касается и добавления в исключения тегов
16. Синхронизация настроек и истории. Оно уже давно было реализовано, но это я делал чисто для себя, а меня заебало каждый раз вырезать этот функционал перед публикацией, потому решил сделать его общедоступным
16.1. Этот функционал по умолчанию отключен. Для синхронизации необходимо придумать пароль. Без пароля работать не будет
16.2. Для анонов тоже работает, но для них рекомендуется придумать более сложный пароль, потому как в создания хеш ключа для синхронизации используется ID пользователя, а для анона он будет null
16.3. При синхронизации придуманный пароль, ID пользователя и другая личная информация не передается. Только настройки(по запросу) и история просмотра(ID поста, дата просмотра)
16.4. Данные при синхронизации деперсонализированны. При синхронизации используется хеш ключ, сгенерированный у вас на компе, и даже при всем желании отличить одного пользователя от другого не представляется возможным
16.5. Данные привязаны к аккаунту и вашему паролю синхронизации. Забыли/Проебали их - пока. История утеряна. Тоже касается твинков
16.6. В любой момент вы можете удалить свою историю, если захотите. Кнопка "Очистить историю" очищает ее, в том числе и на сервере. Кнопка "Удалить нахуй все" делает соответствующее действие
16.7. Данные не хранятся бесконечно долго. Если за 3+ месяца не было никаких попыток синхронизации - они автоматически будут удалены с сервера
16.8. В качестве сервера хранения используется сервер баянометра
16.9. Синхронизация истории - не чаще чем раз в 12 часов. На настройки расширения это не распространяется
16.10. Для всех сомневающихся в приватности - код расширения открыт и доступен на github. Можете сами пойти и посмотреть как оно устроено
16.11. Ценность информации на что и когда вы дрочили имеет отрицательное значение
16.12. Информация на что и когда вы дрочили может быть отправлена вашей мамке, что бы она дала вам ремня
17. Много других мелких правок, которые не вижу смысла отдельно освещать, или тупо забыл
Вот такая вот она получилась, релизная версия. Очень много времени и усердия вложил, но результатом доволен. На этом пока что идей по каким либо доработкам функционала нет. В будущем возможно будет версия для m., но когда это будет, сказать сложно
Ссылки для установки/обновления:
Chrome - https://chrome.google.com/webstore/detail/joyreactor-visitor/jijpolapocjhdkacabaambnhpkhkkpem
Firefox - https://addons.mozilla.org/uk/firefox/addon/joyreactor-visitor/
GitHub - https://github.com/ExtraDJ/joyreactor_visitor
Кому не жмет карман - скинте на черешню, пока сезон не закончился. Спасибо
#Приколы для даунов PC Master Race ПК изображение webp Заноза в заднице Джанкарло Эспозито
Отличный комментарий!
Чего не скажешь про Jpeg-XL (JXL), кроме того что у него лицензия абсолютно открытая (благодаря которой джпг так взлетел) её автор (сам создатель джипега) в этот раз взялся за новый формат как следует, и он жмёт картинки гораздо эффективнее и качественнее в целом, поэтому его внедряют гораздо охотнее
Mortal Kombat фэндомы MK Gif
Игрок, скрывающийся под ником XVermillion нашел способ сделать играбельными некоторых персонажей Mortal Kombat X, которые встречаются в игре только в качестве противников. В частности, ему удалось сыграть за героя по имени Рейн. Чтобы получить доступ к одному из этих бойцов, пользователям необходимо переименовать несколько файлов в каталоге с игрой. По понятным причинам, эта методика доступна только владельцам PC-версии Mortal Kombat X.
нейросети нейромазня Stable diffusion NovelAI DreamBooth длиннопост
Тренируем модели через DreamBooth на конкретные образы.
Здравствуйте мои любители нейронного колдунства и прочих искуственно интелектуальных утех. Сегодня мы научимся тренировать уже готовые модели на образы которые мы хотим. Локально на нашем ПК без всяких Google Colab и Runpod.
Если я где то накосячил, поправьте в коментариях.
ДИСКЛЕЙМЕР! БУДЕТ ОЧЕНЬ МНОГО ТЕКСТА. Этот способ тренировки через DreamBooth подразумевает, что у вас в гробу установлена карточка (Nvidia скорее всего только поддерживается) с минимум 8-10 ГБ видеопамяти. Тренировка сетки уже куда более ресурсожрущий процесс, чем просто генерация картиночек. Ранее DreamBooth требовал минимум 24ГБ памяти. Так что пока я нашёл нужные материалы, проверил их и понял, как с этим работать, прошла не одна неделя... Стояла бы у меня 3090, то этот гайд вышел бы ещё в середине октября. но если всё же хочется побаловаться, то можно воспользоваться облачными google colab и runpod. Но я так же затрону гиперсети (Hypernetworks), результаты с ними куда менее презентабельные чем через dreambooth, но можно запустить на карточках попроще. Если вы всё же железо-бетонно готовы следовать дальше, прошу.
И так, продолжим. DreamBooth модель можно натренировать на свою рожу, свою собаку, любимую табуретку, или какого нибудь персонажа.
В данном посте я буду работать на модели NAI (NovelAI я буду сокращать в дальнейшем) ибо буду тренить на нашу Реактор-тян. Если хотите сделать своё лицо или, что то из нашего бренного мира то подойдёт обычная модель Stable Diffusion 1.4
В конце будет небольшой Q&A и заметки, дабы всю (почти) воду и рассуждения отградить от основной информации.
Я разобью гайд на несколько частей. Тренировка DreamBooth и тренировка Embeddings с Hypernetworks.
DreamBooth:
Знаю, что уже появился спобоб тренить DB (DreamBooth я буду сокращать в дальнейшем) через webui stable diffusion от AUTOMATIC1111 в виде загружаемого плагина, но чёрт, вы хоть видели сколько там настроек? Я устану вам объяснять каждую и вы умрёте от духоты, поэтому я выбрал более дружелюбное, отдельно загружаемое приложение - DreamBooth-gui - https://github.com/smy20011/dreambooth-gui скачиваем и устанавливаем его по инструкции приложеной на Гитхабе, не буду тут расписывать ибо и так много текста.
Запускаем приложение и видим первое, что нас просят сделать, а именно загрузить набор изображений на который мы хотим натренировать модель. Делаем их в разрешении 512x512, где надо фотожопим лишнее.
Как только залили изображения, я сделал 8шт, переходим на следующую вкладку Confin Trainer, здесь мы зададим нужные параметры и настройки. Рассуждения о зависимости некоторых параметров от других, пока где-то на уровне теории заговоров, но основные зависимости я объясню дальше.
И так, для начала выбираем модель. По умолчанию нам предложит CompVis SD v1.4, который оно подкачает с hugging face. Но сегодня я работаю с NAI поэтому указываю путь до папки с моделью. Сейчас я на версии программы v0.1.8. и она требует, что бы модель была конвертирована из .ckpt в diffusers. Вот ссылка на мою конвернутую модель NAI - https://drive.google.com/file/d/1BnZyUb9C5wjz7Lcp1Dn8JidZLQ4taQEy/view?usp=share_link
Далее указываем Instance prompt, это должно быть уникальное слово которого не должна знать модель, то есть никаких boy, girl, и имён персонажей которых может знать модель. В дальшейшем это название мы будем указывать среди промптов, что бы модель на это тригеррилась и генерила уже с учётом натренированности этого концепта.
Class prompt указываем ёмко, кратно, что мы тренируем. У нас один женский персонаж и раз уж модель NAI тренилась на датасете danbooru, то я и укажу женский тег от туда, а именно 1girl.
Training Steps я выставлю 1000, а Learning Rate 5e-6, но это крайне запутанные настройки, о них я побольше размусолю ниже в разделе с водой и по ходу текста.
Аргументы не трогаю.
Отлично, переходим к разделу тренировки, здесь нас попросит вставить наш Hugging Face Token. По идеи это нужно только если мы качаем модель SDv1.4 или прочую с Hugging Face, а у нас она локально на пк уже стоит, но всё равно просит, поэтому регаемся там и идём в настройках раздел с токенами https://huggingface.co/settings/tokens и создаём токен на WRITE и вставляем его в наше поле. Прописываем папку куда будут выгружаться все файлы после и проверяем, что бы стояла галочка, что бы модель генерилась потом в .ckpt файл в нашей папке вывода.
Иии жмём старт! И так теперь запасаемся терпением, можете заварить чай, помыться, выйти на улицу, потрогать траву, сходить в магазин и т.д, ибо процесс первого запуска НЕВЕРОЯТНО ДОЛГИЙ. Серьёзно, я сам в первый раз думал, что у меня, что то зависло. Минут 30 только оно подгружало нужные файлы, и убедитесь, что у вас на диске есть ещё место, ибо пару десятков ГБ на нём, этот процесс забьёт. Если увидите, что ошибок не вылезно, в папке \AppData\Roaming\smy20011.dreambooth были сгенерены картинки референсы по классовому промпту и вы не словили ошибку о нехватке видеопамяти (будет у многих вангую) то поздравляю, у вас пойдёт тренировка, и вы увидите, как у вас будут лететь надписи Steps ****% |▋▋▋▇| ***/1000 [**:** < 00:00, *.**s/it, loss=0.***,lr=5e-6]
На тренировку модели в 1000 шагов моей RTX 3080 потребовалось почти пол часа. Чтож, когда увидим сообщение о том, что всё готово, заходим в папку вывода, и переименовываем как хотим и переносим .ckpt файл в папку с моделями нашего stable diffusion.
Запустите SD, загрузите модель. Проверьте результаты, всё ли выглядит так, как должно, у меня получилось... приемлимо...
joyreactorchan, 1girl, orange hair, medium hair, antenna hair, blue eyes, freckles, foxy ears, white bardot top, orange overalls, orange collar with bell, gold hairpin, gold buckles
Negative prompt: lowres, bad anatomy, bad hands, text, error, missing fingers, extra digit, fewer digits, cropped, worst quality, low quality, normal quality, jpeg artifacts, signature, watermark, username, blurry, artist name, furry
Steps: 60, Sampler: Euler, CFG scale: 11, Seed: 3985740085, Size: 960x960, Model hash: e02601f3, Model: joyreactor, Denoising strength: 0.7, Clip skip: 2, First pass size: 0x0
Модель DreamBooth
Чистая NAI
Ну вроде неплохо. Но можно лучше.
У меня выходили и более презентабельные модели, чего стоит модель с моей рожей, что генерит меня с шансом 50%, а в остальных случаях Иисуса либо Джареда Лето либо двухголовую ебаку...
Вот пример с DB, а вот чистая NAI. Ну думаю, я бы мог вопроизвести похожий результат и без DB, но потребовалось бы куда больше промптов и попыток. Тем не менее, DB приближает качество и иполнение результатов, к тем, на какие мы тренировали, поэтому если тренируете на лицо, то оно даст намного чёткие и предсказуемые результаты, чем просто по запросу "лохматый бородатый мужик"
Если хотим закрепить результат и возможно улучшить, то рекомендую потренить и Textual Inversion - https://huggingface.co/docs/diffusers/training/text_inversion Это крошечная часть нейросети обученая на наборе картинок. требует поменьше ресурсов для тренировки, чем DreamBooth. С её помощью удобно воспроизодить стили и какие то объекты. Я потреню на том же датасете картинок, что и DB.
Тренировка Embeddings (Textual Inversion)
Идём в раздел SD webui который называется Train, и в первом подразделе Create embedding начинаем заполнять пункты.
Name - просто имя файла и в дальшейшем мы будем писать это название среди промптов, что бы задействовать нужный embedding. Поэтому я использую название, то же, что и у инстанс промпта в DB, что бы тригеррить их обоих разом.
В Initilization text вписываем описание персонажа, я описал его более подробно, ибо на реактор-тян оно почему то ловит затуп и генерит совсем шлак потом. А так обычно то же, что и class prompt в DB. Число векторов на токен я выставил 8, хотя чем больше это число, то тем больше примеров картинок лучше подготовить, но остановлюсь на этом.
Теперь идём в Preprocess images, вводим путь до папки с изображениями и туда, куда их выгрузит. Ставим галочку на Use deepbooru for caption, не уверен, будет ли у вас эта функция, если нету или не работает, поставьте в аргументах запуска SD аргумент "--deepdanbooru", и тогда точно всё будет ок. Эта функция создаст текстовое описание для каждого изображения в формате тегов с danbooru, так сетка лучше обучится. Если трените не на NAI моделе, а что то реалистичное, то советую использовать, Use BLIP for caption, создаст промпты как если бы их писали для работы с обычной моделью SD 1.4... Так же уделите время и вручную проверьте КАЖДЫЙ созданый текстовый документ, и сверьте его с картинкой, постарайтесь удалить ненужные промпты или добавить, то что считаете нужно, не всегда оно создаёт описание корректно. Да это муторно, но стоит без этого может натренить сетку не на то, что мы желаем.
И последний подпункт Train. Тут внимательно, можно ошибиться с пунктами и кнопками. Я помечу на скрине те пункты, которые мы трогаем, остальные игнорьте.
В embeddings выбираем наш созданый, в dataset directory указываем путь, куда мы выгружали изображения уже с описаниями, в prompt template file указываем путь до файла шаблона по которым оно будет трениться, я создал свой файлик, в котором внутри написано только [filewords] , прямо с квадратными скобками, это будет задействовать описания изображений которые мы создали раньше.
Save an image to log и save a cope of embedding, это параметры отвечающие за тестовое создание изображения на данном этапе тренировки и сохранинии текущего результата на момент шагов. Я генерирую изображение каждые 500 шагов и сохраняю прогресс каждые 1000, да бы проверить не произошла ли перетренировка модели, да бывыет и такое, её можно перетренировать, об этом после гайда...
И надеюсь вы не подумали, что я пропустил пункт с Embedding Learning Rate и Max Steps, то нет. Вот тут та же шляпа, что и раньше, и надо подбирать соотношения. В этот раз будем создавать поэтапно.
Для начала мы проведём тренировку на 200 шагов и Learning Rate 0.02, после увеличим число шагов до 1000 и уменьшим LR до 0.01, потом 2000 шагов и LR 0,005, 3000 и 0.002, 4000 - 0.0005 и в конце выставим 20000 шагов и скорость обучения на 0.00005. Чё страшно, запутались? Кароче, шляпа в том, что бы сетка не переобучилась, так мы её постепенно полируем, подробнее об этом после гайда в разделе с разными мыслями.
Вот выставили 200 шагов и 0.02 скорость, она прогонит по этим параметрам и закончит, не закрываем ничего, меняем параметры на следующие по списку, 1000 шагов и скорость 0.01 и опять жмём Train Embedding и опять идёт тренировка уже дальше с новыми данными. И т.д до конца. 20000 шагов золотая середина как по мне. У меня на это уходит около полутора часа, побольше, чем на тренировку DreamBooth, результат не будет сверх разиться, но будет чуть более в нужном нам направлении.
Вот примеры, того что по итогу вышло.
masterpiece, best quality, joyreactorchan, 1girl, orange hair, medium hair, antenna hair, blue eyes, freckles, foxy ears, white bardot top, orange overalls, orange collar with bell, gold hairpin, gold buckles, solo, standing, upper body
Negative prompt: lowres, bad anatomy, bad hands, text, error, missing fingers, extra digit, fewer digits, cropped, worst quality, low quality, normal quality, jpeg artifacts, signature, watermark, username, blurry, artist name, furry, portrait
Steps: 60, Sampler: Euler, CFG scale: 11, Seed: 370310831, Size: 768x768, Model hash: e02601f3, Model: joyreactor, Denoising strength: 0.7, Clip skip: 2, First pass size: 0x0
DreamBooth + Embedding
DreamBooth без Embeding
И без DreamBooth и без Embedding на чистом NAI
Ну Embedding иногда подтягивает, некоторые результаты, иногда может быть лишним. Довольно ситуативная и спорная вещь, но вот на DreamBooth сразу узнаётся Реактор-тян, нежели на обычной NAI с теми же хорошо подобранными промптами.
И да, знаю, что вероятно будут просить уже готовую модель, так что держите ссылки на модель на Реактор-тян и готовый Embedding:
https://drive.google.com/file/d/1s2z1grZvNdVxkw5uHJQIWKecgeV39tWp/view?usp=sharing
https://drive.google.com/file/d/1pft2NvHGi5xaJ61LctRc2Lf4aixHke0Z/view?usp=sharing
Лучше пусть кто то забэкапит, а то мало ли я буду облако чистить.
Hypernetworks
Если не получилось натренить DreamBooth, то попробуйте гиперсети. Тоже прикольные результаты можно получить, если постараться.
Тренить гиперсеть на реактор-тян я не буду, поэтому опишу как делал ранее с другими вещами. Если желаете ознакомиться с материалом, по которому я и сам тренировался, прошу - https://github.com/AUTOMATIC1111/stable-diffusion-webui/discussions/2670
Процесс тренировки схож с тренировкой embeddings.
Так же в заходим в раздел Train, и уже в подпункт Create Hypernetwork. Имя гиперсети пишем какое хотим, без разницы, модули 768 320 640 1280 оставляем как есть.
Теперь тут свои завертоны пойдут, просят ввести структуру слоёв гиперсети:
Для широких гиперсетей: 1, 3 ,1 или 1, 4 ,1
Для глубоких гиперсетей: 1, 1.5, 1.5, 1 или 1, 1.5, 1.5, 1.5, 1 или 1, 2, 2, 1
Широкие: подходят для запоминания новых вещей, таких как конкретное животное, человек или объект.
Глубокие: подходят для обобщения вещей, таких как стили.
Поэтому исходите из этого, для реактор-тян я бы выбрал 1, 3, 1
Следующий пункт, select activation function of hypernetwork:
Для аниме (NAI, Waifu и т. д.): Selu, Gelu, mish
Для фотографий: Relu, swish, mish,leakyrelu, rrelu
Теперь Select Layer weights initialization. Для аниме ставим xaviernormal. Если фото и т.д то по умолчанию normal.
Остальные галочки ниже необязательны.
Потом так же подготавливаем изображения как и с embeddings, это я не буду повторять и переходим сразу в Train.
Выбираем так же как и при тренировке embedding путь до шаблона, папку с датасетом из наших картинок с текстом, сохранение результатов и картинок.
Теперь выбираем нужную гиперсеть в выпадающем списке Hypernetworks. Изменять будем раздел Hypernetwork Learning rate, а не Embedding Learning rate, как раньше и жать будем на Train Hypernetwork, а не Train Embedding.
Вот примеры хороших соотношений последовательностей Steps к LR:
Для обычных людей - 0.00005:100, 0.000005:1500, 0.0000005:10000, 0.00000005:20000
А вот для извращенцев - 0.00005:100, 0.000005:1500, 0.0000005:2000, 0.00005:2100, 0.0000005:3000, 0.00005:3100, 0.0000005:4000, 0.00005:4100, 0.0000005:5000, 0.00005:5100, 0.0000005:6000, 0.00005:6100, 0.0000005:7000, 0.00005:7100, 0.0000005:8000, 0.00005:8100, 0.0000005:9000, 0.00005:9100, 0.0000005:10000, 0.000005:10100, 0.00000005:11000, 0.000005:11100, 0.00000005:12000, 0.000005:12100, 0.00000005:13000, 0.000005:13100, 0.00000005:14000, 0.000005:14100, 0.00000005:15000, 0.000005:15100, 0.00000005:16000, 0.000005:16100, 0.00000005:17000, 0.000005:17100, 0.00000005:18000, 0.000005:18100, 0.00000005:19000, 0.000005:19100, 0.00000005:20000. Этот вариант выглядит монструозно, но я его тестировал лично, и довольно хорошо работает при условии, что вы подобрали хорошие примеры изображений и текстовые описания к ним.
И так же поэтапно треним как и embedding... ВСЁ!
ВОДА и Q&A!!!
Ахренеть, как буд-то по новой пишу дипломную, но только с надеждой в том, что кому то это поможет и он воспользуется этим материалом, либо же просто покекает с того, что я потратил на это несколько недель, начиная от поиска нормального способа запуска DreamBooth и заканчивая десятком часов на попытки разобраться в особенностях и нюансах, ну и этот текст я пишу уже где то часов 6 нонстоп, набралось уже 2 c половиной тысячи слов! серьёзно, надо хоть воды налить себе, ха отличная шутка.
1)Q: Почему так сложно?
A: А кому легко?
2)Q: Можно ли было уместить это в 5 абзацев на 500 слов в общем?
A: Не знаю, пишу как умею, кто умер от духоты и захлебнулся в воде, простите)
3)Q: У меня видеокарта ******, у меня заработает?
A: Не знаю. Скорее всего на AMD, вообще никак. Если у вас есть в карте тонна видеопамяти, то должно. Либо попробуйте запустить, через Google Colab, Runpod и прочие облака с арендой видеокарт и работы с их мощностями. Я НЕ БУДУ ПИСАТЬ ГАЙД ПО КОЛАБУ, НЕЕЕЕТ!
4)Q: Не надоело ли писать вопросы и ответы?
A: Да, чёт устал, задавайте в комментариях, отвечу как смогу.
Теперь ВОДА и прочие размусоливония которых, я старался избегать в основной части гайда.
Подойдите к этапу подбора изображений для тренировки максимально отвественно и серьёзно, ибо от того какие изображения вы скормите, во многом будет зависить результат. Так же качество > колличество, будет хорошо если вы задействуете 10 годных примеров, нежели 30 посредственных. Я стараюсь выдерживать единый стиль изображений, если одна картинка будет от карандаша, другая 3D CGI, а третья в стиле Пикассо, то выйдет так себе и выйдет мешанина из этого всего. Если тренирую персонажа, то стараюсь делать акцент на лице, тело можно будет и промптами задать, но вот получить нужное лицо сложно, ну за этим и нужен DB.
Во многом из за конвертации .ckpt в diffusers я неделю ломал голову, ибо обычным скриптом предназначеным для этого у меня не выходило, но как видите удалось, а именно при помощи гуглколаба от TheLastBen. Необходимо было залить модель в колаб, прогнать через его скрипт, и выгрузить результат себе на гугл диск. В скорой версии Dreambooth gui v.0.1.9. появится возможность использовать .ckpt и программа сама будет его конвертировать.
Вот теперь мы пришли к одной из самых важных вещей, во круг которых строятся различные догадки и теории заговоров... А именно зависимость количества шагов тренировки (Training Steps) и скорости обучения (Learning Rate или LR).
Число шагов обучения ~= кол.во изображений * 100, у меня 8 изображений, поэтому оптимально было бы 800, но я округлил до 1000, потому что хочу. По скорости обучения ещё сложнее, но держим в голове несколько вещей, больше steps = меньше LR, и наоборот. Так же главное не перетренировать модель. Представьте этот процесс как работа по дереву. У вас есть бревно и вы хотите обтесать из него фигуру. Поставите слишком высокий LD и срежете слишком много кусков и модель будет перетренирована и бракована. А поставите если поставите слишком низкий LR, то представьте, как мелким скальпелем обтёсываете огромное бревно дуба до размера фигурки.
Пока тестил эту байду, знакомый кидал идеи на чё попробовать тренить, приложу ещё примеры DB и embedding под персонажа Макимы из Человека Бензопилы (Аниме), но её я уже делал на немного допилиной модели - Anything-V3.0, про неё уже сделали пост - https://joyreactor.cc/post/5385144
masterpiece, best quality, makimacmdb, makima \(chainsaw man\), 1girl, medium hair, pink hair, sidelocks, bangs, braid, braided ponytail, eyebrows visible through hair, orange eyes, ringed eyes, breasts, medium breasts, shirt, collared shirt, shirt tucked in, black pants, suit, business suit, formal jacket, long sleeves, necktie, black necktie, light smile, expressionless, looking at viewer, solo, gradient background, cinematic, filmic, telephoto, depth of field, lens distortion, lens flare, white balance, strobe light, volumetric lighting, dramatic lighting, little haze, ray tracing reflections, detailed, intricate, elegant, realistic
Negative prompt: lowres, bad anatomy, bad hands, text, error, missing fingers, extra digit, fewer digits, cropped, worst quality, low quality, normal quality, jpeg artifacts, signature, watermark, username, blurry, artist name, ((extra fingers)), ((poorly drawn hands)), ((poorly drawn face)), (((mutation))), (((deformed))), ((bad anatomy)), (((bad proportions))), ((extra limbs)), glitchy, ((extra hands)), ((mangled fingers)), dark skin, hair ornament , troubled eyebrows, big breast, yumemi riamu
Steps: 60, Sampler: Euler, CFG scale: 11, Seed: 1316407258, Size: 896x896, Model hash: e02601f3, Model: makimaANY, Denoising strength: 0.7, Clip skip: 2, First pass size: 0x0
DreamBooth + Embedding
DreamBooth и без Embedding
Без DreamBooth и без Embedding
Как и писал выше, иногда Embedding лишний, некоторые результаты, лучше без него, некоторые с ним. Сутуативная хреновона, но лучше будет, чем нет.КОНЕЦ.
Отличный комментарий!