toobusy Flux2 Klein Prompt Director
Assemble the final Klein prompt with buttons, not a text editor
- clip
- toobusy_bundle
- toobusy_bundle
- resolved_prompt
- selected_blocks_json
- validation_report
Here's the honest failure mode of the "reference board" idea: you've gathered a board of character, outfit, and style cards, and now you have to write the actual final prompt for Klein - which means remembering which card is which role and hoping the wording comes out right. toobusy Flux2 Klein Prompt Director is the node that replaces that text-editing session with a button panel. It takes a TOOBUSY_BUNDLE, shows you buttons for exactly the cards registered on your connected board, and assembles a resolved_prompt that goes straight into Flux2 Klein.
How it works
The Director is a hybrid: a UI-driven assembler plus an LLM pass. You connect a clip (a text-generation-capable model - the README is explicit that the node needs one) and a bundle, and the node's button panel lets you pick the goal, style, lighting, camera, and which cards participate, including the three swap flags: FaceSwap, Product Swap, and Character Swap. Those flags do real work - they set the reference_order that Flux2 Klein's bundle_reference_order: auto then follows, so a Character Swap actually swaps which card is the subject and which is the target.
The LLM's job is narrower than you'd think. If you've set director_selection_json (the serialized button-panel state the node UI manages), the selected blocks are authoritative and the LLM only assembles them in order - it doesn't improvise new content. That's a deliberate guard against the classic LLM failure mode where an enhancer "helpfully" adds details you never asked for. analysis_mode (fast/balanced) trades a shorter summary + faster assembly against a richer summary with validation.
The inputs that matter
clip- the LLM that assembles blocks and validates. Output quality lives or dies here.toobusy_bundle- the board's cards, which define what buttons exist.analysis_mode- fast for iteration, balanced when you want validation.director_selection_json- leave it to the UI; when set, your button choices override the LLM's creative freedom, which is exactly what you want once you've settled on a direction.
Outputs and where they go
resolved_prompt- the final prompt, ready for Flux2 Klein's bundle path or any CLIPTextEncode.toobusy_bundle- the bundle echoed back with the swap flags and assembled prompt baked in. This is the important one: feed it totoobusy Flux2 Kleinand the fold picks up everything.selected_blocks_json/validation_report- what you picked and whether the LLM flagged anything, both for debugging.
Install and gotchas
Standard pack install (Manager "toobusy", or clone + restart). No optional deps, but the clip you connect must actually support text generation - the README's warning about Gemma-family being the safe pick for ComfyUI's TextGenerate wrapper applies here. Loading a GGUF of some other model and getting a silent failure is a "this clip can't generate" problem, not a Director bug.
The workflow trap: the Director is only as good as the board behind it. Buttons only appear for cards that exist on the connected Reference Board, so an empty board gives you an empty panel and a thin prompt. Build the board first, then direct. And if your bundle's prompt overrides everything you type anyway - remember the bundle's resolved_prompt wins in Flux2 Klein when use_bundle_prompt is on - so make your button choices here, not in a text box downstream.
Inputs (5)
| Name | Type | Default | Description |
|---|---|---|---|
| clip | CLIP | — | |
| analysis_mode | COMBO | balanced | fast: 짧은 참조 요약과 빠른 조립. balanced: 조금 더 풍부한 요약과 validation. |
| seed | INT | 10–18446744073709550000 | — |
| toobusy_bundleopt | TOOBUSY_BUNDLE | Universal toobusy Bundle from Reference Board. Preferred for new bundle-centered workflows. | |
| director_selection_jsonopt | STRING | Serialized button-panel selection (managed by the node UI). When set, the selected blocks are authoritative and the LLM only assembles them in order. |
Outputs (4)
| Name | Type | Description |
|---|---|---|
| toobusy_bundle | TOOBUSY_BUNDLE | — |
| resolved_prompt | STRING | — |
| selected_blocks_json | STRING | — |
| validation_report | STRING | — |