Rate images

Classify an image as sfw or nsfw, or against rating levels you define, on its own or as part of a generation.

POST /image/rate classifies one image. There is no model field. Mynth picks the model and keeps it current. By default the result level is sfw or nsfw.

import Mynth from "@mynthio/sdk";

const mynth = new Mynth();

const rating = await mynth.image.rate({ url: "https://cdn.example.com/lighthouse.png" });

console.log(rating.level); // "sfw" or "nsfw"

A standalone rating costs $0.0002, charged only when the task succeeds. The body takes url and the rating mode, and no webhook or metadata. The SDK also accepts a file.

Custom levels#

Send mode: "custom" with your own levels. The result level is one of the value strings you sent, and the SDK types it that way.

{
  "url": "https://cdn.example.com/lighthouse.png",
  "mode": "custom",
  "levels": [
    { "value": "safe", "description": "No explicit content" },
    { "value": "adult", "description": "Nudity or sexual content" }
  ]
}

levels takes 2 to 7 entries. value is 1 to 24 characters and description 1 to 150. Omitting mode means nsfw_sfw. In the CLI, repeat -l value=description, or pass --levels-file or --levels-json.

On a generation#

rating on POST /image/generate rates each successful image and puts the outcome on that image. true runs the default sfw/nsfw check. A { "mode": "custom", "levels": [...] } object runs your levels. Rating on a generation costs $0.

{ "model": "black-forest-labs/flux.2-pro", "prompt": "A lighthouse at dusk", "rating": true }

Each successful image then carries "rating": { "status": "success", "level": "sfw" }. A rating that fails does not fail the image: rating.status is failed with an error.code, and the image is still there. The CLI flag is --content-rating.

Next steps#