ComfyUI Node

Pose List (kppb)

Tick the ones you want, XY Plot does the rest

By artokun·Created 8 months ago·Updated 4 months ago· 39
Pose List (kppb)
    • list
    • count
    ◄adjusting collarfalse►
    ◄adjusting jacketfalse►
    ◄arms crossedfalse►
    ◄back to camerafalse►
    ◄chin on handfalse►
    ◄contrappostofalse►
    ◄crouchingfalse►
    ◄dance stepfalse►
    ◄fingers near lipsfalse►
    ◄from-behind candidfalse►
    ◄hair flipfalse►
    ◄hand on chestfalse►
    ◄hand on hipfalse►
    ◄hands behind headfalse►
    ◄hands clasped behind backfalse►
    ◄hands clasped frontfalse►
    ◄hands in pocketsfalse►
    ◄head tiltfalse►
    ◄holding coffeefalse►
    ◄holding phonefalse►
    ◄kneelingfalse►
    ◄laughing candidfalse►
    ◄leaning against wallfalse►
    ◄leaning in doorwayfalse►
    ◄leaning on counterfalse►
    ◄leaning on railingfalse►
    ◄leaning on tablefalse►
    ◄looking awayfalse►
    ◄lying on backfalse►
    ◄lying on sidefalse►
    ◄lying on stomach elbows upfalse►
    ◄mirror selfie posefalse►
    ◄one knee up seatedfalse►
    ◄one leg bent standingfalse►
    ◄over the shoulder lookfalse►
    ◄peace signfalse►
    ◄profilefalse►
    ◄reclining on sofafalse►
    ◄serious editorialfalse►
    ◄sittingfalse►
    ◄sitting couch loungefalse►
    ◄sitting cross-leggedfalse►
    ◄sitting on edgefalse►
    ◄sitting on floorfalse►
    ◄sitting on stairsfalse►
    ◄small jumpfalse►
    ◄squattingfalse►
    ◄standingfalse►
    ◄standing both hands on hipsfalse►
    ◄stretch overheadfalse►
    ◄textingfalse►
    ◄three-quarter turnfalse►
    ◄touching hairfalse►
    ◄tucking hair behind earfalse►
    ◄twirlfalse►
    ◄walkingfalse►
    ◄walking mid-step turnfalse►
    ◄weight shiftedfalse►
    ◄custom_entries►

    If you've ever wanted the same character in twelve different poses without rebuilding the prompt twelve times, Pose List (kppb) is the boring little node that makes it happen. It's a toggle panel with ~58 pose names - standing, walking, hand on hip, arms crossed, sitting, contrapposto, looking away, twirl, reclining on sofa and a lot more - and you just tick the ones you want. Ticking nothing means an empty list, so the node's real job is being a batch selector for an XY Plot grid.

    How it works

    Every pose is a boolean input (default off). Whatever you switch on, plus anything you add in the custom_entries multiline box (one pose per line, gets appended as-is), comes back out as two outputs:

    • list - the collected pose strings, in order.
    • count - how many you selected. That's the number the XY Plot queue uses to know how many images that dimension should produce.

    The poses use the same vocabulary as the Prompt Builder's pose dropdown, so the strings slot straight into it. If you're not using XY Plot yet, these lists are still useful for a manual batch: connect list where the workflow expects the pose value and let ComfyUI iterate.

    Wiring it up

    This is where the ComfyLab-Pack dependency shows up. The pack's example workflows drive XY Plot: Queue with these lists:

    Pose List "list"   ──►  XY Plot Queue (dim1)
    Pose List "count"  ──►  XY Plot Queue (batch/step count)
    

    The README is explicit that this works with ComfyLab-Pack, and it flags a real gotcha: ComfyUI Manager's Install Missing Custom Nodes cannot auto-resolve XYPlotQueue because ComfyLab-Pack registers those nodes under display names. Search "ComfyLab Pack" in the Manager and install it manually before the example workflow will load.

    Installing

    Same as every node in this pack:

    cd ComfyUI/custom_nodes
    git clone https://github.com/artokun/ComfyUI-Photoreal-Prompt-Builder.git comfyui-klein-photoreal-promptbuilder
    

    Restart ComfyUI, no pip dependencies. Or search "Photoreal Prompt Builder" in ComfyUI Manager. You'll find it under conditioning/klein.

    One warning before you get greedy: pose lists multiply fast. Eight poses × eight lighting options is 64 generations, and each Klein pass takes a while. Start with three poses, check the grid, then widen. The node will happily hand you a 400-image queue; your GPU will not thank you.

    Categoryconditioning/klein

    Inputs (59)

    NameTypeDefaultDescription
    adjusting collarBOOLEANfalse—
    adjusting jacketBOOLEANfalse—
    arms crossedBOOLEANfalse—
    back to cameraBOOLEANfalse—
    chin on handBOOLEANfalse—
    contrappostoBOOLEANfalse—
    crouchingBOOLEANfalse—
    dance stepBOOLEANfalse—
    fingers near lipsBOOLEANfalse—
    from-behind candidBOOLEANfalse—
    hair flipBOOLEANfalse—
    hand on chestBOOLEANfalse—
    hand on hipBOOLEANfalse—
    hands behind headBOOLEANfalse—
    hands clasped behind backBOOLEANfalse—
    hands clasped frontBOOLEANfalse—
    hands in pocketsBOOLEANfalse—
    head tiltBOOLEANfalse—
    holding coffeeBOOLEANfalse—
    holding phoneBOOLEANfalse—
    kneelingBOOLEANfalse—
    laughing candidBOOLEANfalse—
    leaning against wallBOOLEANfalse—
    leaning in doorwayBOOLEANfalse—
    leaning on counterBOOLEANfalse—
    leaning on railingBOOLEANfalse—
    leaning on tableBOOLEANfalse—
    looking awayBOOLEANfalse—
    lying on backBOOLEANfalse—
    lying on sideBOOLEANfalse—
    lying on stomach elbows upBOOLEANfalse—
    mirror selfie poseBOOLEANfalse—
    one knee up seatedBOOLEANfalse—
    one leg bent standingBOOLEANfalse—
    over the shoulder lookBOOLEANfalse—
    peace signBOOLEANfalse—
    profileBOOLEANfalse—
    reclining on sofaBOOLEANfalse—
    serious editorialBOOLEANfalse—
    sittingBOOLEANfalse—
    sitting couch loungeBOOLEANfalse—
    sitting cross-leggedBOOLEANfalse—
    sitting on edgeBOOLEANfalse—
    sitting on floorBOOLEANfalse—
    sitting on stairsBOOLEANfalse—
    small jumpBOOLEANfalse—
    squattingBOOLEANfalse—
    standingBOOLEANfalse—
    standing both hands on hipsBOOLEANfalse—
    stretch overheadBOOLEANfalse—
    textingBOOLEANfalse—
    three-quarter turnBOOLEANfalse—
    touching hairBOOLEANfalse—
    tucking hair behind earBOOLEANfalse—
    twirlBOOLEANfalse—
    walkingBOOLEANfalse—
    walking mid-step turnBOOLEANfalse—
    weight shiftedBOOLEANfalse—
    custom_entriesSTRING—

    Outputs (2)

    NameTypeDescription
    listLIST—
    countINT—