Nodes/ComfyUI-CustomNodeKit/Concat SDPose Keypoints
ComfyUI Node

Concat SDPose Keypoints

The two minutes of pose editing that needs a two-line node

By user2318·Created 4 months ago·Updated about a month ago· 56
Concat SDPose Keypoints
  • pose_a
  • pose_b
  • concatenated_pose

Pose sequences are just lists of frames, and sometimes you need two lists to become one - clip A's motion, then clip B's motion, one continuous dance. Concat SDPose Keypoints is the node that does it: pose_a plus pose_b, appended in time, one concatenated_pose out. It's a two-line implementation and that's the entire review, but it's the kind of node you'll quietly reach for at 1am when your 360° reference clip and your driving clip need to share a timeline.

There's genuinely nothing to configure. Two optional inputs (pose_a, pose_b), one output. The behavior is forgiving in exactly the ways you'd hope:

  • Both empty → empty list out (not a crash).
  • One side empty → the other side passes through.
  • Both present → pose_a followed by pose_b.

That "missing side passes through" behavior matters more than it looks. In the pack's looped workflows, where a segment loop accumulates a pose sequence frame by frame, wiring the accumulated pose into pose_a and the new segment into pose_b means the node keeps appending across iterations without you having to special-case the first loop. It's the accumulator pattern wearing a SDPose costume.

When you'd reach for it

  • Joining two separately-detected video segments into one pose sequence before a single drawing pass.
  • Appending a pose clip to a longer build (dance mashups, multi-shot choreography).
  • Accumulating frames in a loop where an append-every-iteration node is exactly what the graph wants.

Like all the plumbing in this layer (see the KB's node-plumbing doc), it exists to keep your graph legible - one named "concat" node instead of a mental note that two sequences get merged later.

Install

Part of user2318/ComfyUI-CustomNodeKit. ComfyUI Manager: search "CustomNodeKit". Or:

cd ComfyUI/custom_nodes
git clone https://github.com/user2318/ComfyUI-CustomNodeKit.git
cd ComfyUI-CustomNodeKit
pip install -r requirements.txt

then restart. No models, no downloads - it's pose_a + pose_b in a trench coat.

The gotcha

It concatenates in time and nothing else. If pose_a was detected at a different resolution or canvas size than pose_b, the concatenated sequence carries both - and downstream draw nodes read the canvas size from the first frame, so the second clip can end up drawn on the wrong canvas. Normalize your segments to the same canvas (the pack's Resize SDPose Keypoints exists for this) before concatenating, not after. Also, frame rates: concatenation just stacks frames, it does not resample, so two clips at different source fps become one sequence with a tempo change baked in. If you need frame-rate alignment, resample first - that's a different node's job.

CategorySDPose

Inputs (2)

NameTypeDefaultDescription
pose_aoptPOSE_KEYPOINT
pose_boptPOSE_KEYPOINT

Outputs (1)

NameTypeDescription
concatenated_posePOSE_KEYPOINT