# FLUX 3 Image > FLUX 3 Image on Zurelay: 1K, 2K and 4K images in 15 shapes, text in images, editing, prices and prompting. Source: https://zurelay.com/docs/flux Black Forest Labs’ FLUX 3 Image: new images at 1K, 2K or 4K in 15 shapes, legible text in the picture, and edits of an image you send. ## Price 1K $0.04, 2K $0.05, 4K $0.09 an image. An edit costs the same as a new image, and the image you send is included. ## Make an image **Python** (`main.py`): ```python import os from openai import OpenAI client = OpenAI(base_url="https://api.zurelay.com/v1", api_key=os.environ["ZURELAY_API_KEY"]) result = client.images.generate( model="flux-3-image", prompt="A poster for a night market: lanterns over food stalls in the rain, the words 'NIGHT MARKET' in bold letters across the top and 'Fridays 6 pm to midnight' below", size="2K", extra_body={ "aspect_ratio": "2:3" }, ) print(result.data[0].url) ``` **Node.js** (`index.mjs`): ```javascript import OpenAI from "openai"; const client = new OpenAI({ baseURL: "https://api.zurelay.com/v1", apiKey: process.env.ZURELAY_API_KEY }); const result = await client.images.generate({ "model": "flux-3-image", "prompt": "A poster for a night market: lanterns over food stalls in the rain, the words 'NIGHT MARKET' in bold letters across the top and 'Fridays 6 pm to midnight' below", "size": "2K", "aspect_ratio": "2:3" }); console.log(result.data[0].url); ``` **cURL**: ```bash curl https://api.zurelay.com/v1/images/generations \ -H "Authorization: Bearer $ZURELAY_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "model": "flux-3-image", "prompt": "A poster for a night market: lanterns over food stalls in the rain, the words '\''NIGHT MARKET'\'' in bold letters across the top and '\''Fridays 6 pm to midnight'\'' below", "size": "2K", "aspect_ratio": "2:3" }' ``` ## Parameters - `size` (string): `1K` (the default), `2K` or `4K`, or pixels like `1360x768`, read as the nearest resolution and shape. - `aspect_ratio` (string): `21:9`, `2:1`, `16:9`, `3:2`, `7:5`, `4:3`, `5:4`, `1:1`, `4:5`, `3:4`, `5:7`, `2:3`, `9:16`, `1:2` or `9:21`. Without it a new image is square; an edit keeps the shape of the image you send. - `images` (array): One image to edit, as a link or data URL (or a file on `/v1/images/edits`). - `n` (integer): 1 to 4 images. FLUX 3’s sizes have the same area at every shape: about one megapixel at 1K (1024 × 1024 square), four at 2K (2048 × 2048, or 2736 × 1536 for 16:9) and sixteen at 4K (5472 × 3072 for 16:9). A 1K image in a shape other than square can come back at the 2K size, at the 1K price. An image smaller than asked, or in another shape, is retried, never delivered. ## Edit an image **Python** (`main.py`): ```python import os import requests response = requests.post( "https://api.zurelay.com/v1/images/generations", headers={"Authorization": f"Bearer {os.environ['ZURELAY_API_KEY']}"}, json={ "model": "flux-3-image", "prompt": "Make the neon sign glow red instead of blue. Keep everything else exactly the same.", "images": [ "https://example.com/storefront.png" ] }, ) response.raise_for_status() print(response.json()) ``` **Node.js** (`index.mjs`): ```javascript const response = await fetch("https://api.zurelay.com/v1/images/generations", { method: "POST", headers: { Authorization: `Bearer ${process.env.ZURELAY_API_KEY}`, "Content-Type": "application/json", }, body: JSON.stringify({ "model": "flux-3-image", "prompt": "Make the neon sign glow red instead of blue. Keep everything else exactly the same.", "images": [ "https://example.com/storefront.png" ] }), }); console.log(await response.json()); ``` **cURL**: ```bash curl https://api.zurelay.com/v1/images/generations \ -H "Authorization: Bearer $ZURELAY_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "model": "flux-3-image", "prompt": "Make the neon sign glow red instead of blue. Keep everything else exactly the same.", "images": [ "https://example.com/storefront.png" ] }' ``` ## Prompting - Describe the subject, the setting, the light and the medium in full sentences. - Put words that must appear in quotes and say where they go. - There’s no negative prompt: describe what should be there (“an empty street”) rather than what shouldn’t (“no people”). - For edits, name what changes and what stays: “Change the sweater to deep blue. Keep everything else the same.” ## Good to know - Images take 30 seconds to 2 minutes at 1K and 2K, and 3 to 4 minutes at 4K. - The model can look things up on the web while it draws, for prompts about recent events. - Prompts the model declines return `image_not_generated`, free of charge. - Links last 24 hours; the Library in your dashboard keeps images returned as links for 30 days. Model details: [FLUX 3 Image](https://zurelay.com/models/flux-3-image). More on sending images: [Image editing and reference images](https://zurelay.com/docs/image-editing).