Mememage Field
Add one field to your Mememage record at a time
- fields
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 = passbasethrough unchanged.value- the value. Smart-typed: a number stays a number,true/false/nullstay 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'sfieldsoutput 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'."
baseexpects a fields object (a JSON dict), not arbitrary text. Wire another Field's output in rather than typing junk intobase. - "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" (classMememageFields) = paste a whole object. The naming is a classic small-pack naming collision, and it trips everyone once.
Inputs (3)
| Name | Type | Default | Description |
|---|---|---|---|
| keyopt | STRING | — | |
| valueopt | STRING | The value. Convert to an input to wire it from another node. | |
| baseopt | STRING | Upstream fields to merge into — wire a previous Field's (or Fields') output here. |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| fields | STRING | — |