FLUX.2 [max] bierzesz, gdy obraz ma wytrzymać zbliżenie: finalna wizualizacja do druku, zdjęcie kampanii, które potniesz na kilka formatów, okładka płyty. W rodzinie FLUX.2 producent Black Forest Labs wycisnął tu najwięcej jakości i drobnych szczegółów. Model tworzy obraz z samego tekstu albo z kilku zdjęć wzorcowych, a udany wynik powtórzysz dzięki seed.
Co z nim zrobisz
- Wizualizacje do druku - plakaty, katalogi, materiały na targi.
- Zdjęcie kampanii w 4 MP - jeden kadr przycięty potem do posta, banera i pionu.
- Kadry w 21:9 - moodboardy i pitche w proporcjach kinowych.
- Okładki płyt i plakaty filmowe - z wyraźnymi fakturami i materiałami.
Ustawienia w praktyce
- Rozdzielczość - pole
resolutionprzyjmuje1MP,2MP,3MPalbo4MP, domyślnie 2 MP. Każda wartość działa w każdej proporcji. - Proporcje - 9 formatów: od 21:9 przez 16:9, 3:2, 4:3, 1:1 aż po 9:21.
- Seed - próby rób w 1 MP z zapisanym seedem, a ostateczny render w 4 MP puść z tym samym numerem.
- Referencje - do 8 adresów w
image_urls, każdej przypisz w prompcie konkretną funkcję. - Jedno zapytanie to jeden obraz. Na co dzień taniej wyjdzie FLUX.2 [pro].
Prompt na start
Close-up product photo of a leather wallet on brushed aluminium, visible stitching and grain, soft window light from the left, shallow depth of field, neutral grey backdrop, editorial catalogue stylePrzy 4 MP widać materiały, więc zamień portfel i aluminium na swój produkt i podłoże, opisując ich fakturę.
Pytania
Ile kosztuje obraz z FLUX.2 [max]?
od 0,903 zł za obraz, w złotówkach brutto. Koszt widzisz przed wysłaniem w estimated_cost i na przycisku w Studio, a nieudana generacja kosztuje 0 zł.
Jak zrobić panoramę?
Wybierz 21:9 i opisz w prompcie, co dzieje się przy lewej i prawej krawędzi kadru - model dostanie jasną wskazówkę, czym wypełnić szeroki kadr.
Czy [max] zawsze jest lepszy od [pro]?
Ma więcej detalu i wybór od 1 do 4 MP z seedem, ale do grafik na stronę w 1K lub 2K [pro] często w zupełności wystarcza. Sprawdź oba na tym samym prompcie.
FLUX.2 [max] 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-max",
"input": {
"prompt": "Packshot of a white linen sneaker on a concrete block, hard midday sun, crisp shadow, 85mm",
"aspect_ratio": "1:1",
"resolution": "2MP"
}
}'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-max",
"input": {
"prompt": "Packshot of a white linen sneaker on a concrete block, hard midday sun, crisp shadow, 85mm",
"aspect_ratio": "1:1",
"resolution": "2MP"
}
}).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-max",
"input": {
"prompt": "Packshot of a white linen sneaker on a concrete block, hard midday sun, crisp shadow, 85mm",
"aspect_ratio": "1:1",
"resolution": "2MP"
}
}),
})).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 | ||
aspect_ratio | string | 1:1 4:3 3:4 16:9 9:16 3:2 2:3 21:9 9:21 | 1:1 |
resolution | string | 1MP 2MP 3MP 4MP | 2MP |
num_images | integer | 1-1 | 1 |
image_urls | array | maks. 8 | |
seed | integer |
Tę listę w JSON-ie dostaniesz z GET /v1/models/flux-2-max.























