Parse Points
Turn Molmo's pointing output into real coordinates
- POINT
- STRING
- STRING
Molmo can tell you where something is in an image, but it says so in its own weird dialect: XML-ish tags like <points x1="43.6" y1="37.7" x2="69.6" y2="41.1" alt="eyes">eyes</points>. Parse Points is the decoder ring - it takes that string, pulls out the points and their labels, and hands you normalized coordinates you can actually draw with.
Three outputs:
- POINT - a numpy array of (x, y) points, normalized to 0–1 (Molmo emits percentages, and this node divides by 100 so the coordinates survive regardless of image resolution).
- STRING (labels) - the inner text of each tag.
- STRING (alt labels) - the
alt="..."attribute of each tag.
Inputs are just string (the Molmo output) and filter. Filter is the interesting one: if it's non-empty, only points whose alt label or inner text contains the filter (case-insensitive) survive. So ask Molmo for several things at once, then keep only the "eyes" points. The regex is written to keep working even when the model's answer gets cut off mid-tag, which is the kind of janky-robust detail you learn to appreciate.
Where it fits
The flow is: Generate Text with Molmo → prompt like "point to the eyes" → string output → Parse Points → Plot Points to draw the dots back onto the image. It's a small pipeline that turns a vision model into a poor man's detection system - no bounding boxes, just clickable points, which is exactly Molmo's skill. The normalized 0–1 coordinates also mean you can wire the POINT output into anything else that works in normalized image space.
Install
Part of the SeanScripts pack - no separate install. ComfyUI Manager search: ComfyUI-PixtralLlamaVision, or:
cd ComfyUI/custom_nodes
git clone https://github.com/SeanScripts/ComfyUI-PixtralLlamaMolmoVision
No extra dependencies beyond what the pack needs to run Molmo (transformers >= 4.45, accelerate, bitsandbytes, torchvision), then restart.
Troubleshooting
- No points parsed - the model output didn't match the
<points ...>format (maybe a bounding-box answer instead). Re-prompt Molmo to "point to" things, not "box" them. - Filtered everything out - your filter string doesn't appear in the alt label or text. Check the actual output in a text preview node first.
- Empty filter on - with an empty filter, nothing is excluded; that's fine for a first run.
Use it when you want the model to indicate rather than describe - and pair it with Plot Points to actually see what it's pointing at.
Inputs (2)
| Name | Type | Default | Description |
|---|---|---|---|
| string | STRING | — | |
| filter | STRING | — |
Outputs (3)
| Name | Type | Description |
|---|---|---|
| POINT | POINT | — |
| STRING | STRING | — |
| STRING | STRING | — |