Nodes/KJNodes for ComfyUI/Plot Coordinates
ComfyUI Node Runs on cloud

Plot Coordinates

Turn a coordinate list into an actual picture you can check

By kijai·Created 3 years ago·Updated a day ago· 2,908
Plot Coordinates
    • images
    • width
    • height
    • bbox_width
    • bbox_height
    coordinates
    texttitle
    width512
    height512
    bbox_width128
    bbox_height128
    size_multiplier1

    If you've ever built a coordinate path by hand and had no way to tell whether it looked right before burning a full generation on it, this is the fix. Plot Coordinates takes the same coordinates string format used by this pack's Interpolate Coords and renders it out as an actual sequence of images via Matplotlib - dots, a bounding box at each point, and a title, so you can eyeball your path instead of reading raw JSON and hoping.

    It's filed under KJNodes/experimental alongside Interpolate Coords, and honestly the pairing makes the most sense in this pack: build or resample a coordinate path with one, sanity-check it visually with this one, before you ever wire either into whatever actually consumes the coordinates downstream (a camera pan, a moving crop window, a motion path - anything that reads this pack's coordinate format).

    The inputs and outputs that matter

    • coordinates - your path, as a string, same format Interpolate Coords produces or consumes.
    • text (default "title") - a label drawn on the plotted image, useful for telling multiple debug plots apart when you're iterating.
    • width / height (default 512 each) - canvas size for the plot.
    • bbox_width / bbox_height (default 128 each) - the size of a bounding box drawn at each coordinate point, so you can see not just where a point is but roughly how big whatever's supposed to sit there would be.
    • size_multiplier (optional, default a single-value list of 1) - scales the bounding box per frame, since it's a list input rather than a flat number. Feed it a batch of values if you want the box to grow or shrink as the sequence plays out - useful for previewing something like a zoom that tracks the path.
    • Outputs: images (the plotted sequence), plus width, height, bbox_width, bbox_height passed straight through - handy so a downstream node that needs those same dimensions doesn't need its own separate widget repeating the numbers.

    How to install it

    Standard KJNodes install: ComfyUI Manager → search "KJNodes for ComfyUI" → install, or cd ComfyUI/custom_nodes && git clone https://github.com/kijai/ComfyUI-KJNodes, then pip install -r ComfyUI-KJNodes/requirements.txt, then restart. The one dependency worth naming here specifically is Matplotlib - it's part of the pack's requirements.txt, so a normal install covers it, but if you're on an unusual or stripped-down Python environment and this node errors on import, that's the first thing to check.

    Common issues & troubleshooting

    Malformed coordinates crash the plot before it draws anything. This node doesn't validate the format for you - if you're hand-writing the coordinate string rather than getting it from Interpolate Coords or another compatible node, a typo in the JSON shape is the single most likely cause of an error here.

    Don't feed the plotted output back into your actual generation. It's easy to accidentally treat the images output as content once it's an IMAGE type flowing through your graph - but these are debug plots (dots and boxes on a blank canvas), not anything you want in a final render. Use them to check the path, then route your real coordinates onward to whatever actually consumes them.

    Documentation for this whole "coordinates" mini-format is thin. There's no spec beyond what the nodes themselves imply - if something about the shape isn't working, the most reliable way to figure out the expected format is to generate a known-good example with another compatible node and inspect it directly rather than guessing from first principles.

    CategoryKJNodes/experimental

    Inputs (7)

    NameTypeDefaultDescription
    coordinatesSTRING
    textSTRINGtitle
    widthINT5128–4096
    heightINT5128–4096
    bbox_widthINT1288–4096
    bbox_heightINT1288–4096
    size_multiplieroptFLOAT1

    Outputs (5)

    NameTypeDescription
    imagesIMAGE
    widthINT
    heightINT
    bbox_widthINT
    bbox_heightINT