Главная

Friday, 22 September 2023

Automatic1111, подскажи мне идею!

Всем привет.

Есть несколько спобосов автоматизировать варианты промптов в 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, подскажи мне идею!"

Здесь автор кода рассказывает про это сам:


Удачи.

3 comments:

  1. Вчера нам было весело - ControlNet нашел лица людей в абстракции Поллока.)

    ReplyDelete
  2. Тобто SD повів себе як крутий експерт який побачив в картині художника те що "задумав" митець?

    ReplyDelete

А что вы думаете по этому поводу?