[Stable Diffusion] Общение, обмен опытом и ссылками

Elaneor
Elaneor

Elaneor

Премиум
badge 5 лет с нами! badge Награда за 1000 очков репутации badge За 100 сообщений!
Регистрация
22/04/2018
Сообщения
222
Репутация
1.050
Дамы и господа!
Предлагаю собрать наш опыт и всякие полезности в одном месте.

БАЗА

Stable Diffusion от AUTOMATIC1111 на Гитхабе
Модели на https://huggingface.co
Модели и примеры запросов/промптов на Civitai
Модели и примеры запросов/промптов на TensorArt

Русскоязычные руководства

Статьи сообщества ВК Генераторная - мне просто понравилась доступность их описаний
Оптимизируем и ускоряем Automatic1111, полный гайд
Плейлист пользователя Xpuct по Stable Diffusion

Англоязычные руководства

Официальная ВИКИ от AUTOMATIC1111
The Complete Stable Diffusion Prompt Guide [Best SD Prompts]
Различные обучалки и пошаговые инструкции на https://stable-diffusion-art.com
* Использование расширения Regional prompter
Расширение A1111 ControlNet - объяснено так, словно вам 5 (Reddit)

Где можно подсмотреть промпты

PromptHero
Поиск промптов на krea.ai
Lexica
OpenArt (раздел Discovery)

Приемы

Спрятать текст в изображении

Прочее

( Важно! ) Оптимизированная сборка WebUI (Новое! )
DEEPL - переводчик для ваших запросов
Конструктор запросов на Promptomania
Конструктор запросов на stablediffusionweb
Stable Diffusion Akashic Records

Проблемы и решения

PermissionError: [WinError 5] Access is denied:
TypeError: Descriptors cannot not be created directly

Данный пост со ссылками планирую пополнять.

Гоняю локальную копию Stable Diffusion на своей старушке GeForce GTX 1070 (8 GB) и активно применяю результаты для иллюстрации постов в соц.сетях.
 
Последнее редактирование:
Мой файл webui-user.bat для запуска на GeForce GTX 1070 (8 GB) на данный момент

@echo off

set PYTHON=
set GIT=
set VENV_DIR=
set COMMANDLINE_ARGS= --medvram --xformers

call webui.bat

--medvram - Модель Stable Diffusion потребляет меньше VRAM за счет разделения ее на три части - cond (для преобразования текста в числовое представление), first_stage (для преобразования изображения в латентное пространство и обратно) и unet (для собственно деноизации латентного пространства), причем так, что только одна из них постоянно находится в VRAM, а остальные отправляются в оперативную память процессора. Производительность при этом снижается, но незначительно - за исключением случаев, когда включен режим живого просмотра.
--xformers - Использование библиотеки xFormers. Значительное улучшение потребления памяти и скорости работы. Только для графических процессоров Nvidia. (детерминированная версия 0.0.19 [в webui используется версия 0.0.20 начиная с 1.4.0])
 

Проблема:

не могу установить расширение на закладке Extensions, получаю ошибку
PermissionError: [WinError 5] Access is denied: 'C:\stable-diffusion-webui\tmp\sd-webui-controlnet' -> 'C:\stable-diffusion-webui\extensions\sd-webui-controlnet'
Может воспроизводиться при попытке установить любое расширение.

Варианты решений:

1. Запустить webui-user.bat c очищенным значением для COMMANDLINE_ARGS= или оригинальный webui-user.bat без параметров.

2. Запусить webui-user.bat от имени администратора.

3. Добавить в начало webui-user.bat строку


и запустить webui-user.bat от имени администратора.

Примечание: вначале гуглились 2 и 3 способ, но в моем случае помог именно первый.
 
Полезная тема, не забрасывайте!
 

Как спрятать текст в изображении
1696098004852.png

Нам потребуется:
* установленный ControlNet
* модель для ControlNet отсюда - https://huggingface.co/monster-labs/control_v1p_sd15_qrcode_monster/tree/main (в примере использована версия .safetensors ). Модели для Controlnet размещать в каталог stable-diffusion-webui\extensions\sd-webui-controlnet\models
* графический редактор, в котором мы будем готовить текст, который нужно спрятать в картинке


В редакторе готовится текст (автор использовал Photoshop)
Контраст/освещенность имеют значение, и шумный фон, казалось бы, должен сыграть свою роль, как здесь:
1696098234405.png


Настройки для ControlNet -
1696098357632.png

ControlNet:
V - Enable ,
V - Pixel Perfect
Control Type - All
Preprocessor - None
Model - control_v1p_sd15_qrcode_monster
Control Weight - 2. ---- Ending Control step - 1
ControlMode - Balanced
Resize Mode - Resize and Fill

Оригинальный запрос:
Prompt: (masterpiece), (extremely intricate:1.3), hot playboy girls in playboy bunny costume, at a mansion, insanely detailed, cinematic
Negative prompt: bad-picture-chill-75v, BadDream, deformed

Параметры генерации в примере :
Steps: 50, Sampler: DPM++ SDE Karras, CFG scale: 7,
Seed: 2055577519,
Size: 1024x768,
Model hash: 84d76a0328,
Model: epicrealism_naturalSinRC1VAE, VAE hash: 735e4c3a44,
VAE: anythingKlF8Anime2VaeFtMse840000_klF8Anime2.safetensors,
Denoising strength: 0.5, Clip skip: 2, ControlNet 0: "Module: none, Model: control_v1p_sd15_qrcode_monster [a6e58995], Weight: 2, Resize Mode: Resize and Fill, Low Vram: False, Guidance Start: 0, Guidance End: 1, Pixel Perfect: True, Control Mode: Balanced",
Hires upscale: 2, Hires steps: 15, Hires upscaler: 4x_NMKD-Superscale-SP_178000_G, TI hashes: "bad-picture-chill-75v: 7d9cc5f549d7, BadDream: 758aac443515", Version: 1.6.0

Нашла на Reddit (оттуда же можно скачать примеры картинки без водного знака шервуда)
 
Последнее редактирование:
Решила побаловаться с заменой лица с помощью расширения roop
Нарвалась на несколько последствий несовместимостей пакетов, и все указывало на проблему с protobuf
Код:
venv "C:\stable-diffusion-webui\venv\Scripts\Python.exe"
Python 3.10.7 (tags/v3.10.7:6cc6b13, Sep  5 2022, 14:08:36) [MSC v.1933 64 bit (AMD64)]
Version: v1.6.0
Commit hash: 5ef669de080814067961f28357256e8fe27544f4
Installing sd-webui-controlnet requirement: changing opencv-python version from 4.7.0.72 to 4.8.0
Checking roop requirements
Install insightface==0.7.3
Installing sd-webui-roop requirement: insightface==0.7.3
Install onnx==1.14.0
Installing sd-webui-roop requirement: onnx==1.14.0
Install onnxruntime==1.15.0
Installing sd-webui-roop requirement: onnxruntime==1.15.0
Install opencv-python==4.7.0.72
Installing sd-webui-roop requirement: opencv-python==4.7.0.72
Launching Web UI with arguments:
Traceback (most recent call last):
  File "C:\stable-diffusion-webui\launch.py", line 48, in <module>
    main()
  File "C:\stable-diffusion-webui\launch.py", line 44, in main
    start()
  File "C:\stable-diffusion-webui\modules\launch_utils.py", line 432, in start
    import webui
  File "C:\stable-diffusion-webui\webui.py", line 13, in <module>
    initialize.imports()
  File "C:\stable-diffusion-webui\modules\initialize.py", line 16, in imports
    import pytorch_lightning  # noqa: F401
  File "C:\stable-diffusion-webui\venv\lib\site-packages\pytorch_lightning\__init__.py", line 35, in <module>
    from pytorch_lightning.callbacks import Callback  # noqa: E402
  File "C:\stable-diffusion-webui\venv\lib\site-packages\pytorch_lightning\callbacks\__init__.py", line 28, in <module>
    from pytorch_lightning.callbacks.pruning import ModelPruning
  File "C:\stable-diffusion-webui\venv\lib\site-packages\pytorch_lightning\callbacks\pruning.py", line 31, in <module>
    from pytorch_lightning.core.module import LightningModule
  File "C:\stable-diffusion-webui\venv\lib\site-packages\pytorch_lightning\core\__init__.py", line 16, in <module>
    from pytorch_lightning.core.module import LightningModule
  File "C:\stable-diffusion-webui\venv\lib\site-packages\pytorch_lightning\core\module.py", line 47, in <module>
    from pytorch_lightning.loggers import Logger
  File "C:\stable-diffusion-webui\venv\lib\site-packages\pytorch_lightning\loggers\__init__.py", line 22, in <module>
    from pytorch_lightning.loggers.wandb import WandbLogger  # noqa: F401
  File "C:\stable-diffusion-webui\venv\lib\site-packages\pytorch_lightning\loggers\wandb.py", line 36, in <module>
    import wandb
  File "C:\stable-diffusion-webui\venv\lib\site-packages\wandb\__init__.py", line 26, in <module>
    from wandb import sdk as wandb_sdk
  File "C:\stable-diffusion-webui\venv\lib\site-packages\wandb\sdk\__init__.py", line 9, in <module>
    from .wandb_init import _attach, init  # noqa: F401
  File "C:\stable-diffusion-webui\venv\lib\site-packages\wandb\sdk\wandb_init.py", line 30, in <module>
    from . import wandb_login, wandb_setup
  File "C:\stable-diffusion-webui\venv\lib\site-packages\wandb\sdk\wandb_login.py", line 25, in <module>
    from .wandb_settings import Settings, Source
  File "C:\stable-diffusion-webui\venv\lib\site-packages\wandb\sdk\wandb_settings.py", line 39, in <module>
    from wandb.sdk.wandb_setup import _EarlyLogger
  File "C:\stable-diffusion-webui\venv\lib\site-packages\wandb\sdk\wandb_setup.py", line 22, in <module>
    from . import wandb_manager, wandb_settings
  File "C:\stable-diffusion-webui\venv\lib\site-packages\wandb\sdk\wandb_manager.py", line 14, in <module>
    from wandb.sdk.lib.proto_util import settings_dict_from_pbmap
  File "C:\stable-diffusion-webui\venv\lib\site-packages\wandb\sdk\lib\proto_util.py", line 6, in <module>
    from wandb.proto import wandb_internal_pb2 as pb
  File "C:\stable-diffusion-webui\venv\lib\site-packages\wandb\proto\wandb_internal_pb2.py", line 15, in <module>
    from wandb.proto import wandb_base_pb2 as wandb_dot_proto_dot_wandb__base__pb2
  File "C:\stable-diffusion-webui\venv\lib\site-packages\wandb\proto\wandb_base_pb2.py", line 36, in <module>
    _descriptor.FieldDescriptor(
  File "C:\stable-diffusion-webui\venv\lib\site-packages\google\protobuf\descriptor.py", line 561, in __new__
    _message.Message._CheckCalledFromGeneratedFile()
TypeError: Descriptors cannot not be created directly.
If this call came from a _pb2.py file, your generated code is out of date and must be regenerated with protoc >= 3.19.0.
If you cannot immediately regenerate your protos, some other possible workarounds are:
 1. Downgrade the protobuf package to 3.20.x or lower.
 2. Set PROTOCOL_BUFFERS_PYTHON_IMPLEMENTATION=python (but this will use pure-Python parsing and will be much slower).

More information: https://developers.google.com/protocol-buffers/docs/news/2022-05-06#python-updates
Для продолжения нажмите любую клавишу . . .

Чем лечить - обновлением пакета, который вызывает падение
Код:
pip install tensorflow --upgrade
pip3 install tensorflow --upgrade

python -m pip install tensorflow --upgrade
python3 -m pip install tensorflow --upgrade
py -m pip install tensorflow --upgrade


Установкой protobuf версии 3.20.2 (если есть пакеты, использующие 3.20.2) или 3.20.1.

Код:
pip uninstall protobuf
pip install "protobuf==3.20.*"

pip3 uninstall protobuf
pip3 install "protobuf==3.20.*"

python -m pip uninstall protobuf
python -m pip install "protobuf==3.20.*"

python3 -m pip uninstall protobuf
python3 -m pip install "protobuf==3.20.*"

py -m pip uninstall protobuf
py -m pip install "protobuf==3.20.*"

Сменой переменной окружения
Код:
# Linux and MacOS
export PROTOCOL_BUFFERS_PYTHON_IMPLEMENTATION=python

# Windows Command Prompt
setx PROTOCOL_BUFFERS_PYTHON_IMPLEMENTATION python

# PowerShell
$Env:PROTOCOL_BUFFERS_PYTHON_IMPLEMENTATION="python"

Подробную инструкцию нашла тут
 
Последнее редактирование:
В копилке первого поста добавила три ссылки (обновления теперь помечаю).
 
Настройки, с которыми на моей старушке 1070 с 8 GB RAM у меня выходит даже сгенерировать небольшое видео с помощью расширения AnimateDiff
(пока рендеринг 512х512, 32 кадра, 8 кадров/секунду == 4 секунды клипа занимает полтора часа Т_Т)
cd /d %~dp0
@echo off

set PYTHON=
set GIT=
set VENV_DIR=
set COMMANDLINE_ARGS= --no-half --xformers

call webui.bat
Пример видосика, сгенерированного c помощью AnimateDiff из 1 оригинального кадра (32 кадра, 8 кадров/сек)
 

Вложения

  • 00000-341385658.gif
    00000-341385658.gif
    3,1 MB · Просмотры: 35
Последнее редактирование:
Всем привет. Подскажите плиз, через какую нейросеть можно добавить объект на фото? Через стэйбл можно? Например есть фотка с продуктами на тарелке, хочу добавить в определённом месте на фото бургер. Естественно сгенерированный бургер, а не через фотошоп перенести бургер на фото)
 
Всем привет. Подскажите плиз, через какую нейросеть можно добавить объект на фото? Через стэйбл можно? Например есть фотка с продуктами на тарелке, хочу добавить в определённом месте на фото бургер. Естественно сгенерированный бургер, а не через фотошоп перенести бургер на фото)
В принципе, подобрать модель с реализмом, загрузить фото в режиме img to image - inpainting, кистью нарисовать маску, где должен расположиться бутерброд, выбрать режим inpaint masked, ввести промпт для него, например просто hamburger, и будет бутер на фото.

В сети есть сервисы, которые предоставляют ограниченный функционал стабилки, как раз с требуемым режимом например:
https://inpainter.vercel.app/paint
https://getimg.ai/editor
 
В принципе, подобрать модель с реализмом, загрузить фото в режиме img to image - inpainting, кистью нарисовать маску, где должен расположиться бутерброд, выбрать режим inpaint masked, ввести промпт для него, например просто hamburger, и будет бутер на фото.

В сети есть сервисы, которые предоставляют ограниченный функционал стабилки, как раз с требуемым режимом например:
https://inpainter.vercel.app/paint
https://getimg.ai/editor
Здравствуйте. Подскажите пожалуйста с какого курса можно начать изучать Стейбл? Моя цель генерировать максимально похожего человека с разными фонами одеждой и т.д. Буду очень благодарен за совет.
 
Здравствуйте. Подскажите пожалуйста с какого курса можно начать изучать Стейбл? Моя цель генерировать максимально похожего человека с разными фонами одеждой и т.д. Буду очень благодарен за совет.
Как уже писали в другой ветке, все курсы по SD приблизительно одно и то же. Так что с одной стороны, можно брать любой (разве что на курсе от Prompthero придется переводить обратно промпты на английский).

Переодеть персонажа достаточно в режиме inpaint. Вот пример:
Сгенерировала "реалистичного персонажа", теперь нужно снять его спасательный жилет - отправила результат на закладку inpaint, нарисовала маску на жилете, и заменила оригинальный промпт
1707032020349.png


Как заменить фон, есть короткий урок у Xpuct
И у него же есть несколько уроков по ControlNet с изменением позы персонажа, например вот этот - полные 44 минуты по ControlNet (с которым можно менять позы персонажей)
 
Stable diffusion forge пост

Поставить можно как из архива, так и средствами git
Из минусов - это отдельная сущность, а значит все ваши модели нужно раскладывать обратно по соответствующим каталогам (models - Stable-diffusion) (и это двойное место на диске, если вы планируете сохранить и оригинальную модель.
А вот расширения, похоже, у нее свои.
 
Последнее редактирование:

Создайте учетную запись или войдите, чтобы комментировать или скачивать материалы!

У вас должна быть учетная запись, чтобы оставлять комментарии

Зарегистрироваться

Создайте учетную запись. Это просто!

Авторизоваться

У вас уже есть аккаунт? Войдите здесь.

Похожие темы

Invisibility
Ответы
3
Просмотры
2K
Proncom
Артем Гуля
Ответы
0
Просмотры
402
Артем Гуля
Артем Гуля
WhiteMagus
Ответы
3
Просмотры
750
DenCap
Ответы
0
Просмотры
234
Papapaoaoa
Cherep05
Ответы
2
Просмотры
2K
Cherep05
Cherep05
Сверху Снизу