NGs Image - Image Progress Bar
Baking a step counter into your output images
- images
This one's easy to confuse with the progress bar rgthree adds to the top of your ComfyUI window, so let's get that out of the way first: they're not the same thing. rgthree's bar lives in the browser, telling you how far the whole queue has gotten. This node renders a progress ring as an actual IMAGE - a picture of a progress bar, not a UI element - which you can save, composite, or burn into a frame. It's a genuinely different job: think dashboards, render-farm status boards, or stamping "step 3 of 7" onto a thumbnail grid, not live in-app feedback (ComfyUI's queue UI and rgthree already own that).
How it works
It draws two concentric rings with PIL. The outer ring is the track - its size and thickness come from radius and line_width, its color from color_bar. The inner ring is the fill - inner_radius and line_inner_width for size and thickness, color_inner_bar for color - and it's drawn as a partial arc sized to value / max. smoothing looks to control how many segments that arc is built from: low values give you a chunkier, more stepped-looking ring, higher ones a smoother curve.
The inputs and outputs that matter
valueandmax- the two you'll actually wire up.valueis where you are,maxis the total; feed these from a batch index and batch count, or a loop counter, and the ring fills accordingly.width- the canvas size (it's drawn square).color_bar/color_inner_bar- hex ARGB strings (#RRGGBBAA) for the track and the fill.radius,inner_radius,line_width,line_inner_width,smoothing- the ring's geometry; defaults are reasonable, worth touching only if you're matching a specific size.
Output is a single images (IMAGE) - pipe it into Save Image, Preview Image, or a compositor to overlay it on something else.
How to install it
Through ComfyUI Manager: search "NeoGriever" or "ComfyUI - NeoGriever," install, restart. No Manager handy? Manual install is just:
cd ComfyUI/custom_nodes
git clone https://github.com/NeoGriever/ComfyUI-NeoGriever
then restart ComfyUI. The pack's README doesn't call out a single Python dependency or a model download anywhere - this and every other node here is plain PIL/tensor work - so a restart really is the whole install.
Common issues & troubleshooting
It doesn't animate or update live. This renders once per execution, based on whatever value/max you hand it that run. If you want a visible progress sequence - a ring that fills over several frames - you need to drive value from something that changes each iteration (a For Loop node, a batch index) and re-run the node each time; it's not going to poll your sampler's actual step count on its own.
value greater than max. Nothing in the schema stops you from feeding it a value past max - expect an overfilled or visually odd ring rather than a clean error, so keep the two logically consistent.
Colors come out wrong. Both color fields are 8-character ARGB hex strings. Get the channel order backwards and you'll get an unexpectedly transparent or off-color ring rather than what you typed into a normal RGB picker.
Since the pack has no dependencies to conflict with, if this node is missing after install it's almost certainly a registration issue (ComfyUI didn't pick up the folder, or it needs a restart) rather than a version clash with something else in your custom_nodes - the reassuring flip side of a pack this lightweight.
Inputs (10)
| Name | Type | Default | Description |
|---|---|---|---|
| width | INT | 51264–4096 | — |
| radius | INT | 84–64 | — |
| inner_radius | INT | 62–62 | — |
| line_width | INT | 84–64 | — |
| line_inner_width | INT | 62–62 | — |
| color_bar | STRING | #000000FF | — |
| color_inner_bar | STRING | #00FF00FF | — |
| max | INT | 72–256 | — |
| value | INT | 30–256 | — |
| smoothing | INT | 11–8 | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| images | IMAGE | — |