ITСooky

IT-рецепты съедобные и не очень!

Генерируем нейросетью Stable Diffusion свои картинки по текстовому описанию!

дата 19.02.2023

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

Ажиотаж по нейросетям понятен — они пугают качеством результата… художников и прочих авторов. А нам не художникам нейросеть просто дает готовый инструмент для воплащения своих задумок — фотоаппарат вот тоже готовый инструмент дл воплащения сових задумок, но художники что-то не просят его запретить-ограничить!

Сегодня на Ubuntu ставлю нейросеть Stable Diffusion от stablediffusionweb.com версии 2.1, сразу скажу поздно заметил что в ней отключен NSWF контент, не училась на нем, это есть в старых версиях до 1.5, ну кому оно надо если!

Это нейросеть по описанию генерирует картинки. Как описывать очень важно, вот фотка сверху не сразу получилсь, сначало вот что получалось:

Все важно, выбор слов, их положение в предложении и все равно это лотерея получаестя примерно 2 из 10 того что задумывалось!

И картинка в начале статьи не совсем то что задумал, просто понравилось как нейросеть это нарисовала, я заказывал: «Детальная средневековая картина голой женщины в шлеме штурмовика Star Wars на голове вооруженная световым мечем скачучщая на лошади по природе», на английском конечно. И вот на подборе слов можно зависнуть на весь день, нереальная игруха получается для вашей современной видео карты!

Видео карта подойдет от 8Gb памяти и с CUDA, больше памяти больше потоков можно запустить на обработку!

Установка Stable Diffusion
Тут все с привленчением Python а на нем все зависит от конкретных версий так что нужно ставить оболочку прокладку, чтобы все не ломалось при установке. Я на Ubuntu для этого использую Conda некоторые ставят Anaconda, но я конду она меньше!

Скачиваем минималистичную версию Conda
wget https://github.com/conda-forge/miniforge/releases/latest/download/Miniforge3-Linux-x86_64.sh
и запускаем установку
bash Miniforge3-Linux-x86_64.sh
На все вопросы отвечаем да при установке

Закрываем открываем окно терминала Ubuntu выполняем
conda config --show
Что-то показывает значит работает

Создаем окружение под Stable Diffusion
conda create -n SD python=3.10
Активируем его
conda activate SD

И все дальше делаем уже в нем. Нам нужен авто установших и веб интерфейс, вот он github.com/AUTOMATIC1111
git clone https://github.com/AUTOMATIC1111/stable-diffusion-webui.git
переходим в папку и запускаем
cd ./stable-diffusion-webui
bash ./webui.sh

Он в конце скажет нет модели, дай модели

Идем сюда huggingface.co/stabilityai/stable-diffusion-2-1/tree/main и качаем модель v2-1_768-ema-pruned.ckpt тут их четыре варианта, и наверное чем то отличаются.

Скачать можно коммандой сразу и кладем в папку ./models/Stable-diffusion/
wget https://huggingface.co/stabilityai/stable-diffusion-2-1/resolve/main/v2-1_768-ema-pruned.ckpt

Опять запускаем
bash ./webui.sh

И в браузере открываем URL
http://127.0.0.1:7860/

Наша модель сразу работать не будет надо пойти в Settings и в поле Quicksettings list написать:

sd_model_checkpoint, upcast_attn

Чтобы найти эту настройку надо нажать на старинце Settings вот это Show all pages. После нажимаем Apply settings и Reload UI и на главной появится настройка Upcast cross attention layer to float32 она должна быть включен для моделей 768, для 512 надо отключать.

И возьмем простой текст и сгенерируем кратинку с настройками по умолчанию
текст

Dragon flying on winter sky

Настйроки и результат

Так себе получилось изменим текст и настройки Sampling steps поставим 99 и CFG Scale ставим 11.5

Detailed paint Dragon flying on winter sky


Картинка получилась совершенно другая но более детальная и адекватная!

Тут еще можно попробовать разные методы в Sampling method а так же ставить Batch count например 20 и не ждать до конца а жать Skip если нейросеть стало не то что хочется нам рисовать, немного времени съэкономите.

Это не все возможности Stable Diffusion во вкладке img2img можно на вход нейросети давать и картинку и текст, но результат получается далек от картинки, хотелось бы чтобы черты лица сохранялись… но может надо просто подобрать настройки нужные!

А я все генерирую в txt2img с тектсом

detailed medieval painting of a naked woman  wearing star wars trooper helmet on her head and armed with light saber riding a horse on nature landscape 

Настройки

Вот удачные результаты, если например не заморачивается и не считать количество пупков. А так да хорошо — все в шлеме, но не всегда голые и не всегда на лощади, но лошадь есть!












И не удачные, тут проблемы с количеством конечностней или шлем буквально на голове, а иногда на лошади! Лошадь переходяшая в всадника!!!









Разные модели дают конечно разные результаты, кто как натренирован!

Вот результат anything-v4.5 — модель убученная без цензуры, с упором на Anime! И сразу видно что без цензуры, ближе к тому что я задумал, но вот как выглядит шлем имперского штурмовика не очень знает!

Мне особенно вот это произведение anything-v4.5 понравилось! Все отрисованно со смыслом и так качественно, даже хвост лошади не в том месте придает — чисто анимешный подход!

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

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

P.S.


Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *