Nodes/GenAsset/Load Recipe To Widgets
ComfyUI Node

Load Recipe To Widgets

Load Recipe To Widgets — the author's favorite node, and it's easy to see why

By steliosot·Created 4 months ago·Updated 3 months ago· 1
Load Recipe To Widgets
    • prompt_text
    • negative_prompt_text
    • model_name
    • seed
    • steps
    • cfg
    • sampler_name
    • scheduler
    • denoise
    • width
    • height
    • status_json
    workflow_json{}
    metadata_json{}

    When the author of this pack showed it off on r/comfyui, he called out two nodes as his favorites. This is one of them, and the screenshot tells you why: it takes a stored workflow recipe and turns it back into editable ComfyUI widget values. Prompts, model, seed, steps, cfg, sampler, scheduler, denoise, width, height - the exact knobs you'd tweak by hand, extracted from the JSON so you can change one thing and re-run.

    The whole GenAsset pitch is "reproduce and reuse," and this is the reuse half. A saved version in the cloud is great for reference; a saved version you can load back as live widgets is something you can actually work with. For a team, it also means a non-expert can load a colleague's recipe without knowing which node has which value.

    How it works

    The node is deliberately dumb in the best way: it takes workflow_json and metadata_json as inputs - exactly the two strings the load nodes output - and parses them locally. No API call, no token needed, no network. It looks in the workflow's api_prompt for a sampler node (KSampler, SamplerCustom, etc.), walks upstream to find the prompt and model, and cross-checks the metadata for performance, model, and image fields. Then it picks the first non-empty value it finds and hands it out the matching output.

    That local, stateless design is why it's so pleasant to use: you can feed it JSON from a load node, or paste JSON in the widget by hand. It works even if your GenAsset connection is down.

    Inputs and outputs that matter

    Two inputs, both multiline JSON strings: workflow_json and metadata_json. Wire them from GenAssetLoadVersion, GenAssetLoadExactVersion, or GenAssetLoadCurrentVersion. If a field is missing from the JSON, the corresponding output comes back empty or zero rather than crashing - the status_json output includes an extracted map showing exactly which of the eleven fields it found and which it didn't.

    The outputs are the whole point, and they're typed properly:

    • prompt_text, negative_prompt_text, model_name - the text side of the recipe.
    • seed, steps, width, height - integers.
    • cfg, denoise - floats.
    • sampler_name, scheduler - the exact strings KSampler expects.

    So you can wire prompt_text into your positive conditioning, seed into KSampler's seed, and so on. The values are suggestions - edit anything before you re-run. That's the feature.

    Installation

    Same pack, same install: ComfyUI Manager → search GenAsset → install, or

    cd ComfyUI/custom_nodes
    git clone https://github.com/steliosot/ComfyUI-GenAsset.git
    

    then restart. No extra dependencies - and note that unlike most nodes in this pack, this one needs no token at all, because it never talks to GenAsset. It's pure JSON plumbing.

    Common issues

    • Most outputs come back empty - the JSON you fed it doesn't match the expected shape. A version saved with workflow_json: {} (some manual save nodes do that) has nothing to extract. Check status_json's extracted map to see which fields were found.
    • Seed or width show 0 but you know they were set - the metadata was stored under a different key than the node looks for. The node's pick_* helpers try several known names, but a version saved outside this pack may not line up.
    • You expected a prompt and got one from the wrong sampler - the node grabs the first sampler it finds upstream. In a multi-sampler workflow that may not be the one you wanted; feed it a workflow with one clear sampler for predictable results.

    This is the node that makes a saved version feel less like an archive and more like a living project. It's also the honest answer to "how do I hand this workflow to someone who's never seen it?" - the recipe becomes widgets, and widgets are what people know how to turn.

    Categorygenasset

    Inputs (2)

    NameTypeDefaultDescription
    workflow_jsonSTRING{}
    metadata_jsonSTRING{}

    Outputs (12)

    NameTypeDescription
    prompt_textSTRING
    negative_prompt_textSTRING
    model_nameSTRING
    seedINT
    stepsINT
    cfgFLOAT
    sampler_nameSTRING
    schedulerSTRING
    denoiseFLOAT
    widthINT
    heightINT
    status_jsonSTRING