Nodes/Mememage/Mememage Workflow Fields
ComfyUI Node

Mememage Workflow Fields

Stop re-typing your settings — read them off the graph

By sememtac·Created 3 months ago·Updated 2 months ago· 1
Mememage Workflow Fields
    • fields
    base
    modeltrue
    positive_prompttrue
    negative_prompttrue
    seedtrue
    stepstrue
    cfgtrue
    guidancetrue
    samplertrue
    schedulertrue
    denoisetrue
    lorastrue

    The most annoying part of writing provenance metadata by hand is that you're copying down values that already exist. Your seed, your steps, your sampler, your model - they're all sitting in the graph right now, typed into KSampler widgets. Mememage Workflow Fields does the re-typing for you: it reads the generation parameters straight out of the workflow and packs them into a clean generation field on the record. Think of it as EXIF for your render, pulled from the graph instead of the pixels.

    How it finds them

    A latent tensor carries no metadata; the settings live in the graph, and this node reads the graph directly. Rather than hunting for specific node types - which multiply endlessly (KSampler, Flux custom-sampling stacks, whatever ships next week) - it harvests a fixed vocabulary of input names (seed/noise_seed, steps, cfg/guidance, sampler_name, …) onto standard tags. Same mapping whether you use KSampler or a Flux custom-sampling rig. It follows wired values back to their literal (a seed driven from a primitive is captured, not blanked), traces the conditioning graph for the prompts, and - the part I appreciate - never guesses. A param it can't confidently read is simply absent, not filled with junk.

    The toggles

    Every parameter has its own on/off switch, all defaulting to on: model, positive_prompt, negative_prompt, seed, steps, cfg, guidance, sampler, scheduler, denoise, loras. Turn off what you don't want emitted; an off param is never produced. Two things worth knowing:

    • cfg and guidance are separate tags on purpose. A Flux guidance scale is a distilled guidance, not interchangeable with CFG. If you don't want it, flip it off - it won't ride along as a bogus cfg.
    • It only emits the params you toggle; a base input merges upstream fields first.

    The output is a single fields object (with the generation data nested under a generation key). Wire it into Mememage Encode's fields socket, or into a Mememage Fields gatherer to merge your own hand-entered fields on top.

    One important boundary

    This is the curated, readable summary. Encode's embed_workflow toggle still stores the entire graph as comfy_prompt regardless - the full recipe rides in the verifiable record. These are two different things: this node gives you clean, queryable fields; comfy_prompt gives you the whole graph for exact reproduction. Both are worth having, and they don't conflict.

    Installing it

    Same pack as everything here. ComfyUI Manager → search "Mememage" → Install → restart, or:

    cd ComfyUI/custom_nodes
    git clone https://github.com/sememtac/mememage-comfy
    <ComfyUI-python> -m pip install mememage
    

    Restart; it's under Mememage/Fields. No models or keys.

    Common issues

    • A param you toggled on is missing from the output. By design, not a bug - it only emits what it can confidently read. An exotic or custom sampler stack can leave some values unreadable. The README is upfront that this is best-effort over the standard SD/SDXL nodes; a custom sampler may leave fields blank even when on.
    • It's never cached, so it always runs. The node deliberately re-reads the graph every execution (the IS_CHANGED NaN trick from the plumbing layer), because a randomized seed or edited prompt would otherwise go stale. If you feel the graph re-running more than you expect, this node is likely why - and that's correct behavior, not a leak.
    • Confused by cfg vs guidance? You're not alone. Flux users should treat guidance as its own thing; SD1.5/SDXL users can leave it on harmlessly or off.
    CategoryMememage/Fields

    Inputs (12)

    NameTypeDefaultDescription
    baseoptSTRINGOptional upstream fields to merge first.
    modeloptBOOLEANtrue
    positive_promptoptBOOLEANtrue
    negative_promptoptBOOLEANtrue
    seedoptBOOLEANtrue
    stepsoptBOOLEANtrue
    cfgoptBOOLEANtrue
    guidanceoptBOOLEANtrueFlux's guidance scale — its own tag (a distilled guidance, NOT interchangeable with cfg). Off if you don't want it.
    sampleroptBOOLEANtrue
    scheduleroptBOOLEANtrue
    denoiseoptBOOLEANtrue
    lorasoptBOOLEANtrue

    Outputs (1)

    NameTypeDescription
    fieldsSTRING