Checking images for content and AI generation
Flag images that may break a content policy and tell photographs from generated images, free in the workspace and through the API.
Two of the models answer a question about an image instead of changing it.
cv-content-check-v1 says whether an image may fall outside what CraterView allows.
cv-real-check-v1 estimates whether an image was made by an image generator rather than
captured by a camera.
Running a check
In the workspace, choose Content Check or Real Check, add the image and run it. The answer appears under the picture.
Through the API a check is an ordinary job, and its answer is in the job’s result:
from craterview import CraterView
cv = CraterView(api_key="cv_...")
job = cv.run("surfing.jpg", model="cv-content-check-v1", wait=30)
print(job.result["verdict"])
# passed
job = cv.run("surfing.jpg", model="cv-real-check-v1", wait=30)
print(job.result["verdict"], job.result["generated_probability"])
# real 0.0007
A free job still counts towards your key’s requests per minute. When you check a folder, keep a
steady pace, and on a 429 wait as long as its Retry-After header says.
Content Check
The answer is one word, verdict: flagged when the image may fall outside what the service
allows, passed when it was checked and nothing was found. There is no score.
Every job on every model gets this same check. A job’s flagged field is its answer for the
part of your image the job worked on (all of it, unless you named a region), and for some jobs
for the one that came back too; null means they were not all checked. A flag refuses nothing: the job runs and is charged as usual, and the workspace
shows a note under the picture. More info on what the platform allows may be found under
acceptable use.
We’ve tested many photographs with activities like hiking, surfing, beach volleyball, swimming, bodybuilding, sumo, water polo, yoga and crowded beaches. Four of hiking and surfing:

Photographs via Wikimedia Commons, cropped: BLM Arizona (public domain), Brigitte Bourger (CC BY-SA 4.0), Taabishm2 (CC BY-SA 4.0), Annie Spratt (CC0).
If it flags an image that you think it shouldn’t, write to support@craterview.ai with the job’s
id.
Real Check
The answer is two fields. generated_probability is the estimated probability, from 0 to 1,
that the image was generated. verdict is that number placed against fixed lines: generated,
real, or uncertain between them. Don’t act on uncertain either way, and if you need a
stricter or a looser line, draw it on generated_probability.

A photograph by Faypearse (CC BY-SA 4.0, via Wikimedia Commons); NASA’s photograph of an
Apollo 11 astronaut after cv-enhance-v3 at 4×; a snapshot made with an image generator; and
the cv-headshot-v1 result made from it.
Our own results can read as generated
Restore and Enhance draw pixels, and Real Check may notice. Einstein’s 1921 photograph is real;
the restored picture on restoring historical photos is
generated.

Two of that guide’s five restorations read as generated: Einstein in colour at 0.83 and the
hangar at 0.80. The other three read as real. Of three Apollo 11 photographs enhanced at 4×,
two came back real and one uncertain. A generated verdict on a restored photograph is
correct, because a model drew its pixels. It says nothing about whether the scene happened.
Only the original can tell you that.
What it cannot tell you
- It is an estimate. It is weaker on newer image generators, and for one of those
uncertainis often the honest answer. Two of the snapshots behind the headshots guide, as a current generator delivered them, scored 0.77 and 0.62. That isgeneratedanduncertain. - The score belongs to the file. That 0.62 was for a generator’s full frame. Cropped to head and shoulders and scaled down a bit, the image scores 0.98.
realis not a certificate. It means the model found none of the signs it knows, not that the picture is untouched.
Try it on your own file
No signup and no card — a workspace opens for your browser the moment you do.
Open Web App