Kontext [pro] zmienia na zdjęciu dokładnie to, o co prosisz: kurtkę na czerwoną, tło na plażę, samochód znika z kadru. Nie rysujesz masek - model sam znajduje fragment, którego dotyczy polecenie, a resztę zostawia. Atutem jest spójność: ta sama osoba wygląda identycznie w kolejnych edycjach, więc zbudujesz z niej całą serię.
Co z nim zrobisz
- Nowy strój, fryzura albo tło - na zdjęciu tej samej osoby.
- Serię kadrów z jedną postacią - komiks, storyboard, karuzela na Instagram.
- Poprawki zdjęć produktowych - bez organizowania sesji od nowa.
- Warianty zdjęcia profilowego - kilka stylów z jednego portretu.
Ustawienia w praktyce
- Zdjęcie wejściowe - adres w
image_urls, łącznie do 4 referencji. W Studio po prostu wrzucasz plik. - Proporcje - 9 formatów od 21:9 do 9:21; wynik ma około 1 MP, więc do dużego wydruku użyj innego modelu.
- Jedna zmiana na krok - każdą kolejną edycję rób na ostatnim wyniku.
- Seed - zapisz przy wersji, którą chcesz odtworzyć.
- Kontext generuje też z samego tekstu. Mocniejszą typografię ma FLUX.1 Kontext [max].
Prompt na start
Change the jacket to a red wool coat. Keep the face, hairstyle, pose, background and lighting exactly the same.Na początku zostaw czasownik ("change", "remove", "add"), a po nim wypisz, co ma się nie zmienić - w ten sposób chronisz twarz i światło przed przypadkową zmianą.
Pytania
Ile kosztuje jedna edycja?
0,516 zł za obraz lub edycję, z VAT. Nieudana generacja kosztuje 0 zł.
Jak wysłać edycję przez API?
POST /v1/generate z adresem zdjęcia w image_urls i poleceniem w prompt. Pełny przykład jest w dokumentacji.
Jak utrzymać tę samą postać w serii?
Każdą kolejną zmianę wykonuj na ostatnim wyniku i w każdym poleceniu powtarzaj, że twarz ma zostać bez zmian. Więcej sposobów opisuję w poradniku spójna postać AI.
FLUX.1 Kontext [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-kontext-pro",
"input": {
"prompt": "Packshot of a white linen sneaker on a concrete block, hard midday sun, crisp shadow, 85mm",
"aspect_ratio": "1:1"
}
}'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-kontext-pro",
"input": {
"prompt": "Packshot of a white linen sneaker on a concrete block, hard midday sun, crisp shadow, 85mm",
"aspect_ratio": "1:1"
}
}).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-kontext-pro",
"input": {
"prompt": "Packshot of a white linen sneaker on a concrete block, hard midday sun, crisp shadow, 85mm",
"aspect_ratio": "1:1"
}
}),
})).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 |
num_images | integer | 1-1 | 1 |
image_urls | array | maks. 4 | |
seed | integer |
Tę listę w JSON-ie dostaniesz z GET /v1/models/flux-kontext-pro.


























