> ## Documentation Index
> Fetch the complete documentation index at: https://docs.orisu.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Product Check

> Compare generated images with photos of the real product and keep only the ones that still show it.

Product Check looks at each image you give it next to one to three photos of your actual product. It reads the label text, logo, shape, color and part count, and ignores the background, the scene's light and the camera angle. Whether the product's own light or screen is on doesn't count: a lamp shown lit is the same lamp. A strap, cable or stand your photos don't show counts as different, except the power cord of a product that plugs in (a kettle, a lamp), which it has even when the photos leave it out. A product looking darker, brighter, warmer or cooler in a scene's light is not a color change. In a close-up, parts outside the frame don't count as missing. Each image ends up in **Passed** or **Rejected**, and the **Report** says what differed.

Use it after a generation step to catch a shot with the wrong label or a changed bottle before it reaches your store or ad account. It catches most changes, not every one, so still look at what it passes.

## When to use

* Dropping generated shots where the product changed (wrong label, color or shape)
* A quality gate before images go to a store, a drive folder or an ad account

Common patterns: `generate_image → product_check`, with `upload_image → product_check` for the product photos, and `product_check (Passed) → google_drive_export`.

## Inputs

**Images to check** `image` *required*

The images to check. Accepts many images; each one is checked on its own.

**Product photos** `image` *required*

Clear photos of the real product. The first three are used and any extra photos are ignored.

## Outputs

**Passed** `image`

Images that show your product, in the order they came in. Empty when none passed.

**Rejected** `image`

Images where the product looks different. Empty when nothing was rejected.

**Report** `text`

A JSON list with one entry per image: `url`, `verdict` (`match`, `mismatch`, `unsure` or `error`) and `issues`, up to three short notes on what differed. Most entries also carry `aspects`, one verdict each for `label` (label text and logo), `shape`, `color` and `parts`: `ok`, `differs`, `unsure`, or `na` when that part isn't visible in the image. `error` means the check could not run on that image.

## Configuration

**productName** `string`

The product's name, for example "Amber Jar Candle". It tells the check what to look for. Leave it empty and the check compares against the photos alone.

**threshold** `string` (default: normal)

How strict the check is.

* `normal`: keeps clear matches and images the model looked at but could not decide on.
* `strict`: keeps only clear matches. Undecided images go to Rejected.

> [!NOTE]
>
> If the model can't read an image or doesn't answer, that image gets the verdict `error` and goes to Rejected with either setting, so an unchecked image never passes. If the check fails for every image, the node fails and you can run it again.

> [!NOTE]
>
> Product Check runs one vision model call per image, so the cost grows with the number of images you check.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.