Nodes/ComfyUI BobRoss/Bob Ross Preview
ComfyUI Node

Bob Ross Preview

Bob Ross Watches You Generate — and That's the Whole Point

By SKBv0·Created 3 months ago·Updated 2 months ago· 21
Bob Ross Preview
  • images
  • images

Let's be honest about what this is: a custom node whose entire job is to put an animated Bob Ross in the corner of your ComfyUI previews. It doesn't speed up your sampling, improve your prompts, or fix your VRAM. It makes your image previews happy little accidents while you wait. If that sounds like the kind of thing the ComfyUI ecosystem absolutely needs, you're not wrong - this is from the same author (SKBv0, u/skbphy) who gave us the gloriously silly Spidey Reroute, and the community loved that one for exactly the same reason. Sometimes the best quality-of-life upgrade is a small man with a palette judging your latent space.

There are two ways it shows up. Add Bob Ross Preview (in image/preview) to the end of your graph and it becomes the output node, showing your final image in a custom preview panel with Bob Ross floating over it. Or flip the global setting under Comfy > ExecutionBob Ross live preview to enabled, and the same overlay starts appearing on the live previews of standard sampler nodes like KSampler and SamplerCustom while they generate. That second mode is the fun one - Bob Ross is there for every step of the denoising, waving a palette at you as your image slowly resolves from static.

How it works

The Python side is deliberately tiny. BobRossPreview subclasses ComfyUI's built-in PreviewImage, so it saves your image to the output directory exactly like the node you already know, then returns it. All the magic lives in the JavaScript frontend extension (web/js/bobross_preview.js). It loads the bundled bobross.webm - a transparent video with alpha - crops out just Bob Ross from each frame, and draws that video onto the preview image with canvas at a few frames per second, sized and positioned to the corner you pick. The overlay is purely cosmetic: it lives in the UI, never in the saved PNG. If you want Bob Ross baked into your actual output, you'd have to composite him in yourself - that's not what this does.

It also quietly patches api.fetchApi and api.queuePrompt to force preview_method: "auto" on prompts when it's active, which is what gets sampler live previews streaming in the first place. The settings live in the browser and apply live as you drag sliders, with no workflow reload.

The input that matters

Just one, plus one output:

  • images (IMAGE) - feed this from a VAE Decode (or anywhere you have an image tensor). This is the image Bob Ross will hover over.
  • images (IMAGE) output - the node passes the image straight through, so you can keep wiring it onward even though it's an output node. Handy if you want to chain a save after it.

You won't see a way to configure the overlay on the node itself - position, scale, opacity, and the video choice are all global settings under Comfy > Execution, not per-node parameters.

Installing it

No dependencies, no models to download - the bobross.webm ships in the repo. Via ComfyUI Manager, search for "Bob Ross" or ComfyUI_BobRoss and install. Or do it by hand:

cd ComfyUI/custom_nodes
git clone https://github.com/SKBv0/ComfyUI_BobRoss

Then restart ComfyUI and hard-refresh your browser tab (Ctrl+Shift+R). That browser refresh is the step people skip; the frontend extension won't load from cache, so you'll stare at an empty node list wondering where it went.

Custom videos

Want someone else in the corner? Drop transparent .webm files into ComfyUI/custom_nodes/ComfyUI_BobRoss/web/assets/ and restart. bobross.webm shows up in the Overlay video dropdown as "Bob Ross"; if you remove it, the first bobross*.webm takes its place, and every other webm appears by filename. One catch: it must be WebM with alpha. MP4 won't even be listed - convert it first.

Where people get burned

  • Overlay not appearing on samplers: the global "Bob Ross live preview" setting defaults to off. It's a checkbox you have to flip; the node's own panel works regardless, but sampler previews don't.
  • Missing Bob Ross after an update: remember the hard refresh. The old extension JS gets cached and behaves oddly until you clear it.
  • Nothing's broken but nothing's happening: this is a frontend-only extension, so issues usually surface as "the node shows no preview" rather than console errors. Check your browser's developer console for __bobRossPreview... errors if you're debugging.

Is this overhyped? No - it's the opposite. It's a tiny, well-made joke that costs you nothing and reliably makes long generations more pleasant. Install it, enable it, and enjoy the company while your 50-step KSampler does its thing.

Categoryimage/preview

Inputs (1)

NameTypeDefaultDescription
imagesIMAGE

Outputs (1)

NameTypeDescription
imagesIMAGE