Nodes/ComfyUI-Pixel-Forge/Logo Detector (OWL-ViT)
ComfyUI Node

Logo Detector (OWL-ViT)

Ask a Zero-Shot Detector to Find the Logos — No Training, No Custom Models

By ThunderBolt4931·Created 12 months ago·Updated 9 months ago· 6
Logo Detector (OWL-ViT)
  • image
  • MASK
  • IMAGE
prompta logo, a brand crest, an emblem
threshold0.10
padding0

"Logo Detector (OWL-ViT)" is the one node in Pixel-Forge that loads a real neural network: Google's OWLv2, a zero-shot object detector. Instead of recognizing a fixed set of categories, you tell it in plain words what to look for, and it finds regions that match - no fine-tuning, no custom model files, just the model and a prompt.

Why you'd reach for it

The obvious use case is automated logo handling: mask out watermarks and brand marks so you can inpaint them away, or detect where a logo sits so you can crop, composite, or catalog it. But because it's zero-shot, the node isn't really about logos - that's just the default. Swap the prompt and it'll hunt for whatever text concept you give it. This is the same OWLv2 family people pair with GroundingDINO and YOLO-World when they need free-form grounding (typically to feed boxes into something like SAM2 for a proper segmentation mask).

The inputs

  • image (IMAGE) - what to scan
  • prompt (STRING, default "a logo, a brand crest, an emblem") - what to look for. Commas are queries: the node splits on commas and runs each phrase as a separate text query, so "a logo, a watermark, a text banner" covers three concepts at once.
  • threshold (FLOAT, default 0.1) - detection confidence cutoff. The 0.1 default is low, and that's deliberate - logos are a mushy visual category, so the author tuned it permissive. Raise it if you're drowning in false positives; lower it if it's missing marks.
  • padding (INT, default 0, step 8) - extends each detected box outward so the mask has breathing room before you crop.

What comes out

Two outputs: a MASK and an IMAGE. The mask is the real product - white rectangles on black, one per detection, already padded. Now the honest bit: the IMAGE output is just the input image, passed through unchanged. No boxes drawn on it, no preview overlay. If you want to see what the detector found, you composite the mask over the image yourself, or feed the mask into a preview node. The source is unambiguous about this - don't go looking for an annotated overlay that isn't there.

The load-time gotcha

This node downloads google/owlv2-base-patch16-ensemble from Hugging Face the first time the graph instantiates it - that's the model load, in the node's __init__, not on first run. Expect a sizeable download and a slow cold start the first time; after that it's cached. It also needs the pack's transformers dependency, which installs with Pixel-Forge.

Install

ComfyUI Manager → search "ComfyUI-Pixel-Forge" → install → restart. Manual:

cd ComfyUI/custom_nodes
git clone https://github.com/ThunderBolt4931/comfyui_pixel_forge

restart, find it under Pixel_Forge/Detection.

Two caveats. First, a mask of rectangles is a coarse result - for fine logo silhouettes you'll want to feed the boxes into a segmentation step, not trust the block. Second, the pack itself is brand new (December 2025, essentially zero community footprint, scaffolding README), and this is the heaviest node in it, so the first people to run it are effectively beta testers. Verify your detection settings on a couple of real images before building the cleanup pipeline around it.

CategoryPixel_Forge/Detection

Inputs (4)

NameTypeDefaultDescription
imageIMAGE
promptSTRINGa logo, a brand crest, an emblem
thresholdFLOAT0.100–1
paddingINT00–256

Outputs (2)

NameTypeDescription
MASKMASK
IMAGEIMAGE