ProxyPose Point Prompt (Bruxos)
One pixel. That's the whole prompt.
- prompt
The whole ProxyPose gimmick is that you don't describe anything. You don't write a prompt, you don't draw a mask, you don't drag a bounding box. You click one pixel on the object you care about, and the pipeline tracks that object's full 6-DoF pose through the video - rotation and translation, frame by frame. This node is where that one click lives.
It feels anticlimactic next to the Model Loader and the Sampler. Two integers. But those two integers are the entire user intent in a pipeline that otherwise decides everything itself, and getting them right is the difference between a clean pose track and a cube drifting off into the background.
What you're actually setting
u- the column (x) of your target pixel, in the first frame, at full resolution.v- the row (y), same rules.
That last bit trips people up more than anything else. Coordinates are in the resolution of the video you feed the Sampler - so if you're feeding a 1920×1080 clip, u and v are in that space, not in some preview thumbnail you squinted at. The defaults are 256, 256, which is roughly center on a 512×512 image: a placeholder, not a suggestion. Set them to your actual pixel.
There's a third, optional input: points_json. If you ran the ProxyPose repo's proxypose-annotate tool, it writes a *.points.json file with your annotations, and pointing this field at it overrides u/v (the node reads the first point of the first group). It's the escape hatch for "eyeballing pixels in a text box is awful," which, fair.
Mechanically, that's all the node does: it builds a {"type": "point", "coordinates": [u, v]} dict and hands it out. No model, no inference, instant. Its single output is prompt (type PROXYPOSE_PROMPT), and the only thing that consumes it is the ProxyPose Sampler.
Picking the pixel
A few practical notes from actually running this sort of thing:
- Mark the object on frame 0. The pipeline crops a square around your point, renders a colored proxy cube "glued" to the object, and lets Wan animate it. Everything downstream assumes the query is anchored at the start.
- Full resolution, first frame, exact object. If you're off by a few pixels onto background, the cube glues to the background and your "pose track" is a camera wobble.
- The Sampler does the square crop itself - don't pre-crop the video to make picking easier. Feed full resolution, let the node handle it.
- If you find yourself guessing at pixel coordinates in a 1080p frame, that's what
proxypose-annotate(andpoints_json) is for. Or open frame 0 in any image editor and read the cursor position.
That's the whole node. It's thin, and it's supposed to be - in a pack that downloads 30 GB and runs a 14B video model, the point prompt is the two numbers that make it worth doing at all.
Inputs (3)
| Name | Type | Default | Description |
|---|---|---|---|
| u | INT | 2560–8192 | Coluna do pixel de consulta no PRIMEIRO frame (resolucao cheia). |
| v | INT | 2560–8192 | Linha do pixel de consulta no PRIMEIRO frame (resolucao cheia). |
| points_jsonopt | STRING | Opcional: caminho de um *.points.json do proxypose-annotate (sobrescreve u/v). |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| prompt | PROXYPOSE_PROMPT | — |