Major features:
- Adaptive drag mode with 5 fixed modes (Normal, Freeze+Check, Freeze, Hide, Heavy Deferred)
- Heavy Deferred for lag-free dragging in large workflows (250+ nodes)
- Three drag phases: moving → held → released, with priority-based re-routing during pause
- Node hard-obstacle avoidance — links can never pass through nodes
Performance:
- Progressive routing with frame-budgeted progressive batches
- Fast graph signature for geometry-change detection
- OVG rebuild deferred during large drags
- Collision re-check limited to affected links only
Fixes:
- Hover no longer triggers full-workflow redraw
- Krea2 / Ultimate SD Upscale link disappearance during drag
- Stale sticky paths now validated before reuse
- Drag-endpoint dogleg for straight-line links
New modules: adaptive-policy, drag-policy, draw-policy, profiler, progressive, ui-policy
Tests: 39 automated tests covering routing, adaptive, drag, profiler
Floating bar: Adaptive 🧠 toggle, 5 fixed-mode buttons, debug row, Nodes 2.0 switch
ComfyUI-LinkRouter
I'm new to all this — first plugin, first GitHub repo, learning as I go. If you find bugs, have ideas, or just want to help a beginner out, I'd be incredibly grateful. Bug reports, PRs, suggestions, or just buying me a coffee ☕ — every bit of support honestly makes my day. Thank you! 🙏
Object-avoiding orthogonal link routing for ComfyUI. Links automatically detour around nodes with smooth right-angle paths — no more spaghetti lines.
Features
Links automatically route around nodes instead of through them. Animated flow markers on hover or selection. Floating bar for quick toggles.
Installation
cd ComfyUI/custom_nodes/
git clone https://github.com/90-RED/ComfyUI-LinkRouter
Then reload ComfyUI with Ctrl+R.
Usage
LinkRouter is enabled by default. A floating bar appears on the right:
| 🔀 | Toggle routing | | 🌊📐➖ | Cycle official link styles | | ✨➤◾ | Cycle flow markers (animated/static/none) |
All visual parameters are in Settings → LinkRouter.
Credits
- Algorithm: Wybrow, Marriott, Stuckey — "Orthogonal Connector Routing" (Graph Drawing 2009)
- Incremental routing: Wybrow et al. — "Incremental Connector Routing" (GD 2005)
- Inspiration: libavoid (Adaptagrams), react-flow-smart-edge, JointJS
- All code is original JavaScript — no third-party dependencies
License
Apache-2.0 — see LICENSE.
