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