Top.Mail.Ru
Войти

Документация

Бесплатная генерация изображений


Лимиты использования
Бесплатный эндпоинт имеет ограничения:

  • Максимум 6 запросов в минуту
  • Запрещены параллельные запросы (дождитесь завершения текущей генерации)

Аутентификация
Все запросы требуют токен аутентификации. Токен передается в теле запроса:

{
    "token": "ваш_api_ключ"
}

Генерация изображений через Pollinations API

Базовый эндпоинт
POST https://neuroimg.art/api/v1/free-generate

Параметры запроса

Параметр Тип Обязательный Описание Диапазон По умолчанию
token string Да Ваш API-ключ - -
prompt string Да Текстовое описание для генерации изображения 1-500 символов -
width integer Нет Ширина изображения 64-1024 1024
height integer Нет Высота изображения 64-1024 1024
seed integer Нет Сид для воспроизводимости (-1 = случайный) -1 или ≥0 -1
nsfw_filter boolean Нет Фильтр NSFW контента - false
send_to_gallery boolean Нет Сохранить изображение в публичную галерею - false
stream boolean Нет Включить потоковый ответ - false
response_type string Нет Формат ответа: url (ссылка) или base64 (кодированное изображение) url/base64 url

Потоковые ответы
При stream: true сервер отправляет статусы в реальном времени:

  1. Начало обработки:
{
    "status": "WAITING",
    "queue_position": 1,
    "queue_total": 1,
    "job_id": "free-12345678"
}
  1. Прогресс генерации:
{
    "status": "RUNNING",
    "progress": "Processing image...",
    "job_id": "free-12345678",
}
  1. Успешное завершение:
{
    "status": "SUCCESS",
    "job_id": "free-12345678",
    "image_url": "https://neuroimg.art/free/12345678.png",
    "seed": 42424242
}

Пример запроса

{
    "token": "ваш_ключ",
    "prompt": "реалистичный кот в скафандре",
    "width": 768,
    "height": 768,
    "seed": 12345,
    "stream": true,
    "response_type": "url"
}

Интеграция с потоковым режимом

Python (асинхронный)

import aiohttp
import json

async def free_generate(prompt: str, api_key: str):
    async with aiohttp.ClientSession() as session:
        payload = {
            "token": api_key,
            "prompt": prompt,
            "stream": True
        }
        
        async with session.post(
            "https://neuroimg.art/api/v1/free-generate",
            json=payload
        ) as response:
            async for line in response.content:
                if line:
                    data = json.loads(line)
                    if data["status"] == "SUCCESS":
                        return data["image_url"]
                    print(f"Статус: {data['status']}")

JavaScript

async function freeGenerate(prompt, apiKey) {
    const response = await fetch('https://neuroimg.art/api/v1/free-generate', {
        method: 'POST',
        headers: {'Content-Type': 'application/json'},
        body: JSON.stringify({
            token: apiKey,
            prompt: prompt,
            stream: true
        })
    });

    const reader = response.body.getReader();
    while (true) {
        const { value, done } = await reader.read();
        if (done) break;
        const data = JSON.parse(new TextDecoder().decode(value));
        console.log(`Статус: ${data.status}`);
        if (data.status === 'SUCCESS') return data.image_url;
    }
}

Обработка ошибок

Коды ответов

  • 429 Too Many Requests:
    • Превышен лимит (6 запросов/минуту)
    • Активный запрос уже выполняется

Формат ошибки:

{
    "error": "rate_limit_exceeded",
    "message": "Превышен лимит запросов (6 в минуту). Пожалуйста, подождите перед следующим запросом."
}
{
    "error": "concurrent_request",
    "message": "У вас уже есть активный запрос. Дождитесь его завершения прежде чем делать новый."
}

Рекомендации

  1. Для коммерческого использования перейдите на платные эндпоинты (/v1/generate).
  2. Избегайте длинных промптов (>500 символов) для стабильности генерации.
  3. Используйте seed для воссоздания похожих результатов.