Z-Image Turbo to model Tongyi od Alibaby nastawiony na tempo i niski koszt jednego obrazu. Z krótkiego opisu robi fotorealistyczne kadry, a w razie potrzeby wpisuje w nie napis po angielsku albo chińsku. To narzędzie do masowej pracy: ilustracji do bloga, zdjęć stockowych do makiet i szybkiego sprawdzania pomysłów.
Co z nim zrobisz
- Setki ilustracji do bloga albo sklepu, generowane skryptem.
- Zdjęcia "stockowe" do makiety strony, zanim klient kupi właściwe.
- Tła i sceny do rolek przy ciasnym budżecie.
- Test pomysłu na prompt, zanim przeniesiesz go do droższego modelu.
Ustawienia w praktyce
- Proporcje: 1:1 (domyślne), 4:3, 3:4, 16:9 lub 9:16. Wyboru rozdzielczości nie ma.
- Prompt: do 1000 znaków. Zmieść w nim podmiot, otoczenie, światło i typ ujęcia.
- Napisy w obrazie dawaj po angielsku - producent deklaruje tylko angielski i chiński.
- Fotorealizm wzmocnisz, opisując aparat albo obiektyw, np. "shot on 50mm, natural light".
- Zdjęć wejściowych nie przyjmuje. Do edycji zdjęć wybierz inny model. Kontrolę nad seedem daje Z-Image Pro.
Prompt na start
Cozy home office by a window on a rainy afternoon, wooden desk with a laptop, a mug of tea and a small plant, raindrops on the glass, soft natural light, shot on 35mm, realistic photoZamień wnętrze na temat swojego wpisu na blogu, a końcówkę o aparacie zostaw.
Pytania
Ile kosztuje obraz z Z-Image Turbo?
0,09 zł za obraz, z VAT. Nieudana generacja to 0 zł, bo blokada wraca na saldo. Więcej o tym modelu piszę w tekście Z-Image Turbo.
Potrzebuję polskiego hasła na grafice. Co wybrać?
Z-Image może przekręcić polskie znaki, bo oficjalnie wspiera tylko angielski i chiński. Do polskich napisów lepiej sprawdzi się np. Nano Banana Pro.
Jak wygenerować kilkaset grafik bez klikania?
Wysyłaj zadania na POST /v1/generate z webhook_url albo z ?wait=60, jeśli wolisz czekać na odpowiedź. Przykład w Pythonie znajdziesz w poradniku generowanie obrazów przez API w Pythonie.
Z-Image Turbo w twoim kodzie
curl https://kadraris.com/v1/generate?wait=60 \
-H "Authorization: Bearer $KADRARIS_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "z-image",
"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": "z-image",
"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": "z-image",
"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 | ≤ 1000 znaków | |
aspect_ratio | string | 1:1 4:3 3:4 16:9 9:16 | 1:1 |
Tę listę w JSON-ie dostaniesz z GET /v1/models/z-image.

























