# Flux 2 | Max | Text to Image FLUX.2 [max] delivers cutting-edge image generation and advanced editing with exceptional realism, precision, and consistency. ## API Information - **Model Slug:** flux-2-max-text-to-image - **Branded URL:** https://www.eachlabs.ai/black-forest-labs/flux-2/flux-2-max-text-to-image - **Provider:** Black Forest Labs - **Category:** Text to Image - **Output Type:** image - **Status:** active - **Version:** 0.0.1 - **Base Cost:** Per-megapixel pricing: $0.07 base + $0.03/extra MP (ceil rounding) - **Estimated Processing Time:** 35 seconds - **Last Updated:** 2026-04-27 - **Interactive Demo:** https://www.eachlabs.ai/ai-models/flux-2-max-text-to-image ## Pricing - **Charge Type:** dynamic - **Estimated Price (default example):** $0.0400 - **Pricing Details:** Per-megapixel pricing: $0.07 base + $0.03/extra MP (ceil rounding) ### Pricing Rules | Condition | Pricing | | --- | --- | | Rule 1 | Per-megapixel pricing: $0.07 base + $0.03/extra MP (ceil rounding) | ## Input Schema | Parameter | Type | Required | Default | Constraints | Description | |-----------|------|----------|---------|-------------|-------------| | prompt | string | Yes | - | - | The prompt to generate an image from. | | image_size | string | No | landscape_4_3 | square_hd,square,portrait_4_3,portrait_16_9,landscape_4_3,landscape_16_9 | The size of the generated image. | | enable_prompt_expansion | boolean | No | true | - | Whether to expand the prompt using the model's own knowledge. | | seed | integer | No | - | - | The seed to use for the generation. | | safety_tolerance | string | No | 2 | 1,2,3,4,5 | The safety tolerance level for the generated image. 1 being the most strict and 5 being the most permissive. | | enable_safety_checker | boolean | No | true | - | Whether to enable the safety checker. | | output_format | string | No | jpeg | jpeg,png | The format of the generated image. | ## Example Request ```bash curl -X POST https://api.eachlabs.ai/v1/prediction/ \ -H "X-API-Key: YOUR_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "model": "flux-2-max-text-to-image", "input": { "prompt": "Create a hyper realistic image of a woman playing the piano.\nShe is seated gracefully on a piano bench, hands gently resting on the piano keys mid performance.\nHer posture is elegant and relaxed, expressing focus and emotion through subtle body language.\n\nThe woman has a calm, expressive face, softly concentrated on the music.\nHer hair is naturally styled, slightly loose, adding softness to the scene.\nShe is wearing an elegant, timeless outfit suitable for a classical piano performance.\n\nThe piano is a realistic grand piano with visible details on the keys and polished surface.\nLighting is soft and cinematic, coming from the side, creating gentle highlights on her face, hands, and the piano.\nThe background is minimal and atmospheric, possibly a dimly lit concert hall or a quiet studio space.\n\nThe mood is emotional, artistic, and intimate, capturing the beauty of music and concentration.\nPhotorealistic, high detail, natural skin texture, realistic proportions, cinematic depth of field, professional photography quality." } }' ``` ## Output Schema Response returned by `GET /v1/prediction/{id}` when the job completes: ```json { "status": "success", "predictionID": "string", "output": "string (URL of generated image)", "metrics": { "predict_time": "number (seconds)" } } ``` ## Polling ```bash curl https://api.eachlabs.ai/v1/prediction/{PREDICTION_ID} \ -H "X-API-Key: YOUR_API_KEY" ``` | Status | Meaning | |--------|---------| | `processing` | Still running — poll again | | `success` | Done — read `output` | | `error` | Failed — read `message` / `details` | ## Webhook (alternative to polling) Pass `"webhook_url": "https://your.host/path"` in the create request. Eachlabs POSTs this payload when the job ends: ```json { "exec_id": "prediction-uuid", "status": "succeeded", "output": "https://...", "error": "" } ``` `status` is `"succeeded"` or `"failed"`. `exec_id` equals the `predictionID` from create. Return 2xx within 30 seconds. ## Errors Error body: `{ "status": "error", "message": "...", "details": "..." }` | Code | Meaning | |------|---------| | `400` | Invalid input | | `401` | Missing / invalid `X-API-Key` | | `404` | Unknown model or prediction id | | `429` | Rate limit — 100 creates / min, 10 concurrent per key | | `5xx` | Retry with backoff | ## Overview **flux-2-max-text-to-image — Text-to-Image AI Model** Developed by Black Forest Labs as part of the FLUX.2 family, **flux-2-max-text-to-image** is a production-grade text-to-image model engineered for creators who demand photorealistic quality without compromise. This model solves a critical problem in professional image generation: translating complex creative briefs into visually accurate, detailed outputs that maintain consistency across iterations and editing tasks. Unlike faster variants in the FLUX.2 lineup, flux-2-max-text-to-image prioritizes raw visual fidelity, rendering intricate details—skin textures, fabric weaves, lighting precision, and architectural complexity—with a level of photorealism that sets it apart in the competitive landscape of AI image generation. The model excels at understanding nuanced prompts and maintaining brand-aligned control through hex-code color steering and flexible aspect ratios, making it ideal for commercial workflows where repeatability and quality are non-negotiable. ## Usage Notes - API Base URL: `https://api.eachlabs.ai/v1` - Authentication: send `X-API-Key: YOUR_API_KEY`. Generate a key from the Eachlabs dashboard at https://www.eachlabs.ai/dashboard/api-keys. - File-typed parameters (`*_url`, `image_url`, `video_url`, `audio_url`, etc.) accept publicly-reachable HTTPS URLs only. Upload your asset first (GCS / S3 / your CDN) and pass the resulting URL. Data-URIs and localhost URLs are rejected. - For structured parameters (arrays / objects) send real JSON values, not stringified payloads. - Monetary values are reported in USD; per-token / per-megapixel rates may be billed in micro-cents internally. - Prefer `webhook_url` over polling for long-running predictions — see the Webhook Callback section.