Skip to content

Latest commit

 

History

History
352 lines (259 loc) · 26.2 KB

File metadata and controls

352 lines (259 loc) · 26.2 KB

Version Last Commit License


ComfyUI LoRA Pipeline

Оболочки кондиционирования на основе области LoRA и узлы планирования LoRA для ComfyUI.


Оглавление


Функции

  • Конвейер кондиционирования на основе территории для подсказок по нескольким предметам и регионам.
  • Плановый контроль силы LoRA в одном узле с выводом предварительного просмотра кривой.
  • Для согласованной многопредметной композиции в нескольких областях настоятельно рекомендуется ControlNet + OpenPose через comfyui-openpose-studio.
  • Без ControlNet/OpenPose композиция из нескольких предметов и нескольких областей часто бывает непоследовательной и может потребовать много повторных попыток.
  • Только Python: никаких зависимостей JavaScript или внешнего интерфейса не требуется.

Установка

Требования

  • ComfyUI (последняя сборка)
  • Python 3.10+
  • Необязательные зависимости для каждого узла: matplotlib

Шаги

  1. Клонируйте этот репозиторий в ComfyUI/custom_nodes/.
  2. Перезапустите ComfyUI.
  3. Подтвердите, что узлы появляются под LoRA Pipeline/.

Рекомендуемая настройка (несколько областей / несколько предметов)

  • Используйте ControlNet OpenPose (рекомендуется): comfyui-openpose-studio.
  • Сохраняйте глобальное приглашение минимальным и общим.
  • Держите global_strength на низком уровне (практическое правило: ниже 0.5).
  • Баланс силы по областям: global_strength и LoRA силы; не используйте все силы на максимуме.
  • Примеры базовых значений, которые сработали хорошо: сильные стороны области около 0.75, сильные стороны LoRA около 0.90.

Узлы

Conditioning Pipeline (Combine) Conditioning Pipeline (Set Area) Load LoRA (Scheduled)
Conditioning Pipeline (Combine) Conditioning Pipeline (Set Area) Load LoRA (Scheduled)

Conditioning Pipeline (Set Area)

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

Вкратце:

  • Используйте один экземпляр узла для каждого региона/темы.
  • Объедините несколько экземпляров в цепочку для создания регионального конвейера обработки.
  • Обеспечивает чистый контроль нескольких объектов перед окончательным объединением.

Входы:

  • conditioning (CONDITIONING, обязательно)
  • width, height, x, y (FLOAT, нормализованное 0.0-1.0)
  • strength (FLOAT, по умолчанию 1.0)
  • pipeline_in (CONDITIONING_PIPELINE, необязательно)

Выходы:

  • pipeline_out (CONDITIONING_PIPELINE)

Примечания к поведению:

  • Создает новый конвейер, если pipeline_in не подключен.
  • Добавляет новую региональную запись при подключении pipeline_in.
  • Сохраняет записи в порядке, чтобы вы могли создавать предсказуемые региональные стеки.
  • Более низкая интенсивность областей часто улучшает общее качество изображения, но снижает возможности контроля каждой области.
  • Сбалансируйте силу области вместе с силой global_strength и силой LoRA в Create Hook Lora.

Распространённые ошибки:

  • Предоставление координат пикселей вместо нормализованных значений 0.0-1.0.
  • Устанавливать width/height рядом с 0 и ожидать видимого эффекта.
  • Забывать передавать последний pipeline в Conditioning Pipeline (Combine).

Conditioning Pipeline (Combine)

Объедините глобальное положительное/негативное кондиционирование с региональным конвейером для получения результатов с учетом региона. Вместе с Set Area это основной путь для нескольких LoRA и отдельных условий для каждого субъекта/зоны.

Вкратце:

  • Преобразует ваш региональный конвейер в окончательные положительные/отрицательные результаты.
  • Сохраняет глобальный контекст подсказки при добавлении локального регионального контроля.

Входы:

  • global_positive (CONDITIONING, обязательно)
  • global_negative (CONDITIONING, обязательно)
  • pipeline (CONDITIONING_PIPELINE, обязательно)
  • global_strength (FLOAT, по умолчанию 0.3)

Выходы:

  • positive_out (CONDITIONING)
  • negative_out (CONDITIONING)
  • areas_out (CONDITIONING_AREAS)

Подробности об areas_out:

areas_out предоставляет список настроенных областных регионов в виде структурированных выходных данных. Каждая запись содержит нормализованные координаты (x, y, width, height) и strength, определённые в конвейере через Conditioning Pipeline (Set Area). Подключите areas_out к ComfyUI-OpenPose-Studio, чтобы автоматически отобразить ваши области обусловливания в редакторе OpenPose — расположение поз будет совпадать с теми самыми регионами, которые вы обусловили. Этот выход также может быть использован любым другим расширением или узлом, принимающим метаданные областей для генерации масок или регионально-ориентированной нисходящей обработки.

Примечания к поведению:

  • Если конвейер пуст/недействителен, выходные данные возвращаются к глобальным входам, а areas_out является пустым списком.
  • Применяет региональные записи, а затем комбинированный проход по умолчанию для непокрытых регионов.
  • global_strength контролирует, насколько сильно глобальный контекст конкурирует с локальными областями.
  • Слишком высокое значение global_strength может уменьшить влияние обработки каждой области и отрицательно повлиять на качество изображения.
  • Хорошие результаты обычно достигаются за счет баланса глобальной силы с силой по регионам и силы LoRA, а не за счет максимизации всех значений.

Распространённые ошибки:

  • Подача только одного обуславливающего потока вместо одновременно положительного и отрицательного.
  • Перегрузка global_strength и размытие деталей области.
  • Создавать записи области, но забывать подключать объединённые выходы к пути сэмплера.

ScheduledLoRALoader

Примените один LoRA с постоянной силой или запланированную кривую в зависимости от прогресса диффузии в одном чистом узле.

Вкратце:

  • Заменяет беспорядочные цепочки из нескольких собственных узлов LoRA/control.
  • Сохраняет синхронизацию, интерполяцию и предварительный просмотр вместе.
  • Более четкое соединение графов для временного поведения LoRA.

Входы:

  • model (MODEL, обязательно)
  • clip (CLIP, обязательно)
  • lora_name (STRING, обязательно)
  • strength_start, strength_end (FLOAT)
  • interpolation (STRING: linear, ease_in, ease_out, ease_in_out)
  • start_percent, end_percent (FLOAT, 0.0-1.0)
  • keyframes_count (INT, по умолчанию 4)
  • apply_to_conds (BOOLEAN, необязательно)

Выходы:

  • model (MODEL)
  • clip (CLIP)
  • curve_preview (IMAGE)

Примечания к поведению:

  • Если lora_name равен None, прохождение модели/клипа и предварительный просмотр по-прежнему визуализируются.
  • Если начальная и конечная сильные стороны совпадают, оно ведет себя как постоянное приложение LoRA.
  • Предварительный просмотр кривой помогает быстро проверить время перед полной визуализацией.

Распространённые ошибки:

  • Забывание matplotlib при использовании curve_preview.
  • Использование окна расписания, которое не соответствует назначению времени выборки.
  • Ожидается, что этот узел напрямую выведет CONDITIONING.

Дополнительные зависимости

Устанавливайте только то, что вам нужно, в той же среде Python, которую использует ComfyUI.

  • ScheduledLoRALoader предварительный просмотр кривой: python -m pip install matplotlib

Пример workflow с несколькими зонами

Полный рабочий процесс

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

Настройка зоны 1

Кондиционирование зоны 1

  • Используйте собственный Create Hook Lora для загрузки одного LoRA и определения запроса/условия области для области 1.
  • Подключите это условие к Conditioning Pipeline (Set Area) и установите width, height, x, y и strength для этого региона.

Настройка зоны 2

Кондиционирование зоны 2

  • Повторите ту же самую схему: еще один Create Hook Lora + еще один Conditioning Pipeline (Set Area).
  • Вы можете продолжать повторять этот шаблон для дополнительных областей.

Цепочка pipeline и объединение

Conditioning Combine

  • Соедините pipeline_out из области 1 в область 2 (соединенные записи конвейера).
  • Отправьте pipeline_out из последней области в Conditioning Pipeline (Combine), что объединит конвейер области с глобальным кондиционированием.
  • Направьте объединенный вывод непосредственно в KSampler или в ControlNet; в этом примере он направляется в ControlNet.

OpenPose / ControlNet руководство

  • OpenPose/ControlNet в целом является необязательным, но для этого конкретного рабочего процесса составления нескольких предметов и нескольких областей настоятельно рекомендуется для последовательной композиции.
  • См. comfyui-openpose-studio от того же автора (более новый репозиторий).

Глобальное размещение Styler Pipeline

Глобальное размещение Styler Pipeline с кондиционированием территории + ControlNet

Глобальное оформление означает применение Styler Pipeline один раз ко всему изображению в дополнение (или вместо) кондиционирования каждой области.

  • Общее правило: подключайте Styler Pipeline перед KSampler.
  • При использовании ControlNet Styler Pipeline можно подключить либо до применения ControlNet, либо после применения ControlNet.
  • На практике результат обычно эквивалентен, поэтому выберите наиболее удобное расположение на графике.

global_strength компромиссов

  • Слишком большое увеличение global_strength снижает относительное влияние обусловленности каждой области и может ослабить идентичность LoRA/стиля каждой области.
  • Более высокая глобальная сила также может негативно повлиять на качество изображения.
  • Держите global_strength на низком уровне и сохраняйте глобальное приглашение минимальным/общим.
  • Эмпирическое правило: обычно используйте значения ниже 0.5 (проверено до 0.5) и не полагайтесь на глобальные условия, выходящие за рамки общих рекомендаций.
  • Снижение силы LoRA имеет тенденцию снижать идентичность LoRA или точность персонажа, в то время как снижение силы области имеет тенденцию уменьшать контроль над каждой областью.
  • Не рекомендуется использовать все до максимума, поскольку высокие комбинированные значения могут привести к ухудшению качества изображения. Это особенно актуально при смешивании LoRA от разных авторов, что может привести к нестабильному качеству.
  • Эмпирическое правило для многосимвольных LoRA: по возможности используйте LoRA от одного и того же автора или аналогичный подход к обучению для более согласованных комбинированных результатов.

Галерея

Предварительный просмотр Описание
conditioning_pipeline_area Конвейер подготовки — несколько областей с ControlNet OpenPose

Демонстрирует несколько вертикальных областей с несколькими LoRA без кровотечения LoRA с использованием ControlNet OpenPose.

Требуется comfyui-openpose-studio.
conditioning_pipeline_styled Конвейер подготовки — несколько областей с ControlNet и стилями

Демонстрирует несколько областей и несколько LoRA со стилем для каждой области, применяемым к каждой области независимо.

Требуются comfyui-openpose-studio и comfyui-styler-pipeline.

Этот рабочий процесс использует стили для каждой области, то есть каждая область имеет свои собственные стили, настроенные отдельно. Глобальное оформление также возможно, подключив узел Styler непосредственно перед ControlNet.

В этой статье можно увидеть полный workflow, объединяющий несколько conditioning area, OpenPose, ControlNet и Styler, используемых одновременно.


Финансирование и поддержка

Почему ваша поддержка важна

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

Ваш вклад помогает:

  • Финансирование инструментов ИИ для более быстрых исправлений и новых функций.
  • Покрывает текущие работы по обслуживанию и совместимости обновлений ComfyUI.
  • Предотвращает замедление разработки при достижении пределов использования.

Tip

Не жертвуете? Звезда GitHub ⭐ по-прежнему очень помогает, улучшая видимость и помогая большему количеству пользователей.

💙 Поддержите этот проект

USDC (только Arbitrum ⚠️)

USDC Badge

Показать адрес

Предпочитаете сканирование? Показать QR-коды
Ko-fi
Ko-fi QR Code
PayPal
PayPal QR Code
USDC (Arbitrum) ⚠️
USDC (Arbitrum) QR Code

Показать адрес USDC
0xe36a336fC6cc9Daae657b4A380dA492AB9601e73

[!WARNING] Отправляйте USDC только через Arbitrum One. Переводы, отправленные в любую другую сеть, не дойдут и могут быть безвозвратно потеряны.

Лицензия

Лицензия MIT — полный текст см. в LICENSE.


Поддерживает: andreszs Статус: Активная разработка