Первая страница

Stable Diffusion

установка и запуск локально
Онлайн: РИСОВАЛКИ | ИГРЫ | РЕЛАКС программы

О Stable Diffusion

Stable Diffusion – это программный код (движок), работающий по принципу искусственного интеллекта, предназначенный для генерации статических изображений по текстовым запросам. Код распространяется и работает абсолютно бесплатно в отличие от некоторых альтернативных нейросетей типа DALL-E 2. Ваш компьютер, прежде всего, должен удовлетворять минимальным требованиям для возможности установи и работы Stable Diffusion. Особое внимание обращается на видеокарточку (не менее 6 гб видеопамяти). Во время установки проводится предварительный тест вашего оборудования. Инструкция написана для пользователей Windows, но схема понятна и для других ОС.
Для установки потребуется:

  • Язык программирования Python.
  • Система управления версиями git.
  • Программная начинка движка.
  • Обученная модель.
Устанавливал на свой стационарный компьютер Windows 10 x64.

Python 3.10.6

На этом интерпретируемом языке написан программный код многих скриптов движка. Установите Python версии 3.10.6. Именно эта версия рекомендуется и я не стал экспериментировать, установил у себя именно ее. Скачивается с официального сайта: https://www.python.org/downloads/windows/. При установке отметьте пункт "Добавить Python в переменную PATH".

Система git

Это система управления версиями ПО, нужная для скачивания дополнительной оснастки, не вошедшей в дистрибутив движка. Скачивается с этой страницы: https://git-scm.com/download/win. Установите на свой компьютер.

Программный код Stable Diffusion

На GitHub есть программный код и интерфейсная оболочка движка: https://github.com/AUTOMATIC1111/stable-diffusion-webui. Нажмите на кнопку [Code] вверху справа и загрузите ZIP-архив со Stable Diffusion WebUI. Распакуйте в удобное место на своем диске так, чтобы путь не содержал пробелов или кириллических символов (ибо могут быть проблемы).

Модель движка

Это довольно тяжелый файл, более 4 гб. Когда я устанавливал Stable Diffusion для скачивания была доступна версия модели 1.5. Скачивать со страницы https://huggingface.co/runwayml/stable-diffusion-v1-5. Этот сайт требует авторизации. Я авторизовался через свой Гугл-аккаунт.
После скачивания надо файл v1-5-pruned-emaonly.ckpt скопировать в папку движка \models\Stable-diffusion\ и переименовать в model.ckpt (не понял, обязательно ли переименовывать, но экспериментировать не стал, потом в эту папку можно много моделей скопировать не переименовывая).

Настройки и конфигурирование

Теперь надо запустить батник webui-user.bat из корневой папки движка, который в свою очередь запустит другой батник и кучу питоновских скриптов для проверок, настроек и конфигурации пользовательского интерфейса. Процесс не быстрый. Успеете выпить кофе. При всем благополучии увидите строку:

Running on local URL: http://127.0.0.1:7860/

– это значит, все нормально, можно в браузере переходить по адресу http://127.0.0.1:7860/ и пользоваться нейросетью.

Подводные камни

Я столкнулся с двумя преградами на пути к счастью, которые преодолел. Поведаю:

  • После запуска webui-user.bat не прошло и пяти минут, как на экране консоли увидел надпись типа такой, что тест CUDA не проходит. Поискал в интернете выход. Советуют применить аргумент --skip-torch-cuda-test. Этого аргумента требует скрипт launch.py, но лучше его прописать в файле webui-user.bat так: set COMMANDLINE_ARGS=--skip-torch-cuda-test
  • После открытия в браузере интерфейса нейросети по адресу http://127.0.0.1:7860/ любая попытка сгенерить картинку завершалась фиаско – никакой картинки и ошибка: RuntimeError: "LayerNormKernelImpl" not implemented for 'Half'. Снова в интернете нашел совет – использовать аргумент --lowvram --precision full --no-half.

В итоге я запускаю webui-user.bat с такой в нем отредактированной строкой:

set COMMANDLINE_ARGS=--skip-torch-cuda-test --lowvram --precision full --no-half

и все работает. Запуск webui-user.bat – это старт программы. Без него по адресу http://127.0.0.1:7860/ ничего не будет. Закрытие окна консоли – это закрытие программы. Так что, на http://127.0.0.1:7860/ поставьте закладку в браузере. Как было сказано выше, запуск webui-user.bat процесс долгий. У меня самый первый раз процесс занял минут 10-15. Но все последующие запуски проходят быстрее – за минуту.

Интерфейс

После успешной установки и запуска webui-user.bat зайдите в своем браузере по адресу http://127.0.0.1:7860/ – увидите интерфейс Stable Diffusion:

Прежде всего выберите модель в поле Stable Diffusion checkpoint вверху слева. Это файл *.ckpt, который вы скачивали в процессе установки.

ЗАКЛАДКИ

txt2img – Перевод текстового запроса в картинку. Здесь разворачиваются основные баталии пользователя с нейросетью. Иной раз составить правильный текстовой запрос (prompt) труднее, чем нарисовать самому. В самом простом случае вы описываете на английском вашу будущую картинку и нажимаете большую кнопку [Generate], ждете, ориентируясь на прогресс-бар окончание работы, кликаете на картинку (если задали несколько) и нажимаете кнопку [Save], ниже появится ссылка [Download] – по ней ваша картинка попадает в папку ваших загрузок. Поле Prompt – то, что вы хотите, поле Negative prompt – то, что не хотите видеть.
img2img – Генерация картинки на основе существующей. Можно делать вариации существующей композиции или на подзакладке Inpaint создавать область-маску на картинке и в эту область впечатывать новую картинку по новому запросу.
Extras – увеличение разрешения. Без потери качества. И даже с улучшениям благодаря дополнительным настройкам. Например, можно исправить нерезкий фотопортрет – увеличить или просто с тем же разрешением улучшить при выборе Upscaler 1 = ESRGAN_4x и GFPGAN visibility = 0.9.
Смотри ПРИМЕР, как получается улучшить лицо.
Checkpoint Merger и Train – служебные режимы, использующиеся для тренировки нейросети и слияния разных её моделей.
Settings – настройки как интерфейса, так и нейросети.
Extensions – установка расширений, скриптов и дополнительного функционала. Если у вас есть адрес git-репозитория расширения, то на подзакладке Install from URL нужно ввести url и нажать [Install]. Репозиторий будет скачан в папку extensions. А на подзакладке Available можно вызвать список всех доступных расширений по кнопке [Load from], остановиться на нужном и нажать [Install] в его строке. После окончания скачивания надо вернуться на подзакладку Installed и перегрузить модель по кнопке [Apply and restart UI].

ПАРАМЕТРЫ

Sampling steps – количество итераций, требующихся для генерации картинки. В общем, чем больше, тем четче, тем больше времени. Но это не всегда так.
Sampling method – Это разные программные АЛГОРИТМЫ. Популярные: Euler a, LMS, PLMS, DDIM. Для каждого из алгоритмов есть разумно-предельное значение Sampling steps. Например, для Euler a – это 25, для LMS – это 50.
Restore faces – рекомендуется для создания портретов.
Tiling – рекомендуется для создания текстур.
Batch count – количество генерируемых вариаций по одному и тому же запросу.
Batch size – количество групп за раз, состоящих из Batch count. Т.е., это множитель для Batch count.
CFG Scale – config scale – насколько точно результат должен соответствовать текстовому запросу. Чем выше значение, тем точнее. Чем меньше значение, тем больше позволяется нейросети фантазировать. Считается оптимальным знчение от 7 до 10.
Seed – программисты поймут. Это значение, которое влияет на выбор вариации. Значение "-1" означает, что нейросеть сама выберет вариацию с определенным номером и этот номер напишет под результирующей картинкой. Потом этот номер можно подставить при следующем запросе, чтобы вариация была выбрана прежняя.
Script – выбор скрипта, например, для генерации подборок изображения с пошаговым изменение каких-то параметров. См. ниже видео по скриптам.

Полезные советы

Имею непродолжительный опыт работы с Stable Diffusion, но какие-то наблюдения уже есть, которые пригодятся новичку.

Negative prompt. Чтобы с самого начала вас не угнетали уродливые картинки, созданные по неопытности, можно взять за правило всегда держать в поле Negative prompt следующую запись:

deformed, bad anatomy, disfigured, poorly draw face, mutation, mutated, extra limb, ugly, disgusting, poorly draw hands, missing limb, floating limbs, disconnected limbs, malformed hands, brully, ((((mutated hands and fingers)))), watermark, watermarked, oversatureted, censored, distored hands, amputation, missing hands, obese, doubled face, doubled hands

Это токены, которые не должны реализовываться нейросетью.

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

tiny cute hedgehog toy, standing character, soft smooth lighting, soft pastel colors, 3d blender render, polycount, modular constructivism, pop surrealism, physically based rendering, square image

Самое ключевое слово того, кого мы хотим видеть, я выделил черным шрифтом – вы его замените на свой персонаж.
Еще помните, что в запросе (prompt + negative prompt) должно содержаться не более 75 токенов (сущностей, отделенных друг от друга запятой или переводом строки).

Запоминание стилей. Содержание полей Prompt и Negative prompt можно запоминать, собирая в коллекцию, чтобы в любой момент их поместить в эти поля. Это делается по кнопке-дискетке справа от этих полей. При нажатии на нее у вас попросят дать названия стилю. Потом в списке Style 1 этот стиль можно выбрать и нажать кнопку-лист справа от полей промптов. Другой путь работы со стилями – напрямую в файле styles.csv, лежащим в корне движка.

Разнообразие моделей. Моделей *.ckpt люди уже наделали много под разные специфические стили и задачи. Кстати, расширение файлов моделей происходит от слова check point (пропускной пункт). А еще есть формат для моделей *.safetensors. Модели можно скачивать с вышеназванного сайта https://huggingface.co/. Примеры моделей:
sd-v1-5-inpainting.ckpt – лучше стандартной модели работает с inpainting и outpainting на закладке img2img.
f222.ckpt – славится усиленной детализацией генерируемых изображений.
PaperCut_v1.ckpt – очень реалистично воспроизводит стиль вырезания из бумаги (аппликации). Для этого стиля в prompt обязательно надо вставлять ключевое слово PaperCut.
deliberate_v1.safetensors – по мнению XpucT, создателя этой модели, она лучшая на рынке. Скачивается ЗДЕСЬ.
v1-5-pruned.ckpt – применяется для обучение своей модели с помощью своих фоток...
Модели копируются в папку /models/StableDiffusion/, файлы можно переименовывать. В web-интерфейсе модель выбирается в селекте Stable Diffusion checkpoint. После копирования или переименования консоль webui-user нужно перезапустить, чтобы интерфейс воспринял обновление списка. Перечисленные модели весят примерно одинаково – больше 4 гб. Умеют они всё, но имеют свои узкие преимущества в перечисленных мной моментах.
Пользователь может создать легкую свою собственную модель на закладке Train, натренировав ее, например, на фотографиях своего лица. Такая модель будет немного весить, но будет уметь лишь генерить лицо, похожее на ваше, по вашему описанию. Например, веселое/грустное/плачущее лицо, или мужчина 20/40/80 лет... Такую локальную модель начинают делать тут: Train > Create hypernetwork. Если вы хотите свою локальную модель встроить в существующую, чтобы иметь унимерсальную модель + ваша вставка, то это делается тут: Train > Create embedding.

Синтаксис prompt. Примеры и объяснения:
((example)) – приоритет слова, чем больше парных скобок, тем выше.
(example:1.2) – вес токена от 0 с шагом 0.1 (по умолчанию 1). Есть горячие клавиши: выделить токен, Ctrl + ↑, установится на 1, потом при зажатой Ctrl регулировать меньше или больше 1 с помощью кнопок-стрелок "вверх" или "вниз".
a woman 38yo – женщина 38-и лет. Для усиления эффекта можно взять ключ в скобки (38yo), но работает и без скобок.
a car red | yellow | green – это матрица при включенном скрипте Prompt matrix (будет 9 картинок машинки в таблице 3х3 с разными цветами и пересечением цветов).

Inpainting. Внедрение нового изображения в имеющееся вместо маски. Происходит тут: img2img > Inpaint. Надо загрузить изображение в предварительное окошко. Потом кисточкой в виде черного кружка закрасить участок, который требуется заменить. В поле prompt написать, на что заменить. Нажать [Generate]. Есть настрока параметров. С помощью этого инструмента можно и просто убрать объект из изображения, заменив его релевантным фоном.

Outpainting. Расширение холста изображения с дорисовкой в новых областях содержания промпта. Происходит тут: img2img > Inpaint > выбрать скрипт Outpainting mk2. Надо с помощью галочек отметить сторону или стороны, куда будет происходить расширение (left, right, up, down) и ползунком Pixels to expand выставить в пикселах размер расширения. Нажать [Generate]. Есть настройка других параметров.

Стилизация фото. Довольно востребованная прихоть пользователя – имеющуюся фотографию стилизовать под арт какого-то художника. Нейросеть ассоциируется с иным подходом, она как бы фантазирует, придумывает что-то свое на основе промпта. Мы же в данном случае хотим отдать на откуп фантазии только стиль, а все черты лица оставить как на оригинальной фотографии, чтобы родственники узнавали.
Это делается на закладке img2img. Во-первых, надо забросить в левое окно вашу фотографию. Самыми важными параметрами для данной операции будут: • CFG Scale – низкие значения меньше меняют исходную картинку, но при этом артистический стиль, заданный в prompt, будет слабее выражен. После 9 увеличится шанс артефактов.
Denoisising strength – определяет, как сильно нейросеть будет фантазировать, отдаляясь от фото, но приближаясь к стилю из промпта. На практике, 0.3 - слабая ретушь. 0.5 - сохранит позу и, может быть, мелкую мимику, 0.6 и выше - начинает терять позу и фантазировать.
Опытным путем пришел к такой оптимальной комбинации, когда хочу получить свой портрет по свой фотке в стиле какого-то художника:
CFG Scale = 8-10; Denoisising strength = 0,3-0,5.
Еще отметка Restore faces приближает результат к фото, но мне не фото нужно, а картина, поэтому я эту опцию не включаю. См. ПРИМЕР.

Матрица изображений. Очень полезная возможность для эксперименов с параметрами. Для этого задействуются скрипты из поля Script:
Promtp matrix – в промпте перечислите несколько ключевых слов через вертикальную черту и у вас будет сгенерировано несколько картинок за один раз, на каждой из которых будет действовать любое пересечение слов из перечня. Например, запрос "a teacher | sad | happy | tears" даст 8 картинок учителя в разном настроении: грустном, весёлом, грустном+слёзы, веселом+слёзы, грусном+весёлом, слёзы, грусном+весёлом+слёзы, ничего. Обратите внимание, что первое ключевое слово начинается после первой | и после последнего ключевого слова ничего не должно быть.
X/Y plot – с помощью этого скрипта можно по шагам изменять самые разные параметры и составлять двухмерную таблицу изображений на пересечении этих параметров. Например, можно X type выбрать Sempler и в соседнем поле X values перечислить через запятую: Euler a, LMS, DDIM. Аналогично по Y выбрать CGF Scale и перечислить 7, 9, 11. В результае исполнения какого-то промпта получите таблицу 3x3 с пересечениями значений этих параметров.
X/Y plot (Prompt S/R) – удобно перечислять некоторые значения из промпта. Например, хочу один и тот же промпт сгенерить в нескольких картинках в стилях разных художников за раз. Выбираю скрипт X/Y plot и значение по X выбираю Prompt S/R. Не задействую Y. В промпте пишу "a classroom, by Jim Davis, teacher woman in glasses near the desc". В поле X values пишу имена художников через запятую Jim Davis, Hovard Chaykin, Hayao Miyazaki. В итоге у меня сгенерятся три картинки в разных стилях. Обратите внимание на промпт: то, что надо перечислять должно находиться между первой и второй запятыми – это Jim Davis он должен совпадать с первым художником из поля X values.

ControlNet. Это не просто расширение, это надстройка над Stable Diffusion со своими локальными моделями, препроцессорами и интересными функциями. Мне понравились две scribble и openpose. Первая функция scribble позволяет из ваших каракулей генерить стильную картину. Каракули помогают строить четкую композицию, а стандартный промпт описывает всю картину. Вторая функция openpose позволяет по скелету человека генерить точные позы того персонажа, которого вы укажете в промпте.
Интерфейс sd-webui-controlnet устанавливается стандартно на закладке Extentions. Потом скачиваются нужные модели, в нашем случае control_scribble-fp16.safetensors и control_openpose-fp16.safetensors ОТСЮДА и копируются в папку /models/controlnet/.
Для использования scribble надо включить ControlNet (галка Enable) на закладке txt2img, выбрать Preprocessor=scribble, выбрать Model=control_scribble-fp16.safetensors, очистить холст для рисования в ControlNet кнопкой [Create blank canvas], нарисовать сценку, написать промпт и нажать [Generate].
Для использования openpose желательно установить еще расширение Posex, которое позволяет грамотно настроить скелет. Устанавливается стандартно на закладке Extentions по URL: https://github.com/hnmr293/posex.git. Потом на закладке txt2img открыть плашку Posex и поставить галку Sent this image to ControlNet, настроить скелет, включить ControlNet (галка Enable), выбрать Model=control_openpose-fp16.safetensors (Preprocessor не выбирать!), написать промпт и нажать [Generate].
А для чего же тогда Preprocessor=openpose? Его включать тогда, когда вы загружает существующую фотографию в блок ControlNet и хотите по какому-то промпту изобразить другого персонажа с точно такой же позой. В результате нейросеть сначала сама просчитает скелет и по нему выполнит заказ из промпта.

Color sketch tool. Очень интересный функционал для генерации картины по вашему цветному(!) наброску. По умолчанию он недоступен после штатной установки Stable Diffusion. Чтобы его задействовать надо в батнике webui-user.bat дописать в COMMANDLINE_ARGS аргументы --gradio-img2img-tool color-sketch. После запуска с такими аргументами на закладке img2img должна появится подзакладка Sketch. Если она не появилась, не все потеряно. Есть лайфхак: загрузите в поле для изображения любую картинку с диска. Появятся инструменты для цветного рисования – кисточка и палитра (чего не было бы при отсутствии вышеназванных аргументов). Теперь, регулируя размер кисти и выбирая цвет, нарисуйте, пусть корявую, композицию вашей будущей картины, начиная с фона. Напишите желаемый промпт и нажмите [Generate].

Создание общедоступного сервера. Это уже для гиков фича. Можно запустить на домашнем компе Stable Diffusion, создать расшаренный URL, уехать из дома и заходить с любого устройста к себе на комп по этому URL для генерации картинок. Работать будет не устройство, а домашний комп.

Составление хорошего результативного запроса – задачка не из элементарных. Тут приходит на помощь не только метод тыка, но и другая нейросеть, текстовой чатбот ChatGPT. В его арсенале есть много чего, в частности генерация промптов для Stable Diffusion.

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

Полезные ссылки

🌐 Нейросеть Stable Diffusion в онлайне. Пригодится тем, кто не сумел установить нейросеть на свой компьютер.
🌐 Форум 4pda с информацией по Stable Diffusion – много интересного (давно уважаю этот форум).
🌐 Подборка качественных запросов к Stable Diffusion, дающих весьма гармоничные изображения. Дается prompt, Sampler и Cfg Scale для каждого изображения, что очень облегчает эксперименты.
🌐 Список имен художников и примеры сгенерированных по их стилю артов. В prompt надо добавить, например, "by Leonid Afremov" и картинка по вашему текстовому запросу будет выполнена в стиле художника Леонида Афремова. Список большой и может представлен вам в виде таблицы или в виде галереи. Если в виде таблицы, то для открытия нейросетевых примеров надо навести на строку, дождаться кнопки [Open] и кликнуть по ней. Вот облегченный полный список художников в Excel (3040 записей), но без примеров их работ.
🌐 Ещё примеры картинок и их prompt и, что главное, seed.
🌐 Список проверенных моделей для Stable Diffusion:. Название модели и описание. Клик по названию – переход на карточку модели на сайте huggingface.co. Перейти на закладку Files and versions. Найти в списке файл *.ckpt и для скачивания кликнуть на стрелочку справа от названия файла.
🌐 Своего рода соцсеть фанатов нейросетей. Люди делятся своими моделями и результатами их работы. Можно скачать интересные модели и подсмотреть параметры удачных работ.

Книга:
📓 Самоучитель по созданию запросов к Stable Diffusion. На английском, 105 стр. Очень полезная книга. Под листалкой справа будет ссылка на скачивание.

Видео:
📺 Инструкция по установке Stable Diffusion – сначала, как работать, потом, как установить (8 минут на русском).
📺 Сравнение Stable Diffusion в двумя другими нейросетями + мастер-класс по работе с интерфейсом Stable Diffusion.
📺 Мастер-класс по работе со скриптамиPrompt matrix, X/Y plot и другие.
📺 Гикам про Stable Diffusion – установка портабельной сборки, запуск локального сервера (где-то с 23 мин), тренировка нейросети на своих фотках для создания своей модели (где-то с 28-й мин).
📺 Stable Diffusion для обработки видео – установка и настройка нужных модулей, замена персонажа в видео...
📺 Канал @XpucT на ЮТубе – номер 1 по Stable Diffusion в русскоговорящем сегменте. Много интересной и полезной информации. Без воды.

Анатолий Опарин

Ещё универсальные и специализированные фоторедакторы:
Affinity Photo // классический растровый редактор
AliveColors // профессиональный отечественный фоторедактор
Artensoft PhotoCollage Maker // создание мозаичных коллажей
Chasys Draw IES // кенийский фоторедактор
Corel PaintShop Pro // профессиональный графический редактор
digiKam // продвинутый каталогизатор изображений
FotoJet Designer // простой редактор для быстрых артов
Fotor // классический фоторедактор
FotoWorks XL // самодостаточный фоторедактор
Hornil StylePix // удобный и функциональный графический редактор
HyperSnap // лучший в мире скриншотер
Krita // универсальная программа для художников и фотографов
LazPaint // проще Фотошопа, лучше Пэинта
Paint.Net // крепкий середняк растровой графики
PhotoBlend 3D // редактор для сложных фотомонтажей
PhotoBrush // фоторедактор с функциями рисования и ретуширования
PhotoDemon // рабочий ослик растровой графики
PhotoFiltre // фотокоррекция, маски, паттерны и др. удобства
PhotoImpact // исторический предшественник Фотошопа
PhotoLine // немецкий графический комбайн, умеющий многое
PhotoMechanic // профессиональный фото органайзер
PhotoPad // фоторедатор с интересным инструментом для коллажа
PhotoReactor // фоторедактор на нодах
PhotoScape // многофункциональный фоторедактор
PixBuilder // необходимо и достаточно для обработки фото
Pop Art Studio // студия популярных фотоэффектов
PTGui Pro // лучшее приложение для сшивания панорам
RawTherapee // профессиональная постобработка цифровых фотографий
RealDraw // векторно-растровый редактор
Serif PhotoPlus // графический редактор
Silkypix Studio // проявщик и фотоменеджер
TurboCollage // простой и эффективный конструктор фотоколлажей
Zoner Photo Studio // универсальная программа для обработки изображений
100 нейросетей – в том числе для генерации картинок
Домашняя фотостудия // удобный отечественный фоторедактор для всех
ФотоВИНТАЖ // реставрация старых фотографий
Новости
От рекламы не скрыться
Детская онлайн-энциклопедия
Детская энциклопедия
домой | живопись | графика | компьютерная графика | поделки | юные художники | темы | комментарии | перлы
конкурсы | игры | релакс | рисовалки | учиться рисовать | детские карты Москвы | детские стихи | статьи | видео | поиск | обратная связь