Nodes/ComfyUI FSL Nodes/FSL Image Saver w/ Metadata V5
ComfyUI Node

FSL Image Saver w/ Metadata V5

FSL Image Saver w/ Metadata V5 — the legacy saver that still gets referenced

By fredlef·Created about a year ago·Updated 10 months ago· 14
FSL Image Saver w/ Metadata V5
  • images
  • external_metadata
  • metadata_raw
  • image
◄filenamegemini_out►
◄save_to_subfolder►
◄append_datetimefalse►
◄model_string►
◄modelname►
◄seed_string►
◄width_string►
◄height_string►
◄temperature_string►
◄positive_string►
◄negative_string►
◄cfg_string►
◄steps_string►
◄sampler_string►
◄scheduler_string►
◄guidance_scale_string►
◄watermark_string►

FSLImageSaverWithMetadataV5 is the older metadata-saver in the FSL pack, and the README is unambiguous about its status: [Legacy], "De-versioned in the newest update." If a workflow you loaded references it, this is what you're seeing. If you're building fresh, the maintained FSLImageSaverWithMetadata is the one to use - the README calls the current version "the metadata saver" and treats V5 as superseded.

What it does

Mechanically it's the same idea as its successor: save an IMAGE batch as PNGs with generation parameters embedded in the file's metadata. It writes the same two kinds of chunks - an A1111-style parameters text block assembled from whatever string inputs you filled in, plus an fsl_metadata JSON chunk if you pass the external_metadata DICT. Filenames and subfolders are sanitized against path traversal, append_datetime timestamps the prefix, and ComfyUI's save-path helper handles the counter naming.

What differs from the current version

The visible differences are small but worth knowing if you're comparing:

  • Output type. V5 returns METADATA_RAW as its first output instead of the newer node's METADATA DICT. That's a wire-type mismatch - a workflow expecting one won't accept the other without a convert.
  • Extra optional strings. V5 has guidance_scale_string and watermark_string fields the current node dropped. If you were relying on those, they live here only.
  • external_metadata defaults to {} rather than being required - behavior is otherwise the same.
  • It's registered as an output node (is_output_node), where the current saver isn't, so V5 always runs at the end of the graph.

For the save-and-metadata core - filename prefix, subfolder, datetime suffix, model/seed/width/height/temperature/cfg/steps/sampler/scheduler/positive/negative strings - the two nodes are interchangeable.

When to use it

Basically two scenarios: you loaded an old FSL workflow and it works, or you specifically need the guidance_scale_string/watermark_string fields. In both cases it'll keep working - the legacy tag means "no longer the recommended path," not "broken." Otherwise default to the maintained node; the pack's direction is clear, and Google-model metadata conventions have moved on.

Install

Same pack, same routine:

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

or ComfyUI Manager → "ComfyUI FSL Nodes", then restart. No models, no API key - pure local saving. If you're converting an old workflow, the honest advice is to leave V5 alone while it's wired, then migrate when you next touch the graph; converting the METADATA_RAW socket is the one step that needs a moment's attention.

CategoryFSL Nodes

Inputs (19)

NameTypeDefaultDescription
imagesIMAGE—
filenameSTRINGgemini_out—
save_to_subfolderSTRING—
append_datetimeoptBOOLEANfalse—
model_stringoptSTRING—
modelnameoptSTRING—
seed_stringoptSTRING—
width_stringoptSTRING—
height_stringoptSTRING—
temperature_stringoptSTRING—
positive_stringoptSTRING—
negative_stringoptSTRING—
cfg_stringoptSTRING—
steps_stringoptSTRING—
sampler_stringoptSTRING—
scheduler_stringoptSTRING—
guidance_scale_stringoptSTRING—
watermark_stringoptSTRING—
external_metadataoptDICT[object Object]—

Outputs (2)

NameTypeDescription
metadata_rawMETADATA_RAW—
imageIMAGE—