Waxy AI Realism Test
Ask Waxy AI Realism Test whether an AI-generated face looks real versus AI, right inside ComfyUI.
Waxy AI Realism Test for ComfyUI
Waxy AI Realism Test tells you how much a face in an AI-generated image or video looks generated by AI versus real. This node puts that test inside ComfyUI, so you can check the faces coming out of your generation graph as you make them.
Drop it after any node that produces an image or a video. It sends each frame to Waxy and hands back the picture with a box drawn on the face Waxy tested, a label for whether the face looks real or AI-generated, and the confidence behind it.
What the test means
Waxy AI Realism Test finds the face in an AI-generated image, tests it, and returns how likely the face looks real, from 0 to 1. A label, real or AI, is then decided by a threshold on that confidence.
The threshold defaults to 0.70. At or above 0.70 means the face looks real. Raise it to be stricter, lower it to be looser. The confidence Waxy returns is always the raw confidence of how real the face looks.
When Waxy cannot find a face to test, it says so and returns no guess: that frame's
label comes back as no face and its confidence as n/a.
A video is tested frame by frame, the same way the Waxy API tests a clip: a frame is sampled every 0.5 seconds (about two a second) and each sampled frame is tested as its own image. The node reports a label and a confidence for every frame it tested. An image is one frame, so it gets one label and one confidence.
Install
Clone this folder into your ComfyUI custom_nodes directory and restart
ComfyUI:
cd ComfyUI/custom_nodes
git clone https://github.com/tmshapland/comfyui-waxy-ai-realism-test
requests is installed from requirements.txt if your environment does not
already have it. torch, numpy and Pillow already ship with ComfyUI.
Your API key
The node talks to the paid Waxy API, so it needs your own key. Make one in the Waxy dashboard, then give it to the node one of three ways. The node uses the first one it finds, in this order. A key is required either way. An account gets 50 free image (or video frame) credits per day.
-
Paste it into the node's
api_keyfield. Simplest to start with. Note that anything typed into a node is written into the workflow file when you save or share it, so prefer one of the next two ways if the workflow will leave your machine. -
Put it in a
config.ininext to this node. Copy the includedconfig.ini.exampletoconfig.iniand fill in your key:[waxy] api_key = your key hereconfig.iniis gitignored and never read into a workflow, so your key stays out of anything you save or share. This is the no-shell-needed option, handy on portable or Docker ComfyUI installs where an exported environment variable may not reach the ComfyUI process. Leave the node'sapi_keyfield blank. -
Set the
WAXY_API_KEYenvironment variable. Also keeps the key out of saved workflows. Leave theapi_keyfield blank:export WAXY_API_KEY="your key here"
A key is stored only as a scrambled fingerprint on Waxy's side, so copy it once when you make it and keep it safe.
The node
Waxy AI Realism Test, under the image/analysis category.
Inputs:
inputthe image or video to test. An image is tested as one picture; a video is sampled about twice a second and each sampled frame is tested on its own.api_keyyour own Waxy key. Leave blank only if you set it inconfig.inior theWAXY_API_KEYenvironment variable. A key is required either way.thresholdthe real or AI cutoff. Defaults to 0.70.timeoutoptional. Seconds to wait on the service per frame.
Outputs:
annotated_imagethe picture (or every tested frame) with a box on the face Waxy tested, so you can confirm it tested the right face. On the no face result the frame comes back unmarked.labelthe real or AI label, one line per frame. For a video that is one label per sampled frame; for an image it is the single label. A frame with no face readsno face.confidencethe raw how real likelihood, 0 to 1, one line per frame and lined up withlabel. A frame with no face readsn/a.face_foundwhether Waxy found a face to test in any frame.
Pricing
Tests are counted the same whether they come from the dashboard, the API, or this node. The free daily grant and the price past it are shown on the Waxy site. Each image is one test, and each sampled video frame is one test.