Nsfw area coverage
Cover the explicit region, keep the rest of the image
- image_requires_in
- image_requires_out
This is the surgical cousin of the check node in the same pack. Where Nsfw Image Check Node throws out the whole frame and swaps in a warning when it sees something explicit, NsfwAreaCoverNode does something gentler: it finds the offending region and covers just that patch, handing you back the rest of the image intact. The composition, the background, the pose - all preserved. Only the bit that would get you in trouble gets obscured.
That's the use case that makes it worth reaching for. If you're running a gallery, an app, or a preview surface where you still want to show the image - you just can't show all of it - a full-frame swap is overkill. This gives you a censored-but-recognizable version instead of a blank warning card. Think safe-for-work thumbnails, moderated feeds, or a "click to reveal" flow where the covered version is what loads first.
How it works
Same engine as the rest of the pack - a stripped-down slice of deepghs/imgutils, the anime-image toolkit, with the model bundled into the plugin folder so nothing downloads at runtime. Instead of scoring the whole image and making a pass/fail call, this node's job is to locate the NSFW region within the frame and cover it, then output the modified image.
Worth knowing where that detector comes from: imgutils is trained on booru-style data - the Danbooru and e621 tag world that taught the open-source anime models what anatomy looks like. So this is tuned for illustrated and anime content and will be most reliable there. On photoreal renders it's hit-or-miss, both in finding the region and in drawing the right box around it. Test it on your actual output before you lean on it.
The inputs and outputs that matter
There's almost nothing to configure, and that's the point. This node is deliberately opinionated - no thresholds, no category picker, no filter menu. Just:
image_requires_in(required, IMAGE) - the frame to process, straight off a VAE Decode or a Load Image.enabled_check(optional, boolean, default on) - the master switch. On, it detects and covers; flip it off to pass the image through untouched, which is handy for A/B-ing or bypassing the node without unwiring it.
The single output is image_requires_out (IMAGE) - the same image with the detected region covered, or the original if nothing tripped. Wire it into a Save Image, a Preview, or wherever the check node's clean output would have gone. It slots in as a drop-in image stage.
If you want per-category control or a threshold you can dial, that lives on the check node, not here. This one trades all of that away for a one-toggle interface.
Installing it
Both nodes ship in the same pack, so installing one installs the other. ComfyUI Manager: search nsfw-image-check-comfyui, install, restart. Or by hand:
cd ComfyUI/custom_nodes
git clone https://github.com/fallingmeteorite/nsfw-image-check-comfyui.git
cd nsfw-image-check-comfyui
pip install -r requirements.txt
Then restart ComfyUI. The CLI route is comfy node registry-install nsfw-image-check-comfyui. No extra model file to fetch - it's baked into the plugin folder.
Common issues
Set your expectations by the README: the author calls the plugin "stable, so it hasn't been updated" - that means done, not abandoned, but don't wait around for fixes. The blunt-instrument design cuts both ways: with no threshold, you get its judgment and nothing else, so if it over-covers or misses a region there's no dial to correct it - that's the deal you signed up for by choosing this over the check node. And because the detector is booru/anime-trained, region-finding on photoreal content is the shakiest part; if that's your content, verify it does what you need rather than trusting it blind. As always, region-covering is a moderation aid, not a guarantee - pair it with a human eye on anything that matters.
Inputs (2)
| Name | Type | Default | Description |
|---|---|---|---|
| image_requires_in | IMAGE | — | |
| enabled_checkopt | BOOLEAN | true | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| image_requires_out | IMAGE | — |