Nodes/ComfyUI-AI2Go-Utils/AI2Go Save Metadata (Civitai) Advanced
ComfyUI Node

AI2Go Save Metadata (Civitai) Advanced

When the auto-trace can't tell which prompt ran — wire the override

By Little-God1983·Created 2 months ago·Updated 14 days ago· 2
AI2Go Save Metadata (Civitai) Advanced
  • images
  • images
filename_prefixAI2Go
save_workflowfalse
positive
negative
steps
cfg
seed
sampler_name
scheduler

This is the same node as AI2Go Save Metadata (Civitai), with one addition that changes when you reach for it: optional override sockets. The basic version auto-traces everything from the graph. The Advanced version still does that, but lets you wire in positive, negative, steps, cfg, seed, sampler_name, and scheduler - and anything you wire wins over the trace.

That matters most for dynamic prompts. Consider the pack's AI2Go Prompt Batch: one graph, a list of prompts, and the only thing that changes between queued runs is the index. The basic node's trace handles that case by reading the batch node's current index and resolving the exact line. It works, but "exact line resolved by index at save time" is one layer of cleverness away from "just give me the string that actually ran." Wiring the Prompt Batch's positive and negative outputs straight into these sockets is the reliable path: no static-graph guessing, just the string.

The inputs that matter

Same as the basic node - images, filename_prefix (with %date:...% token support), save_workflow (off by default) - plus the overrides:

  • positive / negative - wire a Prompt Batch (or any text source) in here.
  • steps, cfg, seed, sampler_name, scheduler - optional; only wired values override the trace.

Model and LoRAs are always auto-traced on both nodes. That's a deliberate design call: a variable-length LoRA chain isn't practical to socket, and it's static graph data regardless of which prompt ran - the same model and LoRAs load for every queue item, so the trace is unambiguous there. Enabled rows are picked up from stock Load LoRA and rgthree's Power Lora Loader / Lora Loader Stack, including multiple LoRAs in one node.

When you'd pick this over the basic node

Two scenarios. First, dynamic or batched prompts where you don't want to trust index-resolved tracing - wire the prompt strings and never think about it again. Second, multi-sampler graphs. Both nodes assume one KSampler; if you're running a hires-fix pass with two samplers, the trace can't tell which one to read, and it'll warn about unresolved fields in the log. Wiring the override sockets in that case is the documented fix. If you never hit either situation, save yourself a socket and use the basic node - it's the same output, fewer wires.

Install and the shared pack caveats

cd ComfyUI/custom_nodes
git clone https://github.com/Little-God1983/ComfyUI-AI2Go-Utils

Restart ComfyUI. Pillow is the only runtime dependency. As with everything in this pack: it's published for reference, issues are disabled, and it's GPL-3.0 if you want to fork and adapt it.

One note if you're chasing the "why doesn't Civitai show my prompt" problem specifically: check what's actually in the file before swapping nodes. Use the 🔎 Test detection button on either version to preview the trace output, and confirm your generation path ends at a single KSampler with a recognizable checkpoint/LoRA loader. If your workflow routes through something the tracer doesn't recognize, you'll get a named warning in the log - that's the author's way of telling you to reach for the overrides rather than guessing.

CategoryAI2Go/image

Inputs (10)

NameTypeDefaultDescription
imagesIMAGEImages to save.
filename_prefixSTRINGAI2GoFilename prefix (supports %date:...% tokens like Save Image).
save_workflowBOOLEANfalseAlso embed the ComfyUI workflow/prompt chunks (off = only the Civitai `parameters` chunk).
positiveoptSTRINGOverride positive prompt (wire the Prompt Batch 'positive' output).
negativeoptSTRINGOverride negative prompt (wire the Prompt Batch 'negative' output).
stepsoptINTOverride steps.
cfgoptFLOATOverride CFG scale.
seedoptINTOverride seed.
sampler_nameoptSTRINGOverride sampler name.
scheduleroptSTRINGOverride scheduler.

Outputs (1)

NameTypeDescription
imagesIMAGE