Topaz
Topaz models are called through one unified, asynchronous job API. Start a task with POST /api/generate, then poll GET /api/generate/{taskId} until it finishes. This family exposes 2 endpoints.
Overview
Every endpoint shares the same envelope — only model and the input fields change. Run any from the Models Market playground.
Authentication
Create an API key at /api-keys, then send it as a Bearer token. Requests from the browser while logged in also work via the session cookie.
Authorization: Bearer <YOUR_API_KEY>Create Task
POST https://api.lithovas.com/api/generateBody: { "model": "<slug>", "input": { … } }
Response: { "taskId": "<id>", "state": "waiting" }
Query Result
GET https://api.lithovas.com/api/generate/<taskId>Response: { "taskId", "state": "waiting" | "success" | "fail", "resultUrls": [ … ], "creditsConsumed", "failMsg", "balance" }
state becomes success or fail. Failed tasks are not billed.Endpoints
Topaz · Image Upscale
topaz/image-upscaleimage_urlstringrequiredURL of image to upscale (jpeg/png/webp, max 10MB)
upscale_factorenum<string>requiredFactor to upscale the image by
curl -X POST https://api.lithovas.com/api/generate \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "topaz/image-upscale",
"input": {
"image_url": "https://example.com/input.jpg",
"upscale_factor": "2"
}
}'Topaz · Video Upscale
topaz/video-upscalevideo_urlstringrequiredURL of the video to upscale (mp4/quicktime/x-matroska, max 50MB)
upscale_factorenum<string>optionalFactor to upscale the video by (2 doubles width and height)
curl -X POST https://api.lithovas.com/api/generate \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "topaz/video-upscale",
"input": {
"video_url": "https://example.com/reference.mp4",
"upscale_factor": "2"
}
}'