Graph Organization · Groups & Naming Standard — как сделать большой workflow читаемым
Большой production workflow должен читаться на трёх масштабах: весь canvas, функциональный module и отдельная node chain. Группы и naming standard превращают визуальную раскладку в навигацию, control API и документацию одновременно.
Группа — это не цветная рамка, а часть архитектуры workflow
Если group используется только для визуального украшения, она не помогает читать или обслуживать граф. В production workflow название группы должно сразу отвечать на вопрос: какую ответственность выполняет этот участок и где он находится в общем маршруте.
Правильная group architecture уменьшает когнитивную нагрузку: вместо сотен nodes пользователь сначала видит 10–15 систем, затем открывает нужный module и только потом читает конкретную chain.
Единый порядок главных production-групп
Почему numeric prefix
Префикс фиксирует intended reading order и делает сортировку групп предсказуемой даже при большом canvas.
| Prefix | Group | Responsibility |
|---|---|---|
| 00 | BASE CONFIG | Глобальная availability / bypass логика и режимы запуска |
| 01 | MODEL LOADERS | Models, CLIP, VAE и тяжёлые shared resources |
| 02 | INPUTS | Base render, maps, references, logo и внешние данные |
| 03 | CONTROL | Shared values, selectors, seed, size, mode controls |
| 04 | PREPROCESS | Depth, Canny, resize, detection preparation |
| 05 | BASE GENERATION | SDXL / FLUX base generation или img2img stage |
| 06 | MASKS | Segmentation, protection masks, local edit regions |
| 07 | PEOPLE / PPL | Generation / replacement / compositing of people |
| 08 | LOCAL REFINE | Detail transfer, inpaint, local polish |
| 09 | UPSCALE | High-resolution / final polish path |
| 10 | OUTPUT | Preview, save, delivery outputs |
Внутри module используем тот же принцип: stage number + responsibility
Название должно описывать функцию, а не историю редактирования. FINAL2, TEST_NEW, COPY3 и похожие названия не являются архитектурными именами и быстро превращают canvas в архив случайных состояний.
Имена групп участвуют в управлении через Fast Groups Bypasser
Fast Groups Bypasser автоматически собирает groups и строит toggle rows по их titles. В properties можно фильтровать группы через matchTitle, ограничивать по цвету, сортировать по position, alphanumeric или custom alphabet.
Поэтому group title становится частью control plane. Переименование группы может изменить то, как она попадает в BASE CONFIG filter, а нестабильные названия делают управление workflow хрупким.
rgthree behavior
Fast Groups Bypasser использует group title для widget label и поддерживает matchTitle, sort и custom alphabet.
Production rule
Если BASE CONFIG использует title matching, имена production groups считаются интерфейсом и должны меняться осознанно.
Границы group должны совпадать с границами ответственности
- Не растягивать одну group через половину canvas только ради визуального охвата.
- Не помещать shared loader внутрь локального module, если им пользуются несколько веток.
- Не прятать return point внутри соседней group.
- Не перекрывать production groups без явной причины: один node не должен случайно принадлежать нескольким control regions.
- Checkpoint размещать внутри module перед RETURN, а не далеко в OUTPUT.
Overlap risk
rgthree отдельно предупреждает, что overlapping groups могут привести к состояниям, которые не соответствуют ограничениям max one / always one.
Цвет помогает ориентироваться, но не заменяет название
Цвет useful как вторичный visual code: loaders, controls, masks, generation и output можно различать по palette. Но смысл group должен оставаться понятным в текстовом title без знания цветов.
Это особенно важно при передаче workflow другому человеку, смене темы UI и использовании matchTitle в BASE CONFIG.
Названия, которые запрещаем в production master
| Anti-pattern | Почему плохо | Вместо этого |
|---|---|---|
| final / final2 / final_final | Не описывает функцию и быстро устаревает | 09 · UPSCALE / 10 · OUTPUT |
| test / new / copy | Неясно, что тестируется | LAB · CANNY STRENGTH TEST |
| group 17 | Нет semantic responsibility | 06 · MASKS · FOLIAGE |
| PPL stuff | Смешивает несколько stages | PPL · 02 DETECT / PPL · 03 SEGMENT |
| одна giant group | Скрывает module boundaries | Разделить по contracts и return points |
Формула имени, которую можно применять к любому будущему module
Практика: прочитать Hansen только по группам
- Работать на копии workflow; Hansen Original оставить immutable reference.
- Сначала скрыть детали и выписать только названия крупных groups.
- Для каждой group сформулировать ответственность одной строкой.
- Отметить INPUT и RETURN каждого module.
- Проверить, какие group titles видит BASE CONFIG / Fast Groups Bypasser.
- Только после этого смотреть на внутренние nodes.
Блок закрыт, когда canvas читается как карта системы
- По одному title понятно назначение group.
- Порядок major groups читается без поиска по canvas.
- Любой local module имеет явные INPUT / CHECKPOINT / RETURN.
- BASE CONFIG может адресовать нужные groups устойчивыми именами.
- В production master нет временных названий final2 / test / copy.
- Новый человек может сначала прочитать modules, а уже потом nodes.