Синтаксис Stable Diffusion ♥️

Aleksandr Limm
4 min readJan 4, 2024

--

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

В Stable Diffusion генерация идет от первого ЛЕВОГО слова к последнему ПРАВОМУ слову. Каждое следующее правое слово будет оказывать влияние на все левые слова. Первые ЛЕВЫЕ слова оказывают самое сильное влияние на диффузию. Последние ПРАВЫЕ слова оказывают наименьшее влияние на диффузию.

Длина промпта в Stable Diffusion неограниченна, если иное не установлено вашим поставщиком Stable Diffusion.

Мой выбор среды для Stable Diffuison — AUTOMATIC1111. К

лёгкая установка на ПК, версия в google collab

Разделители в Stable Diffusion

Существует несколько базовых разделителей:
Точка (.) — жесткий разделитель. Этот разделитель не позволяет диффузии накладывать новые слои на предыдущие слова. В основном, используется в длинных промптах с большим количеством объектов, настроений и историй, когда требуется правильное разделение.

Запятая (,) — мягкий разделитель. Этот разделитель разделяет лексемы, но сохраняет более связную связь между ними. Это самый часто используемый разделитель.

Буллетин (∙) — мягкий разделитель, но в отличие от “,” он позволяет сохранить целостность токена. Когда нет разделения на много токенов— стабильная диффузия будет действовать более конкретно для конкретного токена, это помогает достичь наилучшего качества для отдельного объекта/настроения/стиля.

∙ Apple is red ∙ Apple is tasty ∙ Apple is full of vitamins

— Диффузия будет делать яблоко, которое обладает многими свойствами.

“BREAK” — очень жесткий разделитель. Этот разделитель не позволит диффузии накладывать новые слои на предыдущие токены. Он более сильный, чем “.” Этот разделитель может включать дополнительные контекстные описания в конце или начале подсказки для создания некоторого акцента.

I love this image BREAK Sunset on Miami Beach BREAK during our honeymoon year 1985

По этой подсказке SD отдаст предпочтение рисунку “Sunset on Miami Beach”, стараясь объединить его с идеей, что изображение относится к “during our honeymoon year 1985”, и оно должно вызывать чувства “I love this image”.

Буду рад видеть вас в своём ТГ канале, посвящённом генерации изображений в Stable Diffusion :

Синтаксические конструкции Stable Diffusion для продвинутого промптинга

Зачем использовать расширенные синтаксические конструкции?

  • Расширение воображения
  • Больше творчества
  • Создание новых концепций

1. Контроль “веса” слов

В Stable Diffusion вы можете контролировать, насколько сильно определенное слово или серия слов повлияют на конечный результат генерации. Это заставит Stable Diffusion уделять больше или меньше внимания данному слову (словам).

(Слово: Вес)

Слово — любое слово и несколько слов
Вес — число в диапазоне от 0 до бесконечности. Обычно, от 0,7 до 1,5. Знаительно большее или меньшее значение будет сильно искажать генерацию.

Пример: portrait with flowers: (roses:1.3), pions, tulips, lilies, (lavender:0.8)

- Эта подсказка создаст портрет с цветами, где розы (roses) будут представлены на 30 % больше других цветов, а лаванда (lavender), соответственно, на 20 % меньше.

2. Смешивание слов с помощью оператора “AND”

Stable Diffusion одновременно создаст на холсте изображение, которое сочетает в себе несколько слов сразу. Создавайте невероятные изображения из воображения!

(Слово 1 AND Слово 2)

Слово 1, Слово 2 — любые слова; Вы можете добавить столько слов, сколько захотите.
AND должно быть написано строго в верхнем регистре.

Пример: (Sun AND Moon AND Stars AND Satellites )

3. Сочетание слов с помощью оператора “OR”

Stable Diffusion выбирает случайным образом слова, включенные в конструкцию на каждом шаге с равным шансом. Это приводит к случайным результатам.

(Слово 1 OR Слово 2)

Слово 1, Слово 2 — любые слова; Вы можете добавить столько слов, сколько захотите.
OR должно быть написано строго в верхнем регистре.

Пример: (red OR green) carpet

Диффузия будет случайным образом добавлять красный (red) или зелёный (green) цвета

4. Пошаговое сочетание слов | | |

Stable Diffusion будет менять сгенерированное слово на каждом шаге. Эта комбинация позволяет смешивать множество слов в одном изображении

( Слово 1 | Слово 2 )

Слово 1, Слово 2 — любые слова; Вы можете добавить столько слов, сколько захотите.
|” — это разделитель.

Например: Portrait of (Silvester Stalone|Jason Statham|Leonardo Di Caprio)

- Диффузия будет создавать портрет, сочетающий в себе визуальные признаки нескольких человек

5. Генерировать до шага N, а затем переключиться

Stable Diffusion будет генерировать изображение согласно описание до указанного момента, а затем на том же месте начнет генерировать иное описание, которое указано в конструкции

[ Слово 1 | Слово 2: Доля шагов ]

слово 1, слово 2 — любые слова
Доля шагов —дробное число 0.01 to 0.99 (соответствует от 1 до 99%), момент, на котором диффузия переключится на генерацию иного слова.

Стабильная диффузия генерирует слово 1, а после достижения порога, указанного как “доля шагов ”, переключается на генерирование другого слова 2 в том же месте, где было сгенерировано предыдущее слово.

Например: [ camel | dog: 0.7 ]

- В этом примере будет генерироваться верблюд до 70% шагов, а оставшиеся 30% шагов будет генерироваться собака. Скорее всего получится верблюд с собачьим лицом.

Wildcards

Еще одна необходимая вещь в Stable Diffusion — Wildcards. Они позволяют вставлять произвольные текстовые значения в определенном месте промпта. Wildcards помогают разнообразить генерацию и ускорить Вашу скорость работы в SD.

Установите Wildcards расширение для Automatic1111

Пример: a {house|apartment|lodge|cottage} in {summer|winter|autumn|spring} by {2$$artist1|artist2|artist3}

Результат:

  • A house in summer by artist1, artist2
  • A lodge in autumn by artist3, artist1
  • A cottage in winter by artist2, artist3

Пример: This __fruit__ is __adjective__

__wildcard collection__ может содержать сколько угодно много слов и редактируется вами как текстовый файл. В данном случае wildcard collection это “fruit” и “adjective”, а символы “__” вначале и в конце указывают на применение wildcard с таким-то именем прямо в поле ввода промпта.

Wildcards хранятся в папке Stable Diffusion по пути: extension/sd-dynamic-prompts/wildcards (при условии что расширение Dynamic Prompts уже установлено)

Другая немаловажная причина использовать Wildcards — это возможнлсть использовать случайные промпты сгенерированные текстовым ИИ. Они встроены в расширение и бесплатны. Таким образом, если у вас закончатся идеи — Вам поможет рандом :)

Заключение

Благодарю за прочтение, надеюсь приведенная информация придется вам полезной. Подписывайтесь. Посмотрете мой профиль, чтобы узнать больше интересного. До встреч.

--

--

No responses yet