parts z tekstem
(instrukcja generowania) i maksymalnie 4 obrazami (przekazywanymi jako base64 w inlineData)."16:9" - Krajobraz (Rozdzielczość: 1536x864) [Domyślne]"9:16" - Portret (Rozdzielczość: 864x1536)"1:1" - Kwadrat (Rozdzielczość: 1024x1024)API zwraca tablicę kompatybilną z formatem strumieniowym Gemini (streamGenerateContent). Wygenerowany obraz znajduje się w pierwszym elemencie tablicy w formacie Base64:
[
{
"candidates": [
{
"content": {
"parts": [
{
"inlineData": {
"mimeType": "image/png",
"data": "iVBORw0KGgoAAAANSUhEUgAA..."
}
}
],
"role": "model"
},
"finishReason": "STOP",
"index": 0
}
]
}
]
# Generowanie obrazu 16:9 na podstawie samego tekstu
curl -X POST \
-H "Content-Type: application/json" \
-d '{
"contents": [
{
"role": "user",
"parts": [
{
"text": "Kosmiczny kot pijący kawę na księżycu, styl olejny"
}
]
}
],
"generationConfig": {
"responseModalities": ["IMAGE"],
"imageConfig": {
"aspectRatio": "16:9"
}
}
}' \
https://api.sudvid.ai/v1beta/models/gemini-3.1-flash-image-preview:streamGenerateContent
const generateImage = async () => {
const payload = {
contents: [
{
role: "user",
parts: [
{
text: "Piękny zachód słońca nad polskimi Tatrami, fotorealizm"
}
]
}
],
generationConfig: {
responseModalities: ["IMAGE"],
imageConfig: {
aspectRatio: "1:1" // Kwadrat (1024x1024)
}
}
};
try {
const response = await fetch('https://api.sudvid.ai/v1beta/models/gemini-3.1-flash-image-preview:streamGenerateContent', {
method: 'POST',
headers: {
'Content-Type': 'application/json'
},
body: JSON.stringify(payload)
});
const data = await response.json();
const base64Data = data[0].candidates[0].content.parts[0].inlineData.data;
const mimeType = data[0].candidates[0].content.parts[0].inlineData.mimeType;
console.log("Wygenerowany obraz Base64:", `data:${mimeType};base64,${base64Data}`);
} catch (error) {
console.error("Błąd podczas generowania:", error);
}
};
import requests
import json
url = "https://api.sudvid.ai/v1beta/models/gemini-3.1-flash-image-preview:streamGenerateContent"
payload = {
"contents": [
{
"role": "user",
"parts": [
{
"text": "Cyberpunkowy motocyklista w strugach deszczu, neonowe odbicia"
}
]
}
],
"generationConfig": {
"responseModalities": ["IMAGE"],
"imageConfig": {
"aspectRatio": "9:16" # Portret (864x1536)
}
}
}
headers = {
"Content-Type": "application/json"
}
response = requests.post(url, headers=headers, data=json.dumps(payload))
if response.status_code == 200:
data = response.json()
inline_data = data[0]["candidates"][0]["content"]["parts"][0]["inlineData"]
base64_image = inline_data["data"]
mime_type = inline_data["mimeType"]
print(f"Sukces! Pobrano obraz w formacie {mime_type}")
# Możesz go zapisać np. dekodując base64 i zapisując do pliku
else:
print(f"Błąd {response.status_code}: {response.text}")