SAM3 Point Collector
Click your points right on the image
- image
- positive_points
- negative_points
This is the interactive one - the node that makes SAM3's point-based masking feel like a real tool instead of typing coordinates. It shows your image right on the node, you click to drop positive points on what you want and negative points on what you don't, and it hands the result downstream as prompts SAM3 can segment from. The interactive editor is adapted from kijai's KJNodes PointsEditor, simplified for SAM3, so if you've used that you'll feel at home immediately.
Clicking beats typing here for an obvious reason: you can see exactly where the point lands. Guessing that a hand is at normalized (0.62, 0.41) is miserable; clicking it is instant. This is the front door to SAM3 Point Segmentation for most people, and its 8% search-to-click rate says folks actively want it.
How it works
The node stores your clicks as coordinate data and packages them into two SAM3_POINTS_PROMPT outputs - one for the positive (include) clicks, one for the negative (exclude) clicks. It's an output node, meaning it renders that interactive canvas in the graph rather than just passing data through silently. Positive points tell SAM3 "this is my object," negative points carve away the bits it grabbed by mistake.
The inputs and outputs that matter
You mostly interact with the canvas, not the fields, but the required inputs are:
image(IMAGE) - the picture you're clicking on. Wire your image in so the editor has something to show.points_store/coordinates/neg_coordinates- these hold the click data behind the scenes (they default to{}/[]/[]). The interactive editor writes them for you; you normally don't type into them by hand.
Outputs: positive_points and negative_points, both SAM3_POINTS_PROMPT. Feed positive_points into the positive_points input of SAM3 Point Segmentation (or SAM3 Video Segmentation in point mode), and negative_points into the matching negative input. That's the pair that drives the mask.
How to install it
Ships with the pack. Manager: search SAM3, install the highest version. Manual:
cd ComfyUI/custom_nodes
git clone https://github.com/PozzettiAndrea/ComfyUI-SAM3.git
cd ComfyUI-SAM3
pip install -r requirements.txt --upgrade
python install.py
then restart. The sam3.pt model goes in ComfyUI/models/sam3/ for the segmentation nodes, though this collector itself just gathers clicks. The README flags an experimental comfy-env/pixi one-click install.
Common issues & troubleshooting
The image isn't showing on the node. You haven't connected an image yet, or the graph hasn't run once to populate it. Wire an image in and run; the canvas needs the picture before you can click on it.
My clicks don't seem to affect the mask. Make sure you're routing the right output to the right input - positive_points to positive, negative_points to negative on the segmentation node. Crossing them tells SAM3 to exclude what you meant to include.
One click grabs too much. Add a second positive point deeper inside the object and drop a negative point on the region it's over-grabbing. Point segmentation is iterative - a couple of well-placed clicks beats one hopeful one.
Want to set points without the UI? You can, via coordinates / neg_coordinates, but that's the tedious path. For fully numeric setups use SAM3 Create Point → Combine Points instead; this node's whole value is the clicking.
Inputs (4)
| Name | Type | Default | Description |
|---|---|---|---|
| image | IMAGE | Image to display in interactive canvas. Left-click to add positive points (green), Shift+Left-click or Right-click to add negative points (red). Points are automatically normalized to image dimensions. | |
| points_store | STRING | {} | — |
| coordinates | STRING | [] | — |
| neg_coordinates | STRING | [] | — |
Outputs (2)
| Name | Type | Description |
|---|---|---|
| positive_points | SAM3_POINTS_PROMPT | — |
| negative_points | SAM3_POINTS_PROMPT | — |