Nodes/ComfyUI-LMCQ/Lmcq Image Saver Web
ComfyUI Node

Lmcq Image Saver Web

Lmcq Image Saver Web — image saving that pings your own API when done

By sebord·Created 2 years ago·Updated 7 months ago· 108
Lmcq Image Saver Web
  • images
  • watermark_image
    filename_prefixLMCQ
    format
    quality95
    apply_watermarkfalse
    watermark_type
    watermark_text
    watermark_size15
    watermark_position
    watermark_opacity0.5
    enhance_brightness1.0
    enhance_contrast1.0
    save_metadatatrue
    enable_api_callfalse
    api_url

    Most people building something on top of ComfyUI's API end up polling a WebSocket for run status, or holding a connection open waiting for a completion event. LmcqImageSaverWeb sidesteps that: it's the same watermark-and-save node as LmcqImageSaver, plus two extra fields that let it actively call out to your own server with the prompt_id and the saved file once the image is done. Per the pack's own README, that's the explicit design goal - avoid needing to hold open a large number of long-lived WebSocket connections just to know when a job finished.

    Who this is actually for. If you're running ComfyUI as a backend for something else - a Discord bot, a small SaaS, an internal tool - and you'd rather receive a push notification than babysit a socket, this node does that plumbing for you without writing a custom output node. If you're just generating images in the ComfyUI UI for yourself, this is overkill; use LmcqImageSaver and skip the API fields entirely.

    The fields. Everything from the base image saver carries over unchanged: images in, filename_prefix (default LMCQ), format (png/jpg/webp) and quality (1-100, jpg only), the full watermark set (apply_watermark, watermark_type, watermark_text, watermark_size, watermark_position, watermark_opacity, plus the optional watermark_image input for a logo), enhance_brightness and enhance_contrast for a light tone pass, and save_metadata for whether the workflow gets embedded in the file.

    On top of that, two fields make this variant different: enable_api_call (off by default) is the switch, and api_url is the endpoint it POSTs to once the file is saved. Turn the switch on, point it at an endpoint you control, and every run through this node fires a request carrying the prompt_id and file info to that address. This node has no image output - like the plain saver, it's terminal.

    Installing it. Through ComfyUI Manager (search "ComfyUI-LMCQ") or manually:

    cd ComfyUI/custom_nodes
    git clone https://github.com/sebord/ComfyUI-LMCQ
    

    Restart ComfyUI afterward.

    What to actually watch out for. The obvious one: api_url has no default, and enable_api_call is off by default, so if you toggle the call on and forget to fill in the URL, you'll either get a silent no-op or an error depending on how your install handles an empty target - either way, check both fields are set together, not just one. Second: this is an outbound HTTP call fired from inside your ComfyUI process at the end of every generation, so if your endpoint is slow, unreachable, or behind auth you haven't configured, that's now coupled to your image-saving step - a flaky webhook receiver can turn "saving an image" into "saving an image, but sometimes it hangs." If you're running this in production, put a short timeout and retry logic on your receiving endpoint rather than assuming this node will handle failures gracefully; the README doesn't document any retry behavior on its side, so treat delivery as best-effort.

    Third, and pack-wide: ComfyUI-LMCQ's encryption nodes rely on a compiled runtime-protection module that's occasionally absent on fresh installs, throwing a ModuleNotFoundError that crashes the entire pack's import at startup - meaning none of the Lmcq nodes, including this one, will show up at all. This has been reported as a live, recurring issue on r/comfyui, and it has nothing to do with this node's own logic. The README's January 2026 update log covers the fix: copy the Python-version-matching runtime files into the pack's runtime folder, remove the mismatched ones, restart.

    CategoryLmcq/Image

    Inputs (16)

    NameTypeDefaultDescription
    imagesIMAGE
    filename_prefixSTRINGLMCQ
    formatCOMBO3 options: png, jpg, webp
    qualityINT951–100
    apply_watermarkBOOLEANfalse
    watermark_typeCOMBO2 options: text, image
    watermark_textSTRING
    watermark_sizeINT150–70
    watermark_positionCOMBO9 options: Bottom Right, Bottom Left, Top Right, Top Left, Center, Left, +3
    watermark_opacityFLOAT0.50–1
    enhance_brightnessFLOAT1.00.1–2
    enhance_contrastFLOAT1.00.1–2
    save_metadataBOOLEANtrue
    enable_api_callBOOLEANfalse
    api_urlSTRING
    watermark_imageoptIMAGE

    Outputs (0)

    No outputs