Введение
Одна из распространённых проблем при генерации изображений с помощью ИИ — достижение точного художественного руководства. Хотя промпты могут направлять общий стиль и содержание изображения, они часто не справляются, когда речь идёт о контроле конкретных деталей композиции, таких как направление на экране или размещение объектов.
В этой статье мы рассмотрим, как ControlNet можно использовать в рабочих процессах ComfyUI, чтобы преодолеть эти ограничения. Используя модели ControlNet, вы можете направлять композицию генерируемых изображений с помощью внешних входных данных, таких как контурные рисунки или карты краёв. Такой подход позволяет добиться большей степени контроля и точности в процессе генерации изображений.
Оглавление
Проблема: ограничения промптов в композиции
Рассмотрим пример: генерация изображения собаки, смотрящей вправо на экране. Даже при тщательно составленном промпте с указанием “facing screen right,” изображение, сгенерированное диффузионной моделью Juggernaut XL не соответствует этому требованию. Вместо того чтобы смотреть вправо на экране, собака смотрит влево.
Этот результат подчёркивает ключевое ограничение: диффузионным моделям и текстовым кодировщикам часто трудно понять пространственные или направленные промпты. Единственной альтернативой было бы случайным образом перебирать разные сиды, пока не получится нужная композиция, — трудоёмкий и неэффективный процесс.
Знакомство с ControlNet
ControlNet предлагает решение, вводя в рабочий процесс внешнее conditioning на основе изображений. Он работает, анализируя эталонное изображение и применяя его структуру или композицию к генерируемому результату.
Модели ControlNet предназначены для работы с конкретными диффузионными моделями. Для этого примера мы будем использовать модель controlnet-scribble-sdxl-1.0, совместимую с доработанной диффузионной моделью SDXL. Scribble ControlNet принимает простые контурные рисунки в качестве входных данных, что делает его идеальным для приблизительного руководства композицией.
Настройка ControlNet в ComfyUI
Шаг 1: скачивание и установка модели ControlNet
- Скачайте модель controlnet-scribble-sdxl-1.0 по адресу xinsir/controlnet-scribble-sdxl-1.0 at main, исходное имя — diffusion_pytorch_model.safetensors.
- Поместите файл модели в следующий каталог:
/models/controlnetи переименуйте его в controlnet-scribble-sdxl-1.0.safetensors, вам потребуется перезапустить ComfyUI, чтобы загрузить файл модели.

Шаг 2: построение рабочего процесса
В ComfyUI вам потребуется создать рабочий процесс, который интегрирует модель ControlNet в процесс генерации изображений.
Исходная модель:

Выполните следующие действия:
1. Загрузка модели ControlNet
- Добавьте узел Load ControlNet Model.
- Выберите модель controlnet-scribble-sdxl-1.0 из списка.

2. Apply ControlNet
- Добавьте узел Apply ControlNet.
- Отключите conditioning от узла KSampler и направьте его вместо этого через узел Apply ControlNet.


3. Загрузка входного изображения
- Добавьте узел Load Image.
- Загрузите свой контурный рисунок (например, простой набросок нужной композиции).
- Подключите изображение к узлу Apply ControlNet.

4. Завершение соединений
- Подключите модель ControlNet к узлу Apply ControlNet.
- При желании подключите VAE к узлу Apply ControlNet для полноты (хотя в данном случае это не повлияет на результаты).

Шаг 3: генерация изображения
Когда рабочий процесс настроен, поставьте его в очередь для генерации изображения. ControlNet будет направлять композицию на основе загруженного контурного рисунка.
Исходный набросок:

Промпт, который я использую: nature photography, dog, standing on the grass, daylight, (bokeh:1.5)
Результат:

Результаты и доработки
Первоначальный результат
При использовании модели ControlNet Scribble сгенерированная собака теперь следует правильной композиции. Однако влияние ControlNet по умолчанию установлено на максимум, что может привести к неестественным результатам, если входной рисунок неточен или чрезмерно упрощён.
Например, если загруженному наброску не хватает анатомической точности, сгенерированное изображение может выглядеть искусственно или искажённо.
Балансировка влияния ControlNet
Чтобы решить эту проблему, вы можете настроить параметры влияния ControlNet, чтобы найти баланс между входным рисунком и естественным уточнением генеративной модели. Это позволяет модели восполнять недостающие детали, по-прежнему придерживаясь нужной композиции.
Типы моделей ControlNet
ControlNet предлагает несколько вариантов, каждый из которых адаптирован к конкретным сценариям использования:
- Scribble ControlNet: принимает простые контурные рисунки для приблизительного руководства композицией.
- Canny ControlNet: извлекает детали краёв из входного изображения, чтобы направлять композицию.
- Depth ControlNet: анализирует информацию о глубине для создания изображений с реалистичными пространственными отношениями.
В зависимости от ваших потребностей вы можете выбрать подходящую модель ControlNet для руководства рабочим процессом.
Практическое применение
ControlNet особенно полезен для:
- Точное размещение объектов: обеспечение появления объектов в конкретных местах или ориентациях.
- Пользовательские композиции: достижение уникальных макетов, которые трудно описать только текстовыми промптами.
- Художественное руководство: сочетание внешних набросков или референсов с генеративным ИИ для творческих результатов.
Заключение
Использование ControlNet в рабочих процессах ComfyUI позволяет лучше контролировать композицию изображения, устраняя ограничения генерации на основе промптов. Интегрируя внешние входные данные, такие как контурные рисунки, вы можете точно направлять размещение и ориентацию объектов.
На следующем этапе поэкспериментируйте с балансировкой влияния ControlNet, чтобы добиться натуралистичных и визуально привлекательных результатов. Работаете ли вы над художественными проектами или конкретными дизайнерскими задачами, ControlNet открывает новые возможности для творческого руководства при генерации изображений с помощью ИИ.