Node Invaders
An arcade shooter inside ComfyUI, where you gun down your own nodes
This node generates zero images and is better for it
Node Invaders is a Space Invaders-style arcade shooter that runs as an overlay right inside the ComfyUI canvas - and the enemies are your own nodes. KSampler drifts down and takes a shot at you. CLIPTextEncode zips past. A boss that hits like a Sampler-with-extra-steps shows up when you've destroyed enough. Every kill is, per the README, "a tiny act of rebellion against your monthly bill" - a joke that lands harder the longer you've stared at a cloud API bill.
It is exactly as useful as it sounds, which is to say it produces nothing. But it's also the rare ComfyUI "node" that can't break your workflow, because it never touches it. It went over well when the author posted it on r/comfyui - north of a hundred upvotes and the top question was "can I still run renders and play?" The answer, confirmed in the thread, is yes. It's an overlay, not a mutation of your graph.
How it actually works
The NodeInvaders_Game Python class is a decoy. It has no inputs, no outputs, and its run() returns an empty tuple - the whole game lives in the pack's JavaScript. When you add the node to the canvas and hit queue, the frontend extension registered in node_invaders.js spawns a fixed "NI" button in the corner of the UI. Click it and you get the start screen: two modes.
- API Invasion (default): only
api/*nodes and known API-vendor nodes (OpenAI, Anthropic, Stability, Kling, Luma, and friends) spawn. - Total Chaos: every built-in node is fair game, faster spawns, earlier bosses.
Here's the genuinely clever bit: the enemies aren't sprites someone drew. The game reads LiteGraph.registered_node_types - the same registry your palette comes from - and turns whatever nodes you actually have installed into enemies with procedurally generated HP, size, speed, and colors. If you have no API nodes installed, API Invasion falls back to hand-tuned classics (KSampler, CLIP, VAE, ControlNet, LoRA) so you're not defending against an empty field.
Controls are standard: mouse to aim, click or Space to fire, WASD or arrows to drift, Esc to close. The ultimates charge off kills - Rocket every 10, Laser every 20, Nova every 40 (Nova clears the screen and wrecks the boss). Right-click to use whichever is ready.
Installing it
There are no models to download, no requirements.txt, no API keys, no Python dependencies at all - the pyproject lists an empty dependency array. You can't misinstall this one.
- ComfyUI Manager → "Install Custom Nodes" → search NodeInvaders → install, or
cd ComfyUI/custom_nodes && git clone https://github.com/SKBv0/ComfyUI_NodeInvaders
Either way, restart ComfyUI, add the NodeInvaders_Game node to any workflow (it doesn't need to be wired to anything), and hit Run. Or don't - the button only appears after you queue once.
Troubleshooting & things to know
Because this is a pure-JS frontend extension, the one real failure mode is ComfyUI itself. Frontend updates in the Nodes 2.0 era have a habit of breaking JS extensions, and if the NI button doesn't show up, a hard refresh (Ctrl+Shift+R to clear the cached JS) or a ComfyUI update usually fixes it. It's an overlay, so a render left running in the background keeps going while you play - the thread's author explicitly demoed that.
Two honest caveats. First, don't keep the node in a workflow you actually need to share - it adds nothing but a wasted slot to anyone who loads it. Second, if you find yourself choosing Total Chaos over the default, you're basically admitting you'd rather fight KSampler than a browser tab of API logs. That's a you problem, and I respect it.
SKBv0 has made sibling packs in the same spirit - Duck Hunt and a Doom port for ComfyUI - so if this one clicks, there's a small arcade waiting. Zero sampling, maximum vibes.
Inputs (0)
No inputs
Outputs (0)
No outputs