Nodes/ComfyUI-Photoshoot/Photoshoot Serie
ComfyUI Node

Photoshoot Serie

The Photoshoot Series node

By ralksta·Created 4 days ago·Updated about 21 hours ago· 48
Photoshoot Serie
    • pose
    • ausdruck
    • kamera
    • width
    • height
    • bildseed
    • person
    • person_data
    • kamera_label
    seed0
    width_in
    height_in
    person_data

    The whole point of the Photoshoot pack is that you build a person once and then shoot a series of them: different framing, pose, placement, expression and aspect ratio in every photo, same person throughout. Krea2Photoshooting ("Photoshoot Serie") is the engine that makes the series happen. You set a count, press a button inside the node, and it queues all the runs itself - the person stays fixed while everything else in the prompt changes.

    How it works

    Six axes vary across the series: camera (7 framings, extreme close-up to wide), pose (18 postures in 4 families plus placement, orientation, arms, legs, tension), expression (90 moods in 9 families plus eyes, gaze, mouth, brows, head tilt), focus (12 focal points, face to feet), ratio (9 aspect ratios at a constant pixel count), and noise (a fresh seed per photo, or one seed for the whole series).

    Each axis can be switched off - then it holds still - or restricted to a family, like only standing poses or only calm moods. And the axes are coupled so no run contradicts itself: placement fits the framing, body tension fits the posture, focus fits the framing, and the aspect ratio follows the framing so a full-body shot never lands in 16:9 landscape.

    Two mechanisms make it a series rather than forty random images. It counts, it doesn't roll dice: run 7 always produces the same photo, so a series is reproducible and extendable later. The counting uses a Kronecker sequence - each field steps by the fractional part of a different square root - because plain integer factors made related fields march in lockstep. And the person shrinks with distance: the prompt for a wide shot drops lipstick, eyeliner and brow shape and keeps the silhouette, because those tokens are invisible at that range but still pull the composition back onto the head.

    The inputs that matter

    • seed - this is a run counter, not a random value. The "Start shooting" button in the node's panel resets it to 0 and steps it after every run. This is why the Queue button above the canvas is wrong here: it renders photo 1 only and leaves the rest of the series unqueued.
    • person_data - wire the person_data output of Krea2PersonBuilder into this. The node then reassembles the person per framing (full detail for close-ups, truncated for wide shots). Wiring the finished person string in instead buys nothing - that one can't be shortened.
    • width_in / height_in - only apply when the ratio axis is switched off; otherwise the framing decides the ratio, and a fixed value would contradict it.

    The outputs

    pose, ausdruck and kamera are the prompt fragments that feed Krea2PromptJoin (via {pose}, {ausdruck}, {camera}). width, height and bildseed (that's German for "image seed") drive your KSampler and latent sizing - bildseed feeds both samplers in the example workflow, which is what makes a run reproducible. person is the framing-shortened description; person_data and kamera_label pass through for optional add-on packs.

    Installing and wiring

    Through ComfyUI Manager, search "Photoshoot", or:

    cd ComfyUI/custom_nodes
    git clone https://github.com/ralksta/ComfyUI-Photoshoot
    

    Restart, and the node appears under Photoshoot. No dependencies beyond ComfyUI. The example workflow (photoshoot-series.json) is the whole thing wired up, and it targets Krea 2 - it expects the Comfy-Org-published files krea2_turbo_fp8_scaled, qwen3vl_4b_fp8_scaled (CLIP type krea2) and qwen_image_vae. The text encoder is the one part that isn't interchangeable: Krea 2 needs Qwen3-VL-4B specifically, not plain Qwen3-4B or the 32B build.

    The one trap that bites everyone

    Switch the noise axis off before you go looking for a face, not after. With noise on, every run reinvents everything the description leaves open - so no two runs share a face. Switching it off replaces that with a single series seed and a die next to it: roll until you like who turns up, and from then on she's fixed. Doing it the other way round - finding someone you like at run 7, then switching the axis off - gives you a stranger, because the seed changes from the run counter (7 × 2654435761 mod 2³¹) to whatever the series seed says. The example photoshoot-anchor-set.json workflow already has this set up, noise off, count at six.

    CategoryPhotoshoot

    Inputs (4)

    NameTypeDefaultDescription
    seedINT00–18446744073709550000
    width_inoptINT
    height_inoptINT
    person_dataoptSTRING

    Outputs (9)

    NameTypeDescription
    poseSTRING
    ausdruckSTRING
    kameraSTRING
    widthINT
    heightINT
    bildseedINT
    personSTRING
    person_dataSTRING
    kamera_labelSTRING