# AI3D API v2 model: sana-sprint Generate a text-to-image with Sana Sprint through fal.ai. - AI3D model ID: `sana-sprint` - Task: `text_to_image` - AI3D provider adapter: `fal` - Source image: not used; provide a prompt. - Availability: Check `GET https://api.ai3d.dev/v2/models`; deployment configuration and key model allowlists can affect access. - Shared implementation guide: - AI3D API reference: ## Request Use AI3D's v2 job API. Do not call the provider directly or put provider credentials in the client. - Method and URL: `POST https://api.ai3d.dev/v2/jobs` - Authentication: `Authorization: Bearer ` with write permission and this model allowed on the key. - Content type: `application/json` - `image_url` and `video_url` are not used. - `input` is required and limited to 16 KiB. Supported fields: - `prompt` (required, 1–4,000 characters) - `negative_prompt` (optional string, default `""`) - `image_size` (optional; defaults to 3840×2160). Accepts `square`, `square_hd`, `portrait_4_3`, `portrait_16_9`, `landscape_4_3`, or `landscape_16_9`, or a custom `{"width": 3840, "height": 2160}` object. Custom dimensions must each be integers from 1 to 14,142. - `num_inference_steps` (integer 1–20; default 2) - `seed` (optional integer or `null`) - `guidance_scale` (number 0–20; default 5) - `num_images` (must be 1; default 1, one output per prepaid job) - `enable_safety_checker` (must be `true`; default `true`) - `output_format` (`jpeg` or `png`; default `jpeg`) - `style_name` (default `"(No style)"`; supported values: `"(No style)"`, `"Cinematic"`, `"Photographic"`, `"Anime"`, `"Manga"`, `"Digital Art"`, `"Pixel art"`, `"Fantasy art"`, `"Neonpunk"`, or `"3D Model"`) Example request body: ```json { "model": "sana-sprint", "input": { "prompt": "A tiny glass greenhouse on a mossy moon, soft sunrise, editorial photography", "image_size": {"width": 3840, "height": 2160}, "output_format": "jpeg" } } ``` ## Job lifecycle 1. Check `GET /v2/models` and `GET /v2/billing/prices`; use this model only if it is enabled and the price is available. 2. Submit the request to `POST /v2/jobs` with a fresh `Idempotency-Key`. A successful submission returns `202 Accepted` and a job ID. 3. Poll `GET /v2/jobs/{job_id}` until `status` is `succeeded`, `failed`, or `submission_unknown`. 4. On success, inspect `artifacts` and download the generated image using its authenticated `download_url`. AI3D archives provider output in the job artifacts; this model does not create a 3D viewer link. Fal lists pricing at $0.0025 per megapixel. AI3D estimates the reservation from the requested output dimensions, rounding up to a whole megapixel, and settles the final charge using Fal's reported billable units. The default 3840×2160 image reserves an estimate of 9 megapixels; check `/v2/billing/prices` for the current rate and estimate. The final charge may differ from the estimate. When retrying a timed-out submission, resend the identical body with the same idempotency key. Never create a second job automatically when status is `submission_unknown`; provider acceptance and billing may need operator reconciliation. ## Provider reference -