Смешивание объектов через подсказку

Суть эксперимента

Выяснить каким образом смешать два и более объектов или персонажей. Ответим на вопросы по операторам AND and mixed with. Разберём конструкции вида [|] [… : …] [… : … : X.X] [… : … : 0.ХХ] [… :: 0.ХХ] и смешивание в img2img

Кроме того мы посмотрим как влияет увеличение веса одного из персонажей. А так же попытаемся вытянуть результат за счёт увеличения шагов. И всё это на моделях 1.5 и XL

Краткие выводы
  • and - не работает, просто лепит персонажей рядом, Если персонажей несколько - отбрасывает "лишних"
  •  Простое перечисление для двух объектов или при условии наличия развёрнутой подсказки для трёх и более персонажей.
  • AND - чередует усредняя
  • mixed with - сразу лепит результат
  • [… | …] - чередует усредняя
  • [… : …] или  …:… сразу лепит результат
  • [… : … : 0.4] - Лепит 40% шагов первый, а затем второй объект
  • Персонаж1  [Персонаж2 :: 0.4] - До 40% шагов лепит весь промт, далее только Персонаж1
  • Персонаж1  [ : СТИЛЬ: 0.4] - До 40% шагов лепит основу композиции, далее применяет стиль вместе с персонажем сохраняя основу

Если у Вас есть искажения на генерации, попробуйте:

  1. расширить подсказку, должно быть что-то кроме персонажей или смешиваемых объектов, можете просто перечислить составляющие части картины.
  2. увеличить шаги, вплоть до 60. Это особенно актуально при объединении более двух персонажей.
  3. поменять Seed
  4. на крайняк сменить модель, Например deliberate_v3 в отличии от v2 похерила опцию оператора AND несмотря на увеличенную циферку в номере модели. Тоже самое касается и juggernautXL_v7 и v5 - более младшая версия делает лучше.

 

Дополнения

Есть ещё расширение Embedding Merge - расширение для создания миксов с их последующим сохранением. Удобная штука для истинных гурманов, тех кто ну очень часто миксует всё подряд. а сами миксы использует с одной из моделей, т.к. для другой модели возможно придётся подстраивать микс.

Основные тесты

тестируем простое перечисление

Суть теста

Попробуем смешать Sailor Moon (анимешная девка из детства) и железного Арни, затем добавим третьего персонажа в виде Scarlett Johansson.В конце концов попробуем смешать Кота, Дракона и Гиппопотама Т.е. используем не типичное смешивание, а усложнённое разными стилями главных персонажей и отличных по полу или виду. Сделаем по 4 генерации, дабы исключить фактор случайности.

Выводы
  • для 2-х персонажей достаточно перечислить их, но что-то не то, впечатление что мешает стили а не самих персонажей.
  • для 3-х персонажей требуется немного расширить подсказку, хотя бы разбавив элементы картины просто перечислив их. Но впечатление что какого-то персонажа не хватает
  • приоритет отдаётся впереди идущему персонажу, но отлично меняется весами
  • Для животных отлично отрабатывает, особенно с расширенной подсказкой

тестируем оператор AND

Суть теста

Попробуем смешать Sailor Moon (анимешная девка из детства) и железного Арни, затем добавим третьего персонажа в виде Scarlett Johansson.В конце концов попробуем смешать Кота, Дракона и Гиппопотама Т.е. используем не типичное смешивание, а усложнённое разными стилями главных персонажей и отличных по полу или виду. Сделаем по 4 генерации, дабы исключить фактор случайности.

Пример Prompt

Ниже представлен пример расширенной подсказки в которой по сути идёт просто перечисление элементов картины. Тут важен негатив - он не короткий, он не содержит исключений для комбинаций зверушек, одновременно с этим отсекает уродства человекоподобных. Негатив очень важен для смешивания.

Hippo AND Cat AND Dragon
perfect, intricate, exposure blend, realistic lighting, naturalistic shading,
realistic, detailed, textured

Negative prompt: (worst quality:2), (low quality:2), (normal quality:2), dot, mole, lowres, cropped, jpeg artifacts, ugly, duplicate, morbid, mutilated, out of frame, extra fingers, mutated hands, poorly drawn hands, poorly drawn face, mutation, deformed, bad anatomy, bad proportions, extra limbs, cloned face, disfigured, gross proportions, malformed limbs, missing arms, missing legs, extra arms, extra legs, fused fingers, too many fingers, long neck

Steps: 60, Sampler: DPM++ 2M Karras, CFG scale: 7, Seed: 6, Size: 768x768, Model hash: d37263937f, Model: epicphotogasm_z, Style Selector Enabled: True, Style Selector Randomize: False, Style Selector Style: base, Script: X/Y/Z plot, X Type: Checkpoint name, X Values: "REALISTIC--\\epicphotogasm_z.safetensors [d37263937f],SDXL--\\juggernautXL_version5.safetensors [70229e1d56]", Version: v1.6.0-2-g4afaaf8a

Выводы
  • Генерация с помощью оператора AND идёт чередованием объектов генерации в каждом шаге, поэтому количество шагов критично для данного метода.
  • для 2-х персонажей достаточно перечислить их через оператор AND (обратите внимание на регистр) и при дефектах рекомендуется увеличить количество шагов - оператор AND отрабатывает явно лучше чем простое перечисление
  • для 3-х персонажей требуется немного расширить подсказку, хотя бы просто разбавив перечислив элементы картины и лучше добавить негатив. В отличии от простого перечисления, данный метод отрабатывает лучше - нет эффекта что кого-то не хватает. Негатив оказался полезным особенно для XL модели.
  • При дефектах на лице рекомендуется увеличить количество шагов пропорционально количеству смешиваемых объектов - т.к. смешивание идёт чередованием.
  • Для животных отлично отрабатывает с учётом всего вышесказанного, а если в поправить негатив согласно смешиваемому содержимому и возможным допустимым вариантам смешивания - предусмотреть возможность появления лишних конечностей банально сократив его - то выходит довольно интересненько.
  • Результат очень сильно зависит от Seed - т.к. смешивание идёт через чередование персонажей и результат очень сильно зависит от совпадения их начальной позы.

тестируем оператор mixed with

Суть теста

Попробуем смешать Sailor Moon (анимешная девка из детства) и железного Арни, затем добавим третьего персонажа в виде Scarlett Johansson.В конце концов попробуем смешать Кота, Дракона и Гиппопотама Т.е. используем не типичное смешивание, а усложнённое разными стилями главных персонажей и отличных по полу или виду. Сделаем по 4 генерации, дабы исключить фактор случайности.

Пример Prompt

Пример получения дракончика на XL - потребовалось изменить последовательность и вес

Dragon mixed with (Cat:0.8) mixed with (Hippo:0.8), perfect, intricate, exposure blend, realistic lighting, naturalistic shading, realistic, detailed, textured

Negative prompt: (worst quality:2), (low quality:2), (normal quality:2), dot, mole, lowres, cropped, jpeg artifacts, ugly, duplicate, morbid, mutilated, out of frame, extra fingers, mutated hands, poorly drawn hands, poorly drawn face, mutation, deformed, bad anatomy, bad proportions, extra limbs, cloned face, disfigured, gross proportions, malformed limbs, missing arms, missing legs, extra arms, extra legs, fused fingers, too many fingers, long neck

Steps: 20, Sampler: DPM++ 2M Karras, CFG scale: 7, Seed: 6, Size: 768x768, Model hash: 70229e1d56, Model: juggernautXL_version5, Style Selector Enabled: True, Style Selector Randomize: False, Style Selector Style: base, Version: v1.6.0-2-g4afaaf8a

Выводы
  • mixed with - сразу лепит результат
  • Результат отличается для SD1.5 и XL. Результат вполне отлично выходит на 20 шагах, т.к. генерация идёт сразу в каждом шаге. XL - миксует по другому, форму берёт от кого попроще (обычно первого идущего) а детальки накидывает от других, причём в порядке их расположения, таким образом требуется поиграть весами и расположением объектов в описании, но результат того стоит, картинка получается более гармоничной, контролируемой и менее дефектной чем при предыдущих методах.
  • Негатив и расширенная подсказка влияют на качество изображения. а не на смешивание.

тестируем конструкцию [… | …]

[|] - чередуют усредняя. А следовательно сразу будем увеличивать шаги для получения результата без дефектов. Так же пропишем расширенную подсказку и негативчик.

Тест
Выводы
  • Неплохой результат с учётом выводов по чередующимся вариантам. Из особенностей следует внимательным быть с весом в последнем объекте смешивания - нельзя изменять вес у последнего элемента! Тем не менее минусы такие же как и у всех чередующих методов: необходимость в увеличении шагов, в необходимости иметь подсказку и негатив, а также в дефектах возникающих при чередовании
Пример Prompt

Пример смешивания трёх персонажей:

[Scarlett Johansson | Arnold Schwarzenegger | Sailor Moon],
perfect, intricate, exposure blend, realistic lighting, naturalistic shading, realistic, detailed, textured

Negative prompt: (worst quality:2), (low quality:2), (normal quality:2), dot, mole, lowres, cropped, jpeg artifacts, ugly, duplicate, morbid, mutilated, out of frame, extra fingers, mutated hands, poorly drawn hands, poorly drawn face, mutation, deformed, bad anatomy, bad proportions, extra limbs, cloned face, disfigured, gross proportions, malformed limbs, missing arms, missing legs, extra arms, extra legs, fused fingers, too many fingers, long neck

Steps: 40, Sampler: DPM++ 2M Karras, CFG scale: 7, Seed: 6, Size: 768x768, Model hash: d37263937f, Model: epicphotogasm_z, Style Selector Enabled: True, Style Selector Randomize: False, Style Selector Style: base, Script: X/Y/Z plot, X Type: Checkpoint name, X Values: "REALISTIC--\\epicphotogasm_z.safetensors [d37263937f],SDXL--\\juggernautXL_version5.safetensors [70229e1d56]", Version: v1.6.0-2-g4afaaf8a

тестируем конструкцию [… : …]

[… : …] - сразу лепит результат. Отсюда и преимущества в достаточности шагов от 20 и все выводы как для оператора mixed with актуальны. Допускается изменение веса у последнего элемента, оператор отлично работает на SD1.5 и косячно для нескольких человеков в XL - уж очень сильно он старается слепить либо бабу, либо мужика, и весами с описанием очень муторно становится добиться нужного результата.

Однако сила этой конструкции в возможности генерации определённой части после определённого количества кадров! Если в конструкции [… : … : X.Y] вместо X поставить циферку меньше 1 - то в процентном соотношении от общего количества шагов будет генерироваться сначала первая часть, а оставшееся количество шагов вторая часть. Например [Меч : Перо : 0.1] будет генерировать 10% от общего количества меч, а оставшиеся 90% Перо. Если X больше 1, то это количество шагов которое будет генерироваться только первая часть, а оставшееся количество шагов только вторая часть.

Тест 1 - Обычное смешивание
Выводы
  • все выводы как у оператора mixed with, кроме косяка с XL для человеков.
  • для более двух персонажей в XL работает кривожопенько, нестабильно - может выкинуть персонажа из генерации если посчитает что "это" не влазит в представление XL о прекрасном.
Пример Prompt

Возможно такая модель попалась (хотя другие операторы отрабатывали нормально) но очень сложно сделать что-то среднее при смешивании людей в XL.

[(Arnold Schwarzenegger:1.2) : Sailor Moon : Scarlett Johansson],
perfect, intricate, exposure blend, realistic lighting, naturalistic shading, realistic, detailed, textured

Negative prompt: (worst quality:2), (low quality:2), (normal quality:2), dot, mole, lowres, cropped, jpeg artifacts, ugly, duplicate, morbid, mutilated, out of frame, extra fingers, mutated hands, poorly drawn hands, poorly drawn face, mutation, deformed, bad anatomy, bad proportions, extra limbs, cloned face, disfigured, gross proportions, malformed limbs, missing arms, missing legs, extra arms, extra legs, fused fingers, too many fingers, long neck

Steps: 20, Sampler: DPM++ 2M Karras, CFG scale: 7, Seed: 6, Size: 768x768, Model hash: d37263937f, Model: epicphotogasm_z, Style Selector Enabled: True, Style Selector Randomize: False, Style Selector Style: base, Script: X/Y/Z plot, X Type: Checkpoint name, X Values: "REALISTIC--\\epicphotogasm_z.safetensors [d37263937f],SDXL--\\juggernautXL_version5.safetensors [70229e1d56]", Version: v1.6.0-2-g4afaaf8a

Тест 2 - генерация частями

Воспользуемся конструкцией [… : … : X.Y]  и будем менять проценты генерации первой части.

Выводы
  • Проблемы и преимущества [… : … : X.Y] кроются в алгоритме действия - сначала генерируется первая часть, а потом на определённом шаге резко начинает лепиться из того что есть вторая часть с необходимостью удаления первой части. Если вторая часть кардинально отличается исходником от первой, то происходит резкий переход на определённом шаге и от исходника остаётся поза, освещение и стиль. Поэтому mixed with - отработал лучше в плане изменения обезьяны на лицо девушки, проще настраивать, нежели вылавливать сотые доли в [… : … : X.Y]. Однако есть сценарии где этот недостаток может стать преимуществом.
  • Резкое изменение подсказки позволяет резко убрать световой меч одновременно добавив перо, в логичное для него место, таким образом получить светящееся большое перо на выходе. Тоже самое можно сделать с позой - заменив животное на человека. Т.е. конструкция [… : … : X.Y] служит не для смешивания - а больше для замены объекта и актуально если бы не было inpaint и ControlNet.
  • Однако самое важное применение кроется в немного неочевидном применении - что если в первой части ничего не указывать [: … : X.Y]? Правильно, тогда будет генерироваться основная подсказка (которая будет по сути первой частью конструкции, а на определённом шаге, после формирования композиции добавится новое нечто, и это нечто может быть стилем - который сохраняет Вашу композицию. Поэтому данная конструкция идеально подходит для тестирования стилей или например причёсок. Процент шага при этом рекомендуется ставить 0.2-0.3 (это % чистого исходника, уменьшая значение (до 0,05) теряем исходник, увеличивая больше 0,3 теряем изменения вносимые изменения нашей конструкцией).

В общем всё зависит от вашей фантазии и никто не запрещает использовать все методы сразу 😉

Тест 3 - сравнение
Выводы
  • Сами думайте. На самом деле то, что Вам понятнее, в Вашем конкретном случае, то и используйте.

изменяем готовую генерацию

А что если мы получим картиночку которая цепляет, всё прям хорошо, но вот есть нюанс - надобно "немного" поправить, но сохранить композицию. Рассмотрим конкретный пример в котором нужно добавить персонажа сохранив основу композиции. И допустим наше больное воображение (ладно не наше, а моё) остановилось на образе обезьянки.

inpaint
  1. Отправляем картинку в inpaint
  2. Выделяем часть лица
  3. В подсказке прописываем нового персонажа
  4. Шагов ставим побольше 30-40 (влияет на резкость перехода на определённом DS)
  5. Ползунком Denoising strength (DS) добиваемся нужного эффекта от 0.8

Все остальные настройки по умолчанию:  Mask mode = Inpaint masked (рисовать в маске); Masked content = original; Разрешение не забываем под картинку поставить.

img2img

Теперь подрихтуем всю картину, допустим мы взяли среднюю картинку с предыдущего шага

  1. Отправляем картинку в img2img
  2. В подсказке оставляем нового персонажа
  3. Шагов так же ставим побольше, в примере 40 (влияет на резкость перехода на определённом DS)
  4. Ползунком Denoising strength добиваемся нужного эффекта от 0.65-0,75

Все остальные настройки по умолчанию.

Выводы

Помните, смешивать стоит персонажей и объекты со схожими признаками, допускается мешать предметы с предметами похожей формы, людей с зверушками.

  • проход через inpaint и основную вкладку img2img позволяет повысить контроль итогового результата. Конечно можно воспользоваться только одним из вариантов, но в обучающих целях показываю оба.
  • Шаги в случае миксов влияют на резкость перехода от исходника к подмешиваемому персонажу. А за степень вносимых изменений отвечает Denoising strength - чем больше значение, тем больше допускается вносить изменений в оригинал..
Пример Prompt

Пример домешивания нового персонажа:

monkey

Negative prompt: (worst quality:2), (low quality:2), (normal quality:2), dot, mole, lowres, cropped, jpeg artifacts, ugly, duplicate, morbid, mutilated, out of frame, extra fingers, mutated hands, poorly drawn hands, poorly drawn face, mutation, deformed, bad anatomy, bad proportions, extra limbs, cloned face, disfigured, gross proportions, malformed limbs, missing arms, missing legs, extra arms, extra legs, fused fingers, too many fingers, long neck

Steps: 40, Sampler: DPM++ 2M Karras, CFG scale: 7, Seed: 123123128, Size: 768x768, Model hash: d37263937f, Model: epicphotogasm_z, Denoising strength: 0.5, Mask blur: 4, Style Selector Enabled: True, Style Selector Randomize: False, Style Selector Style: base, Script: X/Y/Z plot, X Type: Denoising, X Values: "0.5,0.8,0.95", Version: v1.6.0-2-g4afaaf8a

Добавить комментарий