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
https://ai.geraikita.com/v1/images/generations| Nagłówek | Wartość |
|---|---|
| Authorization | Bearer gk-... (lub x-api-key: gk-...) |
| Content-Type | application/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
| Parametr | Typ | Opis |
|---|---|---|
model | stringwymagany | ID modelu obrazów, np. gemini-3.1-flash-image lub gemini-3-pro-image — pełna lista jest w tabeli cen poniżej. |
prompt | stringwymagany | Opis oczekiwanego obrazu, maksymalnie 4000 znaków. |
n | integeropcjonalny | Liczba obrazów, 1–4. Domyślnie 1. Każdy udany obraz jest rozliczany osobno. |
size | stringopcjonalny | Jedna 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_format | stringopcjonalny | url (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
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.
{
"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 modelu | Nazwa | Za obraz |
|---|---|---|
| gemini-3.1-flash-image | Nano Banana 2 (Gemini 3.1 Flash Image) | 100 GP / obraz |
| gemini-3-pro-image | Nano 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ź to402. - 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.
| Status | type / code | Znaczenie |
|---|---|---|
| 400 | invalid_request_error | Nieprawidłowy parametr (np. n spoza 1–4, nieznany size, pusty lub zbyt długi prompt). Bez opłaty. |
| 400 | content_policy_violation | Prompt narusza zasady treści (patrz niżej). Bez opłaty. |
| 401 | — | Brak klucza API lub klucz jest nieprawidłowy. |
| 402 | insufficient_quota | Za 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. |
| 404 | model_not_found | Nieznany model lub nie jest to model obrazów. |
| 429 | rate_limit_exceeded | Zbyt wiele żądań — limit to 10 żądań/minutę na klucz. Odczekaj tyle, ile wskazuje nagłówek Retry-After. |
| 502 | image_generation_failed | Generowanie obrazu nie powiodło się po stronie serwera. Bez opłaty — spróbuj ponownie. |
{
"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
sizedo zastosowania:1024x1024do feedu,1024x1792do relacji/pionu,1792x1024do poziomych banerów. - Potrzebujesz kilku wariantów? Użyj
ndo 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
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.