Nodes/Jovimetrix/EXPORT (JOV) πŸ“½
ComfyUI Node

EXPORT (JOV) πŸ“½

Save GIFs, GIFSKI and stills without leaving your graph

By AmoranoΒ·Created 3 years agoΒ·Updated 12 months agoΒ· 397
EXPORT (JOV) πŸ“½
  • πŸ‘Ύ
    β—„πŸ“€/tmp/ComfyUI/outputβ–Ί
    β—„FORMATgifβ–Ί
    β—„PREFIXjoviβ–Ί
    β—„OVERWRITEfalseβ–Ί
    β—„OPTfalseβ–Ί
    β—„QUALITY90β–Ί
    β—„MOTION100β–Ί
    β—„πŸŽοΈ24β–Ί
    β—„πŸ”„0β–Ί

    EXPORT (JOV) πŸ“½ is the node you reach for when the default "Save Image" isn't enough and you want your frames out as an animation. It's the save-to-disk workhorse of Jovimetrix - feed it a stack of images and it writes them as a GIF, a GIFSKI-encoded GIF, or a plain PNG/JPG sequence. For anything that produces frames over time - an animated workflow, a morphing latent loop, a batch of variations - this is the clean exit ramp.

    The name is a small lie: it doesn't call any API and it needs no key. It's just a smarter Save Image. ComfyUI's built-in saver writes one file; this one treats your batch as a timeline. That's the entire reason it exists.

    How it works

    Every node in Jovimetrix treats a batch of images like a list, and EXPORT leans into that. Give it N frames and it either stamps them all as stills (png, jpg) or stitches the whole batch into one looping animation. The GIF path uses Pillow under the hood; pick gifski in FORMAT and it shells out to the gifski encoder, which gives you dramatically better-looking GIFs at the same size - noticeably smoother gradients and no banding. That's the option I'd actually reach for if the output's going anywhere public.

    The inputs that matter

    Most of the wiring is self-explanatory, but three fields do the real work:

    • πŸ‘Ύ (Pixel Data) - your image or mask batch. Jovimetrix inputs accept RGBA, RGB, or a raw MASK, so you can export masks directly if you want.
    • FORMAT - gif, png, or jpg. gif and gifski are animation modes; the others write one file per frame.
    • πŸ“€ (output directory) - defaults to your ComfyUI output folder. Set it to a real path and it creates it for you.

    Then the polish knobs: PREFIX (the filename base, defaults to jovi), OVERWRITE (when off, it auto-appends a counter so it never clobbers an existing file - handy when you re-run a queue a lot), QUALITY and MOTION (gifski quality and motion quality, both 1–100), 🏎️ (FPS, default 24), πŸ”„ (loop count, 0 = loop forever), and OPT (optimization on the plain GIF path).

    Note the node is a true output node - no output ports. It just saves and tells you where. If you want the frames back and saved, branch the same image stream into both this node and something like a VAE Decode + preview.

    Installing it

    EXPORT ships inside Jovimetrix, so it's the pack install:

    # ComfyUI Manager: search "Jovimetrix" and install from the manager database
    # or manually:
    cd ComfyUI/custom_nodes
    git clone https://github.com/Amorano/Jovimetrix.git
    cd Jovimetrix
    pip install -r requirements.txt
    

    Then restart ComfyUI. The requirements pull in opencv-contrib-python, matplotlib, Pillow, numpy, and two git-installed dependencies (cozy_comfyui / cozy_comfy) - the first install takes a minute, and if your pip grumbles about the git URLs, make sure you're on a network that can reach GitHub.

    Troubleshooting

    • Nothing lands in my folder - check the πŸ“€ path. It defaults to ComfyUI's output dir; if you've moved your install, that default may point somewhere surprising. And on Windows, the brief's /tmp/... style default is just the placeholder for "your output dir."
    • GIF comes out huge or banded - switch FORMAT to gifski if the binary is available. If gifski mode silently produces nothing, that's usually the gifski executable missing from PATH.
    • Jovimetrix shows a stale version of this node - see the pack README's warning about 1.7.48 vs 2.x; this node's fine on either, but update the whole pack deliberately.

    One last tip: because EXPORT is a NOT_IDEMPOTENT node, ComfyUI re-runs it whenever anything upstream changes - which is exactly what you want for animation frames, and mildly annoying if you only wanted a quick preview. Use a regular preview node for drafts, EXPORT for the final cut.

    CategoryJOVIMETRIX πŸ”ΊπŸŸ©πŸ”΅/UTILITY

    Inputs (10)

    NameTypeDefaultDescription
    πŸ‘ΎoptIMAGE,MASKPixel Data (RGBA, RGB or Grayscale)
    πŸ“€optSTRING/tmp/ComfyUI/outputPass through another route node to pre-populate the outputs.
    FORMAToptCOMBOgifPass through another route node to pre-populate the outputs.
    PREFIXoptSTRINGjoviPass through another route node to pre-populate the outputs.
    OVERWRITEoptBOOLEANfalsePass through another route node to pre-populate the outputs.
    OPToptBOOLEANfalsePass through another route node to pre-populate the outputs.
    QUALITYoptINT901–100Pass through another route node to pre-populate the outputs.
    MOTIONoptINT1001–100Pass through another route node to pre-populate the outputs.
    🏎️optINT241–60Pass through another route node to pre-populate the outputs.
    πŸ”„optINT0Pass through another route node to pre-populate the outputs.

    Outputs (0)

    No outputs