Use Case · Trust

Image moderation on the Software Lifecycle Cloud

Image moderation on KERNSTACK keeps an upload unpublished until it has been judged: the file lands in a private bucket through a presigned upload, a worker sends it to a vision model from the inference catalogue (3 credits per image), scores are stored beside the object’s record in a table, and borderline cases pause in a workflow step where a human verdict — publish or reject — is recorded.

The engineering bottleneck with assembled stacks

Marketplaces and communities learn the same lesson: the upload that goes public instantly is the one in the screenshot of the incident report. Bolting a moderation API onto an otherwise direct-to-public pipeline leaves the hard parts — holding state, borderline judgement, appeals, evidence — scattered across the vendor’s dashboard and your own database, disagreeing about what was decided.

Architecture on the Software Lifecycle Cloud

Uploads are born private: the browser gets a presigned URL into a quarantine prefix of the bucket. A worker scores each new object with a vision model and writes the scorecard to the uploads table. Clear passes publish by moving the object to the public prefix; clear failures reject; the middle band becomes a human step in a workflow, so the reviewer sees image, scores, and policy in one task.

The middle band is where trust work happens

Models are decisive at the extremes and uncertain in the middle, which is exactly where a workflow with a human step pays. The reviewer’s decision is recorded in the same table as the model’s scores, so policy tuning reads evidence: if humans overturn the 0.6 band constantly, the threshold moves — as a stack.json-era configuration change, reviewed like any other.

  • Nothing is public before a verdict: publication is a bucket move that happens after scoring
  • Vision scoring costs 3 credits per image from the catalogue — no separate moderation vendor contract
  • Appeals read the same record: model scores, human verdict, and timestamps in one row

Volumes and the honest limits

Per-image pricing makes the economics legible: a marketplace moderating ten thousand uploads a day spends thirty thousand credits on vision before worker compute, and can state that number in the plan review. What the catalogue model will not do is know your community’s specific norms — that is what the human band and its recorded verdicts are for, and over time they define your thresholds.

Frequently asked questions

A vision model from the inference catalogue, metered at 3 credits per image. If your policy needs a specialist model, declare it as a custom inference endpoint and point the worker at it; the bucket, table, and workflow around it do not change.

Yes. The verdict record — scores, reviewer, timestamps — lives in the uploads table, so an appeal is a second human step on the same record rather than a support ticket asking a vendor what happened. The object remains in quarantine while the appeal runs.

Upload, score, and publish are a worker call and a model call — seconds for ordinary images. Only the borderline band waits for a human, and sizing that band is the policy decision the recorded verdicts inform.

Related capabilities, architectures, and comparisons

Ship your stack on the Software Lifecycle Cloud.

Closed preview on dedicated European infrastructure. Bring a repository or start from a blueprint.