Nodes/ComfyUI - NeoGriever/NGs Image - Image Progress Bar
ComfyUI Node

NGs Image - Image Progress Bar

Baking a step counter into your output images

By NeoGriever·Created 2 years ago·Updated 2 years ago· 2
NGs Image - Image Progress Bar
    • images
    width512
    radius8
    inner_radius6
    line_width8
    line_inner_width6
    color_bar#000000FF
    color_inner_bar#00FF00FF
    max7
    value3
    smoothing1

    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

    • value and max - the two you'll actually wire up. value is where you are, max is 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.

    CategoryNeoGriever/Images

    Inputs (10)

    NameTypeDefaultDescription
    widthINT51264–4096
    radiusINT84–64
    inner_radiusINT62–62
    line_widthINT84–64
    line_inner_widthINT62–62
    color_barSTRING#000000FF
    color_inner_barSTRING#00FF00FF
    maxINT72–256
    valueINT30–256
    smoothingINT11–8

    Outputs (1)

    NameTypeDescription
    imagesIMAGE