Nodes/HouseKeeper/Node Alignment Panel (Housekeeper)
ComfyUI Node

Node Alignment Panel (Housekeeper)

The Housekeeper 'alignment node' isn't a node — that's the point

By joanna910225·Created 12 months ago·Updated 17 days ago· 28
Node Alignment Panel (Housekeeper)

      The name is a lie, and that's the good news

      If you searched ComfyUI for "housekeeper-alignment" expecting a node to drag into the graph and wire up, stop - you're looking for something that was never there. This "node" is the internal name of the whole HouseKeeper extension, not something you add to a canvas. It has no inputs, no outputs, no API key, no model, and it never talks to the backend.

      What you actually get from installing HouseKeeper is a small handle on the right edge of the canvas. Click it and a floating panel opens with alignment, sizing, flow-arrangement and color tools. Select two or more nodes, hit a button, and they line up. It started life as a first-time author's "fixes my OCD for node alignment" release on r/comfyui in October 2025, and the spacing slider you'll end up using was literally a request from that launch thread.

      How it works

      HouseKeeper is a frontend-only extension. Its __init__.py is deliberately empty - NODE_CLASS_MAPPINGS = {} - and all the work happens in js/main.js, served to the browser via ComfyUI's WEB_DIRECTORY mechanism. The extension registers itself under the name housekeeper-alignment; that registration is where the comfy.icu entry comes from.

      The alignment math runs entirely in your browser: it reads the selected nodes' positions off the litegraph canvas, computes where each should land, and writes them back. That's why every operation is a single undo step, why it's instant, and why there's nothing to install alongside it. Since v0.6.2 it leaves pinned nodes alone (and tells you how many it skipped); since v0.7.0 it works inside subgraphs, where its buttons used to sit disabled with no explanation.

      One honest caveat: the name used to be a real placeholder node class, one of three from the ComfyUI example template the pack was scaffolded from, and v0.7.0 removed all three. So on current versions there is genuinely no node called "housekeeper-alignment" in the menu - the entry survives on comfy.icu out of registry inertia. If an old workflow contains it, delete it; the panel doesn't need it.

      The inputs and outputs that matter

      There aren't any, in the node sense - the schema is empty on both sides, and the node is marked as an output-only marker. The things you actually set live in the panel and in ComfyUI's settings:

      • Spacing slider (0–200 px) - the gap left between nodes by every alignment and arrangement. Mirrored in Settings → Housekeeper → Layout, and the two stay in sync.
      • Alignment buttons - four edges plus center horizontally/vertically. Aligning on one axis also re-spaces the selection evenly along the other.
      • Color chips, custom picker, recent colors - for restyling a selection, with a hover preview before you commit.
      • Keyboard - Ctrl+Shift+H toggles the panel, Ctrl+Shift+←/→/↑/↓ aligns, Ctrl+Alt+→/↓ distributes. All rebindable under Settings → Keybinding.

      Installing it

      Two ways, take your pick:

      • ComfyUI Manager → search "HouseKeeper" → install.
      • Or by hand:
      cd ComfyUI/custom_nodes
      git clone https://github.com/joanna910225/comfyui-housekeeper.git
      

      Then restart ComfyUI. No Python dependencies, no requirements.txt, no model downloads - the whole pack is a JavaScript bundle plus icons. For a frontend-only utility that's the nice part: nothing to conflict with your other nodes' requirements, which is a real virtue in an ecosystem where dependency hell is the norm.

      Where people get burned

      The one genuine trap is Nodes 2.0. ComfyUI's Vue-based renderer (Settings → Comfy → Nodes 2.0, on by default on recent Desktop and Cloud installs) draws nodes from its own layout store, and HouseKeeper writes positions straight into litegraph's arrays that the store doesn't see. Result: the panel opens, buttons click, nothing moves. It's tracked upstream (issue #52) with a nightly test against that renderer; the standing workaround - the same one the community landed on for rgthree's pack - is to leave Nodes 2.0 switched off for now.

      Two smaller things worth knowing. Alignment needs two or more selected nodes; only "Match smallest size" works on a single one. And because it's frontend-only, you can't call it from the API - it tidies the canvas you're looking at, not a workflow running headless.

      Categoryhousekeeper/alignment

      Inputs (0)

      No inputs

      Outputs (0)

      No outputs