Укрощение строптивой
Автор: Константин БояндинФото красоток "без верха" все до одной были просчитаны в SD. Ниже подробности.
При создании описания картинки важно помнить, что SD "не понимает" описания сцены с точки зрения человека. Когда задаются предикаты (фрагменты описания, через запятую или иначе), нейросеть "смотрит" в базу и, если там есть достаточное количество похожих переменных (ассоциаций - тех, что вы ставите в виде предиката), то выбирает их и использует связи между ними, чтобы каким-то образом построить картинку. Объяснение упрощённое, неточное и грубое - чтобы пояснить, как это всё работает. Чистая математика и логика нейронных сетей.
Для человека неподготовленного выглядит это мистически: задаются текстовые описатели для картинок, которые "скармливают" обучающему модулю двигателя, а затем одна лишь комбинация предикатов позволяет двигателю построить картинку. То, что позволяет двигателю (SD) реконструировать правдоподобное (в смысле качества и ожиданий) изображение, и является основной нижележащей статистической модели модели, латентной диффузии. Опять же, очень упрощённое пояснение.
Надо помнить ещё, что нейросеть во время обучения опознаёт огромное количество деталей картинки, для которых не указано переменной (предиката). Отсюда та простота, с которой нейросеть создаёт типовые картинки; отсюда сложности с отрисовкой мелких деталей сложной формы (таких, как кисти рук).
Посмотрим, можно ли модифицировать картинку, не внося в неё слишком много изменений. Практика показывает, что если зафиксировать параметры создания, и вносить только изменения в текстовое описание, можно добиться интересных результатов. Возьмём фото индианки из предыдущего поста, и попробуем одеть её не так вызывающе, а в конце - попросим улыбнуться. Внимание, первая картинка 18+.
Только юбка
Юбка и майка
Куртка и юбка
Джинсовые куртка и шорты
То же и улыбка
Меняются, не очень существенно, элементы одежды и фон, но сама девушка остаётся почти без изменений, что важно.
Важно: модель "разрешает" далеко не все виды одежды, и в данном случае упорно пытается нарисовать неприкрытый живот персонажа. Чтобы прикрыть его, пришлось перебрать немало вариантов одежды (можно было бы убрать предикат Style-Princess, но было бы не так занятно).
А теперь оденем её цивильно, и посмотрим, сумеет ли SD передать возраст персонажа. Укажем возраст в описании явно:
8 лет
12 лет
16 лет
20 лет
30 лет
40 лет
50 лет
60 лет
70 лет
80 лет
Обратите внимание: практически нет изменений после 60, и модель не учитывает пигментацию волос. Если это нужно, задавать придётся явным образом. Опять же: двигатель ориентируется на предикаты (переменные), и не обладает никаким сложным знанием о том, как они соотносятся. Просто задайте нужные уточнения, если это важно.
Получается вполне приемлемо. Т.е., примерная схема такая: получить более или менее сносный по виду и позе облик, и, зафиксировав всё, кроме текстового описания, не очень большими правками вносить желательные детали.
Ещё один небольшой секрет: незначительных вариаций в одежде и пр. можно добиться, меняя немного - на сотые доли - веса тех или иных предикатов, когда эти веса указаны явно, например (full body:1.2). При этом помнить, что предикаты, ответственные за план и параметры камеры лучше не менять, а веса изменять на не очень существенной детали собственно писания внешнего вида.
Для справки: параметры самой первой картинки.
Negative prompt: nude, watermark,signature, twins, painting, digital artwork, 3d, Scribbles,Low quality,Low rated,Mediocre,3D rendering, Screenshot, Software, UI, artwork, painting, digital painting, octane render, unreal,Amateur,Low rated,Phone,Wedding,Frame,Painting,tumblr,watermark,signature, (cropped, out of frame, cut off:1.4), wrong, error , fault, bad proportions, disfigured, deformed, distortion, bad anatomy, low res, mouth open, text, watermark, (poorly drawn hands:1.2), (poorly drawn face:1.2), mutation, blurry, extra limbs, gross proportions, malformed limbs, long neck, contorted
Steps: 60, Sampler: Euler a, CFG scale: 8, Seed: 1586774228, Face restoration: CodeFormer, Size: 512x768, Model hash: 8194f84cdc, Model: realisticVisionV12_v12