Nodes/Remove AI Watermarks/Remove All Watermarks (RAIW)
ComfyUI Node

Remove All Watermarks (RAIW)

Visible mark, invisible watermark, and metadata in a single pass

By wiltodelta·Created 3 months ago·Updated about 6 hours ago· 18
Remove All Watermarks (RAIW)
    • image
    • output_path
    • info
    source_path
    pipelineqwen-zimage
    output_path
    force_invisiblefalse
    backendauto
    sensitivityauto
    strength0.00
    seed0
    controlnet_scale1.00
    humanize0.0
    unsharp0.0
    max_resolution0
    adaptive_polishprofile default
    cpu_offloadfalse
    tilefalse
    tile_size1024
    tile_overlap128

    Remove All Watermarks (RAIW) is the kitchen-sink node of this pack: point it at one original file and it runs the entire pipeline - detect and remove visible registered AI marks, remove the invisible watermark, and strip the AI metadata with verification - all in a single pass. The pack's other nodes split those jobs apart; this one exists because when you want a file actually clean, you want it clean in one shot, consistently.

    Because it's the full pipeline, it's also the one that carries the real requirements. The visible-mark stage uses OpenCV inpainting and needs no GPU. The invisible stage does not: both qwen-zimage (the default) and sdxl-zimage are CUDA-only diffusion profiles - there's no CPU or MPS path, which is why there's no device widget. There are also no steps, guidance_scale, or model inputs; each profile pins its own model stack, a per-stage distilled schedule, and CFG 1.0. You don't tune that stuff because you can't - and honestly, the distilled recipe means the defaults are the sane settings anyway.

    The inputs that matter

    Only a handful of these are worth touching as a beginner:

    • source_path - the file, on disk, readable by the ComfyUI server. The node reads the original so it can use the file's actual vendor provenance (an IMAGE tensor carries none).
    • pipeline - qwen-zimage (default, heavier, higher-quality regeneration) or sdxl-zimage (same recipe over an SDXL base). If you're on a smaller GPU, the SDXL profile is the lighter first try.
    • backend - how visible marks get filled: auto / cv2 (the default, dependency-free, no GPU), plus migan and lama which need pip install "remove-ai-watermarks[migan]" or [lama] respectively. Stick with the default until you're unhappy with a fill.
    • sensitivity - auto or strict, detection strictness for visible marks.
    • force_invisible - off by default, which is right: invisible removal runs only when the node detects a matching watermark vendor. Force it on and it regenerates regardless.
    • strength - 0 means "use the profile default" (resolution-adaptive for qwen-zimage, unknown-vendor strength for sdxl-zimage). Above 0 overrides. Higher removes more but drifts further from the original. Start at 0.
    • tile and cpu_offload - for large inputs and low VRAM. Turn on tile (default tile size 1024) for big images and cpu_offload to stream the diffusion stacks instead of pinning them.

    The rest (seed, controlnet_scale, humanize, unsharp, max_resolution, adaptive_polish, tile_size, tile_overlap) are fine-tuning. adaptive_polish is worth one look: it's three-way - profile default lets the library decide (off for qwen-zimage since its output already matches the source's detail, on for sdxl-zimage), with on/off to override. Old workflows that saved it as a checkbox still load fine.

    What comes out

    Three outputs: the cleaned image tensor, the output_path string (blank input path = <source>_clean.<ext> beside the original, never overwriting it), and an info string that's actually a progress log - stage by stage, what got done. It's the debugging aid: wire it into a text-display node and you'll see exactly where the pipeline stopped. If invisible removal couldn't run, the info string appends warning: invisible removal unavailable so you're not silently handed a half-cleaned file. Model weights aren't bundled - the diffusion stack downloads on first use, so budget for a chunky first run.

    Install and the one real gotcha

    Same as the whole pack: search "Remove AI Watermarks" in ComfyUI Manager, or

    cd ComfyUI/custom_nodes
    git clone https://github.com/wiltodelta/ComfyUI-remove-ai-watermarks
    pip install -r ComfyUI-remove-ai-watermarks/requirements.txt
    

    The dependency installs opencv-python-headless alongside the library. If your ComfyUI already ships opencv-python, both provide cv2 and usually coexist - but if you hit a cv2 conflict, keep exactly one OpenCV distribution in the environment. On a CPU-only machine the whole invisible stage is off the table; the node will still warn you through the info string rather than hard-crashing, but you won't get invisible removal out of it. And the usual honest note: this is the tool the pack's r/comfyui launch got called out for, the "evading detection" argument. It's a legitimate one-shot cleanup node, but what you're removing is provenance, so have your reasons squared before you run it.

    Categoryremove-ai-watermarks

    Inputs (17)

    NameTypeDefaultDescription
    source_pathSTRING
    pipelineCOMBOqwen-zimage4 options: qwen-zimage, sdxl-zimage, chroma-zimage, auto
    output_pathoptSTRING
    force_invisibleoptBOOLEANfalse
    backendoptCOMBOauto4 options: auto, cv2, migan, lama
    sensitivityoptCOMBOauto2 options: auto, strict
    strengthoptFLOAT0.000–1
    seedoptINT00–18446744073709550000
    controlnet_scaleoptFLOAT1.000–2
    humanizeoptFLOAT0.00–10
    unsharpoptFLOAT0.00–3
    max_resolutionoptINT00–8192
    adaptive_polishoptCOMBOprofile default3 options: profile default, on, off
    cpu_offloadoptBOOLEANfalse
    tileoptBOOLEANfalse
    tile_sizeoptINT1024256–4096
    tile_overlapoptINT1280–1024

    Outputs (3)

    NameTypeDescription
    imageIMAGE
    output_pathSTRING
    infoSTRING