Flux-2
Flux-2 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 4 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
Pro · Image to Image
flux2/pro-image-to-imageinput_urlsarray<string>requiredReference images (1-8), max 10MB each, JPEG/PNG/WebP formats
promptstringrequiredText description (3-5000 characters) guiding the generation
aspect_ratiostringrequiredOutput image proportions; 'auto' matches first input image
resolutionstringrequiredOutput image resolution level
nsfw_checkerbooleanoptionalContent filtering toggle; false disables safety filtering
curl -X POST https://api.lithovas.com/api/generate \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "flux2/pro-image-to-image",
"input": {
"input_urls": [
"https://example.com/file"
],
"prompt": "A cinematic red panda surfing through neon rain at dusk.",
"aspect_ratio": "1:1",
"resolution": "1K",
"nsfw_checker": false
}
}'Pro · Text to Image
flux2/pro-text-to-imagepromptstringrequiredGeneration prompt, must be between 3 and 5000 characters
aspect_ratioenum<string>requiredAspect ratio for generated image
resolutionenum<string>requiredOutput image resolution
nsfw_checkerbooleanoptionalDisable content filtering when set to false
curl -X POST https://api.lithovas.com/api/generate \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "flux2/pro-text-to-image",
"input": {
"prompt": "A cinematic red panda surfing through neon rain at dusk.",
"aspect_ratio": "1:1",
"resolution": "1K",
"nsfw_checker": false
}
}'Flex · Image to Image
flux2/flex-image-to-imageinput_urlsarray<string>requiredInput reference images (1-8), file URLs after upload
promptstringrequiredText description of desired modifications; 3-5000 characters
aspect_ratioenum<string>requiredOutput image aspect ratio; auto matches first input
resolutionenum<string>requiredOutput image resolution
curl -X POST https://api.lithovas.com/api/generate \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "flux2/flex-image-to-image",
"input": {
"input_urls": [
"https://example.com/file"
],
"prompt": "A cinematic red panda surfing through neon rain at dusk.",
"aspect_ratio": "1:1",
"resolution": "1K"
}
}'Flex · Text to Image
flux2/flex-text-to-imagepromptstringrequiredGeneration prompt, length must be between 3-5000 characters
aspect_ratioenum<string>requiredAspect ratio of the generated image
resolutionenum<string>requiredOutput image resolution
nsfw_checkerbooleanoptionalDisable content filtering when set to false
curl -X POST https://api.lithovas.com/api/generate \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "flux2/flex-text-to-image",
"input": {
"prompt": "A cinematic red panda surfing through neon rain at dusk.",
"aspect_ratio": "1:1",
"resolution": "1K",
"nsfw_checker": false
}
}'