curl --request POST \
--url https://toapis.com/v1/images/generations \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '{
"model": "flux-kontext-pro",
"prompt": "Киберпанк-город ночью, неоновые огни",
"size": "16:9",
"metadata": {
"response_format": "png"
}
}'
import requests
response = requests.post(
"https://toapis.com/v1/images/generations",
headers={
"Authorization": "Bearer your-ToAPIs-key",
"Content-Type": "application/json"
},
json={
"model": "flux-kontext-pro",
"prompt": "Киберпанк-город ночью, неоновые огни",
"size": "16:9",
"metadata": {
"response_format": "png"
}
}
)
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: 'flux-kontext-pro',
prompt: 'Киберпанк-город ночью, неоновые огни',
size: '16:9',
metadata: {
response_format: 'png'
}
})
});
const task = await response.json();
console.log(`ID задачи: ${task.id}`);
console.log(`Статус: ${task.status}`);
{
"id": "task_img_abc123def456",
"object": "generation.task",
"model": "flux-kontext-pro",
"status": "queued",
"progress": 0,
"created_at": 1703884800,
"metadata": {}
}
Flux Kontext
Генерация изображений Flux Kontext
Генерация и редактирование изображений с помощью модели Flux Kontext, поддержка текст-в-изображение и редактирование изображений
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": "flux-kontext-pro",
"prompt": "Киберпанк-город ночью, неоновые огни",
"size": "16:9",
"metadata": {
"response_format": "png"
}
}'
import requests
response = requests.post(
"https://toapis.com/v1/images/generations",
headers={
"Authorization": "Bearer your-ToAPIs-key",
"Content-Type": "application/json"
},
json={
"model": "flux-kontext-pro",
"prompt": "Киберпанк-город ночью, неоновые огни",
"size": "16:9",
"metadata": {
"response_format": "png"
}
}
)
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: 'flux-kontext-pro',
prompt: 'Киберпанк-город ночью, неоновые огни',
size: '16:9',
metadata: {
response_format: 'png'
}
})
});
const task = await response.json();
console.log(`ID задачи: ${task.id}`);
console.log(`Статус: ${task.status}`);
{
"id": "task_img_abc123def456",
"object": "generation.task",
"model": "flux-kontext-pro",
"status": "queued",
"progress": 0,
"created_at": 1703884800,
"metadata": {}
}
Для пользователей из материкового Китая: используйте
https://toapis.cn в качестве эндпоинта (Base URL). Замените https://toapis.com на https://toapis.cn во всех примерах этого документа.- Модель Flux Kontext для генерации и редактирования изображений
- Выбор модели через параметр
model:flux-kontext-pro(Pro) илиflux-kontext-max(Max, более высокое качество) - Поддержка текст-в-изображение и редактирование изображений
- С эталонным изображением — режим редактирования, без эталонного — текст-в-изображение
- Асинхронный режим, возвращает
task_idдля запроса результата
Важное изменение: Для улучшения производительности и контроля затрат мы больше не поддерживаем передачу данных изображений в формате base64 непосредственно в
image_urls. Пожалуйста, сначала используйте эндпоинт загрузки изображений для загрузки изображений, а затем используйте полученный URL в этом API.Авторизация
string
обязательно
Все эндпоинты требуют аутентификации Bearer TokenПолучить API Key: Перейдите на страницу управления API Key для получения вашего API KeyДобавьте в заголовки запроса:
Authorization: Bearer YOUR_API_KEY
Параметры запроса
string
обязательно
Название модели генерации изображенийВарианты:
flux-kontext-pro- Pro-версияflux-kontext-max- Max-версия, более высокое качество
string
обязательно
Текстовое описание для генерации изображения
string
Соотношение сторон изображенияПо умолчанию:
- С эталонным изображением:
match_input_image(соответствие входному изображению) - Без эталонного:
16:9
| Значение | Описание |
|---|---|
match_input_image | Соответствие входному изображению (только при редактировании) |
1:1 | Квадрат |
4:3 / 3:4 | Классические пропорции |
16:9 / 9:16 | Широкоэкранный / вертикальный |
3:2 / 2:3 | Стандартные фото |
21:9 / 9:21 | Ультраширокий / ультраузкий |
string[]
Массив URL эталонных изображений для редактирования⚠️ Поддерживается только формат URL (base64 не поддерживается)
- Публично доступные URL изображений (http:// или https://)
- Используйте эндпоинт загрузки изображений для загрузки локальных изображений и получения URL
- Максимум 1 изображение
- При передаче изображения — режим редактирования, без передачи — режим текст-в-изображение
object
Метаданные для передачи дополнительных настроек
Показать Поля metadata
Показать Поля metadata
string
по умолчанию:"png"
Формат выходного изображенияВарианты:
png, jpginteger
по умолчанию:2
Допуск фильтра безопасностиДиапазон:
0 - 6, чем выше значение — тем выше допускboolean
по умолчанию:false
Включить усиление промпта
true: автоматическая оптимизация/расширение промптаfalse: использовать исходный промпт (по умолчанию)
Ответ
string
Уникальный идентификатор задачи для запроса статуса
string
Тип объекта, фиксированное значение
generation.taskstring
Название использованной модели
string
Статус задачи
queued- В очереди на обработкуin_progress- Обрабатываетсяcompleted- Успешно завершеноfailed- Ошибка
integer
Процент выполнения задачи (0-100)
integer
Unix-временная метка создания задачи
object
Метаданные задачи
Примеры использования
Сценарий 1: Текст-в-изображение
{
"model": "flux-kontext-pro",
"prompt": "Киберпанк-город ночью, неоновые огни",
"size": "16:9",
"metadata": {
"response_format": "png",
"safety_tolerance": 2
}
}
Сценарий 2: Редактирование изображения
{
"model": "flux-kontext-max",
"prompt": "Преобразовать это фото в акварельный стиль",
"size": "match_input_image",
"image_urls": ["https://example.com/photo.jpg"],
"metadata": {
"response_format": "jpg",
"prompt_upsampling": true
}
}
Сценарий 3: Высококачественная генерация (модель Max)
{
"model": "flux-kontext-max",
"prompt": "Милый рыжий кот на подоконнике на солнце, реалистичный стиль",
"size": "1:1",
"metadata": {
"response_format": "png",
"safety_tolerance": 3
}
}
Запрос результатов задачиГенерация изображений является асинхронной задачей, после отправки возвращается ID задачи. Используйте конечную точку Получить статус изображения для запроса прогресса и результатов генерации.
curl --request POST \
--url https://toapis.com/v1/images/generations \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '{
"model": "flux-kontext-pro",
"prompt": "Киберпанк-город ночью, неоновые огни",
"size": "16:9",
"metadata": {
"response_format": "png"
}
}'
import requests
response = requests.post(
"https://toapis.com/v1/images/generations",
headers={
"Authorization": "Bearer your-ToAPIs-key",
"Content-Type": "application/json"
},
json={
"model": "flux-kontext-pro",
"prompt": "Киберпанк-город ночью, неоновые огни",
"size": "16:9",
"metadata": {
"response_format": "png"
}
}
)
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: 'flux-kontext-pro',
prompt: 'Киберпанк-город ночью, неоновые огни',
size: '16:9',
metadata: {
response_format: 'png'
}
})
});
const task = await response.json();
console.log(`ID задачи: ${task.id}`);
console.log(`Статус: ${task.status}`);
{
"id": "task_img_abc123def456",
"object": "generation.task",
"model": "flux-kontext-pro",
"status": "queued",
"progress": 0,
"created_at": 1703884800,
"metadata": {}
}