Nodes/Comal Clipboard Bridge/Clipboard Global Options Comal
ComfyUI Node

Clipboard Global Options Comal

The No-Wire Safety Switch That Keeps Your Clipboard From Misbehaving

By comal0731·Created 2 months ago·Updated 28 days ago· 0
Clipboard Global Options Comal
      reset_listentrue
      idle_off_minutes30
      allow_comfy_textfalse
      allow_comfy_imagefalse

      Every "paste into ComfyUI" node has a dirty little secret: leave it listening and it'll swallow things you never meant to feed it. You copy a model name while browsing Civitai, alt-tab back, and suddenly your prompt is that model name. Clipboard Global Options Comal - class ClipboardSafetyOptions - is this pack's answer, and the interesting part is how passive it is: it has no outputs, takes no wires, and never runs any real logic. You just drop it on the canvas, set four toggles, and it quietly governs every clipboard node in the graph.

      It ships in the comal-node_clipboard-bridge pack alongside the text and image receivers, and it exists because the author clearly got bitten: the whole design is defensive, with failsafes stacked on failsafes so a clipboard listener can't run away from you.

      How it works

      There's no connection graph here. On the Python side, noop() returns literally nothing - the node is a placeholder. The real mechanism lives in the browser extension: when anything needs a global setting, the extension scans the canvas, finds the first node of type ClipboardSafetyOptions, and reads its widget values as the global rules. No node on the canvas? The extension falls back to the safe defaults - which is why the pack behaves sensibly even for people who never add this node at all.

      The inputs that matter

      Four toggles, and they're all safety valves:

      • reset_listen (default ON) - on every page reload, force all listen switches back to OFF. This is why "it worked yesterday" happens: the pack resets itself so you can't accidentally leave a listener armed.
      • idle_off_minutes (default 30) - if you stop moving the mouse or touching the keyboard for this many minutes, all listen switches turn off. Set it to 0 to disable the auto-off entirely (which is what you'll want if you leave ComfyUI parked while you copy from a phone or a second screen).
      • allow_comfy_text / allow_comfy_image (both default OFF) - whether copies made inside ComfyUI are accepted. The extension marks any in-page Ctrl+C (or programmatic clipboard write, like the right-click "Copy Image") as internal, and blocks it for ~2 seconds unless the matching toggle is on.

      Installing it

      Same pack as everything else here:

      cd ComfyUI/custom_nodes
      git clone https://github.com/comal0731/comal-node_clipboard-bridge
      cd comal-node_clipboard-bridge
      pip install -r requirements.txt
      

      Or use ComfyUI Manager's Install via Git URL with https://github.com/comal0731/comal-node_clipboard-bridge, then restart and hard-refresh the browser. Deps are just pillow and pyperclip - no models, no heavy installs.

      Where people get burned

      • Only the first node on the canvas counts. The extension reads nodes[0] and silently ignores any duplicates - so if you have two of these and you're toggling the second one, your changes do nothing and it looks exactly like a bug. Delete extras.
      • allow_comfy_text/allow_comfy_image off means "in-app copy blocked." That 2-second window after any Ctrl+C in the page catches a lot of innocent tests. If pasting seems broken right after you copied something in ComfyUI, that's this rule, not a fault.
      • Windows-first. The pack's clipboard detection leans on Windows APIs; the README warns detection can be spotty on macOS/Linux, and the idle auto-off relies on browser activity events rather than the OS.

      Is it exciting? No. But it's the difference between a clipboard bridge that occasionally hijacks your prompt and one that sits quietly until you explicitly arm it. For a pack this safety-obsessed, that's the feature.

      Categoryclipboard_bridge

      Inputs (4)

      NameTypeDefaultDescription
      reset_listenBOOLEANtrue
      idle_off_minutesINT300–999
      allow_comfy_textBOOLEANfalse
      allow_comfy_imageBOOLEANfalse

      Outputs (0)

      No outputs