Images · Image to image

Clarity Upscaler API

Clarity upscaler. General-purpose image enhancement.

Price
From $0.08 per run $0.08/image
Typical time
~30 s
Model id
clarity_upscaler

Clarity Upscaler runs on one varg API key and one credit balance, the same as every other model here. You pay the provider's price, with no markup.

POST /v2/tools/image/call
curl -X POST https://api.varg.ai/v2/tools/image/call \
  -H "Authorization: Bearer $VARG_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "model": "clarity_upscaler",
  "files": [
    {
      "url": "https://example.com/input.png"
    }
  ]
}'

Clarity Upscaler pricing

From $0.08 per run. Prices are in US dollars and are the provider's own, with no markup. For the exact price of a request, send the same body to POST https://api.varg.ai/v2/estimate.

  • fal $0.08/image
    fal:clarity_upscaler

    Image to image

    Per image
    $0.08
    Typical time
    ~30 s

Clarity Upscaler inputs

The JSON body of the request. Media inputs are URLs: upload a local file with POST /v2/files and pass the URL it returns. Full JSON Schema, no key needed: api.varg.ai/v2/tools/image?model=clarity_upscaler

Clarity Upscaler request fields
FieldWhat it does
model string requiredclarity_upscaler picks a route automatically.
prompt string —
files array of { url } —
aspect_ratio string Allowed e.g. 16:9 | 9:16 | 1:1 | 4:3 | 3:4 | 21:9 | auto

Provider options

Optional, under provider_options.<provider>. Only the options of the provider that runs the job apply; pin a route to choose it.

provider_options.fal

Clarity Upscaler options for fal
FieldWhat it does
prompt string The prompt to use for generating the image. Be as descriptive as possible for best results.
negative_prompt string The negative prompt to use. Use it to address details that you don't want in the image.
seed integer Allowed 0–9007199254740991
image_url string (URL) The URL of the image to upscale.
creativity number The creativity of the model. The higher the creativity, the more the model will deviate from the prompt. Refers to the denoise strength of the sampling. Allowed 0–1
resemblance number The resemblance of the upscaled image to the original image. The higher the resemblance, the more the model will try to keep the original image. Refers to the strength of the ControlNet. Allowed 0–1
guidance_scale number The CFG (Classifier Free Guidance) scale is a measure of how close you want the model to stick to your prompt when looking for a related image to show you. Allowed 0–20
upscale_factor number The upscale factor Allowed 1–4
num_inference_steps integer The number of inference steps to perform. Allowed 4–50
enable_safety_checker boolean If set to false, the safety checker will be disabled.

Call the Clarity Upscaler API

POST https://api.varg.ai/v2/tools/image/call with Authorization: Bearer $VARG_API_KEY. It answers 202 with a job right away.

1. Send the request

cURL
curl -X POST https://api.varg.ai/v2/tools/image/call \
  -H "Authorization: Bearer $VARG_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "model": "clarity_upscaler",
  "files": [
    {
      "url": "https://example.com/input.png"
    }
  ]
}'
JavaScript
JavaScript
const headers = {
  Authorization: `Bearer ${process.env.VARG_API_KEY}`,
  'Content-Type': 'application/json',
}

const res = await fetch('https://api.varg.ai/v2/tools/image/call', {
  method: 'POST',
  headers,
  body: JSON.stringify({
    "model": "clarity_upscaler",
    "files": [
      {
        "url": "https://example.com/input.png"
      }
    ]
  }),
})
const job = await res.json() // { id: "job_…", status: "queued" }
Python
Python
import os
import requests

headers = {"Authorization": f"Bearer {os.environ['VARG_API_KEY']}"}

job = requests.post(
    "https://api.varg.ai/v2/tools/image/call",
    headers=headers,
    json={
      "model": "clarity_upscaler",
      "files": [
        {
          "url": "https://example.com/input.png"
        }
      ]
    },
).json()  # {"id": "job_…", "status": "queued"}

2. Get the result

Poll the job until its status is completed, failed or cancelled; Clarity Upscaler typically takes about 30 s. The result is at output.outputs[0].url.

GET /v2/jobs/{id}
curl https://api.varg.ai/v2/jobs/$JOB_ID \
  -H "Authorization: Bearer $VARG_API_KEY"

# Poll until "status" is completed, failed or cancelled.
# The result is in output.outputs[0].url
JavaScript
JavaScript
let current = job
while (!['completed', 'failed', 'cancelled'].includes(current.status)) {
  await new Promise((resolve) => setTimeout(resolve, 3000))
  current = await (await fetch(`https://api.varg.ai/v2/jobs/${current.id}`, { headers })).json()
}
console.log(current.output?.outputs?.[0]?.url)
Python
Python
import time

while job["status"] not in ("completed", "failed", "cancelled"):
    time.sleep(3)
    job = requests.get(f"https://api.varg.ai/v2/jobs/{job['id']}", headers=headers).json()

print(job["output"]["outputs"][0]["url"])
Or take a webhook instead of polling

Add options.webhook_url and varg POSTs the finished job to it.

request body
{
  "model": "clarity_upscaler",
  "files": [
    {
      "url": "https://example.com/input.png"
    }
  ],
  "options": {
    "webhook_url": "https://your-app.com/varg-webhook"
  }
}

From Claude, ChatGPT or Cursor (MCP)

The varg MCP server, https://mcp.varg.ai/mcp, runs Clarity Upscaler with call_tool. Sign in with varg, no API key to paste. How to connect it

call_tool
{
  "tool": "image",
  "input": {
    "model": "clarity_upscaler",
    "files": [
      {
        "url": "https://example.com/input.png"
      }
    ]
  },
  "wait": true
}

Clarity Upscaler API: questions

How much does Clarity Upscaler cost on varg?
Clarity Upscaler costs from $0.08 per run on varg ($0.08/image on the cheapest route). varg charges the provider's price with no markup, from one credit balance. For the exact price of a request before you run it, send the same body to POST https://api.varg.ai/v2/estimate.
How do I call the Clarity Upscaler API?
Send POST https://api.varg.ai/v2/tools/image/call with the header "Authorization: Bearer $VARG_API_KEY" and a JSON body that includes "model": "clarity_upscaler". The call answers 202 with a job right away. Poll GET https://api.varg.ai/v2/jobs/{id} until "status" is "completed", then read output.outputs[0].url, or pass options.webhook_url to be called back.
Can I use Clarity Upscaler from Claude, ChatGPT or Cursor?
Yes. Add the varg MCP server (https://mcp.varg.ai/mcp) to Claude, ChatGPT, Cursor or any other MCP client and sign in with varg, with no API key to paste. The agent runs Clarity Upscaler with call_tool, passing tool "image" and "model": "clarity_upscaler".
How long does a Clarity Upscaler request take?
Typically about 30 s on the fastest route, by the catalog's estimate. The API answers at once with a job id, so nothing waits on an open connection while it runs.

For AI agents: this page as Markdown is varg.ai/models/clarity_upscaler.md, and every model is listed in varg.ai/models/llms.txt.