Nodes/FUSE Face Enhancer/FUSE YOLO Optionals
ComfyUI Node

FUSE YOLO Optionals

Where you tell the face detector who's worth fixing

By WASasquatch·Created about a year ago·Updated 10 months ago· 13
FUSE YOLO Optionals
    • yolo_optionals
    confidence0.25
    iou_threshold0.50
    max_detections300
    class_filter
    agnostic_nmsfalse
    half_precisionfalse
    augmentfalse
    tracking_iou_threshold0.30
    tracking_smooth_boxestrue
    tracking_smooth_window3

    Every FUSE sampler leans on a YOLO model to find the thing it's about to fix - a face, or whatever object you point the generic node at. FUSE YOLO Optionals is the settings brick for that detection step. It's a pure config node: you set the knobs, it outputs a yolo_optionals DICT, and you feed that into the yolo_optionals input on FUSE KSampler, the video sampler, or the generic one.

    You'll mostly want this for two situations: the detector is finding too much or too little, or you're using the generic node and need to pick which class of object counts as a target. Defaults are fine otherwise.

    Detection settings

    • confidence (0.0–1.0, default 0.25) - the threshold for a detection to count. This is the first knob to turn when the sampler is "fixing" things it shouldn't. Background clutter getting picked up as faces? Nudge to 0.3–0.4. Genuine faces being skipped? Drop it.
    • iou_threshold (default 0.5) - NMS overlap threshold. Lower values delete more overlapping detections. If you get multiple boxes stacked on the same face, lower it; if faces are being merged into one box, raise it.
    • max_detections (default 300) - cap on boxes kept after NMS. You will not hit this on a portrait; it exists so a pathological scene doesn't run the sampler 300 times.
    • class_filter - comma or newline separated class names. Leave empty for all classes. This is the one that matters on the generic sampler: point it at hand (or whatever your YOLO model's classes are) and the node only crops those.
    • agnostic_nms - class-agnostic NMS, which merges boxes across classes. Useful on the generic node when different classes overlap and you want one region, not two.
    • half_precision - FP16 inference. Faster on compatible GPUs, a hair less accurate. Off by default, which is right; the detection is already the cheap part.
    • augment - test-time augmentation for better accuracy at a real speed cost. Leave off unless your detections are flaky and you're not in a hurry.

    Tracking settings (video only)

    These do nothing on the still-image samplers; they only kick in on FUSE KSampler (Video), where faces have to stay the same face across frames.

    • tracking_iou_threshold (default 0.3) - how much a box has to overlap with last frame's box to count as the same person. Too low and identities get merged; too high and a face that moves fast starts flickering between IDs.
    • tracking_smooth_boxes (default on) - temporal smoothing of bounding boxes so crops don't jitter frame to frame. Leave it on; that jitter is exactly the thing that makes per-frame face fixes look like video noise.
    • tracking_smooth_window (default 3, odd, 1–11) - how many frames the smoothing window spans. Bigger = steadier but laggier crops on fast motion.

    Output

    One yolo_optionals DICT, into the yolo_optionals input on any FUSE sampler. Skip the node entirely and the samplers use their built-in 0.25/0.5 defaults - which is honestly fine until something misbehaves.

    It ships inside the FUSE Face Enhancer pack (WASasquatch), so it arrives with FUSE KSampler; install the pack via ComfyUI Manager or clone + pip install -r requirements.txt, and remember the pack needs YOLO models sitting in ComfyUI/models/yolo-face/ (and models/yolo/ for the generic node) or every dropdown in this family stays empty.

    CategoryFace Enhancement

    Inputs (10)

    NameTypeDefaultDescription
    confidenceoptFLOAT0.250–1YOLO confidence threshold (0-1). Higher values detect only more confident objects.
    iou_thresholdoptFLOAT0.500–1YOLO NMS IoU threshold (0-1). Lower values remove more overlapping detections.
    max_detectionsoptINT3001–1000Maximum number of detections to keep after NMS.
    class_filteroptSTRINGOptional: Comma or newline separated class names to filter detections. Leave empty to use all classes.
    agnostic_nmsoptBOOLEANfalseClass-agnostic NMS (merge boxes from different classes).
    half_precisionoptBOOLEANfalseUse half precision (FP16) for faster inference on compatible GPUs.
    augmentoptBOOLEANfalseTest Time Augmentation (TTA) for improved accuracy at cost of speed.
    tracking_iou_thresholdoptFLOAT0.300–1IoU threshold for face tracking across frames (video only).
    tracking_smooth_boxesoptBOOLEANtrueApply temporal smoothing to face bounding boxes (video only).
    tracking_smooth_windowoptINT31–11Temporal smoothing window size, must be odd (video only).

    Outputs (1)

    NameTypeDescription
    yolo_optionalsDICT