← Powrót do Studio

Dokumentacja API

Endpoint Główny

POST https://api.sudvid.ai/v1beta/models/gemini-3.1-flash-image-preview:streamGenerateContent

Parametry wejściowe (Payload JSON)

Format Odpowiedzi (Response JSON)

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
      }
    ]
  }
]

Przykłady implementacji

# 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}")