Endpointy
Obrazy
POST /images/generations: generuj obrazy z tekstu i edytuj je modelami GPT image, Gemini image, FLUX, Seedream i Recraft.
Wypróbuj w playgroundGeneruj i edytuj obrazy za pomocą każdego modelu obrazów z katalogu: GPT image, Gemini image, FLUX, Seedream, Recraft i innych. Endpoint używa ścieżki z SDK OpenAI, więc client.images.generate(...) działa bez zmian.
POST https://api14.com/api/v1/images/generations
POST /api/v1/images jest akceptowany jako alias. Oba przekazują ciało żądania dalej bez zmian.
Żądanie
| Parametr | Typ | Wymagany | Opis |
|---|---|---|---|
model | string | tak | Identyfikator modelu obrazów, np. openai/gpt-5.4-image-2. |
prompt | string | tak | Co narysować. |
n | integer | nie | Liczba obrazów. Każdy obraz jest rozliczany. |
size | string | nie | np. 1024x1024, 1536x1024. Obsługiwane rozmiary zależą od modelu. |
aspect_ratio | string | nie | np. 16:9, 1:1, dla modeli, które przyjmują proporcje zamiast rozmiarów. |
quality | string | nie | np. low, medium, high, jeśli są obsługiwane. |
response_format | string | nie | b64_json lub url, jeśli są obsługiwane. |
image | string or string[] | nie | Obrazy referencyjne jako adresy URL lub URI data: do edycji / image-to-image. |
Opcje specyficzne dla modelu (rozdzielczości, proporcje) są wymienione dla każdego modelu w GET /images/models oraz na stronie modelu.
Przykład
import OpenAI from "openai";
const client = new OpenAI({
baseURL: "https://api14.com/api/v1",
apiKey: process.env.API14_API_KEY,
});
const result = await client.images.generate({
"model": "openai/gpt-5.4-image-2",
"prompt": "A minimalist product photo of a ceramic mug on a wooden table",
"n": 1,
"aspect_ratio": "1:1"
});
import { writeFile } from "node:fs/promises";
await writeFile("image.png", Buffer.from(result.data[0].b64_json, "base64"));
Odpowiedź
{
"created": 1791100000,
"data": [
{ "b64_json": "iVBORw0KGgoAAAANSUhEUgAA..." }
],
"usage": { "cost": 0.04 }
}
Niektóre modele zwracają url zamiast b64_json. Pobieraj adresy URL hostowane przez dostawcę niezwłocznie, ponieważ mogą wygasnąć.
Obrazy przez czat
Modele obrazów, które zwracają także tekst, można wywołać przez Chat completions z modalities:
{
"model": "google/gemini-2.5-flash-image",
"modalities": ["image", "text"],
"messages": [{ "role": "user", "content": "A watercolor fox, square" }]
}
Wygenerowane obrazy wracają w choices[0].message.images[] jako adresy URL data:.
Lista modeli obrazów
# Public, no API key needed
curl https://api14.com/api/v1/images/models
curl "https://api14.com/api/v1/models?category=image"
Cennik
Modele obrazów są rozliczane według ceny podanej przy modelu, za obraz lub za 1M tokenów obrazu, zależnie od modelu. Dokładny koszt jest pobierany z odpowiedzi dostawcy i odejmowany od Twojego salda w USD.
Błędy
| Status | Kod | Kiedy |
|---|---|---|
| 400 | model_required / invalid_json | Brak model lub nieprawidłowe ciało żądania. |
| 402 | insufficient_balance | Twoje saldo w USD wynosi 0 USD. |
| 403 | model_not_allowed / plan_required | Lista dozwolonych modeli klucza lub plan wyklucza model. |
| 404 | model_not_found | Nieznany lub wyłączony identyfikator modelu. |
| 413 | payload_too_large | Ciało żądania (np. wbudowane obrazy referencyjne) przekracza limit rozmiaru. |
Błędy walidacji po stronie dostawcy (nieobsługiwany rozmiar, polityka treści) są przekazywane dalej z ich statusem. Zobacz Błędy.