Zip Ties: расширение для ComfyUI, которое собирает провода в ленты

ComfyUI Wikinews

Фронтенд-расширение собирает линии на холсте ComfyUI в ленту со стяжками: Z связывает, правый клик меняет цвет или поворот. Сохраняется в рабочем процессе.

Zip Ties это фронтенд-расширение, которое собирает линии, пересекающие одну черту, в единую ленту, удерживаемую маленькими стяжками, которые можно двигать, поворачивать и перекрашивать. Оно не добавляет узлов и не имеет зависимостей от Python; всё расширение это один файл JavaScript. Версия 0.4.0 вышла 26 октября 2026 года.

У больших рабочих процессов везде одна и та же визуальная проблема: густой лес проводов между загрузчиками с одной стороны и семплерами с другой, каждый нарисован отдельной кривой Безье, за которой приходится следить глазами. Zip Ties не скрывает их и не прокладывает в обход препятствий. Расширение собирает связи, пересекающие нарисованную вами черту, и прикрепляет каждую связь к этой черте так же, как кабельная стяжка удерживает пучок.

Расширение было создано на основе прототипа от @cmzw_ и попало на главную страницу как r/comfyui, так и r/StableDiffusion в течение суток после первого релиза.

Кадр из демонстрационной записи

Жесты

ДействиеЖест
Связать провода вместеЗажмите Z и проведите линию поперёк проводов
Связать провода без клавиатурыНажмите правой кнопкой на пустом холсте, выберите Tie wires, затем проведите линию поперёк проводов
Переместить стяжкуПеретащите стяжку
Выбрать несколько стяжекCtrl/Cmd-клик по каждой стяжке, Shift-клик, чтобы добавить одну, или выделите их рамкой вместе с узлами
Повернуть стяжкуShift-перетаскивание. Поворот привязан к шагу 15 градусов; удерживайте также Alt, чтобы вращать свободно
Сменить цвет, повернуть на 90 или 45 градусов, удалитьПравый клик по стяжке
Удалить стяжкуЗажмите Z и проведите линию поперёк стяжки или дважды кликните по ней

Пока вы перетаскиваете, провода, которые пересекает линия, становятся белыми. Если линия пересекает существующую стяжку, и линия, и стяжка становятся красными, а при отпускании эта стяжка удаляется. Клавишу можно настроить в разделе Zip Ties → Key to hold while dragging across wires, где доступны только буквы, которые ComfyUI ещё не использует отдельно: X, C, G, T или Y. Если удерживать Alt, Ctrl, Cmd или Shift, перетаскивание сохраняет обычный смысл, поэтому Alt-перетаскивание по-прежнему клонирует узел.

Как ведёт себя лента

Каждая новая стяжка получает случайный цвет кабельной стяжки. Zip Ties → Colour of new ties переключает это на Match wires, который выбирает самый распространённый цвет среди проводов в стяжке, или на простой серый; правый клик меняет одну стяжку. Провода сохраняют свои цвета и идут параллельно между стяжками, а наведение или перетаскивание стяжки подсвечивает каждый провод в ней.

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

Стяжки следуют за своими проводами. Перемещение всех узлов и перенаправлений, которые соединяет стяжка, тянет её за собой, а перемещение только части из них оставляет её на месте, по тому же правилу, что и перенаправление. Стяжка внутри группы движется вместе с группой, а Ctrl/Cmd-перетаскивание рамки группы оставляет её вместе с узлами. Выбранные стяжки перемещаются вместе с выбранными узлами, а Delete удаляет и то, и другое за один шаг отмены.

Стяжки хранятся в extra.zipTies рабочего процесса, поэтому они сохраняются, загружаются и отменяются вместе с остальным графом. Рабочие процессы, открытые без расширения, по-прежнему загружаются и рисуют свои провода нормально, а некорректная запись отбрасывается при загрузке. Копирование и вставка узлов переносит их стяжки, если каждый провод в стяжке входит в копию, снова в рамках одного шага отмены.

Под капотом и где расширение останавливается

Расширение оборачивает несколько методов litegraph на холсте: renderLink записывает, где начинается и заканчивается каждый отрезок провода, и перерисовывает связанные отрезки как нити, смещённые вбок от центра стяжки, _renderAllLinkSegments сохраняет отрисовку связанного провода, когда его стяжка на экране, даже если оба конца за экраном, а drawConnections убирает стяжки, чьи провода исчезли, и перемещает те, что должны следовать. Отрисовка сегментов передаётся обратно в собственный рендерер связей ComfyUI, поэтому цвета, границы и поведение подсветки сохраняются. Жест перетаскивания работает в слушателях фазы захвата на window, поэтому он видит события указателя раньше litegraph, а нарисованная линия проверяется на пересечение с кривой Безье каждого провода.

В проекте указаны два ограничения. Сегмент перенаправления, нарисованный из значка связи, то есть ярлык скрытой связи, связать нельзя. И форма ленты настроена для сплайновых связей: прямые и линейные режимы связей всё равно проходят через стяжки, но проверка пересечения рассматривает каждый сегмент как прямую линию. Расширение протестировано на ComfyUI 0.42.0 с фронтендом 1.57.1, как в классическом холсте, так и в режиме узлов Vue.

Доступность

Установите его, найдя «Zip Ties» в ComfyUI-Manager, командой comfy node install comfyui-zip-ties или клонировав репозиторий в ComfyUI/custom_nodes и перезапустив. Релизы и полный список жестов доступны на GitHub.

Комментарии

Войдите через GitHub, чтобы участвовать в обсуждении.

Загрузка комментариев…
Zip Ties: расширение для ComfyUI, которое собирает провода в ленты | ComfyUI Wiki