FLUX.2 [pro] robi zdjęcia, które wyglądają jak z sesji: produkt z czytelną etykietą, scena lifestyle, okładka podcastu. Black Forest Labs przygotował go jako produkcyjną wersję FLUX.2, z naciskiem na fotorealizm i dokładnie odwzorowany tekst. Gdy masz kilka zdjęć produktu albo postaci, model złoży z nich jedną scenę według Twojego opisu.
Co z nim zrobisz
- Packshot z czytelnym napisem - metka, etykieta, nazwa na opakowaniu.
- Scenę lifestyle z prawdziwym produktem - z kilku zdjęć wzorcowych.
- Okładki artykułów i podcastów - fotorealistyczne, w wybranym formacie.
- Kreacje do testów reklam - kilka wariantów tej samej sceny przed kampanią.
Ustawienia w praktyce
- Rozdzielczość - 1K do szybkich prób, 2K do publikacji. Do 4 MP przejdź na FLUX.2 [max].
- Proporcje - 1:1, 4:3, 3:4, 16:9, 9:16, 3:2, 2:3;
autotylko razem z obrazami wejściowymi. - Referencje - do 8 adresów w
image_urls. Napisz, co bierzesz z każdej: produkt, osobę, tło. - Prompt - do 5000 znaków; napis do kadru daj w cudzysłowie z krojem, np. "bold sans-serif".
- Jedno zapytanie to jeden obraz. Edycję gotowego zdjęcia poleceniem zrobisz w FLUX.1 Kontext [pro].
Prompt na start
Lifestyle photo of a glass bottle of cold brew coffee on a sunny café table, label reading "NOCNY ROAST" in bold sans-serif, 50mm lens, late afternoon backlight, condensation drops, blurred street behindWstaw nazwę swojego produktu w cudzysłów i sprawdź na wyniku polskie znaki, zanim grafika trafi do reklamy.
Pytania
Ile kosztuje zdjęcie z FLUX.2 [pro]?
od 0,403 zł za obraz, z VAT. Jeśli generacja się nie powiedzie, płacisz 0 zł. Więcej o wyborze modelu do zdjęć w poradniku zdjęcia produktowe AI.
Mogę wykorzystać grafiki komercyjnie?
Tak, w ramach licencji Black Forest Labs i przepisów. Sprawdź jeszcze, czy wolno Ci używać zdjęć wrzuconych jako referencje.
FLUX.2 [pro] czy Nano Banana Pro?
Zestawiam je w porównaniu FLUX.2 pro vs Nano Banana Pro.
FLUX.2 [pro] w twoim kodzie
curl https://kadraris.com/v1/generate?wait=60 \
-H "Authorization: Bearer $KADRARIS_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "flux-2-pro",
"input": {
"prompt": "Packshot of a white linen sneaker on a concrete block, hard midday sun, crisp shadow, 85mm",
"aspect_ratio": "1:1",
"resolution": "1K"
}
}'import os, time, requests
API = "https://kadraris.com/v1"
H = {"Authorization": f"Bearer {os.environ['KADRARIS_API_KEY']}"}
task = requests.post(f"{API}/generate", headers=H, json={
"model": "flux-2-pro",
"input": {
"prompt": "Packshot of a white linen sneaker on a concrete block, hard midday sun, crisp shadow, 85mm",
"aspect_ratio": "1:1",
"resolution": "1K"
}
}).json()
while task["status"] in ("queued", "running"):
time.sleep(3)
task = requests.get(f"{API}/tasks/{task['id']}", headers=H).json()
print(task["status"], task["cost"], [o["url"] for o in task["output"]])const API = "https://kadraris.com/v1";
const headers = { Authorization: `Bearer ${process.env.KADRARIS_API_KEY}`, "Content-Type": "application/json" };
let task = await (await fetch(`${API}/generate`, {
method: "POST",
headers,
body: JSON.stringify({
"model": "flux-2-pro",
"input": {
"prompt": "Packshot of a white linen sneaker on a concrete block, hard midday sun, crisp shadow, 85mm",
"aspect_ratio": "1:1",
"resolution": "1K"
}
}),
})).json();
while (task.status === "queued" || task.status === "running") {
await new Promise((r) => setTimeout(r, 3000));
task = await (await fetch(`${API}/tasks/${task.id}`, { headers })).json();
}
console.log(task.status, task.cost, task.output.map((o) => o.url));
Pola wejściowe
| Parametr | Typ | Dozwolone | Domyślnie |
|---|---|---|---|
prompt * | string | ≤ 5000 znaków | |
aspect_ratio | string | 1:1 4:3 3:4 16:9 9:16 3:2 2:3 auto | 1:1 |
resolution | string | 1K 2K | 1K |
image_urls | array | maks. 8 |
Tę listę w JSON-ie dostaniesz z GET /v1/models/flux-2-pro.


























