Есть несколько спобосов автоматизировать варианты промптов в Automatic1111. Не утверждаю что они лучшие, но они работают.
Итак мои варианты:
1. Используем script prompt matrix. Задаем через символ "|" что надо перебирать в нашем промпте young woman in city park | evening | summer.
Можно использовать как в Positive так и в Negative. Legend есть.
2. Используем script: X/Y/Z Plot. Выбирам Prompt S/R. Варианты промпта пишем в X values через запятую. Legend есть. Перебрать можно кучу предопределенных других параметров параллельно с промпт.
3. Используем script: Prompts from file or textbox. Промт пишем полностью в List of prompts input or from file или указываем путь к файлу с промптом.
4. Используем Extensions: Style Pile. Перечень токенов пишем в Sequential prompts [X]
Тогда в Basic prompts ссылка будет фигурировать как: [X] art of cat.
Можно пересечь второй партией токенов в SubSequential prompts [Y]
Тогда Basic prompts уже будет выглядеть как [X] art of cat in [Y] style.
5. Используем Extensions: Dynamic Prompts
До сих пор мы все держали под контролем, чего и сколько должно быть в промпте. Но иногда надо дать волю фантазии, и отпустить поводья Stable Diffusion. И тут как никогда нужны динамические промпты. Собственно Dynamic Prompts это очередное вкусное расширение для A1111. Начнем с малого. Вот так можно задать простейший случайный момент в промпте.
Частотность выбора токена в %-х (где 0.5=50%):
{0.5::knight|0.1::woman|03::dragon}
Случайный выбор 2х токенов:
{2$$knight|woman|dragon}
Случайный выбор 2х токенов цвета (И) для первой партии токенов:
{knight|woman|dragon} in {2$$ and $$green|red|blue}
Случайный выбор от 1 до 3х токенов цвета (И) для первой партии токенов:
{knight|woman|dragon} in {1-3$$ and $$green|red|blue}
или
{knight|woman|dragon} in {-3$$ and $$green|red|blue}
На самом деле расширение Dynamic Prompts включает в себя еще одно расширение Wildcards Manager. И они отлично дополняют друг друга.
На civitai скачиваете набор карточек (текстовые файлы) которые будут содержать в себе списки ключевых слов, например файл color содержит множество цветов и благодаря нашим расширениям вы теперь будете иметь быстрый доступ к ним.
Скачанные файлы помещаете в папку stable-diffusion-webui\extensions\sd-dynamic-prompts\wildcards
Теперь, после перезагрузки Automatic1111 вы можете написать cat __color__ и генерировать и каждую генерацию из файла color.txt будет выбираться случайный цвет кота. Или что-то посложнее __animal__ __background__ __setting__ __artist__. И каждую генерацию будем получать случайное животное в случайном месте в случайном сетинге приправленное случайным стилем.
Конечно такой способ использования токенов это гадание на кофейной гуще. Лучше заменить подобным одно два понятия в своем промпте, например одежду, стиль или сеттинг, чтобы быстро перебрать варианты и найти максимально подходящий и уже дальше с ним играться вручную. Ниже несколько примеров.
Случайный выбор токена из classical для первой партии токенов:
{knight|woman|dragon} in __artists/European Art/classical/classical__
Случайный выбор 2х токенов (через ,) из classical для первой партии токенов:
{knight|woman|dragon} in {2$$__artists/European Art/classical/classical__}
Случайный выбор токена из wildcards по маскe имени файла "ab*" для первой партии токенов:
{knight|woman|dragon} in __artists/unfiled/ab*__
Мы не хотим писать все время руками?
Без проблем, выборку из wildcards можно внедрить и в наш список стилей (файл styles.csv):
name,prompt,negative_prompt
- выбирается любой из стилей из любой карты в папке Style
Style,__Style/*__,
- выбирается любой ракурс из любой карты в папке View
View,__View/*__,
- выбирается любое время из любой карты в папке Time
Time,__Time/*__,
- выбирается любой характер персонажа из любой карты в папке Character
Characters,__Characters/*__,
- выбирается любая камера из Camera с любым освещением из lighting с любой линзой из lenses с любым фокусным расстоянием из focus
CameraLight,"__camera__ , __lighting__,__lenses__,__focus__",
и т.д.
В завершение приведу Dynamic prompt который позволяет генерировать красочные обои для desktop-a. Он работает чуть сложнее и требует Lora "to8contrast-1-5". Для него мы сами пишем список вариантов которые хотим видеть в нужном нам месте и также каждую генерацию выбирается один из них. Вот его код:
{1-2$$professional high quality|majestic|stunning view|spectacular} { (HDR photo)|digital art|digital painting|1.05::analog photo|photorealistic painting|0.5::hyperrealistic scenery|1.1::digital photography} {containing|of} a picturesque nature of a
{1-3$$humid tropical jungle|foggy fjord|ocean bay|seashore|desert landscape|cherry blossom on cliff|ocean shore|wild life scenery|bare tree and desert|river in forest|body of water surrounded by trees and rocks|landscape photo of northern forest|lush vegetation view|calm body of water surrounded with trees and stones|silhouette of an old bare tree on body of water near cliff|sun rays through trees, voluminous light and light rays|steep rocky walls gorge|tropic island beach with a few palms|foggy swamp|peaceful lushious forest|lush green deep forest|prairie|alpine meadow|savannah {mirage|}|lush bloom oasis|amazon river forest|quaint northern hills in the moss|reflective lake|spectacular river view|endless plain|picturesque forest edge with an old driftwood|dark thicket} in a
{winter|spring|summer|autumn} [imagination] {in the morning {dawn| <lora:to8contrast-1-5:0.4> }|in the afternoon|in the evening {sunset| <lora:to8contrast-1-5:0.6> }|at the night, {moonlit|} <lora:to8contrast-1-5:0.7> }, {clear|cloudy { (raining) |}|partly cloudy {windy||}|overcast|snowing { (blizzard) |}|foggy|0.7::stormy and lightning| (hurricane) } weather,
{1-2$$global lighting|environmental lighting|dramatic lighting|(god rays:0.9)}, 8K resolution, detailed, focus, (close shot)
{1-2$$featured on flickr|environmental art photography|shutterstock contest winner|deviantart|hudson river school painting|pixiv|atmospheric dreamscape painting|pinterest|0.5::inverted darkness (extravaganza) }
{1-2$$by Michael James Smith|by Mark Keathley|by Thomas Vijayan|by Guy Tal|by Mandy Lea|by Thomas Kinkade|by Ted Gore|by Jake Guzman|by Marc Adamus|by Ryan Dyar}
Negative prompt: fish eye, blurry, {undetailed|haze}, city, people, man, person, entity, character, monochrome, b&w, animal
Steps: 50, Sampler: DPM++ SDE Karras, CFG scale: 7, Seed: 1426509407, Size: 960x540, Model hash: 4d91c4c217, Denoising strength: 0.3, Hires upscale: 2, Hires upscaler: 4x_foolhardy_Remacri
С таким промптом можно открывать вебсайт с своими wallpapers. Правда самими wallpapers сейчас никого не удивишь, ну тогда это будет больше похоже на призыв "Ну-ка Automatic1111, подскажи мне идею!"
Здесь автор кода рассказывает про это сам:
Удачи.
Вчера нам было весело - ControlNet нашел лица людей в абстракции Поллока.)
ReplyDeleteТобто SD повів себе як крутий експерт який побачив в картині художника те що "задумав" митець?
ReplyDeleteСаме так!)
ReplyDelete