Nodes/Touch Node Manager/Touch Node Manager
ComfyUI Node

Touch Node Manager

Touch Node Manager

By laurigates·Created 3 months ago·Updated 3 days ago· 2
Touch Node Manager

      This node does nothing, and that's the point

      Let's get the confusing part out of the way first: TouchNodeManager has zero inputs, zero outputs, and you will never drag it onto a canvas. It's a marker node - a stub whose only job is to make ComfyUI import the pack's module so the real work, a set of /touch_manager/* HTTP routes plus a frontend hook, actually registers. The thing you actually get out of this install is a full-screen, touch-first replacement for the experience of managing custom nodes with your thumbs on a tablet. If you've ever tried to hit a 6-pixel-tall "Update" button in ComfyUI Manager with a fingertip, you already know why this pack exists.

      It's from the same author as gallery-loader and sampler-info, a family of mobile-first usability packs built around touch-friendly modals. ComfyUI is brutally desktop-first, and this is someone who got tired of it on a phone.

      What it actually does

      Open it from the top action bar, the command palette, the Extensions menu, or a sidebar icon, and you get a full-screen modal with four tabs:

      • Installed - every pack across all your custom_nodes roots, each with a one-line description read from its own files (pyproject.toml → package.json → README, never fabricated), its git ref, author, local-change state, and how many nodes it registered. Packs with an available update float to the top once a background sweep finishes.
      • Install URL - paste a GitHub/GitLab URL to clone a pack straight into custom_nodes.
      • Registry - search registry.comfy.org and install a pack by registry or git version.
      • Core - your ComfyUI core repo's ref and how far it's drifted from upstream, with a fast-forward "Update core" action.

      Per-pack you get Update, Versions, Forks, Disable, and Delete. The Forks picker is genuinely neat: it lists the upstream repo and the fork network's siblings by star count from the GitHub API, so you can repoint a pack at a different fork in place without reinstalling. Delete is the scary one - the irreversible counterpart to Disable, asking for an explicit confirmation that names the directory.

      How it works under the hood

      The backend is self-contained git plumbing in Python: fetch + fast-forward for updates, clone for installs, remote repointing for forks, a rename-to-.disabled for the reversible disable, and it shells out to your running interpreter's own pip after any git operation that lands new code. It uses ComfyUI-bundled libraries only (aiohttp, folder_paths, server) plus the standard library - no third-party Python deps, no models to download. Git is always invoked with an argument list and a timeout, never through a shell.

      What's worth pausing on is the security perimeter, because it's unusually thoughtful for a hobby pack. Install, remote-repoint, and Delete are refused entirely when ComfyUI is listening on a non-loopback address unless you set TOUCH_MANAGER_ALLOW_REMOTE_INSTALL=1 / TOUCH_MANAGER_ALLOW_REMOTE_DELETE=1 in the server environment. Install URLs are allowlisted to GitHub/GitLab, and the derived directory name is sanitized against path traversal. It's the same instinct as ComfyUI Manager's default-deny git-URL install flags: installing a node pack means running the author's code with your user account, and this pack at least doesn't hand that button to anyone on your LAN.

      Installing it

      The README's canonical path:

      cd <ComfyUI>/custom_nodes
      git clone https://github.com/laurigates/comfyui-touch-manager
      cd comfyui-touch-manager
      bun install
      bun run build
      

      Restart ComfyUI, then hard-refresh the tab (Ctrl+Shift+R / Cmd+Shift+R). One honest caveat: web/dist/index.js is committed to the repo, so a plain clone usually works out of the box - the bun install && bun run build step is only for rebuilding from the TypeScript source. You can also install it via ComfyUI Manager (it's on the Comfy Registry under publisher laurigates), with the same build caveat after updates.

      Where people get burned

      • Expecting a graph node. It isn't one. If you're here because a workflow told you a node class is missing, this isn't your fix - this pack manages the packs, it doesn't generate anything.
      • Frontend version. It needs the modern Vue frontend (comfyui-frontend-package >= 1.40) for its canvas-interception hook. On older frontends the sidebar tab entry point still works, but don't expect the full experience.
      • Forgetting the hard refresh. Frontend changes only land after Ctrl+Shift+R - the modal will otherwise look like it didn't install.
      • Restart discipline. Every mutating action sets restart_required: true and the modal tells you to restart. Listen to it; a pack whose git ref moved but whose deps landed half-installed is a broken install.

      If you manage your ComfyUI from a tablet or phone, this is the manager UI the ecosystem should have shipped with. Even on desktop, the fuzzy search over pack descriptions alone ("upscale" finds the upscalers when none of them says so in its folder name) is worth the install.

      CategoryTouch Node Manager

      Inputs (0)

      No inputs

      Outputs (0)

      No outputs