2026-07-21 23:47:13 +03:30
2026-07-21 22:34:36 +03:30
2026-07-21 22:35:33 +03:30
2026-07-21 22:27:34 +03:30
2026-07-21 23:26:56 +03:30

ComfyUI Tab Cycle

Cycle through the number input fields on a node using Tab / Shift+Tab, as you would in your favorite software! No more click, type, hit Enter to apply, click the next one, repeat!

Tab-Cycle

How to use

Click a number/slider input widget on a node, edit the value, hit Tab to apply (no Enter or clicking OK required) and go to the the next input on the node.

Shift+Tab goes backwards. If no number input field is active pressing Tab has the default behavior.

What it doesn't do

  • Text/Boolean/Dropdown/etc. widgets are out of scope. By design. The purpose is quick editing of numbers.
  • No cross-node tabbing. Tab only cycles within whichever node you clicked into. Wraps around at the end.

Install

Drop this folder into custom_nodes/, restart ComfyUI, hard-refresh your browser. (Or install via ComfyUI-Manager once it's up on the registry.)

How it works (for the curious)

litegraph's own widget-click handling doesn't route through anything node-level we can hook cleanly. Tried node.onMouseDown first, nope, widget clicks bypass it entirely. So instead: a pointerdown listener on the canvas does its own hit-test: screen coords → graph coords using the canvas pan/zoom transform, then which node's bounding box contains the click, then which widget row via widget.last_y (which litegraph sets during its own render pass, more reliable than guessing row-height constants). From there Tab just drives litegraph's built-in canvas.prompt() for each widget in sequence and fires a synthetic Enter to commit-and-close before opening the next one.

None of this is public API. It's reaching into litegraph/ComfyUI internals that could shift under a frontend update. Works today; no promises about tomorrow. If Tab stops doing anything after a ComfyUI update, that's probably why. Open an issue and I'll take a look.

S
Description
No description provided
Readme MIT
68 KiB
Languages
JavaScript 98.3%
Python 1.7%