EPS Technical Manual
10 / 64
Файлы
10
PRACTICE LAB · WORKFLOW ENGINEERING

BASE CONFIG Lab: Fast Groups Bypasser как control plane графа

Второй практикум переносит routing logic на уровень целых групп. Задача — руками почувствовать разницу между topology, selected route и централизованным enable/bypass control до подключения SDXL, FLUX или других тяжёлых моделей.

CONFIRMEDМеханика Fast Groups Bypasser сверена с rgthree-comfy: нода автоматически собирает группы workflow, создаёт Enable-переключатели и переводит выключенные группы в Comfy bypass mode 4. Фильтрация по title/color и ограничения toggleRestriction являются штатными properties rgthree.
01 · GOAL

Что меняется после LAB 01

LAB 01 учил выбирать маршрут внутри data flow. LAB 02 поднимается на уровень выше: теперь мы управляем не отдельным selector, а состоянием целых функциональных групп.

Это и есть первый настоящий control plane. BASE CONFIG не переносит IMAGE или MASK. Он меняет состояние тех модулей, через которые эти данные могут проходить.

02 · RGTHREE MECHANICS

Что Fast Groups Bypasser делает на самом деле

Fast Groups Bypasser — frontend/control node без обычного data input. Он сканирует группы workflow и создаёт строку Enable <group title> для каждой подходящей группы.

В состоянии ON nodes группы переводятся в normal execution mode. В состоянии OFF Bypasser использует mode 4 — Comfy bypass. Это отличается от Fast Groups Muter, у которого OFF соответствует NEVER/MUTE.

CONFIRMED

Важное ограничение restriction

max one / always one гарантируются при переключении через сам Fast Groups node. Если менять mode нод внутри групп вручную, состояние может разойтись с этой логикой.

Property / ActionНазначение
matchTitleФильтрация групп по title; поддерживается строка/regex
matchColorsФильтрация по group color
sortposition / alphanumeric / custom alphabet
showNavПоказывает стрелку быстрого перехода к группе
toggleRestrictiondefault / max one / always one
Bypass allПеревести управляемые группы в bypass с учётом restriction
Enable allВключить управляемые группы с учётом restriction
Toggle allИнвертировать управляемые toggles с учётом restriction
03 · BUILD

Собери control-plane поверх Routing Sandbox

Возьми LAB 01 как основу. Ноды оставляем простыми: две text-ветки → selector → output. Теперь добавляем группы и центральную панель управления.

  • Создай группы ROUTE_A, ROUTE_B, SELECTOR и OUTPUT.
  • Fast Groups Bypasser поставь отдельно, вне управляемых групп.
  • В Properties Fast Groups Bypasser задай matchTitle = ^ROUTE_.
  • Панель должна показывать только Enable ROUTE_A и Enable ROUTE_B.
  • Оставь toggleRestriction = default для первого опыта.
  • Начальный selector: index = 0.

04 · EXPERIMENT A

Bypass невыбранной ветки

CONFIRMED

Что мы доказываем

Group enabled state и selector state независимы. Можно изменить availability невыбранной ветки, не меняя selected route.

СостояниеДействиеОжидаемый смысл
index = 0; A ON; B ONQueue PromptOutput зависит от ROUTE_A
index = 0; A ON; B OFFQueue PromptROUTE_B bypassed, но current selected route остаётся A
index = 0; A ON; B ONEnable ROUTE_BTopology прежняя; меняется только availability группы
05 · EXPERIMENT B

Сначала availability, потом selection

Верни обе группы в ON. Переключи selector на index = 1 и проверь ROUTE_B. Затем верни index = 0. Задача — привыкнуть читать систему двумя вопросами подряд: сначала «какие модули доступны?», потом «какой из доступных маршрутов выбран?».

06 · EXPERIMENT C

max one и always one — это policy, а не data routing

Поставь toggleRestriction = max one. Переключая ROUTE_A и ROUTE_B именно через Fast Groups Bypasser, посмотри, как панель удерживает максимум одну включённую группу. Затем попробуй always one: панель должна стремиться оставить хотя бы одну группу включённой.

Не путай это с selector. Ограничение отвечает за допустимое состояние control plane, но не определяет само по себе, какой вход downstream selector выберет.

CONFIRMED

Не абсолютная блокировка

rgthree отдельно предупреждает: restriction применяется к действиям через Fast Groups node. Ручное изменение modes внутри групп может нарушить ожидаемое max-one/always-one состояние.

07 · EXPERIMENT D

Фильтр групп — основа профессионального BASE CONFIG

Сделай вторую копию Fast Groups Bypasser. Первую оставь с matchTitle = ^ROUTE_. Для второй используй matchTitle = ^PROCESS_ после создания двух пустых учебных PROCESS-групп.

Так становится видно, что один большой workflow может иметь несколько control panels: например PPL CONFIG, PROCESS CONFIG и OUTPUT CONFIG. Это уже архитектурный приём, а не особенность конкретной модели.

08 · TRANSFER TO HANSEN

Теперь прочитай BASE CONFIG Hansen как карту систем

После лаборатории большая жёлтая панель Hansen уже должна восприниматься не как набор загадочных yes/no. Это каталог функциональных подсистем production workflow.

  • MODEL LOADERS — availability ресурсоёмких loaders.
  • INPUTS — входной слой.
  • CONTROL / SAMPLER CONFIGURATION — shared control layer.
  • ControlNet PREPROCESSORS + EXTRAS — preprocessing subsystem.
  • MASKS — mask subsystem.
  • PPL FLUX Generate / SEGMENTATION / Composite / 3D Inpaint — независимые PEOPLE stages.
  • Process SEGMENTATION / SDXL / FLUX / UPSCALE / ADD LOGO — processing stages.
  • OUTPUT — terminal stage.
09 · PRODUCTION THINKING

Следующий уровень — runtime profiles

Named profiles вроде MASK DEBUG, PEOPLE ONLY или FINAL FULL RUN — это наша архитектурная надстройка, а не встроенная функция Fast Groups Bypasser. Их смысл — заранее определить минимальный набор enabled modules для конкретной задачи.

ProfileИдея
INPUT CHECKINPUTS + OUTPUT/preview; тяжёлые process branches выключены
MASK DEBUGINPUTS + preprocessors + masks + diagnostic output
PEOPLE LABтолько необходимые PPL stages и return checkpoint
BASE GENERATIONосновной SDXL/ControlNet route без optional upscale/logo
FINAL FULL RUNproduction route с финальными optional stages по задаче
10 · PASS CRITERIA

LAB 02 пройден, когда BASE CONFIG перестаёт быть магией

  • Ты можешь объяснить, почему Fast Groups Bypasser не нуждается в обычном data cable.
  • Ты различаешь ENABLE/BYPASS группы и SELECT конкретного маршрута.
  • Ты понимаешь назначение matchTitle и можешь ограничить панель нужным семейством групп.
  • Ты знаешь разницу между default, max one и always one.
  • Ты можешь посмотреть на Hansen BASE CONFIG и назвать подсистемы, а не просто перечислить переключатели.
  • Ты можешь предложить минимальный runtime profile для конкретного теста.
CONFIRMED

Следующий шаг

После LAB 02 переходим к LAB 03: Module Contract — INPUT → PROCESS → CHECKPOINT → RETURN. Там впервые соберём маленький production-style модуль с чёткой границей ответственности.