Nodes/Mememage/Mememage Field
ComfyUI Node

Mememage Field

Add one field to your Mememage record at a time

By sememtac·Created 3 months ago·Updated 2 months ago· 1
Mememage Field
    • fields
    key
    value
    base

    Mememage Field is the smallest building block in the pack's field system: one key + one value, merged on top of whatever came before. If Mememage JSON is the "I already have a blob of JSON" node, this is the "I want to type each field in by hand" node - and its superpower is that each value can be converted to an input and wired from another node, so a field's value can come from anywhere in the graph, not just from a text box.

    How it works

    Three optional inputs:

    • key - the field name. Blank key = pass base through unchanged.
    • value - the value. Smart-typed: a number stays a number, true/false/null stay booleans/null, a JSON array or object stays structured, anything else is text. Convert the widget to an input to wire the value in from another node - a seed from a primitive, a filename from a text node, anything.
    • base - everything upstream. Wire a previous Field's fields output here.

    The output is fields, a JSON object. Chain nodes to grow a list:

    Field → Field → Field → Encode

    each wiring its fields output into the next node's base. A repeated key overrides the upstream one, so order matters and later wins.

    Why not just use the JSON box?

    Two reasons. First, legibility: a chain of Field nodes puts every field on the canvas where you can see and edit it, instead of buried in a multiline JSON string - the same impulse that drives the whole node-plumbing layer's war on repetition and illegibility. Second, dynamism: a Field's value can be a wire, so a field like seed or steps can track live values elsewhere in the graph instead of being typed once and going stale. That's the thing a static JSON blob can't do.

    The one place it's fiddly: a field defined per-node means the record grows one node per field. For a big metadata block you'll feel the drag - that's when Mememage JSON (paste the object) or Mememage Workflow Fields (read it off the graph) earns its keep. This node is for the handful of hand-authored fields.

    Installing it

    Part of mememage-comfy, one install for the whole pack. 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 needed.

    Common issues

    • "It keeps throwing 'base is not valid JSON'." base expects a fields object (a JSON dict), not arbitrary text. Wire another Field's output in rather than typing junk into base.
    • "My number came out as a string." Check the smart-typing: a value with leading zeros, or something that reads as text, stays text. If you need a specific type, make sure the value is shaped like that type.
    • "Which one is Mememage Fields vs Field vs JSON?" Field (this) = one key/value, chainable. "Mememage Fields" (class MememageFieldList) = the gatherer that merges several. "Mememage JSON" (class MememageFields) = paste a whole object. The naming is a classic small-pack naming collision, and it trips everyone once.
    CategoryMememage/Fields

    Inputs (3)

    NameTypeDefaultDescription
    keyoptSTRING
    valueoptSTRINGThe value. Convert to an input to wire it from another node.
    baseoptSTRINGUpstream fields to merge into — wire a previous Field's (or Fields') output here.

    Outputs (1)

    NameTypeDescription
    fieldsSTRING