ArchAi3D_Qwen_Watermark_Removal
It doesn't remove watermarks — it writes the prompt that does
- prompt
- system_prompt
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), orbottom_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 withwatermark; switch toui_elementsfor screenshot cleanup andlogofor brand marks.location-anywhereis 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.
Inputs (3)
| Name | Type | Default | Description |
|---|---|---|---|
| text_type | COMBO | watermark | What to remove: watermark, text, logo, UI elements, etc. |
| location | COMBO | anywhere | Where to remove from. Use 'anywhere' to let model detect automatically, or specify location for precision. |
| debug_mode | BOOLEAN | false | Print generated prompt to console |
Outputs (2)
| Name | Type | Description |
|---|---|---|
| prompt | STRING | Generated prompt for Qwen Edit 2509 |
| system_prompt | STRING | ⭐ NEW v4.0: Perfect system prompt for watermark removal! Connect to encoder's system_prompt input for optimal results. |