Nodes/ComfyUI-ArchAi3d-Qwen/ArchAi3D_Qwen_Watermark_Removal
ComfyUI Node

ArchAi3D_Qwen_Watermark_Removal

It doesn't remove watermarks — it writes the prompt that does

By amir84ferdos·Created 11 months ago·Updated 5 months ago· 70
ArchAi3D_Qwen_Watermark_Removal
    • prompt
    • system_prompt
    text_typewatermark
    locationanywhere
    debug_modefalse

    Set expectations early: this node never touches pixels. It's a prompt builder for Qwen Image Edit - you pick what to remove and where, it hands you a ready-made instruction, and the actual erasing happens in the Qwen edit model further down your graph. The reason that's worth a node at all is that Qwen edit models are ridiculously literal about phrasing. "Remove the watermark" works; "clean up this image" gets you a guess. This node removes the guesswork by templating the prompt from known-good research.

    How it works

    Two dropdowns, both meaningful:

    • text_type - what to remove: watermark, all_text, english_text, chinese_text, logo, brand_mark, ui_elements.
    • location - where: anywhere (let the model auto-detect), or bottom_right, top_left, center, and the rest of the corners/edges for precision.

    The node maps those into a clean prompt like "Remove the watermark from the bottom right corner of the image" and emits it as its prompt output. There's also a debug_mode toggle that just prints the generated prompt to your console so you can see what you're actually sending.

    The interesting output is system_prompt. That's a packaged system instruction the pack's encoder nodes accept directly on their system_prompt input - a full "you are an image cleanup specialist, inpaint the removed area seamlessly, preserve everything else exactly" persona. The tooltip calls it new in v4.0 and it genuinely matters: Qwen-Edit's default system prompt isn't tuned for surgical removal, and the difference between "blend it seamlessly" and "make it disappear" is usually the system prompt.

    How you wire it

    Image → (Image Scale) → encoder. Text goes to the encoder's text/conditioning input, system_prompt to the encoder's system prompt input, then sample and decode. It slots into the same Qwen-Edit-2509 pipeline the rest of the pack uses - the node's outputs are explicitly tagged "for Qwen Edit 2509."

    Inputs that matter

    • text_type - start with watermark; switch to ui_elements for screenshot cleanup and logo for brand marks.
    • location - anywhere is a surprisingly good default; Qwen auto-detects well. Use a specific corner when the model keeps "fixing" the wrong part of the frame.
    • debug_mode - turn it on once, see the exact prompt, understand what you're dealing with.

    Outputs: prompt (STRING) and system_prompt (STRING). Both feed into an encoder node.

    Install and caveats

    Part of the ArchAi3D Qwen pack, so:

    cd ComfyUI/custom_nodes
    git clone https://github.com/amir84ferdos/ComfyUI-ArchAi3d-Qwen.git
    cd ComfyUI-ArchAi3d-Qwen && pip install -r requirements.txt
    

    Or ComfyUI Manager → search "ArchAi3d Qwen" → restart.

    Two honest caveats. First, Qwen-Edit re-emits the whole frame, so pixels you didn't ask to touch can shift - it's the model's structural weakness, not this node's, and the KB's qwen-image-edit panel says it first. Second, remember it's a text generator: if you're getting nothing back, check the connection into the encoder, not this node. And the pack's license is free personal, paid commercial - presumably the same for scrubbing stock photos you don't own.

    CategoryArchAi3d/Qwen/Editing

    Inputs (3)

    NameTypeDefaultDescription
    text_typeCOMBOwatermarkWhat to remove: watermark, text, logo, UI elements, etc.
    locationCOMBOanywhereWhere to remove from. Use 'anywhere' to let model detect automatically, or specify location for precision.
    debug_modeBOOLEANfalsePrint generated prompt to console

    Outputs (2)

    NameTypeDescription
    promptSTRINGGenerated prompt for Qwen Edit 2509
    system_promptSTRING⭐ NEW v4.0: Perfect system prompt for watermark removal! Connect to encoder's system_prompt input for optimal results.