ComfyUI Node

Recipe Builder

The control room for reproducible ComfyUI runs

By FranckyB·Created 10 months ago·Updated 8 days ago· 147
Recipe Builder
  • recipe_data
  • multi_lora_stack
  • recipe_data
pos_prompts
neg_prompts
override_data{}
lora_state{}

Recipe Builder (class RecipeBuilder) is the authoring surface for the pack's Recipe toolset - the node you go to when you want a repeatable generation pipeline instead of a graph you have to re-wire every time you change a setting. Where a normal ComfyUI workflow is a pile of nodes with settings scattered across each one, a recipe bundles it all: prompts, LoRAs, sampler, resolution, seed, model slots. Builder is where you assemble, inspect, and edit that bundle before handing it to the Recipe Renderer to actually run.

How it works

Recipes live as RECIPE_DATA - structured data with four model slots (A/B/C/D), each carrying its own prompt, LoRA stack, sampler settings, and resolution. Recipe Builder gives you one clean surface with all four slots visible and per-slot settings, instead of making you wire four of everything. You can start from scratch, or connect an existing recipe to the optional recipe_data input to prefill and edit it.

The inputs that matter:

  • pos_prompts / neg_prompts - the positive and negative prompts. Plain text applies to all four slots; for model-specific prompts, connect a Multi Prompts payload instead (the pack's RecipeBuilderMultiPrompts node bundles per-slot prompts into one JSON string).
  • multi_lora_stack - one LoRA input for the whole recipe. Accepts either a LORA_STACK or a MULTI_LORA_STACK, so the pack's stackers and Prompt Manager can feed it directly.
  • recipe_data - optional, for prefilling a recipe from an extractor or another builder.
  • override_data and lora_state - the raw JSON that override and LoRA state map onto; these are the internals the UI edits for you, and you'll rarely hand-edit them.

The single output is recipe_data, which feeds the Recipe Renderer (to execute), the Recipe Relay (to unpack into standard nodes), or Recipe Manager (to save for reuse).

Where it fits

The author's suggested pipeline: extract a recipe from existing media with Recipe Extractor, then load it into Builder, adjust, and render - "extract once, iterate forever." It also plays nice with Prompt Manager, so you can reuse saved prompts inside a recipe, and with the Multi Prompts node when you're building recipes that use different prompts per model slot (handy for Wan or hybrid image/video setups where each model wants its own text).

Installing

Part of the ComfyUI-Prompt-Manager pack:

cd ComfyUI/custom_nodes
git clone https://github.com/FranckyB/ComfyUI-Prompt-Manager.git
cd ComfyUI-Prompt-Manager
pip install -r requirements.txt

Or ComfyUI Manager → search "Prompt Manager", then restart.

Gotchas

Two things to keep in mind. First, this node only produces RECIPE_DATA - it's the middle of the recipe pipeline, not a standalone thing. Standard ComfyUI nodes can't read its output directly; you need the Renderer or Relay to make it useful. Second, because it can carry settings for four model slots, recipes get rich fast, and the family of the model you select drives the defaults (sampler, CFG, steps) that the Renderer will apply. Set the right model family for your slot or you'll be fighting the defaults. If that all sounds like more structure than your workflow needs, the plain prompt toolset (Prompt Manager + Extractor) is the lighter path.

CategoryPrompt Manager

Inputs (6)

NameTypeDefaultDescription
recipe_dataoptRECIPE_DATAOptional recipe_data input for prefill/update.
pos_promptsoptSTRINGPositive prompts. Plain text applies to all slots, Use MultiPrompts for model-specific prompts.
neg_promptsoptSTRINGNegative prompts. Plain text applies to all slots, Use MultiPrompts for model-specific prompts.
multi_lora_stackoptLORA_STACK,MULTI_LORA_STACKOptional multi LoRA input. Accepts LORA_STACK or MULTI_LORA_STACK.
override_dataoptSTRING{}
lora_stateoptSTRING{}

Outputs (1)

NameTypeDescription
recipe_dataRECIPE_DATA