Nodes/ComfyUI-SwissArmyKnife/๐Ÿท๏ธ CivitAI Metadata Helper
ComfyUI Node

๐Ÿท๏ธ CivitAI Metadata Helper

Get your generation metadata into CivitAI's format before you hit upload

By sammykumarยทCreated 12 months agoยทUpdated 8 months agoยท 6
๐Ÿท๏ธ CivitAI Metadata Helper
    • formatted_metadata
    • json_metadata
    • summary
    โ—„steps20โ–บ
    โ—„cfg7.0โ–บ
    โ—„seed0โ–บ
    โ—„high_samplereulerโ–บ
    โ—„low_samplereulerโ–บ
    โ—„lora_highโ–บ
    โ—„lora_lowโ–บ
    โ—„positive_promptโ–บ
    โ—„negative_promptโ–บ

    CivitAI's whole appeal as a gallery was always the metadata - sample images ship with their prompts, sampler, CFG, and LoRA weights, and that's how generations become reproducible. Then the platform made it a requirement: content you upload has to carry generation metadata, prompt included. CivitAI Metadata Helper is the Swiss Army Knife answer - a formatting node that collects the values CivitAI expects and emits them as clean text and JSON you can paste (or wire) into an upload.

    You type the values in, basically. The required inputs are the usual suspects: steps (default 20), cfg (default 7), seed, high_sampler and low_sampler (both default euler), lora_high and lora_low (the LoRA names per stage), plus the positive_prompt and negative_prompt text. If those names look Wan-flavored, it's because they are - the pack is built around Wan 2.2's two-pass setup, where the high-noise and low-noise models each have their own sampler and CFG. You fill in both halves and the node does the rest.

    There's no API call anywhere in here. It's a pure formatter: it takes what you typed and emits three STRING outputs - formatted_metadata (a readable block for pasting into a model card or post), json_metadata (the same data as JSON, which is what tooling tends to want), and summary (a compact one-liner recap). If you're wiring it into an automated pipeline, json_metadata is the one you feed forward.

    The honest caveat: it does not read your generation. Unlike nodes that pull real sampler settings from the KSampler, this one trusts whatever you type. Type steps: 20 when you actually ran 30 and your metadata is a lie that someone will reproduce badly. The pack leans on you being careful here - it's an organizer, not a verifier.

    Installing

    It rides along with the whole pack:

    • ComfyUI Manager: search "Swiss Army Knife", install, restart.
    • Manual:
    cd ComfyUI/custom_nodes
    git clone https://github.com/sammykumar/ComfyUI-SwissArmyKnife.git
    cd ComfyUI-SwissArmyKnife
    pip install -e .
    

    Practical notes

    • The high_/low_ split maps to Wan 2.2's high-noise/low-noise stages. If you're on a single-stage model, just repeat the same values in both slots.
    • LoRA identifiers in the lora_high/lora_low fields should match what CivitAI expects (the LoRA's name or ID) if you want the version-linking to work on upload. A name CivitAI can't resolve just won't link.
    • Because there's no key, no network, and no model, this node works offline and never fails on rate limits - the failure mode is purely human.

    It's a small utility, but it's the kind of small utility that saves you from the ritual of retyping prompts and CFG into a text box every time you post. If you share your Wan 2.2 outputs on CivitAI, slot it in before you export and stop typing metadata by hand.

    CategorySwiss Army Knife ๐Ÿ”ช/Utils

    Inputs (9)

    NameTypeDefaultDescription
    stepsINT201โ€“200Number of sampling steps
    cfgFLOAT7.00โ€“30CFG Scale (Classifier Free Guidance)
    seedINT00โ€“18446744073709550000Random seed for generation
    high_samplerSTRINGeulerHigh resolution sampler name
    low_samplerSTRINGeulerLow resolution sampler name
    lora_highSTRINGHigh resolution LoRA model name
    lora_lowSTRINGLow resolution LoRA model name
    positive_promptSTRINGPositive prompt text
    negative_promptSTRINGNegative prompt text

    Outputs (3)

    NameTypeDescription
    formatted_metadataSTRINGโ€”
    json_metadataSTRINGโ€”
    summarySTRINGโ€”