Nodes/ComfyUI-Nudenet/Filtered Labels
ComfyUI Node

Filtered Labels

Filtered Labels — ComfyUI Node Guide

By phuvinh010701·Created 2 years ago·Updated 11 months ago· 63
Filtered Labels
    • FILTERED_LABELS
    FEMALE_GENITALIA_COVEREDtrue
    FACE_FEMALEtrue
    BUTTOCKS_EXPOSEDtrue
    FEMALE_BREAST_EXPOSEDtrue
    FEMALE_GENITALIA_EXPOSEDtrue
    MALE_BREAST_EXPOSEDtrue
    ANUS_EXPOSEDtrue
    FEET_EXPOSEDtrue
    BELLY_COVEREDtrue
    FEET_COVEREDtrue
    ARMPITS_COVEREDtrue
    ARMPITS_EXPOSEDtrue
    FACE_MALEtrue
    BELLY_EXPOSEDtrue
    MALE_GENITALIA_EXPOSEDtrue
    ANUS_COVEREDtrue
    FEMALE_BREAST_COVEREDtrue
    BUTTOCKS_COVEREDtrue

    What it is

    This node is a checklist, nothing more - but it's the checklist that decides what "NSFW" actually means for your specific graph. NudeNet's underlying detector doesn't output one generic "is this nude" flag; it draws a bounding box around every body region it finds and labels each one specifically - female breast exposed vs. female breast covered, buttocks exposed vs. covered, and so on, plus faces and feet and armpits, which the model tracks mainly to tell "this is a person" apart from "this is skin that matters." FilterdLabel is where you turn that whole label vocabulary into a single list of which ones you actually want counted when ApplyNudenet decides what to censor.

    You'll see it displayed as "Filtered Labels" in the node picker - the underlying class name has a typo (FilterdLabel, missing the second "e"), which is a small tell that this is a solo-developer pack rather than something with a review process behind it. Doesn't affect function, just search for "Filtered" if you go looking by name.

    The inputs - all of them

    There's no small subset to explain here; every input is the same kind of field repeated 18 times, one boolean toggle per label class:

    FEMALE_GENITALIA_COVERED, FEMALE_GENITALIA_EXPOSED, FEMALE_BREAST_COVERED, FEMALE_BREAST_EXPOSED, MALE_BREAST_EXPOSED, MALE_GENITALIA_EXPOSED, BUTTOCKS_COVERED, BUTTOCKS_EXPOSED, ANUS_COVERED, ANUS_EXPOSED, BELLY_COVERED, BELLY_EXPOSED, ARMPITS_COVERED, ARMPITS_EXPOSED, FEET_COVERED, FEET_EXPOSED, FACE_MALE, FACE_FEMALE.

    Every one of them defaults to true. The output is a single FILTERED_LABELS value that plugs directly into ApplyNudenet's filtered_labels input - that's the entire round trip.

    What you'd actually change

    Left at the defaults, everything the detector can name gets passed through as "eligible for censoring," faces included - which is probably not what you want, since flagging every detected face for a pixelation pass is a good way to ruin an otherwise fine image over nothing. The obvious first move for most people: flip both FACE_MALE and FACE_FEMALE off, since those exist in the label set for the detector's own bookkeeping (locating a person) rather than as something you'd normally want blurred.

    The _COVERED labels are the second thing worth thinking about. A FEMALE_BREAST_COVERED detection means the model found a breast region and judged it not exposed - leaving that toggled on doesn't hurt much since ApplyNudenet's confidence threshold does most of the real filtering, but if you only care about actually-exposed content, turning off every _COVERED label and keeping every _EXPOSED one on is the cleanest way to say exactly that.

    Beyond those two patterns, which labels you enable is entirely a function of what your workflow is for - a full-body censoring pass wants most of them on, while something narrower (say, only catching exposed genitalia and leaving everything else alone) wants almost everything off except two or three specific labels.

    Installing it

    Same pack, same steps as every other node here: search "ComfyUI-Nudenet" in ComfyUI Manager, or

    cd ComfyUI/custom_nodes/
    git clone https://github.com/phuvinh010701/ComfyUI-Nudenet
    

    then pip install -r requirements.txt and restart. This node itself needs no model file - only NudenetModelLoader does - so if this is the only node from the pack that's misbehaving, the model download isn't your problem.

    Common issues

    There isn't much that goes wrong with this node specifically - it's 18 checkboxes and an output, no thresholds, no file paths. The mistakes people actually make are upstream of it: forgetting to wire FILTERED_LABELS into ApplyNudenet at all (the connection is required, not optional, per the pack), or toggling everything off and then being confused when nothing gets censored downstream even though NudeNet is clearly detecting things. If ApplyNudenet isn't censoring anything you expect it to, check this node's toggles before you start second-guessing the model or the confidence threshold - an empty filter list is a silent, easy-to-miss cause.

    CategoryNudenet

    Inputs (18)

    NameTypeDefaultDescription
    FEMALE_GENITALIA_COVEREDBOOLEANtrue
    FACE_FEMALEBOOLEANtrue
    BUTTOCKS_EXPOSEDBOOLEANtrue
    FEMALE_BREAST_EXPOSEDBOOLEANtrue
    FEMALE_GENITALIA_EXPOSEDBOOLEANtrue
    MALE_BREAST_EXPOSEDBOOLEANtrue
    ANUS_EXPOSEDBOOLEANtrue
    FEET_EXPOSEDBOOLEANtrue
    BELLY_COVEREDBOOLEANtrue
    FEET_COVEREDBOOLEANtrue
    ARMPITS_COVEREDBOOLEANtrue
    ARMPITS_EXPOSEDBOOLEANtrue
    FACE_MALEBOOLEANtrue
    BELLY_EXPOSEDBOOLEANtrue
    MALE_GENITALIA_EXPOSEDBOOLEANtrue
    ANUS_COVEREDBOOLEANtrue
    FEMALE_BREAST_COVEREDBOOLEANtrue
    BUTTOCKS_COVEREDBOOLEANtrue

    Outputs (1)

    NameTypeDescription
    FILTERED_LABELSFILTERED_LABELS