Google Imagen 3 Image Generation API

Google's most advanced image model with photorealistic quality

✓ Photorealistic quality

✓ Multiple resolutions

✓ Fast generation

✓ Batch support

Аутентификация

Google Imagen 3 API қызметіне Doitong API арқылы қол жеткізу үшін Doitong API кілтін пайдаланыңыз. Оны GraphQL мутациясына немесе REST API тақырыптарына (headers) қосыңыз.

Маңызды: Doitong API кілтін қауіпсіз сақтаңыз және оны ешқашан клиенттік кодта көрсетпеңіз. API сұрауларын әрдайым өзіңіздің backend серверіңізден жасаңыз.
// GraphQL Header
{
  "Authorization": "Bearer YOUR_API_KEY"
}

// REST Header
"X-API-Key": "YOUR_API_KEY"

Жылдам бастау

Google Imagen 3 API қызметімен бірнеше минутта жұмысты бастаңыз. Алғашқы text to image жасау үшін осы қарапайым қадамдарды орындаңыз.

1-қадам: API кілтін алу

Doitong тіркелгісіне тіркеліп, API кілтін жасау үшін бақылау тақтасына (dashboard) өтіңіз.

2-қадам: Алғашқы сұрауды жасау

Алғашқы API сұрауын жасау үшін төмендегі код мысалдарының бірін пайдаланыңыз.

curl -X POST https://api.doitong.com/graphql \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -d '{
    "query": "mutation Generate($input: GenerateInput!) { generate(input: $input) { id status type provider url metadata creditCost } }",
    "variables": {
      "input": {
        "type": "IMAGE",
        "provider": "imagen",
        "input": {
          "text": "A futuristic city with flying cars and neon lights"
        },
        "options": {
          "width": 1024,
          "height": 1024
        }
      }
    }
  }'
const response = await fetch('https://api.doitong.com/graphql', {
  method: 'POST',
  headers: {
    'Content-Type': 'application/json',
    'Authorization': 'Bearer YOUR_API_KEY'
  },
  body: JSON.stringify({
    query: `
      mutation GenerateImage($input: ImageGenerationInput!) {
        generateImage(input: $input) {
          id
          url
          width
          height
        }
      }
    `,
    variables: {
      input: {
        service: 'imagen',
        prompt: 'A futuristic city with flying cars and neon lights',
        width: 1024,
        height: 1024
      }
    }
  })
});

const data = await response.json();
console.log('Image:', data.data.generateImage);
import requests
import json

url = "https://api.doitong.com/graphql"
headers = {
    "Content-Type": "application/json",
    "Authorization": "Bearer YOUR_API_KEY"
}

query = """
mutation Generate($input: GenerateInput!) {
  generate(input: $input) {
    id
    status
    type
    provider
    url
    metadata
    creditCost
  }
}
"""

variables = {
    "input": {
        "type": "IMAGE",
        "provider": "imagen",
        "input": {
            "text": "A futuristic city with flying cars and neon lights"
        },
        "options": {
            "width": 1024,
            "height": 1024
        }
    }
}

response = requests.post(url, json={
    "query": query,
    "variables": variables
}, headers=headers)

data = response.json()
print("Result:", data["data"]["generate"])
mutation Generate($input: GenerateInput!) {
  generate(input: $input) {
    id
    status
    type
    provider
    url
    metadata
    creditCost
    createdAt
  }
}

# Variables
{
  "input": {
    "type": "IMAGE",
    "provider": "imagen",
    "input": {
      "text": "A futuristic city with flying cars and neon lights"
    },
    "options": {
      "width": 1024,
      "height": 1024,
      "version": "imagen-3-fast-turbo",
      "quality": "high"
    }
  }
}

Бағалар

Google Imagen 3 API кредиттік баға үлгісін пайдаланады. Кредиттер жасалған мазмұнның күрделілігі мен ұзақтығына байланысты жұмсалады.

Мүмкіндік Кредиттер Сипаттама
Стандартты ажыратымдылық 10-20 Кредиттер 512x512-ден 1024x1024 пиксельге дейін
Жоғары ажыратымдылық 30-50 Кредиттер 2048x2048 пиксель және одан жоғары

API соңғы нүктелері

Google Imagen 3 API біздің бірыңғай GraphQL соңғы нүктесі арқылы қолжетімді.

GraphQL соңғы нүктесі

POST https://api.doitong.com/graphql

REST соңғы нүктесі

POST https://api.doitong.com/v1/text_to_image

Параметрлер

Google Imagen 3 API сұраулары үшін қолжетімді параметрлер:

Параметр Түрі Міндетті Сипаттама
service Жол (String) Yes Қызмет идентификаторы: "imagen"
prompt Жол (String) Yes Жасалатын нәрсенің мәтіндік сипаттамасы
width Бүтін сан (Integer) No Кескіннің ені пиксельмен (әдепкі: 1024)
height Бүтін сан (Integer) No Кескіннің биіктігі пиксельмен (әдепкі: 1024)
version Жол (String) No Model version: "imagen-3-large", "imagen-3-medium", "imagen-3-fast-turbo"
webhookUrl Жол (String) No Хабарландыруларды алуға арналған URL

Жауап форматы

Барлық API жауаптары бірыңғай форматқа сәйкес келеді:

Сәтті жауап

{
  "data": {
    "generateimage": {
      "id": "abc123xyz",
      "status": "processing",
      "url": null,
      "webhookUrl": "https://your-webhook.com/callback",
      "createdAt": "2024-01-01T00:00:00Z"
    }
  }
}

Аяқталған жауап

{
  "data": {
    "generateimage": {
      "id": "abc123xyz",
      "status": "completed",
      "url": "https://cdn.doitong.com/outputs/abc123xyz.jpg",
      "duration": null,
      "createdAt": "2024-01-01T00:00:00Z"
    }
  }
}

Қателерді өңдеу

API стандартты HTTP күй кодтарын пайдаланады және егжей-тегжейлі қате хабарларын қайтарады.

Жиі кездесетін қате кодтары

Күй коды Қате түрі Сипаттама
400 Bad Request Invalid parameters or malformed request
401 Unauthorized Missing or invalid API key
402 Payment Required Insufficient credits
429 Too Many Requests Rate limit exceeded
500 Internal Server Error Server error, please retry

Қате жауабының форматы

{
  "errors": [
    {
      "message": "Insufficient credits for this operation",
      "extensions": {
        "code": "INSUFFICIENT_CREDITS",
        "creditsRequired": 100,
        "creditsAvailable": 50
      }
    }
  ]
}

Вебхуктар

text to image жасау аяқталған кезде нақты уақыт режимінде хабарландырулар алыңыз.

Вебхуктарды баптау

Include a <code>webhookUrl</code> parameter in your request to receive a POST notification when processing is complete.

Вебхук деректері (payload)

{
  "id": "abc123xyz",
  "status": "completed",
  "url": "https://cdn.doitong.com/outputs/abc123xyz.jpg",
  "service": "imagen",
  "createdAt": "2024-01-01T00:00:00Z",
  "completedAt": "2024-01-01T00:01:00Z",
  "metadata": {
    "duration": null,
    "width": 1920,
    "height": 1080
  }
}

Вебхук қауіпсіздігі

Барлық вебхук сұраулары тексеру үшін қолтаңба тақырыбын (signature header) қамтиды:

X-Doitong-Signature: sha256=abc123...

Сұрау шектеулері

Әділ пайдалану мен жүйе тұрақтылығын қамтамасыз ету үшін келесі шектеулер қолданылады:

Тариф Минутына сұраулар Бір мезгілдегі тапсырмалар Күндік шектеу
Тегін 10 1 100
Бастапқы 30 3 1,000
Pro 60 10 10,000
Enterprise Арнайы Арнайы Шексіз
Шектеу тақырыптары: Ағымдағы шектеу күйін жауап тақырыптарынан тексеріңіз:
  • X-RateLimit-Limit: Maximum requests per window
  • X-RateLimit-Remaining: Requests remaining
  • X-RateLimit-Reset: Window reset timestamp

Үздік тәжірибелер

1. Промптарды оңтайландыру

Жақсы нәтиже алу үшін анық, сипаттамалық промптар жазыңыз:

  • Be specific about visual elements, style, and mood
  • Include details about lighting, camera angles, and composition
  • Avoid contradictory or impossible requests

2. Асинхронды өңдеуді басқару

Жасау процесі асинхронды. Тиісті сұрау (polling) немесе вебхуктарды енгізіңіз:

// Polling example
async function pollStatus(jobId) {
  let status = 'processing';
  while (status === 'processing') {
    await sleep(2000); // Wait 2 seconds
    const result = await checkJobStatus(jobId);
    status = result.status;
  }
  return result;
}

3. Қателерден кейін қалпына келтіру

Экспоненциалды күту (exponential backoff) арқылы қайталау логикасын енгізіңіз:

async function retryWithBackoff(fn, maxRetries = 3) {
  for (let i = 0; i < maxRetries; i++) {
    try {
      return await fn();
    } catch (error) {
      if (i === maxRetries - 1) throw error;
      await sleep(Math.pow(2, i) * 1000);
    }
  }
}

4. Кредиттердің жұмсалуын бақылау

Жұмыстың үзілмеуі үшін кредиттердің жұмсалуын қадағалаңыз:

  • Check credit balance before large batch operations
  • Set up alerts for low credit thresholds
  • Implement credit-aware request queuing

Бастауға дайынсыз ба?

Керемет мазмұн жасау үшін Google Imagen 3 API қызметін пайдаланатын мыңдаған әзірлеушілерге қосылыңыз

API кілтін алу Бағаларды көру