FLUX.2 [flex] daje Ci plakat w konkretnej estetyce, ilustrację do posta albo scenę złożoną z kilku zdjęć: postaci, stroju i otoczenia. Black Forest Labs przygotował ten wariant z myślą o bezpośredniej kontroli kroków próbkowania i siły prowadzenia promptem, ale w Kadrarisie obsługujesz go tak jak resztę rodziny FLUX.2. Do zdjęć produktowych zwykle wystarczy FLUX.2 [pro], a po najwyższą jakość sięgnij do FLUX.2 [max].
Co z nim zrobisz
- Plakat albo ilustrację w wybranym stylu - wektor, risograf, akwarela.
- Scenę z kilku referencji - postać z jednego zdjęcia, strój z drugiego, tło z trzeciego.
- Test stylu w rodzinie FLUX.2 - ten sam prompt na [flex], [pro] i [max] obok siebie.
- Grafiki do social mediów - kwadrat, 4:3 albo pion 9:16.
Ustawienia w praktyce
- Rozdzielczość - 1K na szkice i posty, 2K, gdy grafika idzie na stronę albo do druku w małym formacie.
- Proporcje - 1:1, 4:3, 3:4, 16:9, 9:16, 3:2 i 2:3. Opcja
autodziała tylko wtedy, gdy wysyłasz obrazy wejściowe. - Referencje - do 8 adresów w
image_urls. Ustaw je od najważniejszej i w tej samej kolejności opisz w prompcie. - Liczba obrazów - jedno zapytanie zwraca jeden obraz; po warianty wyślij kilka zapytań.
- Kroków i
guidancew Kadrarisie nie ustawisz. Aktualną listę pól zwracaGET /v1/models/flux-2-flex, opisaną w dokumentacji.
Prompt na start
Risograph print poster, two-color palette #ff4f00 and #1a1a2e, a cyclist crossing a bridge at dawn, bold grain texture, large empty sky for a headline, minimal shapesZmień dwa kody kolorów na barwy swojej marki, a motyw na własny - styl druku zostanie ten sam.
Pytania
Ile kosztuje obraz z FLUX.2 [flex]?
od 1,13 zł za obraz, z VAT. Generacja, która się nie uda, kosztuje 0 zł.
Zrobię nim duży plik do druku?
Najwyżej 2K. Większe obrazy, do 4 MP, wygeneruje FLUX.2 [max].
Jak opisać kilka referencji, żeby się nie mieszały?
Nadaj każdej rolę w prompcie: "osoba z pierwszego zdjęcia, kurtka z drugiego, ulica z trzeciego". Kolejność w image_urls musi zgadzać się z kolejnością w opisie.
FLUX.2 [flex] 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-flex",
"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-flex",
"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-flex",
"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 | ||
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-flex.























