Сам себе нейросеть
Автор: Константин Бояндин(сразу предупреждаю - в посте много картинок, скрытых, когда возможно, под спойлерами)
В предыдущей записи блога я упоминал "Stable Diffusion" (машинно-обучаемая модель создания изображений по тексту), далее SD. Поскольку "нейросетью" в общении сейчас называют практически что угодно, где есть машинное обучение, SD, вышедшая в свет 22 августа с.г., сразу стала невероятно популярной: исходный код открыт, и генерировать изображения могут практически все: аппаратные требования относительно скромные.
Опуская несущественные детали: теперь я располагаю собственной установкой SD, и могу воочию, без ограничений, исследовать возможности этого двигателя. Первые несколько экспериментов были, скажем так, сделаны наобум - тем удивительнее, что качество оказалось вполне приемлемым:
Армия тьмы
Вкратце о создании картинок в SD
Чтобы создать картинку, необходимо дать её описание и модификаторы (стиль, способ отображения, гамма цветов и т.д. и т.п.). Ниже приведён набор описаний и одна из созданных на его основе картинок:
К сожалению, в данный момент SD не понимает описаний на славянских языках (белорусский, русский, украинский), так что используйте что-то иное.
Все указания (описания) и модификаторы указываются через запятую. Чем дальше стоит модификатор, тем меньший вес он имеет (тем меньше учитывается по сравнению с другими). Этот приоритет можно изменить, заключив модификатор в круглые скобки (понизить приоритет) или добавив два восклицательных знака подряд (повысить приоритет).
Т.е., мы указываем SD, что хотим получить портрет молодой женщины в зрелищном окружении. Модификатор "by" очень важен: он указывает стиль (в данном случае - нарисовать в стиле художника Ника Альма). Если не использовать стилей вообще, итоги могут быть неинтересными.
Последующие модификаторы указывают на технику исполнения, передачу цветов и так далее.
Модификаторов много. В конце поста будут ссылки на подробности работы с SD (на английском языке).
Стили - великая вещь. SD понимает несколько сотен стилей. Ниже (под спойлером) приведены примеры того, как выглядели бы изображения фермерского дома в горах среди цветущих долин - в разных стилях.
Изображение фермерского дома в разных стилях
Борис Вальехо
Каналетто
Каспар Дэвид Фридрих
Дино Валлс
Юджин Делакруа
Ив Вентру
Фердинанд Кнаб
Грег Рутковски
Гюстав Доре
Ханс Тома
Иероним Босх
Иван Шишкин
Джессика Россье
Джон Тенниел
Леонардо да Винчи
Михаэль Сова
Микеланджело
Рафаэль Санти
Рембрандт ван Рейн
Пьер Пеллегрини
Сальвадор Дали
Сандро Боттичелли
Соедзима Сигенори
Томас Кинкейд
Винсент ван Гог
Уэйн Барлоу
Во всех этих картинах в описании различается только имя художника, чей стиль нужно воспроизвести.
Важное пояснение
SD использует параметр "затравка" (seed), целое число, чтобы сгенерировать вариант изображения. Если использовать в точности те же параметры, включая затравку, есть вероятность, что получится нечто похожее, возможно - то же самое. Но это не всегда так, поэтому обязательно сохраняйте удачные результаты - возможно, их не получится повторить.
При создании пачки картинок, SD автоматически увеличивает значение затравки, для каждой следующей на 1. Если вновь запустите ту же серию, ничего не меняя - начнётся всё с той же начальной затравки (если вы ей не указывали, берётся случайное целое число).
Людей и животных SD рисует отвратительно. Чтобы создать картинку девушки - см. начало поста - потребовалось 24 попытки.
Технические моменты
Трудно сопоставить затраты времени, поэтому скажу так: при создании самых крупных, самых сложных по описанию картинок у SD в моём случае тратится не более 40 секунд; в большинстве случаев это между 12 и 24 секундами на картинку.
Полезные ссылки
1. Список ресурсов, руководств и примеров работы с SD.
2. Длинный список ссылок полезных материалов по SD.
3. Объяснение большинства модификаторов.
4. Длинный список модификаторов, задающих технику исполнения - с примерами.
5. Длинный список художников, чей стиль можно задавать в SD, с примерами.
И последнее
У меня уже появились клиенты - на те изображения, что я создал при помощи SD. Это радует.
Если конкретно вам что-то нужно - связывайтесь, присылайте описание, обсудим. Я не художник, но подобрать описание и модификаторы - это вполне можно попробовать.
Важно: на все созданные при помощи SD изображения авторское право принадлежит тому, кто использовал SD для создания этих изображений. Вы вольны делать с ними что хотите.
Успехов в цифровом рисовании!