Nodes/Photoshoot/Photoshoot – Wardrobe
ComfyUI Node

Photoshoot – Wardrobe

Photoshoot's Wardrobe Explainer

By ralksta·Created about a month ago·Updated 3 days ago· 139
Photoshoot – Wardrobe
    • garderobe

    You built a person. Now you want her in four outfits - without rebuilding her four times, and without the face sliding around because you retyped "turtleneck" as "crop top". That's what Photoshoot – Wardrobe (Krea2Wardrobe) is for: it keeps a shoot's outfits as tabs, hands one string to the Person Builder, and the Person Builder passes the whole closet to the Series node, which changes her clothes while the person stays put.

    It writes text, and only text

    Every node in this pack emits English prompt text plus width, height and a seed; nothing touches pixels. The Wardrobe composes "wearing a charcoal wool coat, bare legs, black combat boots" style sentences and that's the whole of it. It'll work on Flux, SDXL or whatever you run, though the wordings were render-tested on Krea 2 Turbo. On an LLM-encoded model (Qwen3-VL in Krea 2's case) the encoder reads the prompt as language, so assembling one well-formed clothing sentence isn't a gimmick - it's the part that holds up.

    The output, and the inputs that aren't there

    Open the node and you'll find no input dots at all. That's deliberate, not broken: everything you set lives in the node's panel and travels as hidden state, and only the output socket leaves. It's garderobe in the workflow JSON and wardrobe in the English interface (the pack's internal names are German; the shipped locales translate the sockets - same wire, two words). A STRING, though not really a sentence: JSON shaped like {"aktiv": 0, "outfits": [...]}. Wire it into the Person node's wardrobe input and two things happen. The person wears the open tab immediately, and the whole wardrobe rides along inside person_data, so a Series node downstream can change through all the outfits. The Series node reads the outfits off the Wardrobe node directly, which is why its outfit rail and swatches are right before you've run a single photo.

    Each tab holds a name, then the same fields the Person Builder carried back when clothes lived there: top and its colour, bottom with colour and material, hosiery and colour, shoes and colour, a free-text details box, plus jewellery, eyewear and headwear. Colour is a button next to its row, and the three icons on the tab strip add, duplicate and delete an outfit.

    One rule worth reading twice: an outfit replaces all of the person's clothing, whether it sets those fields or not. A person in jeans does not keep the jeans under a bikini - right for a shoot, and a surprise for anyone expecting the two to merge.

    In a series: blocks, not dice

    The Outfit axis in the Series node is the real payoff. Twelve photos and three outfits is four photos per outfit in tab order, and with wide → close under Camera the framing order restarts with every outfit, so each look opens wide and ends tight instead of the first outfit hoovering up all the close-ups. Mixed draws one outfit per photo instead, and a stripe of the outfit's main colour runs under its frames in the contact sheet - the top's colour, else the bottom's.

    Render preview puts a picture on the open outfit, on a faceless light grey mannequin or as a flat lay, using one run of your own workflow with the preview text swapped into Build Prompt. The mannequin is grey because a white one bled into jeans without a colour, and frontal because turning it or lighting it hard made black tights disappear. Change the outfit afterwards and the old render stays, dimmed and marked outdated.

    Install

    Through ComfyUI Manager, search Photoshoot. Or by hand:

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

    Restart ComfyUI; the nodes appear under the Photoshoot category. There are no dependencies - pyproject.toml declares an empty dependency list and the code uses only the stdlib plus what ComfyUI already ships. The example workflow ships with Krea 2, so you want Comfy-Org's krea2_turbo_fp8_scaled, qwen3vl_4b_fp8_scaled (CLIP type krea2) and qwen_image_vae; plain Qwen3-4B won't load.

    Where people get burned

    The node isn't in your list. The Wardrobe only exists from 2.6.0 (September 2026). If you cloned this pack earlier, update it in Manager and restart - hunting for a socket that isn't compiled yet wastes an evening.

    Your outfits live in the workflow. The tabs are node state, saved with Ctrl+S, not in krea2_persons. Two Wardrobe nodes are two closets, and one wardrobe per shoot is the plan - chaining five of them was the first version, and by the author's own admission it was unreadable.

    A bikini moves the face. Measured before the node was built: with only the clothing text changing, the face held across a crop top, a turtleneck and a Bardot top on the same seed. A bikini shifted it - broader, a slightly different person. That's the limit of text-plus-seed identity; a character LoRA is the fix.

    Previews cost real runs. Render preview is one run per outfit through your own graph - cheap on a turbo checkpoint, not free on a 20-step one, and it needs a runnable workflow behind it or it fails quietly.

    Old builds drag the framing back to full body. Since 2.6.0 close framings drop everything below the chest, so a pencil skirt can't pull a headshot to full length. Still getting full-body headshots? You're on an older build.

    CategoryPhotoshoot

    Inputs (0)

    No inputs

    Outputs (1)

    NameTypeDescription
    garderobeSTRING