Play Flappy Bird
Your Render Wait Just Got Rage-Inducing
Remember when Flappy Bird was the most popular thing on the planet for about three weeks? It's back, and it now lives inside a ComfyUI node. FlappyBirdNode is one of four playable arcade games in the ComfyUI-FANTA-GameBox pack (Snake, Brick Breaker, and Billiards are its siblings). It drops a flap-the-bird canvas right into the node body so you can grind out a few attempts between queued jobs. This is pure procrastination tech: it does nothing to your image, eats no VRAM, and exists entirely to fill the dead seconds while a long generation runs. Whether that's "delightfully absurd" or "actively dangerous for your productivity" depends on how well you handle losing at Flappy Bird for the 40th time.
How it works
Same trick as the rest of the pack: the Python side is an empty shell. FlappyBirdNode declares no inputs, no outputs, and a placeholder function that returns an empty tuple. The real game - the pipe collision math, the flap physics, the score counter - runs in the browser inside js/flappy_bird_widget.js, which hooks ComfyUI's frontend and injects a <canvas> plus a score readout and a restart button into the node.
That also means it's one of the lightest custom nodes you'll ever install. No requirements.txt, no model weights, no API key, no network calls. The ecosystem's real hazard is that custom nodes execute arbitrary Python the moment they load - a proven malware vector in this community - and this whole pack sidesteps that by doing everything in frontend JavaScript. It won't touch your checkpoint, your sampler, or your wallet.
Inputs and outputs: don't look for any
Check info_schema and you'll find required: {}, optional: {}, outputs: []. There is nothing to wire in and nothing to wire out. The node exists on the canvas as a standalone widget and never participates in the graph - the "output node" flag just lets it sit there without a dangling output socket. No hidden "score feeds a strength value" hack; that was never built.
Controls and the one tip that matters
- Space bar to flap
- Click the canvas to flap (nice touch for laptop users)
- Enter to start/restart
- There's also an on-node "start game" button under the canvas
The README's advice to maximize the window for best experience is not generic filler - the game canvas scales to the node's width, and a cramped node makes the gap between pipes genuinely cruel. Resize the node before you rage-quit. One quirk worth knowing: this widget's UI is only half-translated, so you'll see a Chinese restart button ("开始游戏") and a Chinese score label ("分数") unless the author finishes the i18n pass. It's cosmetic, but you won't be alone if you squint at it.
Installing it
cd ComfyUI/custom_nodes
git clone https://github.com/IIs-fanta/ComfyUI-SnakeGameNode
Restart ComfyUI and it appears under the "fun" (Games) category. ComfyUI Manager users: search "FANTA GameBox". Ignore the clone URL in the pack's README - it points at an old fork name and doesn't resolve to the current repo. No models, no pip installs, no extra steps.
Gotchas
- Progress doesn't survive a reload. The widget is registered with
serialize = false, so despite the README's "game state is automatically saved" claim, the game isn't part of your workflow file. Reload the page and your best score evaporates. Browser-session only. - Frontend fragility. This widget is the odd one out in the pack - its JS pulls in ComfyUI's frontend via a relative import path while its siblings use an absolute one, which smells like copy-paste development. When ComfyUI does one of its periodic frontend rewrites, DOM-widget packs like this are the first to snap. If the game stops rendering after a ComfyUI update, that's the known ecosystem hazard at work, not your install.
- You're an early adopter whether you like it or not. Community footprint is basically one self-promo post. A bug here is a bug nobody else has reported yet.
Inputs (0)
No inputs
Outputs (0)
No outputs