# Flux 2 | Text to Image Lora A FLUX.2 [dev] text-to-image model with full LoRA support, enabling custom style adaptation and finely tuned visual variations. ## API Information - **Model Slug:** flux-2-lora - **Branded URL:** https://www.eachlabs.ai/black-forest-labs/flux-2/flux-2-lora - **Provider:** Black Forest Labs - **Category:** Text to Image - **Output Type:** array - **Status:** active - **Version:** 0.0.1 - **Base Cost:** Per-megapixel pricing: $0.021/MP (round rounding) - **Estimated Processing Time:** 20 seconds - **Last Updated:** 2026-04-27 - **Interactive Demo:** https://www.eachlabs.ai/ai-models/flux-2-lora ## Pricing - **Charge Type:** dynamic - **Pricing Details:** Per-megapixel pricing: $0.021/MP (round rounding) ### Pricing Rules | Condition | Pricing | | --- | --- | | Rule 1 | Per-megapixel pricing: $0.021/MP (round rounding) | ## Input Schema | Parameter | Type | Required | Default | Constraints | Description | |-----------|------|----------|---------|-------------|-------------| | prompt | string | Yes | - | - | The prompt to generate an image from. | | loras | array | No | - | 0–3 | List of LoRA weights to apply (maximum 3). Each LoRA can be a URL, HuggingFace repo ID, or local path. | | guidance_scale | number | No | 2.5 | 0–20 | - | | num_inference_steps | integer | No | 28 | 1–50 | - | | image_size | string | No | square_hd | square_hd,square,portrait_4_3,portrait_16_9,landscape_4_3,landscape_16_9 | - | | acceleration | string | No | none | none,regular,high | The acceleration level to use for the image generation. | | enable_prompt_expansion | boolean | No | false | - | If set to true, the prompt will be expanded for better results. | | enable_safety_checker boolean | boolean | No | true | - | If set to true, the safety checker will be enabled. | | output_format | string | No | png | jpeg,png,webp | The format of the generated image. | | num_images | integer | No | 1 | 1–4 | The number of images to generate. Default value: 1 | | seed | integer | No | - | - | The seed to use for the generation. If not provided, a random seed will be used. | ## 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-lora", "input": { "prompt": "Close shot of a woman standing in a luxurious penthouse with floor to ceiling windows overlooking a rainy futuristic metropolis. Shot with a 50mm lens at a side profile angle, soft tungsten light illuminating her silhouette. Capture detailed reflections on the glass, neon city lights diffused by rain, water droplets sliding down the windows, and the atmospheric warm and cool lighting contrast across the room’s polished surfaces." } }' ``` ## Output Schema Response returned by `GET /v1/prediction/{id}` when the job completes: ```json { "status": "success", "predictionID": "string", "output": "array", "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-lora — Text to Image AI Model** Developed by Black Forest Labs as part of the FLUX.2 family, flux-2-lora is a text-to-image AI model built on a rectified flow transformer architecture that unifies image generation and editing in a single model. Unlike competing solutions that require separate checkpoints for generation and editing workflows, flux-2-lora handles both tasks seamlessly, enabling developers and creators to build faster, more efficient image generation applications. The model combines a 9 billion parameter flow model with an 8 billion parameter Qwen3 text embedder, positioning it as a powerful yet compact solution for production-scale text-to-image AI applications. What sets flux-2-lora apart is its full LoRA (Low-Rank Adaptation) support built on an undistilled base architecture. This means the model preserves its complete training signal, enabling fine-tuning and custom style adaptation without sacrificing model capacity—a critical advantage for teams building specialized image generation workflows or custom style libraries. ## 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.