curl --request POST \
--url https://toapis.com/v1/images/generations \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '{
"model": "grok-4-1-image",
"prompt": "Футуристический город в стиле киберпанк ночью",
"size": "16:9",
"n": 1
}'
curl --request POST \
--url https://toapis.com/v1/images/generations \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '{
"model": "grok-4-1-image",
"prompt": "Преобразуйте это изображение в стиль акварельной живописи",
"size": "1:1",
"n": 1,
"image_urls": [
"https://example.com/photo.jpg"
]
}'
import requests
response = requests.post(
"https://toapis.com/v1/images/generations",
headers={
"Authorization": "Bearer your-ToAPIs-key",
"Content-Type": "application/json"
},
json={
"model": "grok-4-1-image",
"prompt": "Футуристический город в стиле киберпанк ночью",
"size": "16:9",
"n": 1
}
)
task = response.json()
print(f"ID задачи: {task['id']}")
print(f"Статус: {task['status']}")
const response = await fetch('https://toapis.com/v1/images/generations', {
method: 'POST',
headers: {
'Authorization': 'Bearer your-ToAPIs-key',
'Content-Type': 'application/json'
},
body: JSON.stringify({
model: 'grok-4-1-image',
prompt: 'Футуристический город в стиле киберпанк ночью',
size: '16:9',
n: 1
})
});
const task = await response.json();
console.log(`ID задачи: ${task.id}`);
console.log(`Статус: ${task.status}`);
{
"id": "img_abc123def456",
"object": "generation.task",
"model": "grok-4-1-image",
"status": "queued",
"progress": 0,
"created_at": 1768380224,
"metadata": {}
}
{
"error": {
"code": "invalid_request",
"message": "Поле 'prompt' обязательно.",
"param": "prompt",
"type": "invalid_request_error"
}
}
{
"error": {
"code": "unauthorized",
"message": "Неверный API ключ",
"type": "authentication_error"
}
}
Grok Image
Grok Генерация изображений
Генерация изображений с помощью моделей Grok, поддержка текст-в-изображение и изображение-в-изображение
POST
/
v1
/
images
/
generations
curl --request POST \
--url https://toapis.com/v1/images/generations \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '{
"model": "grok-4-1-image",
"prompt": "Футуристический город в стиле киберпанк ночью",
"size": "16:9",
"n": 1
}'
curl --request POST \
--url https://toapis.com/v1/images/generations \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '{
"model": "grok-4-1-image",
"prompt": "Преобразуйте это изображение в стиль акварельной живописи",
"size": "1:1",
"n": 1,
"image_urls": [
"https://example.com/photo.jpg"
]
}'
import requests
response = requests.post(
"https://toapis.com/v1/images/generations",
headers={
"Authorization": "Bearer your-ToAPIs-key",
"Content-Type": "application/json"
},
json={
"model": "grok-4-1-image",
"prompt": "Футуристический город в стиле киберпанк ночью",
"size": "16:9",
"n": 1
}
)
task = response.json()
print(f"ID задачи: {task['id']}")
print(f"Статус: {task['status']}")
const response = await fetch('https://toapis.com/v1/images/generations', {
method: 'POST',
headers: {
'Authorization': 'Bearer your-ToAPIs-key',
'Content-Type': 'application/json'
},
body: JSON.stringify({
model: 'grok-4-1-image',
prompt: 'Футуристический город в стиле киберпанк ночью',
size: '16:9',
n: 1
})
});
const task = await response.json();
console.log(`ID задачи: ${task.id}`);
console.log(`Статус: ${task.status}`);
{
"id": "img_abc123def456",
"object": "generation.task",
"model": "grok-4-1-image",
"status": "queued",
"progress": 0,
"created_at": 1768380224,
"metadata": {}
}
{
"error": {
"code": "invalid_request",
"message": "Поле 'prompt' обязательно.",
"param": "prompt",
"type": "invalid_request_error"
}
}
{
"error": {
"code": "unauthorized",
"message": "Неверный API ключ",
"type": "authentication_error"
}
}
Для пользователей из материкового Китая: используйте
https://toapis.cn в качестве эндпоинта (Base URL). Замените https://toapis.com на https://toapis.cn во всех примерах этого документа.- Унифицированный API генерации изображений
- Используйте параметр model для выбора модели
grok-4-1-imageилиgrok-4-2-image - Поддержка текст-в-изображение и изображение-в-изображение
- Асинхронное управление задачами, запрос результатов по ID задачи
Важное изменение: Для повышения производительности и контроля затрат мы больше не поддерживаем передачу данных изображений в формате base64 напрямую в
image_urls. Пожалуйста, сначала используйте API загрузки изображений для загрузки изображений и получения URL, а затем вызывайте этот эндпоинт.Авторизация
string
обязательно
Все API требуют аутентификации Bearer TokenПолучите API Key на странице управления API ключамиДобавьте в заголовок запроса:
Authorization: Bearer YOUR_API_KEY
Тело запроса
string
обязательно
Название модели генерации изображенийПоддерживаемые модели:
grok-4-1-image- Модель генерации изображений Grok 4.1grok-4-2-image- Модель генерации изображений Grok 4.2
"grok-4-1-image"string
обязательно
Текстовое описание для генерации изображенияМаксимум 1000 символов
string
по умолчанию:"1:1"
Соотношение сторон изображенияПоддерживаемые форматы:
1:1- Квадрат (по умолчанию)2:3- Портрет3:2- Пейзаж16:9- Широкоэкранный пейзаж9:16- Широкоэкранный портрет
integer
по умолчанию:1
Количество генерируемых изображенийПоддерживает 1, 2, 4. Оплата будет предварительно вычтена на основе количестваПо умолчанию: 1⚠️ Примечание: Необходимо вводить простое число (например,
1), не используйте кавычки, иначе возникнет ошибкаstring[]
Список URL-адресов эталонных изображений для генерации изображение-в-изображение⚠️ Только формат URL (base64 больше не поддерживается)
- Публично доступный URL изображения (http:// или https://)
- Вы можете использовать API загрузки изображений для загрузки локальных изображений и получения URL
- Максимум 5 изображений
- Одно изображение до 10 МБ
- Поддерживаемые форматы: jpeg, jpg, png, webp
Ответ
string
Уникальный идентификатор задачи для запросов статуса
string
Тип объекта, всегда
generation.taskstring
Используемая модель
string
Статус задачи
queued- В очередиin_progress- Обрабатываетсяcompleted- Успешно завершеноfailed- Ошибка
integer
Прогресс задачи в процентах (0-100)
integer
Временная метка создания (Unix timestamp)
object
Метаданные задачи
curl --request POST \
--url https://toapis.com/v1/images/generations \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '{
"model": "grok-4-1-image",
"prompt": "Футуристический город в стиле киберпанк ночью",
"size": "16:9",
"n": 1
}'
curl --request POST \
--url https://toapis.com/v1/images/generations \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '{
"model": "grok-4-1-image",
"prompt": "Преобразуйте это изображение в стиль акварельной живописи",
"size": "1:1",
"n": 1,
"image_urls": [
"https://example.com/photo.jpg"
]
}'
import requests
response = requests.post(
"https://toapis.com/v1/images/generations",
headers={
"Authorization": "Bearer your-ToAPIs-key",
"Content-Type": "application/json"
},
json={
"model": "grok-4-1-image",
"prompt": "Футуристический город в стиле киберпанк ночью",
"size": "16:9",
"n": 1
}
)
task = response.json()
print(f"ID задачи: {task['id']}")
print(f"Статус: {task['status']}")
const response = await fetch('https://toapis.com/v1/images/generations', {
method: 'POST',
headers: {
'Authorization': 'Bearer your-ToAPIs-key',
'Content-Type': 'application/json'
},
body: JSON.stringify({
model: 'grok-4-1-image',
prompt: 'Футуристический город в стиле киберпанк ночью',
size: '16:9',
n: 1
})
});
const task = await response.json();
console.log(`ID задачи: ${task.id}`);
console.log(`Статус: ${task.status}`);
{
"id": "img_abc123def456",
"object": "generation.task",
"model": "grok-4-1-image",
"status": "queued",
"progress": 0,
"created_at": 1768380224,
"metadata": {}
}
{
"error": {
"code": "invalid_request",
"message": "Поле 'prompt' обязательно.",
"param": "prompt",
"type": "invalid_request_error"
}
}
{
"error": {
"code": "unauthorized",
"message": "Неверный API ключ",
"type": "authentication_error"
}
}