Nodes/Mememage/Mememage Decode
ComfyUI Node

Mememage Decode

Read the Mememage bar out of any image

By sememtac·Created 3 months ago·Updated 2 months ago· 1
Mememage Decode
  • image
  • identifier
  • content_hash
  • image

Mememage Decode is the low-level reader of the pack. Encode stamps a two-pixel bar into an image; this node takes an image that has a bar and tells you what the bar says - the identifier (the key to the record) and the content_hash (the fingerprint). That's the entire job, and it's deliberately small.

Why you'd reach for it

The typical use is the start of a forensic chain: you have an image that may or may not be one of yours, you decode its bar to find the identifier, then you look up the record and check whether it still matches. The flow the README calls "the star of the decode→verify chain":

Mememage Decode → Mememage Find Record → Mememage Verify

Decode reads the identifier, Find Record locates the matching .json on disk, Verify does the actual integrity check. Or wire the identifier straight into Mememage Load Record if you know the file, or Mememage Fetch Record to pull it over the network.

The one input and three outputs

It takes exactly one required input, image (an IMAGE tensor - first frame of a batch). Outputs:

  • identifier - the <prefix>-<16 hex> key. Wire it into Load / Find / Fetch Record, or into Encode to resume iterating that piece.
  • content_hash - the hash that later proves the record belongs to this image. Wire it into Fetch Record to probe hashed filenames on the Internet Archive, or into Verify alongside the record.
  • image - passed through untouched, so the node chains onward without you dragging a parallel wire.

One honest caveat: if the image has no readable bar, you get empty strings back - not an error. identifier and content_hash both come back "" and the image still passes through. So "empty identifier" is itself a signal: this image has no Mememage bar (or it was resized/cropped past recovery). Gate on that with a switch if your workflow needs to branch.

Note on what this isn't

Decode reads. It does not verify. If you want the plain-language "is this image untampered" verdict, that's Mememage Verify - this node hands Verify its inputs, it doesn't replace it. Also, this is the single-bar reader; for a collage or contact sheet assembled from several barred images, use Mememage Decode All, which returns lists and fans out to Load Record / Verify once per bar automatically.

Installing it

Part of the mememage-comfy pack - install once, get all 15 nodes. Easiest via ComfyUI Manager: search "Mememage" → Install → restart. Or manually:

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

Restart and it appears under the Mememage category. No models, no keys, no downloads. The mememage core library does the bar decoding; Manager handles it from requirements.txt.

Common issues

  • Empty identifier on an image you know was Mememage-stamped. The bar survives JPEG and re-uploads, but not aggressive resizing or cropping that cuts the bottom strip away - the bar lives in the pixels at the bottom edge. Keep the bottom two rows intact.
  • "Which node do I use, Decode or Decode All?" For the ordinary one-image-one-bar case, this one. Decode All is the forensic reader for composites and costs a little more.
  • The pack is young. It has essentially no community footprint yet (our reddit corpus has zero mentions), so if something's weird, the README and the node tooltips - which are unusually thorough - are your best references.
CategoryMememage

Inputs (1)

NameTypeDefaultDescription
imageIMAGE

Outputs (3)

NameTypeDescription
identifierSTRING
content_hashSTRING
imageIMAGE