# shortapi/flux-1.0/text-to-image > Boasting superior prompt following, visual quality, image details, and output diversity, Flux stands as the most advanced image generation model currently. ## Overview - **Endpoint**: `https://api.shortapi.ai/api/v1/job/create` - **Model ID**: `shortapi/flux-1.0/text-to-image` - **Category**: text-to-image - **Kind**: inference ## Pricing The billing rate for Schnell mode images is $0.002 per request, while Dev mode is $0.02 per request. For more details, please check our pricing page. ## API Information This model can be used via our HTTP API or more conveniently via our client libraries. See the input and output schema below, as well as the usage examples. ### Input Schema The API accepts the following input parameters: - **`prompt`** (`string`, _required_): Text prompt - Examples: "An action shot of a black lab swimming..." - **`num_images`** (`int`, _optional_): The number of images to generate - Default: `1` - Options: "1", "2", "4", "8" - **`aspect_ratio`** (`string`, _required_): The aspect ratio of the generated image - Options: "1:1", "9:16", "16:9", "4:3", "3:4", "3:2", "2:3", "21:9" - **`performance`** (`string`, _optional_): Generation performance mode - Default: `dev` - Options: "schnell", "dev" ### Output Schema The API returns a JSON response with a `job_id` for tracking the request status. **Create Job Response:** ```json { "code": 0, "data": { "amount": "0.02", "job_id": "" } } ``` **Query Job Result (when status is 2, meaning succeeded):** ```json { "code": 0, "data": { "status": 2, "result": { "images": [{ "url": "https://..." }] } } } ``` ## Use Example To use this model, make an HTTP POST request to the API endpoint, then poll for results using the returned `job_id`. ### Bash (cURL) ```bash # Step 1: Create a job response=$(curl --request POST \ --url https://api.shortapi.ai/api/v1/job/create \ --header "Authorization: Bearer $SHORTAPI_KEY" \ --header "Content-Type: application/json" \ --data '{ "model": "shortapi/flux-1.0/text-to-image", "args": { "prompt": "A werewolf howling at a full moon in a forest 8k uhd, dslr, film grain, Fujifilm XT3, (best quality:1.3), (masterpiece:1.1), high resolution, cinematic light, intricate details, (photorealistic)", "aspect_ratio": "16:9" }, "callback_url": "CALLBACK_URL" }') JOB_ID=$(echo "$response" | grep -o '"job_id": *"[^"]*"' | sed 's/"job_id": *//; s/"//g') # Step 2: Poll for results curl --request GET \ --url "https://api.shortapi.ai/api/v1/job/query?id=$JOB_ID" \ --header "Authorization: Bearer $SHORTAPI_KEY" ``` ### JavaScript (Fetch API) ```javascript // Step 1: Create a job const response = await fetch(`https://api.shortapi.ai/api/v1/job/create`, { method: "POST", headers: { "Authorization": `Bearer ${SHORTAPI_KEY}`, "Content-Type": "application/json" }, body: JSON.stringify({ "model": "shortapi/flux-1.0/text-to-image", "args": { "prompt": "A werewolf howling at a full moon in a forest 8k uhd, dslr, film grain, Fujifilm XT3, (best quality:1.3), (masterpiece:1.1), high resolution, cinematic light, intricate details, (photorealistic)", "aspect_ratio": "16:9" }, "callback_url": "CALLBACK_URL" }) }); const data = await response.json(); const JOB_ID = data.job_id; // Step 2: Poll for results const result = await fetch(`https://api.shortapi.ai/api/v1/job/query?id=${JOB_ID}`, { method: "GET", headers: { "Authorization": `Bearer ${SHORTAPI_KEY}` } }); const resultData = await result.json(); console.log(resultData); ``` ### Python (Requests) ```python import requests # Step 1: Create a job url = "https://api.shortapi.ai/api/v1/job/create" payload = { "model": "shortapi/flux-1.0/text-to-image", "args": { "prompt": "A werewolf howling at a full moon in a forest 8k uhd, dslr, film grain, Fujifilm XT3, (best quality:1.3), (masterpiece:1.1), high resolution, cinematic light, intricate details, (photorealistic)", "aspect_ratio": "16:9" }, "callback_url": "CALLBACK_URL" } headers = { "Authorization": f"Bearer {SHORTAPI_KEY}", "Content-Type": "application/json" } response = requests.post(url, headers=headers, json=payload) data = response.json() JOB_ID = data.get("job_id") # Step 2: Poll for results result_url = f"https://api.shortapi.ai/api/v1/job/query?id={JOB_ID}" result = requests.get(result_url, headers={"Authorization": f"Bearer {SHORTAPI_KEY}"}) print(result.json()) ```