Nodes/AAA Metadata System/Eric's Metadata Entry V2
ComfyUI Node

Eric's Metadata Entry V2

Fill in the 'who made this and what is it' fields

By EricRollei·Created 10 months ago·Updated 8 months ago· 13
Eric's Metadata Entry V2
  • image
  • image
  • status
  • success
input_filepath
title
description
keywords
rating
author
copyright
copyright_url
category
prompt
negative_prompt
model
seed0
steps0
cfg_scale0.00
sampler
scheduler
write_to_xmptrue
embed_metadatatrue
write_text_filefalse
write_to_databasefalse
debug_loggingtrue

Most of the time you save an image and never think about metadata again. But if you're delivering work to a client, publishing stock, or just want your archive to not be a black hole, you need to record the boring-but-important stuff: title, description, keywords, author, copyright. Eric's Metadata Entry V2 is the form for that. It takes an image, lets you fill in the standard cataloguing fields plus generation parameters, and writes them into the file in the places other tools actually read.

It's part of the AAA Metadata System pack's metadata family, and it's the manual entry point - the counterpart to the automatic extraction nodes. The pack's save nodes capture generation data automatically, but they can't know your title or your copyright. This node is where you add the human layer.

How it works

You give it an image and a filepath, type in whatever fields you care about, and it hands everything to the pack's MetadataService, which writes it out in the formats you toggle: embedded metadata in the file itself, an XMP sidecar (the format Adobe's cataloguing software reads), a human-readable text file, or the pack's SQLite database. The write_to_xmp and embed_metadata toggles default to on, which is usually what you want - embedded metadata travels with the file, XMP sidecars are what Bridge/Lightroom-style tools index.

The generation fields (prompt, negative, model, seed, steps, cfg, sampler, scheduler) mirror what the pack's own metadata structure expects, so images you tag here stay consistent with images the save nodes produced. You don't have to fill them all in - leave the ones you don't know empty.

Inputs and outputs that matter

  • image (required, IMAGE) - the image to tag. Pair it with a load node.
  • input_filepath (required, STRING) - the absolute path to write to. This matters more than it looks: without a real path, the node can't persist anything to disk.
  • title, description, keywords, author, copyright, copyright_url, category - the cataloguing fields. keywords as a comma-separated string.
  • rating - 1–5 stars, if you're the rating type.
  • prompt, negative_prompt, model, seed, steps, cfg_scale, sampler, scheduler - the optional generation record.
  • write_to_xmp / embed_metadata / write_text_file / write_to_database - where the metadata goes.

Outputs: image (pass-through), status (what happened), and success (a boolean, handy for conditional logic).

Installing it

Ships in AAA Metadata System by Eric Hiss (GitHub: EricRollei). Via ComfyUI Manager (search "AAA Metadata System") or:

cd ComfyUI/custom_nodes
git clone https://github.com/EricRollei/AAA_Metadata_System.git
cd AAA_Metadata_System
pip install -r requirements.txt

Restart ComfyUI. No extra downloads.

Common issues

The classic mistake is skipping input_filepath - you get a success: false and an empty status because there's nowhere to write. Double-check the path is absolute and the directory exists. If write_to_xmp or embed_metadata is on and the write still fails, it's often the underlying PyExiv2/ExifTool tooling being absent; the pack lists those as optional, but they do the actual heavy lifting for embedded/XMP writes on some formats, so installing them is worth it if you hit errors. And note this node writes what you give it - it doesn't read existing metadata and merge, so if you re-run with a field cleared, you're overwriting rather than appending. One licensing note: the pack is CC BY-NC 4.0 for non-commercial use with a separate commercial license, which matters if the images you're tagging are going into paid work.

CategoryEric's Nodes/Metadata

Inputs (23)

NameTypeDefaultDescription
imageIMAGE
input_filepathSTRING
titleoptSTRING
descriptionoptSTRING
keywordsoptSTRING
ratingoptCOMBO6 options: , 1, 2, 3, 4, 5
authoroptSTRING
copyrightoptSTRING
copyright_urloptSTRING
categoryoptSTRING
promptoptSTRING
negative_promptoptSTRING
modeloptSTRING
seedoptINT0
stepsoptINT0
cfg_scaleoptFLOAT0.00
sampleroptSTRING
scheduleroptSTRING
write_to_xmpoptBOOLEANtrue
embed_metadataoptBOOLEANtrue
write_text_fileoptBOOLEANfalse
write_to_databaseoptBOOLEANfalse
debug_loggingoptBOOLEANtrue

Outputs (3)

NameTypeDescription
imageIMAGE
statusSTRING
successBOOLEAN