# AI3D API v2 model: flux-3-klein Generate an image from text with FLUX.3 Klein through fal.ai. - AI3D model ID: `flux-3-klein` - Task: `text_to_image` - Provider endpoint: `blackforestlabs/flux-3/klein/text-to-image` - Source image: not used. Do not provide image_url or video_url. - Availability: check GET https://api.ai3d.dev/v2/models and GET https://api.ai3d.dev/v2/billing/prices. - Shared guide: POST https://api.ai3d.dev/v2/jobs with an authorized AI3D bearer token, Content-Type: application/json, and a stable Idempotency-Key. Keep all provider credentials server-side. Example: {"model":"flux-3-klein","input":{"prompt":"A floating garden beneath a lavender sky","image_size":"landscape_16_9","enable_prompt_expansion":true,"output_format":"jpeg"}} Supported input fields: - prompt: required, 1–4,000 characters. - image_size: square (512×512), square_hd (1024×1024, default), landscape_4_3 (1024×768), portrait_4_3 (768×1024), landscape_16_9 (1024×576), portrait_16_9 (576×1024), or an object containing width and height integers, each 256–4096. - seed: optional integer. - num_images: must be 1. AI3D creates one output per job. - enable_prompt_expansion: boolean, default true. - enable_safety_checker: must be true. - output_format: jpeg (default), png, or webp. - sync_mode: must be false for the queue and artifact lifecycle. The provider's standard inference settings are used; num_inference_steps and bounding_boxes are not exposed by this adapter. Check live pricing for the current rate. AI3D reserves whole megapixels based on requested dimensions (two for the default 1024×1024 square, one for 1024×576 landscape) and settles against fal-reported billable units. Poll GET /v2/jobs/{id}. On success, download the image artifact using its returned authenticated download_url. Retrying the identical body must keep the same Idempotency-Key. A submission_unknown result requires reconciliation; never automatically submit a duplicate. Provider reference: