Нейронные сети прошли долгий путь от генерации странных ЧБ-изображений до фантастических фотореалистичных сцен, которые не поддаются воображению. С помощью всего лишь короткой текстовой подсказки диффузионные нейросети могут создавать потрясающие изображения, неотличимые от обычных. Однако, какими бы впечатляющими ни были эти модели, в них отсутствует важнейший элемент — пользовательский контроль. Представьте, что вы можете указать точную форму, положение и позу объекта на изображении, которое вы хотите создать. Что ж, теперь это возможно благодаря новаторской технологии под названием ControlNet!

Эта end-to-end архитектура нейронной сети позволяет вам управлять процессом генерации изображения в диффузионных моделях, добавляя определённые входные условия, такие как форма, глубина или поза объекта. Плавно интегрируя управляющую сеть и диффузионную модель, ControlNet точно настраивает выходные данные большой предварительно обученной модели в соответствии с желаемыми входными условиями. ControlNet даёт вам возможность раскрыть свой творческий потенциал и создавать визуально потрясающие изображения, соответствующие вашему видению мира.

Модель способна эффективно изучать условия, зависящие от конкретной задачи, даже когда обучающий набор данных невелик (< 50k). Кроме того, её также можно обучать даже на персональных компьютерах, если мощные вычислительные кластеры недоступны, и масштабировать для больших наборов данных (миллионы или миллиарды), если таковые имеются. Кроме того, ControlNet также может принимать различные формы входных данных, такие как карты границ и карты сегментации, что ещё больше расширяет её возможности по сравнению с традиционными методами. В этой статье мы обсудим, как работает ControlNet, и рассмотрим её применение в задачах обработки изображений.

girl, masterpiece, best quality, ultradetailed, illustration

▍ Проблема


Актуальные диффузионные text2image модели обладают различными способами, упрощающими пользователю путь к достижению «идеальной картинки», которая была бы больше похожа на желаемое.

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

А потом появился ControlNet.

▍ Image2image


ControlNet позволяет использовать условные входные данные в больших диффузионных моделях, таких как Stable Diffusion, что даёт возможность пользователям больше контролировать сгенерированные результаты, чем когда-либо прежде!

Перевод изображения в изображение — это метод, который изучает сопоставление между изображениями в разных областях, таких как художественные работы, фотографии или эскизы. Для достижения этой цели использовались различные типы алгоритмов, такие как условно порождающие нейронные сети, методы авторегрессии и многомодельные методы. Новейшие методы преобразования изображения в изображение можно найти в Taming Transformer, Palette и PITI. Они используют такие методы, как VIT (Vision Transformers), файнтюнинг и основанные на оптимизации манипуляции процессом диффузии для получения результатов.

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

Эта нейронная сеть схожа с HyperNet. HyperNet — это способ обучения небольшой нейронной сети, которая затем может быть использована для изменения весов более крупной. Этот метод был использован при генерации изображений с использованием нейронных сетей и других задач машинного обучения. И ControlNet, и HyperNetwork используют особый тип слоя свёртки — «нулевую свёртку». Это означает, что начальные веса слоёв инициализируются равными нулю. Этот метод манипулирования начальными весами использовался в различных исследованиях для улучшения тренировок и достижения лучших результатов.

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

a man wearing sunglass near a street corner

▍ Метод


ControlNet — это архитектура нейронной сети, предназначенная для улучшения предварительно обученных моделей диффузии изображений в зависимости от конкретных задач. Она работает путём манипулирования входными условиями блоков нейронной сети, которые представляют собой наборы нейронных слоёв, используемых для построения нейронных сетей, которые обучаются с помощью вектора внешних условий. Это позволяет сохранить исходные веса, избегая каких-либо изменений из-за небольших наборов данных и позволяя проводить файнтюнинг намного быстрее, чем обучение с нуля. ControlNet использует слои «нулевой свёртки» в качестве соединений между своими компонентами, которые имеют как вес, так и смещение, инициализированные нулями, так что на первом этапе обучения они не оказывают никакого влияния на глубокие объекты. Градиенты для этих нулевых свёрток могут быть рассчитаны с использованием уравнений произведения Адамара таким образом, что когда внешний градиент не равен нулю, будут получены ненулевые градиенты, и обучение начнётся без необходимости начинать с нуля каждый раз, когда вводятся новые данные или задачи. ControlNet обычно применяют к Stable Diffusion (модель преобразования текста в изображение), где входные данные сначала должны быть закодированы в свёрнутые карты размером 64 x 64 с использованием небольшой сети из четырёх слоёв свёртки, прежде чем они будут подключены через структуру ControlNet в encoder / decoder.


ControlNet имеет всего четыре слоя свёртки с ядрами 4 x 4 и шагами 2 x 2, наряду с активацией ReLU и гауссовыми весами, которая используется для кодирования условий пространства изображений ci в карты объектов cf = E(ci). С помощью этой сети управления обучение модели Stable Diffusion требует всего 23% дополнительной памяти и 34% дополнительного времени по сравнению с исходной моделью. Архитектура ControlNet также, вероятно, будет использоваться с другими моделями распространения в виде типичной структуры U-net.

Обучение нейросети происходит так же быстро, как файнтюн диффузионной модели. Было обнаружено, что для повышения производительности обучения в экстремальных случаях, когда вычисления на устройстве ограничены, частичный разрыв соединений между сетью управления и стабильной диффузией ускоряет конвергенцию. Когда доступны мощные вычислительные кластеры, для обучения можно использовать большие объёмы (от миллионов до миллиардов) данных. В этом случае можно сначала обучить управляющие сети для достаточно большого числа итераций, прежде чем разблокировать все веса Stable Diffusion и совместно обучать их вместе как одну модель, специфичную для конкретной задачи. Это приводит к более точному управлению моделями распространения изображений, что может дополнительно облегчить смежные приложения, такие как обнаружение чётких границ на изображениях с использованием случайных пороговых значений.


▍ Заключение


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

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

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

Попробовать демо


Telegram-канал с розыгрышами призов, новостями IT и постами о ретроиграх

Комментарии (8)


  1. maximke4up
    00.00.0000 00:00
    +4

    Лучшая статья, которую я читал за сегодня


  1. leboja
    00.00.0000 00:00
    +2

    Теперь каждый может себе сгенерировать девушку-ассистентку а-ля Алиса.


  1. dimnsk
    00.00.0000 00:00

    перевод ?


    1. Nikuson Автор
      00.00.0000 00:00
      +2

      Нет ???? Максимум цитаты из официального парира от разработчиков


      1. Nikuson Автор
        00.00.0000 00:00

        *папира


        1. imageman
          00.00.0000 00:00

          из официального пиара :-)


  1. cyber_roach
    00.00.0000 00:00
    +1

    Здорово конечно, но решает проблему лишь формы, а не содержания.
    Основная проблема контроля генерации, собственно в самой генерации, на текущий момент нейросети не умеют гененировать 2 картинки человека в разных позах с однинаковым контентом на них.
    Мне кажется проблема контроля не будет решена, пока сети не научатся генерировать слоями.
    т.е. примитивно примером: слой1 - задний фон (комната), слой 2 - стол, слой 3 - предмет на столе, слой 4 - человек, в этом случае уже можно будет создавать комикс, где на первой картинке девушка в комнате берет со стола бутылку молока, на второй - ее пьет, а на 3й ставит на стол уже пустую. И далее уже в этой локации происходят какие-то другие сцены.
    В теории это возможно уже сейчас, но усилий в "подгонке кадров" больше, чем затратит художник на эти кадры.


    1. Expany
      00.00.0000 00:00

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