MenuGenerowanie obrazów

Generowanie obrazów

Zamień opis tekstowy (prompt) w obrazy za pomocą modeli obrazów Google (rodzina Nano Banana / Gemini Image). Endpoint jest zgodny z OpenAI Images API — wystarczy skierować SDK openai na base URL Geraikita, z tym samym kluczem gk- i tym samym saldem GeraiPoints.

Endpoint

POSThttps://ai.geraikita.com/v1/images/generations
NagłówekWartość
AuthorizationBearer gk-... (lub x-api-key: gk-...)
Content-Typeapplication/json

Jedno żądanie = jeden prompt, który daje 1–4 obrazy. Streaming nie jest obsługiwany — odpowiedź przychodzi w całości, gdy obrazy są gotowe.

Parametry body

ParametrTypOpis
modelstringwymaganyID modelu obrazów, np. gemini-3.1-flash-image lub gemini-3-pro-image — pełna lista jest w tabeli cen poniżej.
promptstringwymaganyOpis oczekiwanego obrazu, maksymalnie 4000 znaków.
nintegeropcjonalnyLiczba obrazów, 1–4. Domyślnie 1. Każdy udany obraz jest rozliczany osobno.
sizestringopcjonalnyJedna z wartości auto | 1024x1024 | 1536x1024 | 1024x1536 | 1792x1024 | 1024x1792. Domyślnie auto: model wybiera proporcje, zwykle poziome 16:9 (ok. 1376×768). Rozmiar to tylko wskazówka proporcji — ostateczną rozdzielczość ustala model.
response_formatstringopcjonalnyurl (domyślnie) — link do obrazu, albo b64_json — dane obrazu w base64 bezpośrednio w odpowiedzi.

Pozostałe pola (np. quality lub style) są ignorowane.

Przykłady

Przetwarzanie trwa zwykle 15–45 sekund na żądanie, a gdy używana jest trasa zapasowa — nawet około 4 minut. Ustaw timeout klienta na co najmniej 300 sekund, aby żądanie nie zostało przerwane przed ukończeniem obrazów.
curl https://ai.geraikita.com/v1/images/generations \
  --max-time 300 \
  -H "Authorization: Bearer gk-xxxxxxxx" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "gemini-3.1-flash-image",
    "prompt": "Plakat promocyjny mrożonej kawy z cukrem palmowym na drewnianym stole, ciepłe poranne światło, duży napis \"RABAT 20%\" u góry, styl płaskiej ilustracji",
    "n": 1,
    "size": "1024x1024"
  }'

Przykładowa odpowiedź

data zawiera jeden obiekt na każdy udany obraz — url lub b64_json zależnie od response_format. Jeśli część obrazów się nie uda, obiektów może być mniej niż n.

200 OK · application/json
{
  "created": 1793464057,
  "data": [
    { "url": "https://api.geraikita.com/cdn/ai-gambar/2026/11/xxxxxxxxxxxx.jpg" }
  ]
}

Nagłówki odpowiedzi: X-Geraikita-Images = liczba udanych obrazów, X-Geraikita-GP-Charged = GeraiPoints pobrane za to żądanie.

Cennik

Modele obrazów są rozliczane za każdy pomyślnie wygenerowany obraz — nie za tokeny. Aktualne ceny (mogą się zmieniać) są w tabeli poniżej i na stronie cennika.

Id modeluNazwaZa obraz
gemini-3.1-flash-imageNano Banana 2 (Gemini 3.1 Flash Image)100 GP / obraz
gemini-3-pro-imageNano Banana Pro (Gemini 3 Pro Image)100 GP / obraz
  • Nieudane obrazy nie są naliczane, podobnie jak odrzucone żądania (błędne parametry lub naruszenie zasad treści).
  • Saldo GeraiPoints musi pokrywać n × cena za obraz przed przetworzeniem żądania; w przeciwnym razie odpowiedź to 402.
  • Modele obrazów nie są objęte Unlimited plan, Bansos (darmowy plan) ani innymi darmowymi limitami — zawsze są pobierane z salda GeraiPoints.
  • Każdy obraz jest zapisywany jako jeden wiersz w historii użycia w dashboardzie, z etykietą Obraz.

Kody błędów

Błędy mają format OpenAI: obiekt error z polami message, type, param i code.

Statustype / codeZnaczenie
400invalid_request_errorNieprawidłowy parametr (np. n spoza 1–4, nieznany size, pusty lub zbyt długi prompt). Bez opłaty.
400content_policy_violationPrompt narusza zasady treści (patrz niżej). Bez opłaty.
401—Brak klucza API lub klucz jest nieprawidłowy.
402insufficient_quotaZa mało GeraiPoints na żądaną liczbę obrazów — doładuj proszę.
403—Ten model nie jest dozwolony dla tego klucza API — dodaj go do listy modeli klucza w dashboardzie.
404model_not_foundNieznany model lub nie jest to model obrazów.
429rate_limit_exceededZbyt wiele żądań — limit to 10 żądań/minutę na klucz. Odczekaj tyle, ile wskazuje nagłówek Retry-After.
502image_generation_failedGenerowanie obrazu nie powiodło się po stronie serwera. Bez opłaty — spróbuj ponownie.
Przykład błędu
{
  "error": {
    "message": "...",
    "type": "...",
    "param": "...",
    "code": "..."
  }
}

Wywołanie modelu obrazów przez /v1/chat/completions zwraca 400 ze wskazaniem tego endpointu — używaj /v1/images/generations.

Wskazówki do promptów

  • Prompty można pisać po polsku, angielsku, indonezyjsku lub w innych językach.
  • Model potrafi umieścić tekst na obrazie — wpisz dokładny tekst w cudzysłowie, np. napis "RABAT 20%".
  • Opisz obiekt, otoczenie, styl (zdjęcie, płaska ilustracja, 3D, akwarela), oświetlenie i kompozycję — im konkretniej, tym trafniejszy wynik.
  • Dobierz size do zastosowania: 1024x1024 do feedu, 1024x1792 do relacji/pionu, 1792x1024 do poziomych banerów.
  • Potrzebujesz kilku wariantów? Użyj n do 4 w jednym żądaniu — pamiętaj, że każdy udany obraz jest płatny.

Zasady treści

Następujące żądania są odrzucane:

  • Treści seksualne lub dosadne.
  • Treści wykorzystujące dzieci lub narażające je na niebezpieczeństwo.
  • Sadystyczna przemoc lub drastyczne sceny (gore).
  • Prawdziwi politycy lub prawdziwe osoby publiczne.

Odrzucenia zwracają 400 z kodem content_policy_violation i nie są naliczane.

Linki do obrazów i przechowywanie

URL w data[].url jest publiczny — każdy, kto ma link, może otworzyć obraz — i nie ma gwarancji, że będzie dostępny zawsze. Pobierz i zapisz kopię we własnym magazynie zaraz po wygenerowaniu albo poproś o b64_json, aby otrzymać dane obrazu bezpośrednio w odpowiedzi.