Лийза Рацеп, Маали Тарс

Модели генерации изображений, такие как Stable Diffusion, становятся все более популярными в последние несколько месяцев. Хотя они могут создавать уникальные и интересные визуальные эффекты на основе любой заданной текстовой подсказки, конечный результат модели часто оказывается неожиданным, и пользователь практически не контролирует детали генерируемого вывода. Таким образом, создание желаемого образа требует тщательной оперативной разработки, проб и ошибок и некоторой удачи.

В этом проекте исследуются варианты навигации по входному пространству моделей генерации изображений, чтобы найти значимые способы добавления параметров автоматической конфигурации к генерации изображений. Мы сосредоточены на манипулировании входными данными для наблюдения за изменениями в спектрах, таких как цвета и размер. Хотя того же часто можно добиться, просто изменив прилагательное в подсказке, даже небольшие изменения в подсказке могут привести к совершенно другим изображениям. Поэтому наша цель — вносить целенаправленные изменения в изображения, сохраняя при этом другие характеристики как можно более похожими.

Фон

Стабильная диффузия — это недавняя модель генерации изображений ИИ [1]. Изображение создается из текстовой подсказки. Сама модель состоит из нескольких частей, в основном текстового кодировщика и генератора изображений [2]. Кодировщик текста представляет собой особый тип языковой модели Transformer [3], называемый моделью CLIP [4] (v2 стабильного распространения фактически использует вариант модели CLIP, называемый OpenCLIP [5]). Генератор изображения состоит из более мелких частей, создателя информации об изображении и части декодера изображения.

В нашей работе мы сосредоточимся на части текстового кодировщика, потому что мы стремимся увидеть, как перемещаться в пространстве встраивания ввода текста с намерением контролировать детали выходного изображения. Кодер CLIP преобразует текстовое приглашение в представление, которое затем передается компоненту генератора изображений. Сама модель CLIP была обучена на парах изображение-заголовок и состоит из кодировщика изображения и кодировщика текста. Затем изображения и текстовые вложения обучаются представлять их сходство, чтобы достичь состояния, в котором во время вывода вложение предложения близко к вложению изображения, которое его описывает.

Поиск способов «управлять» моделями генерации изображений ранее в основном изучался с помощью GAN. Джаханян и др. показали, однако, что управляемость лучше всего достигается за счет увеличения данных, когда скрытые траектории ходьбы изучаются вместе с генерацией изображений [6]. Без аугментации тоже можно добиться некоторой управляемости, но достижимые эффекты будут ограничены из-за необъективности обучающих данных, например, предметы обычно находятся в центре кадра и определенные объекты соотносятся с определенными характеристиками (щенки маленькие, апельсины оранжевые и др.).

Эксперименты

Анализ управляемых свойств

Нашим первым шагом было проанализировать, какие различные свойства изображений мы можем исследовать и как они реагируют на простые манипуляции с использованием линейной интерполяции. Кроме того, мы хотели посмотреть, должны ли манипуляции выполняться на уровне встраивания слов (ввод кодировщика) или встраивания контекстных предложений (выход кодировщика).

Вложения слов потенциально могут обеспечить более детальный контроль над выводом — мы точно знаем, какая часть встраивания соответствует нашему свойству. Однако управление встраиванием слов может оказаться сложным, если свойство выражено в нескольких словах или подсловах или если оно вообще не указано явным образом. Кроме того, изменение встраивания слов не должно давать преимущества перед изменением формулировки подсказки и, вероятно, окажет аналогичное влияние на контекст всего изображения. С другой стороны, встраивание предложений уже должно охватывать контекст исходной подсказки, а модификации одного свойства должны иметь минимальные изменения. Однако, если изображение содержит несколько потенциально управляемых объектов, становится невозможным ограничить изменения только одним из них.

В качестве первого свойства мы исследовали цвет и использовали (взвешенные) средние значения нескольких текстовых подсказок для создания изображений как с контекстными вложениями на уровне предложений, так и с встраиваниями слов. Мы ожидали, что наши усредненные вложения будут генерировать изображения, используя сплошную субтрактивную смесь этих цветов (желтый + синий = зеленый, желтый + красный = оранжевый и т. д.). Однако чаще всего мы наблюдали разноцветные объекты, содержащие оба исходных цвета.

Кроме того, мы заметили, что подсказки, которые мы подаем в модель распространения, выигрывают от того, что они более описательные, чтобы модель изменяла только объект, а не импровизировала на фоне или среде, в которой находится объект. Например, если мы хотим, чтобы птица на картинке, чтобы изменить цвет и ничего больше, то подсказка не может быть просто «Птица [цвет]». Это говорит о том, что изменения на уровне слов ограничиваются довольно сложными подсказками.

С изображениями объектов разного размера мы заметили аналогичные тенденции. Во-первых, подсказки должны быть достаточно сложными, чтобы контекст объекта оставался одинаковым. Кроме того, наши первоначальные тесты со словом «собака» показали важность разработки подсказки, в которой объекты разного размера будут выглядеть одинаково, например, собаки разных размеров связаны с разными породами.

Во-вторых, модель часто имеет тенденцию генерировать изображения мелких объектов крупным планом (например, щенков), и эти крупные планы могут в конечном итоге покрывать большую часть поверхности изображения, особенно когда остальная часть изображения недостаточно описана. Например, в первом ряду хаски ниже все собаки занимают одинаковую область изображения, тогда как первая собака явно щенок и в реальной жизни была бы меньше. В результате усредненные результаты существенно не отличаются от результатов для крупных или средних хаски. Однако различия гораздо более выражены, когда мы предоставляем контекст «стены из красного кирпича».

Основываясь на этих наблюдениях, мы пришли к выводу, что при линейной интерполяции различия между использованием встраивания на уровне слова или на уровне предложения для управления изображением не приводят к существенно различающимся результатам. Мы также заметили, что свойства, изменяющие композицию изображения, сложнее контролировать (маленькая собака — это увеличенный щенок), и решили исключить такие свойства из дальнейших экспериментов.

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

Анализ управляемых подсказок

Поскольку наши первоначальные эксперименты показали, что не все подсказки работают одинаково хорошо, мы решили продолжить исследование того, какое значение имеет написание хорошей подсказки в задаче, связанной с перемещением в цветовом спектре. Гипотеза, которую мы выдвинули, заключалась в том, что управление цветом лучше работает с более подробными подсказками. Мы выбрали пару подсказок, чтобы увидеть, есть ли существенная разница в выборе простой или конкретной подсказки. Цель состояла в том, чтобы создать подсказки с объектами в них, а затем заставить объект изменить свой цвет. Мы сгенерировали несколько примеров с одним приглашением с разными случайными начальными значениями и вручную оценили выходные данные и сравнили их с изображением, созданным из приглашения, которое имело целевой цвет в приглашении.

Эксперименты проводились только на уровне встраивания контекстных предложений, а не на уровне встраивания слов, потому что предыдущий анализ не показал существенной разницы между одним и другим.

Мы протестировали множество различных комбинаций подсказок, чтобы увидеть, какая из них лучше всего демонстрирует эффект сложности подсказки. Существует также Руководство по быстрому написанию, доступное в Интернете, где мы черпали вдохновение, а также одолжили несколько очень подробных подсказок для тестирования.

Например, одна из пар подсказок, которую мы сравнили, — это простая подсказка, такая как «рисунок [цветного] дома» и «широкая фотография [цветного] дома в пустом месте». улица, детализировано, туман, мягкая виньетка». На основе сгенерированных примеров мы заметили, что наша гипотеза не всегда выполняется. Хотя кажется, что как с более простыми, так и с более сложными подсказками среднее значение желтого и красного не всегда соответствует оранжевому, цвет дома кажется более последовательным, а картинка более простой с более простой подсказкой, тогда как более сложная подсказка дает слишком много деталей и вносит в картину другие цвета, чем описанные. Это, однако, слишком сильно влияет на среднее значение двух изображений, и в результате получается не тот цвет, который мы ищем и ждем.

Другой пример включает еще больший контраст между подсказками, на этот раз предметом изображения является животное, и обе подсказки дают изображения, где фон однотонный, а на самих картинках нет других деталей. Более простая подсказка — «фотография [цветной] лягушки, объектив 800 мм», а очень подробная — «маленькая симпатичная [цветная] лягушка, стоячий персонаж, мягкое плавное освещение, мягкие пастельные тона, Скотти Янг, 3D-рендеринг в блендере, поликаунт, модульный конструктивизм, поп-сюрреализм, физически обоснованный рендеринг, квадратное изображение». Здесь мы видим, что как простые, так и сложные подсказки довольно одинаково успешно сливают желтый и синий в зеленый, причем сложная подсказка дает более связные зеленые лягушки, чем более легкая подсказка. Однако может случиться так, что модель уже смещена в сторону зеленых лягушек.

В результате этого анализа мы пришли к выводу, что успешность получения среднего значения цветов путем усреднения двух контекстных вложений сильно различается в зависимости от подсказки и ее темы. В целом кажется, что это работает лучше, когда фон не очень детализирован и когда два изображения одного и того же объекта уже достаточно похожи друг на друга. Сходство, однако, связано не обязательно с количеством деталей в подсказке, а со стилем изображения и конкретным объектом.

Пересечение цветового пространства

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

Чтобы оценить, следует ли нам изменять встраивания слов или встраивания предложений, мы изучили оба пространства встраивания, используя имена цветов и выполняя PCA. Графики ниже показывают, что вложения слов по-прежнему довольно случайны, а цвета не группируются в соответствии с нашим восприятием. Однако при встраивании слов мы ограничены именами цветов из одного подслова, которых может быть недостаточно для иллюстрации пространства встраивания. Кроме того, такие названия, как «шалфей» или «коралл», используются не только как цвета, поэтому для их правильного представления может потребоваться контекстуальность.

С предложениями мы можем включать более конкретные имена и описательные фразы (все названия цветов XKCD) и даже вставлять их в подсказки, что создает четкий эффект цветового круга.

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

В большинстве случаев мы наблюдали, что эти средние латентные прогулки давали лучшие результаты по сравнению с интерполяцией между двумя подсказками. Например, в последнем ряду изображений выше мы видим, что желтый цвет в экстерьере дома в основном заменен зеленым, тогда как интерполяцией между двумя подсказками этого добиться не удалось, а использование «зеленого» в исходной подсказке создает изображение с визуально существенно разный контекст. Однако не все случаи были успешными — в приведенных ниже примерах с красным и оранжевым цветом первое изображение не передает композицию исходного изображения, а на последнем изображении здание остается красным, а небо вместо этого становится оранжевым.

Кроме того, мы заметили, что эта стратегия больше не страдает от проблемы создания разноцветных объектов вместо желаемых однотонных. Например, исходный пример превращения желтой птицы в зеленый теперь действительно работает, и выходное изображение гораздо больше похоже на исходное изображение с желтой птицей по сравнению с тем, когда мы использовали слово «зеленый» в подсказке.

Во-вторых, мы проверили, можем ли мы напрямую управлять интенсивностью цветовых каналов RGB, просто добавляя или вычитая представление каждого цвета из встраивания предложения. Это дало очень хорошие результаты, и на всех изображениях ниже мы видим последовательное изменение цвета в сторону желаемого. Однако были и некоторые нежелательные эффекты, когда изменение также повлияло на контекст, например, на нижнем правом изображении ниже. Однако, по сравнению с предыдущими методами, мы наблюдали эти проблемы гораздо реже.

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

Заключение

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

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

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

Ссылки

[1] Ромбах Р., Блаттманн А., Лоренц Д., Эссер П. и Оммер Б. (2021). Синтез изображений высокого разрешения с использованием моделей скрытой диффузии.Препринт ArXiv.https://doi.org/10.48550/arXiv.2112.10752

[2] https://jalammar.github.io/illustrated-stable-diffusion/

[3] Васвани А., Шазир Н., Пармар Н., Ушкорейт Дж., Джонс Л., Гомес А. Н., Кайзер Л. и Полосухин И. (2017). Внимание - это все, что вам нужно. В книге И. Гайона, У. В. Люксбурга, С. Бенжио, Х. Уоллаха, Р. Фергуса, С. Вишванатана и Р. Гарнетта (ред.), Достижения в системах обработки нейронной информации (Том 30). ). Curran Associates, Inc. https://proceedings.neurips.cc/paper/2017/file/3f5ee243547dee91fbd053c1c4a845aa-Paper.pdf

[4] Рэдфорд, А., Ким, Дж. В., Халласи, К., Рамеш, А., Го, Г., Агарвал, С., Састри, Г., Аскелл, А., Мишкин, П., Кларк, Дж. ., Крюгер, Г., и Суцкевер, И. (2021). Изучение переносимых визуальных моделей из наблюдения за естественным языком. Препринт ArXiv. https://doi.org/10.48550/ARXIV.2103.00020

[5] Черти, М., Бомонт, Р., Вайтман, Р., Вортсман, М., Ильхарко, Г., Гордон, К., Шухманн, К., Шмидт, Л., и Джицев, Дж. (2022). ). Воспроизводимые законы масштабирования для контрастного обучения языку-образу. Препринт ArXiv. https://doi.org/10.48550/arXiv.2212.07143

[6] Джаханян А., Чай Л., Изола П. (2020). Об управляемости генеративно-состязательных сетей. Международная конференция по обучающим представлениям.
https://doi.org/10.48550/arXiv.1907.07171