Nodes/toobusy · 너무바쁜베짱이/toobusy Reference Board
ComfyUI Node

toobusy Reference Board

Your character sheet, face swap, and LoRA stack in one node

By nicekriss·Created about a year ago·Updated 3 days ago· 16
toobusy Reference Board
    • toobusy_bundle
    • global_note
    • reference_manifest_json
    • validation_report
    board_json{"version": 1, "global_note": "", "items": []}

    Keeping a character consistent across generations is the oldest unsolved problem in this hobby, and the practical answer people landed on is reference-based production: lock the character once, then feed reference images into every generation. The problem with that workflow is bookkeeping - which image is the face source, which is the outfit, which LoRA goes with which card, where did I put that audio clip. toobusy Reference Board is a mood-board-and-manifest node that collects image, audio, text and LoRA cards on one board and packs them into a single TOOBUSY_BUNDLE output that the rest of the toobusy ecosystem consumes.

    Think of it as the hub of the pack's reference ecosystem. The board feeds toobusy Flux2 Klein Prompt Director, which builds the final prompt from buttons, and that feeds toobusy Flux2 Klein, which does the generation. The README's core flow is:

    Reference Board (image/audio/text/LoRA cards + modules)
    -> toobusy_bundle
    -> Prompt Director (button-built prompt + swap flags)
    -> Flux2 Klein (bundle_reference_order = auto)
    -> image
    

    What makes it more than a pinboard

    The cards aren't just pictures pinned to a board - each one carries role data that the bundle exposes downstream. You can attach server-side processing modules to card images: Erase Face (strip the face from a body card), Keep Face Only (leave just the face from a source card), and Remove Background. That's the whole face-swap rig in a toggle. There are text cards (Goal, Style, Negative, Custom) so your intent travels with the board, plus standalone LoRA cards and a per-face-card FaceSwap LoRA dropdown. The UI extras - hover zoom, drag-out to other apps, click-or-drop image replacement that keeps your settings, name-collision-free preset save/load - are quality-of-life, but they add up to a board you'll actually keep using.

    Inputs and outputs that matter

    One input: board_json, the serialized board state. The custom UI edits it, and the tooltip is the contract: "The custom UI edits this field." You interact with the node, not the JSON.

    Four outputs:

    • toobusy_bundle - the TOOBUSY_BUNDLE everything downstream eats. Wire it into Prompt Director or Flux2 Klein.
    • global_note - your board-level note as a string, if you want it visible in the graph.
    • reference_manifest_json - a machine-readable list of what's on the board, handy for debugging or scripting.
    • validation_report - a string report on what's valid/missing in your board. This is the one to read when the bundle comes out half-empty.

    Installing it

    This is a core node in nicekriss/toobusy - no optional dependencies unless you use the card modules:

    cd ComfyUI/custom_nodes
    git clone https://github.com/nicekriss/toobusy.git toobusy
    

    or search "toobusy" in ComfyUI Manager. Restart ComfyUI and hard-refresh the browser - this is a heavily custom-UI node, and a stale JS cache is the usual reason it looks broken.

    If you enable the card modules, the README's optional requirements come into play: Erase Face / Keep Face Only use the face-mask path (opencv-python, optionally mediapipe and a YOLO face model), and Remove Background needs rembg. The core board itself runs on plain Pillow/numpy/torch.

    Two honest caveats. First, this node only does its thing when paired with the Director → Flux2 Klein flow; on its own a bundle is just a bundle. Second, the board embeds its data in the workflow JSON, so a board stuffed with images gets heavy. That's the price of portability - and if you're chasing character consistency, having the whole reference set travel with the workflow is usually worth it.

    Categorytoobusy/Plan

    Inputs (1)

    NameTypeDefaultDescription
    board_jsonSTRING{"version": 1, "global_note": "", "items": []}Serialized Reference Board state. The custom UI edits this field.

    Outputs (4)

    NameTypeDescription
    toobusy_bundleTOOBUSY_BUNDLE
    global_noteSTRING
    reference_manifest_jsonSTRING
    validation_reportSTRING