Nodes/Image MetaHub Save Node/MetaHub Save Image Advanced
ComfyUI Node

MetaHub Save Image Advanced

The full node, for when auto-detect isn't enough

By LuqP2·Created 9 months ago·Updated a day ago· 15
MetaHub Save Image Advanced
  • images
    filename_patternComfyUI_%counter%
    file_formatPNG
    quality95
    output_path
    user_tags
    notes
    project_name
    seed
    steps
    cfg
    sampler_name
    scheduler
    model_name
    positive
    negative
    denoise
    vae_name
    generation_time0.00
    filename_prefixComfyUI
    upscale_model
    vram_peak_mb
    gpu_device_override
    generation_time_override

    Here's a spoiler: this node is the real one. The simple MetaHub Save Image node you'll usually see in workflows is a thin wrapper that delegates straight to MetaHubSaveNode internally - the Advanced version just exposes every override it normally hides behind the scenes. Same auto-extraction of seed, steps, prompts, model hashes, and LoRAs, same dual metadata chunks (A1111 parameters text plus the full Image MetaHub JSON). The difference is sockets: when the auto-detector can't parse something, the Advanced node lets you tell it the answer by hand.

    The author's own guidance is that you shouldn't reach for this first. Default to the simple node; open the Advanced one when the console says a field wasn't detected, when you're benchmarking, or when you're maintaining an old workflow that already uses it.

    What the override sockets are for

    Every generation parameter is an optional input that defaults to null - leave it unconnected and the node auto-detects from the graph. Connect one and it replaces what was detected:

    • seed, steps, cfg, sampler_name, scheduler, denoise - the sampler params
    • model_name, vae_name - override the detected filenames
    • positive, negative - override the prompts

    Because they use forceInput, ComfyUI renders them as connection inputs rather than text fields, so they're invisible until you wire something in. That's deliberate - it keeps the node looking clean while letting you patch exactly the gaps in auto-detection. The classic case: a custom-node-heavy workflow that only gets partial metadata, where you connect just the missing positive or seed.

    Two fields genuinely useful beyond patching:

    • quality (1–100, default 95) - JPEG/WebP quality.
    • generation_time_override - feed it the elapsed_time output from the MetaHub Timer node for real workflow timing in the analytics chunk. Also worth knowing: vram_peak_mb and gpu_device_override exist for custom benchmarking, and filename_prefix is deprecated in favor of filename_pattern.

    Like the simple node, it's an output node - no outputs, just save and terminate.

    Installing

    Same pack, same steps. ComfyUI Manager, search ImageMetaHub Save, install, restart. Or:

    cd ComfyUI/custom_nodes
    git clone https://github.com/LuqP2/ImageMetaHub-ComfyUI-Save.git
    

    It's published on the Comfy Registry as imagemetahub-comfyui-save, so comfy node install imagemetahub-comfyui-save works too. No model downloads, and despite the README mentioning a requirements.txt, the pack ships zero Python dependencies - it runs on PIL, numpy, and torch that ComfyUI already has.

    Troubleshooting

    The same failure modes as its simpler sibling apply: "Model hash is 0000000000" means the checkpoint file isn't in a searched path (set COMFYUI_CHECKPOINT_PATH or move it into ComfyUI/models/checkpoints/), and LoRA detection only understands standard LoraLoader nodes. If you're connecting override sockets and the console still flags a field, double-check the value you're feeding matches what the extractor expects - a typo'd sampler_name gets written into your metadata and quietly lives there forever.

    The one trap specific to this node is overkill: it's easy to think you need the Advanced version because the simple one exists, but the extra sockets are for edge cases, not daily driving. Start simple, escalate when the console tells you to.

    Categoryimage/save

    Inputs (24)

    NameTypeDefaultDescription
    imagesIMAGE
    filename_patternoptSTRINGComfyUI_%counter%Filename pattern with placeholders
    file_formatoptCOMBOPNGFile format
    qualityoptINT951–100JPEG/WebP quality
    output_pathoptSTRINGCustom output directory (empty = ComfyUI default)
    user_tagsoptSTRINGOptional Image MetaHub tags (comma-separated)
    notesoptSTRINGOptional Image MetaHub notes
    project_nameoptSTRINGOptional Image MetaHub project name
    seedoptINTOverride seed
    stepsoptINTOverride steps
    cfgoptFLOATOverride CFG scale
    sampler_nameoptSTRINGOverride sampler name
    scheduleroptSTRINGOverride scheduler
    model_nameoptSTRINGOverride model filename
    positiveoptSTRINGOverride positive prompt
    negativeoptSTRINGOverride negative prompt
    denoiseoptFLOATOverride denoise strength
    vae_nameoptSTRINGOverride VAE filename
    generation_timeoptFLOAT0.00Generation time in seconds
    filename_prefixoptSTRINGComfyUIDeprecated: use filename_pattern
    upscale_modeloptSTRINGUpscale model name
    vram_peak_mboptFLOATOverride VRAM peak (MB)
    gpu_device_overrideoptSTRINGOverride GPU device name
    generation_time_overrideoptFLOATTimestamp from MetaHub Timer Node (elapsed time calculated automatically)

    Outputs (0)

    No outputs