Capability modes
The mode parameter lets you tell the API what type of content you are processing.
The API uses this hint to route your request to the pipeline best suited for that
content class.
The four modes
| Mode | Best for |
|---|---|
general | Default. Mixed or unknown content — the pipeline detects the content type for you. Use this when you are unsure. |
graphics | Diagrams, charts, illustrations, CG art, line work |
portrait | Photographs of people |
text | Documents, screenshots, signage |
mode is supported on /api/v1/enhance/generate, /api/v1/unblur/generate,
and /api/v1/upscale/generate.
A mode is a routing hint, not a guarantee about specific visual behaviour. Which
mode gives the best result depends on your source material — resolution, noise,
subject matter. If quality matters for your workflow, run the same image through
general and the mode you think fits, and compare. That comparison costs a few
credits and settles the question better than any description we could write here.
Two-layer concept model
The API separates what you are processing from how the model implements it:
Layer 1 — Content type (mode): A stable, public semantic label that you
control. These four values are part of the API contract. We will not remove or
repurpose one without telling you first.
Layer 2 — Implementation version: The specific model or pipeline backing each
mode. This layer is not exposed, and there is no way to pin a version. Artguru
may update the model behind a mode while keeping the public mode contract
unchanged.
The mode value in the response is the API-boundary resolved value (what the
server parsed from your request), not the name of the algorithm pipeline that
actually executed.
Credit costs
The credit cost depends on the endpoint, resolution, and mode. An internal model upgrade does not change the public mode used for pricing. See Pricing for the latest rates.
Passing mode in a request
{
"image": "https://...",
"mode": "portrait"
}
If you omit mode, the server defaults to general. The successful response
echoes the resolved value in data.mode. Passing any value outside the four
listed modes returns HTTP 400 with error code -3 (INVALID_MODE) — see
Errors.