OOP Poses π§
Stop typing pose prompts β pick body, hands and legs from dropdowns
- OOP_POSE
The pose line is where prompts go to die. You type "squatting, hand to mouth, legs spread" and the sampler gives you a standing statue with noodle arms, because free-text poses are a gamble on every checkpoint. OOP Poses π§ from the ComfyUI-OOP pack turns that into three dropdowns: pick a body pose, a hand pose and a leg pose, and it hands the rest of the pack a clean, labeled string it can slot into a bigger scene description.
What it actually does
Like every node in this pack, OOP Poses is a prompt-builder in disguise. It doesn't touch the image or call any model - it assembles a short text and outputs it as a custom OOP_POSE type. That string looks like body:Stand, hands:Stretch, legs:AgainstWall (the default), which you'll recognize as the structured, label-prefixed style the pack's README example pushes for. The author built these to keep scenes organized the same way you'd organize a character sheet, not to do anything clever at the pixel level.
The three dropdowns are the whole node, and the choice lists are genuinely long:
- base_pose - 23 options, from
StandandSittingthroughSquat,Grovel,Flyand some very specific ones (Selfie,BreastsRestOnTable). DefaultStand. - hand_pose - 25 options like
HandToMouth,ArmsCrossed,PeaceSymbol,MiddleFinger. DefaultStretch. - leg_pose - 20 options from
SpreadLegstoSeizaandWarizaWSitting. DefaultAgainstWall.
Then there's the randomize boolean. Flip it and every queue picks a fresh random body/hand/leg combination. The node's IS_CHANGED method returns random bits whenever randomize is on, which is ComfyUI's way of saying "re-run me every time" - so it re-rolls on every queue, not just when you change something. If you want a stable pose, leave it off.
Where the output goes
The only output is OOP_POSE, which wires into the poses input on OOP Person π€ (the pack's character assembler) and, through it, into the OOP Node π« that does the final text encoding. You can't drag OOP_POSE into a plain text box - it's a custom type only this pack understands. If you want to see what it actually rendered, run the graph and read the STRING output of the OOP Node.
One honest caveat: these labels are the weak spot. They read like Danbooru-style pose tags, so they hit hard on SDXL anime/illustrious-style checkpoints and get mushy on photorealistic ones. The good news is you can always read the assembled string and edit the pose by hand when a pick lands wrong.
Installing it
The whole pack installs together, and it's the easiest kind:
cd ComfyUI/custom_nodes
git clone https://github.com/0xRavenBlack/ComfyUI-OOP
Then restart ComfyUI. Or use Manager (Custom Nodes Manager β search ComfyUI-OOP β Install). There's no requirements.txt and no model files - it's pure Python that rides on ComfyUI's built-in CLIP, so there are no dependencies to fight and nothing to download.
Troubleshooting
- "It renders nothing useful" - remember this is an SDXL-era pack. The aggregator node hardcodes CLIP skip β2 and 1024Γ1024 conditioning, and the demo workflow uses an SDXL empty latent with euler/karras, cfg 8, 20 steps. Feed it an SDXL checkpoint and these tags behave; on Flux or SD1.5 you're outside what the author tested.
- Pose re-randomizes when you didn't ask - check that
randomizeis off; the re-roll happens on every queue run. - OOP_POSE won't connect - you need OOP Person and/or OOP Node in the path; the custom type has no meaning outside the pack.
The pack is small (15-ish stars, built over a week in early 2025, dormant since). It's not the most maintained tool you'll install, but as a way to stop hand-typing pose prompts and get a repeatable scene structure, it does the job.
Inputs (4)
| Name | Type | Default | Description |
|---|---|---|---|
| base_pose | COMBO | Stand | 23 options: Sitting, Stand, Squat, Grovel, Lie, Jump, +17 |
| hand_pose | COMBO | Stretch | 25 options: HandToMouth, ArmAtSide, ArmsBehindHead, ArmsBehindBack, HandOnOwnChest, ArmsCrossed, +19 |
| leg_pose | COMBO | AgainstWall | 20 options: SpreadLegs, CrossedLegs, FetalPosition, LegLift, LegsUp, LeaningForward, +14 |
| randomizeopt | BOOLEAN | false | β |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| OOP_POSE | OOP_POSE | β |