Используйте API RunComfy для запуска blackforestlabs/flux-3-max/keyframes-to-video. Допустимые входы и выходы см. в схеме.
curl --request POST \
--url https://model-api.runcomfy.net/v1/models/blackforestlabs/flux-3-max/keyframes-to-video \
--header "Content-Type: application/json" \
--header "Authorization: Bearer <token>" \
--data '{
"prompt": "He sets the robe on the rock, lowers himself into the steaming pool, then turns toward the woman beside him and smiles. Snow keeps falling. Water, soft wind, and a quiet laugh. No text.",
"keyframes": [
{
"image_url": "https://playgrounds-storage-public.runcomfy.net/tools/7471/media-files/ref-promo-1.webp",
"frame_index": 0
},
{
"image_url": "https://playgrounds-storage-public.runcomfy.net/tools/7471/media-files/ref-promo-2.webp",
"frame_index": 60
},
{
"image_url": "https://playgrounds-storage-public.runcomfy.net/tools/7471/media-files/ref-promo-3.webp",
"frame_index": 120
}
]
}'Задайте для переменной окружения YOUR_API_TOKEN ваш API-ключ (управление в Профиль) и передавайте в каждом запросе Bearer-токен в заголовке Authorization : Authorization: Bearer $YOUR_API_TOKEN.
Отправьте асинхронную задачу генерации и сразу получите request_id и URL для статуса, результатов и отмены.
curl --request POST \
--url https://model-api.runcomfy.net/v1/models/blackforestlabs/flux-3-max/keyframes-to-video \
--header "Content-Type: application/json" \
--header "Authorization: Bearer <token>" \
--data '{
"prompt": "He sets the robe on the rock, lowers himself into the steaming pool, then turns toward the woman beside him and smiles. Snow keeps falling. Water, soft wind, and a quiet laugh. No text.",
"keyframes": [
{
"image_url": "https://playgrounds-storage-public.runcomfy.net/tools/7471/media-files/ref-promo-1.webp",
"frame_index": 0
},
{
"image_url": "https://playgrounds-storage-public.runcomfy.net/tools/7471/media-files/ref-promo-2.webp",
"frame_index": 60
},
{
"image_url": "https://playgrounds-storage-public.runcomfy.net/tools/7471/media-files/ref-promo-3.webp",
"frame_index": 120
}
]
}'Текущее состояние по request_id: «in_queue», «in_progress», «completed» или «cancelled».
curl --request GET \
--url https://model-api.runcomfy.net/v1/requests/{request_id}/status \
--header "Authorization: Bearer <token>"Финальные выходные данные и метаданные для request_id; если задача не завершена, в ответе — текущее состояние для дальнейшего опроса.
curl --request GET \
--url https://model-api.runcomfy.net/v1/requests/{request_id}/result \
--header "Authorization: Bearer <token>"Отмена задачи в очереди по request_id; выполняющиеся задачи отменить нельзя.
curl --request POST \
--url https://model-api.runcomfy.net/v1/requests/{request_id}/cancel \
--header "Authorization: Bearer <token>"Укажите публично доступный HTTPS URL. Хост должен разрешать серверные запросы (без входа и cookie), без жёсткого лимита и блокировки ботов. Рекомендуется: изображения ≤ 50 МБ (~4K), видео ≤ 100 МБ (~2–5 мин при 720p). Для приватных ресурсов — стабильные или подписанные URL.
{
"type": "object",
"title": "Схема входа",
"required": [
"prompt",
"keyframes"
],
"properties": {
"prompt": {
"title": "Промпт",
"description": "Опишите, как клип должен перемещаться между неподвижными кадрами ключевых кадров.",
"type": "string",
"default": "He sets the robe on the rock, lowers himself into the steaming pool, then turns toward the woman beside him and smiles. Snow keeps falling. Water, soft wind, and a quiet laugh. No text."
},
"keyframes": {
"title": "Ключевые кадры",
"description": "До 10 изображений. Для каждого нужен уникальный frame_index на временной шкале 24 fps. Индекс не должен превышать duration × 24.",
"type": "array",
"default": [
{
"image_url": "https://playgrounds-storage-public.runcomfy.net/tools/7471/media-files/ref-promo-1.webp",
"frame_index": 0
},
{
"image_url": "https://playgrounds-storage-public.runcomfy.net/tools/7471/media-files/ref-promo-2.webp",
"frame_index": 60
},
{
"image_url": "https://playgrounds-storage-public.runcomfy.net/tools/7471/media-files/ref-promo-3.webp",
"frame_index": 120
}
],
"items": {
"image_url": {
"title": "URL изображения",
"description": "URL изображения ключевого кадра. PNG, JPEG или WebP.",
"type": "string",
"format": "image_uri",
"default": ""
},
"frame_index": {
"title": "Индекс кадра",
"description": "Позиция на временной шкале 24 fps. Индекс должен быть уникальным и не превышать duration × 24.",
"type": "integer",
"format": "int_slider_with_range",
"minimum": 0,
"maximum": 480,
"default": 0
}
},
"maxItems": 10,
"minItems": 1
},
"aspect_ratio": {
"title": "Соотношение сторон",
"description": "Форма выходного кадра. auto следует за первым изображением.",
"type": "string",
"enum": [
"auto",
"21:9",
"2:1",
"16:9",
"4:3",
"1:1",
"3:4",
"9:16"
],
"default": "auto"
},
"resolution": {
"title": "Разрешение",
"description": "Разрешение вывода. 720p используется по умолчанию. 1080p является более четким вариантом.",
"type": "string",
"enum": [
"720p",
"1080p"
],
"default": "720p"
},
"duration": {
"title": "Длительность",
"description": "Длина клипа в целых секундах.",
"type": "integer",
"enum": [
5,
6,
7,
8,
9,
10,
11,
12,
13,
14,
15,
16,
17,
18,
19,
20
],
"default": 5
},
"generate_audio": {
"title": "Создать аудио",
"description": "Создайте аудиотрек с видео. Выключите это для тихого клипа.",
"type": "boolean",
"default": true
},
"reasoning_level": {
"title": "Уровень рассуждений",
"description": "low возвращается раньше. high тратит больше времени на подсказку и медленнее.",
"type": "string",
"enum": [
"low",
"high"
],
"default": "high"
},
"seed": {
"title": "Seed",
"description": "Необязательно. Оставьте пустым, и модель выберет случайное начальное значение.",
"type": "integer"
}
}
}{
"output": {
"type": "object",
"properties": {
"image": {
"type": "string",
"format": "uri",
"description": "URL одного изображения"
},
"video": {
"type": "string",
"format": "uri",
"description": "URL одного видео"
},
"images": {
"type": "array",
"description": "несколько URL изображений",
"items": {
"type": "string",
"format": "uri"
}
},
"videos": {
"type": "array",
"description": "несколько URL видео",
"items": {
"type": "string",
"format": "uri"
}
}
}
}
}RunComfy - ведущая ComfyUI платформа, предлагающая ComfyUI онлайн среду и услуги, а также рабочие процессы ComfyUI с потрясающей визуализацией. RunComfy также предоставляет AI Models, позволяя художникам использовать новейшие инструменты AI для создания невероятного искусства.