ComfyUI Node

Content Safety

A pre-flight NSFW check that costs pennies

By Runware·Created 2 years ago·Updated 4 days ago· 140
Content Safety
  • image
  • text
video
settings.modefast

This is the node you reach for when your workflow has to stay clean and you don't want to eyeball every image yourself. It takes an image or a video, sends it to Runware's content-safety model in the cloud, and hands you back a text verdict. No GPU, no local safety classifier to install, no wrestling a separate NSFW-detection model into your graph. Just "is this fine or not" as a string you can branch on.

It lives under Runware/Text/runware in the node menu, which tells you most of what you need to know: it's not an image node, it's a check. The output is a plain STRING (text), so wire it into a text display, a Runware Get-style extraction, or whatever your pipeline uses to decide what happens next. If you're building a public-facing bot or a batch job that must never leak, this is the guardrail slot.

How it works

Runware's platform runs the model for you over its inference API - the same REST path every node in this pack uses (taskType is caption, model AIR is runware:content-safety@1). You feed it media, it returns text. The one knob that matters is settings.mode:

  • fast (default) - the quick screen, good for most checks.
  • full - the deeper pass, slower and (in principle) more thorough.

For a pre-flight check you'll almost always want fast. It's cheap and it gets you a yes/no signal without turning every run into a wait.

The node accepts either an image socket (native IMAGE tensor, straight from your sampler output) or a video input as a UUID or URL string. Feed one, not both.

Inputs that matter

Honestly, there are three inputs and you'll touch two:

  • image - your generated frame as an IMAGE tensor.
  • video - a video UUID or URL instead, if you're checking moving content.
  • settings.mode - fast or full.

That's the whole interface. The simplicity is the point.

Installing it

This node ships inside the Runware/ComfyUI-Runware pack, so you install the pack once and get every node it contains. Easiest route is ComfyUI Manager: open the Custom Nodes Manager, search Runware, install, restart. Manual route:

cd ComfyUI/custom_nodes
git clone https://github.com/Runware/ComfyUI-Runware
pip install -r ComfyUI-Runware/requirements.txt

Then restart ComfyUI. Dependencies are light - runware-sdk, pillow, soundfile - and there are no model downloads, because nothing runs locally.

Gotchas

  • You need a Runware API key. Grab one from the dashboard and set it in ComfyUI Settings → Runware API key, or export RUNWARE_API_KEY, or run runware auth login once. No key, no call - the node errors out with a message telling you exactly that.
  • It's a paid call. Every run costs a fraction of a cent, and the title bar shows the cost next to each result. If you're checking thousands of images, that adds up; the fast mode is your friend.
  • It's a check, not a filter. The node returns a verdict as text; it won't block anything on its own. You wire the decision into your workflow.

If the node silently does nothing, check that your key is set and that you actually fed it media - an empty input produces an empty result, and the error may be quieter than you'd like.

CategoryRunware/Text/runware

Inputs (3)

NameTypeDefaultDescription
imageoptIMAGE
videooptSTRINGVideo input (UUID or URL).
settings.modeoptCOMBOfastSafety checking mode for video generation.

Outputs (1)

NameTypeDescription
textSTRING