curl --request POST \
--url https://toapis.com/v1/videos/generations \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '{
"model": "sora-2-vvip",
"prompt": "Золотистый ретривер бежит по траве, солнечный день",
"duration": 4,
"aspect_ratio": "16:9"
}'
curl --request POST \
--url https://toapis.com/v1/videos/generations \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '{
"model": "sora-2-vvip",
"prompt": "Оживите эту собаку, бегущую по траве",
"image_urls": ["https://example.com/dog.jpg"],
"duration": 4,
"aspect_ratio": "16:9"
}'
curl --request POST \
--url https://toapis.com/v1/videos/generations \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '{
"model": "sora-2-vvip",
"prompt": "Милый мультяшный слон",
"aspect_ratio": "16:9",
"duration": 4,
"metadata": {
"style": "anime",
"watermark": false
}
}'
curl --request POST \
--url https://toapis.com/v1/videos/generations \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '{
"model": "sora-2-vvip",
"prompt": "Маленькая лягушка танцует на ярко освещенной сцене",
"duration": 4,
"aspect_ratio": "16:9"
}'
curl --request POST \
--url https://toapis.com/v1/videos/generations \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '{
"model": "sora-2-vvip",
"prompt": "Кошка и собака вместе едут на машине @duksvfkf.cruisingki @zdqwahgj.baronbarki",
"duration": 4,
"aspect_ratio": "16:9"
}'
import requests
response = requests.post(
"https://toapis.com/v1/videos/generations",
headers={
"Authorization": "Bearer your-ToAPIs-key",
"Content-Type": "application/json"
},
json={
"model": "sora-2-vvip",
"prompt": "Золотистый ретривер бежит по траве, солнечный день",
"duration": 4,
"aspect_ratio": "16:9",
"metadata": {
"style": "anime",
"watermark": False,
"n": 2
}
}
)
task = response.json()
print(f"ID задачи: {task['id']}")
print(f"Статус: {task['status']}")
const response = await fetch('https://toapis.com/v1/videos/generations', {
method: 'POST',
headers: {
'Authorization': 'Bearer your-ToAPIs-key',
'Content-Type': 'application/json'
},
body: JSON.stringify({
model: 'sora-2-vvip',
prompt: 'Золотистый ретривер бежит по траве, солнечный день',
duration: 4,
aspect_ratio: '16:9',
metadata: {
style: 'anime',
watermark: false,
n: 2
}
})
});
const task = await response.json();
console.log(`ID задачи: ${task.id}`);
console.log(`Статус: ${task.status}`);
{
"id": "video_01K8SGYNNNVBQTXNR4MM964S7K",
"object": "generation.task",
"model": "sora-2-vvip",
"status": "queued",
"progress": 0,
"created_at": 1768380224,
"metadata": {
"size": "720x720"
}
}
Sora2
Sora2 VVIP Генерация видео
Генерация высококачественного видео с помощью модели sora-2-vvip
POST
/
v1
/
videos
/
generations
curl --request POST \
--url https://toapis.com/v1/videos/generations \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '{
"model": "sora-2-vvip",
"prompt": "Золотистый ретривер бежит по траве, солнечный день",
"duration": 4,
"aspect_ratio": "16:9"
}'
curl --request POST \
--url https://toapis.com/v1/videos/generations \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '{
"model": "sora-2-vvip",
"prompt": "Оживите эту собаку, бегущую по траве",
"image_urls": ["https://example.com/dog.jpg"],
"duration": 4,
"aspect_ratio": "16:9"
}'
curl --request POST \
--url https://toapis.com/v1/videos/generations \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '{
"model": "sora-2-vvip",
"prompt": "Милый мультяшный слон",
"aspect_ratio": "16:9",
"duration": 4,
"metadata": {
"style": "anime",
"watermark": false
}
}'
curl --request POST \
--url https://toapis.com/v1/videos/generations \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '{
"model": "sora-2-vvip",
"prompt": "Маленькая лягушка танцует на ярко освещенной сцене",
"duration": 4,
"aspect_ratio": "16:9"
}'
curl --request POST \
--url https://toapis.com/v1/videos/generations \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '{
"model": "sora-2-vvip",
"prompt": "Кошка и собака вместе едут на машине @duksvfkf.cruisingki @zdqwahgj.baronbarki",
"duration": 4,
"aspect_ratio": "16:9"
}'
import requests
response = requests.post(
"https://toapis.com/v1/videos/generations",
headers={
"Authorization": "Bearer your-ToAPIs-key",
"Content-Type": "application/json"
},
json={
"model": "sora-2-vvip",
"prompt": "Золотистый ретривер бежит по траве, солнечный день",
"duration": 4,
"aspect_ratio": "16:9",
"metadata": {
"style": "anime",
"watermark": False,
"n": 2
}
}
)
task = response.json()
print(f"ID задачи: {task['id']}")
print(f"Статус: {task['status']}")
const response = await fetch('https://toapis.com/v1/videos/generations', {
method: 'POST',
headers: {
'Authorization': 'Bearer your-ToAPIs-key',
'Content-Type': 'application/json'
},
body: JSON.stringify({
model: 'sora-2-vvip',
prompt: 'Золотистый ретривер бежит по траве, солнечный день',
duration: 4,
aspect_ratio: '16:9',
metadata: {
style: 'anime',
watermark: false,
n: 2
}
})
});
const task = await response.json();
console.log(`ID задачи: ${task.id}`);
console.log(`Статус: ${task.status}`);
{
"id": "video_01K8SGYNNNVBQTXNR4MM964S7K",
"object": "generation.task",
"model": "sora-2-vvip",
"status": "queued",
"progress": 0,
"created_at": 1768380224,
"metadata": {
"size": "720x720"
}
}
Для пользователей из материкового Китая: используйте
https://toapis.cn в качестве эндпоинта (Base URL). Замените https://toapis.com на https://toapis.cn во всех примерах этого документа.- Модель генерации видео
sora-2-vvip - Поддержка текст-в-видео, изображение-в-видео и ссылок на персонажей
- Асинхронное управление задачами, запрос результатов по ID задачи
Важное изменение: Для повышения производительности и контроля затрат мы больше не поддерживаем передачу данных изображений в формате base64 напрямую в
image_urls. Пожалуйста, сначала используйте API загрузки изображений для загрузки изображений и получения URL, а затем вызывайте этот эндпоинт.Авторизация
string
обязательно
Все API требуют аутентификации Bearer TokenПолучите API Key на странице управления API ключамиДобавьте в заголовок запроса:
Authorization: Bearer YOUR_API_KEY
Тело запроса
string
по умолчанию:"sora-2-vvip"
обязательно
Название модели генерации видеоПоддерживаемая модель:
sora-2-vvip - VVIP версия с фиксированными вариантами длительностиПример: "sora-2-vvip"string
обязательно
Текстовое описание для генерации видео💡 Функция ссылки на персонажей:Вы можете использовать формат
@username в промпте для ссылки на ранее созданных персонажей и включения их в генерируемое видео.usernameперсонажа можно получить через API запроса персонажей- Поддерживается одновременная ссылка на несколько персонажей
"Кошка и собака вместе едут на машине @duksvfkf.cruisingki @zdqwahgj.baronbarki"integer
Длительность видео в секундахПоддерживает только
4, 8 или 12 секундПример: 4string
Соотношение сторон видеоПоддерживаемые форматы:
16:9(Горизонтальный)9:16(Вертикальный)
string[]
Массив URL референсных изображений для генерации изображение-в-видео⚠️ Только формат URL (base64 больше не поддерживается)
- Публично доступный URL изображения (http:// или https://)
- Вы можете использовать API загрузки изображений для загрузки локальных изображений и получения URL
boolean
Генерировать ли миниатюру видео
true- Генерировать миниатюру видео для предварительного просмотра и отображения
integer
по умолчанию:"1"
Количество генерируемых различных вариантовДиапазон: 1-4По умолчанию:
1boolean
по умолчанию:"false"
Добавлять ли водяной знак к генерируемому видео
false- Без водяного знакаtrue- Добавить официальный водяной знак Sora к видео
falseboolean
по умолчанию:"false"
Включить ли режим конфиденциальности
true- Видео не будет опубликовано и не может быть переделано (отредактировано повторно)false- Видео может быть опубликовано и переделано
falsestring
Стиль видеоПоддерживаемые значения:
thanksgiving- Стиль День благодаренияcomic- Комикс стильnews- Новостной стильselfie- Селфи стильnostalgic- Ностальгический/Ретро стильanime- Аниме стиль
"anime"boolean
Использовать ли раскадровку для более точного контроля деталей генерации видео
true- Включить функцию раскадровкиfalse- Не использовать раскадровку
truestring
URL референсного видео для извлечения персонажаИспользуется для повторного использования персонажей из референсного видео в генерируемом видеоПример:
"https://filesystem.site/cdn/20251030/javYrU4etHVFDqg8by7mViTWHlMOZy.mp4"⚠️ Примечание: При использовании этого параметра длительность генерируемого видео уменьшится на 1 секундуstring
Временные метки появления персонажаУказывает временной диапазон в референсном видео, где появляется персонаж, поддерживает только 2-секундные сегментыФормат:
"начальная_секунда,конечная_секунда"Пример: "1,3" означает персонажа с 1-й по 3-ю секунду в референсном видео⚠️ Примечание: При использовании этого параметра длительность генерируемого видео уменьшится на 1 секундуboolean
по умолчанию:"false"
Автоматически создать персонажа из сгенерированного видео после завершения
true- Автоматически создать персонажаfalse- Не создавать персонажа
falsestring
Создать персонажа из уже сгенерированного ID задачиСсылка на ранее сгенерированный ID задачи видео для извлечения персонажей из этого видеоПример:
"video_01K8SGYNNNVBQTXNR4MM964S7K"Ответ
string
Уникальный идентификатор задачи для запроса статуса
string
Тип объекта, всегда
generation.taskstring
Используемое имя модели
string
Статус задачи
queued- В очереди на обработкуin_progress- Обработкаcompleted- Успешно завершеноfailed- Не удалось
integer
Процент выполнения задачи (0-100)
integer
Временная метка создания задачи (временная метка Unix)
object
Метаданные задачи
curl --request POST \
--url https://toapis.com/v1/videos/generations \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '{
"model": "sora-2-vvip",
"prompt": "Золотистый ретривер бежит по траве, солнечный день",
"duration": 4,
"aspect_ratio": "16:9"
}'
curl --request POST \
--url https://toapis.com/v1/videos/generations \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '{
"model": "sora-2-vvip",
"prompt": "Оживите эту собаку, бегущую по траве",
"image_urls": ["https://example.com/dog.jpg"],
"duration": 4,
"aspect_ratio": "16:9"
}'
curl --request POST \
--url https://toapis.com/v1/videos/generations \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '{
"model": "sora-2-vvip",
"prompt": "Милый мультяшный слон",
"aspect_ratio": "16:9",
"duration": 4,
"metadata": {
"style": "anime",
"watermark": false
}
}'
curl --request POST \
--url https://toapis.com/v1/videos/generations \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '{
"model": "sora-2-vvip",
"prompt": "Маленькая лягушка танцует на ярко освещенной сцене",
"duration": 4,
"aspect_ratio": "16:9"
}'
curl --request POST \
--url https://toapis.com/v1/videos/generations \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '{
"model": "sora-2-vvip",
"prompt": "Кошка и собака вместе едут на машине @duksvfkf.cruisingki @zdqwahgj.baronbarki",
"duration": 4,
"aspect_ratio": "16:9"
}'
import requests
response = requests.post(
"https://toapis.com/v1/videos/generations",
headers={
"Authorization": "Bearer your-ToAPIs-key",
"Content-Type": "application/json"
},
json={
"model": "sora-2-vvip",
"prompt": "Золотистый ретривер бежит по траве, солнечный день",
"duration": 4,
"aspect_ratio": "16:9",
"metadata": {
"style": "anime",
"watermark": False,
"n": 2
}
}
)
task = response.json()
print(f"ID задачи: {task['id']}")
print(f"Статус: {task['status']}")
const response = await fetch('https://toapis.com/v1/videos/generations', {
method: 'POST',
headers: {
'Authorization': 'Bearer your-ToAPIs-key',
'Content-Type': 'application/json'
},
body: JSON.stringify({
model: 'sora-2-vvip',
prompt: 'Золотистый ретривер бежит по траве, солнечный день',
duration: 4,
aspect_ratio: '16:9',
metadata: {
style: 'anime',
watermark: false,
n: 2
}
})
});
const task = await response.json();
console.log(`ID задачи: ${task.id}`);
console.log(`Статус: ${task.status}`);
{
"id": "video_01K8SGYNNNVBQTXNR4MM964S7K",
"object": "generation.task",
"model": "sora-2-vvip",
"status": "queued",
"progress": 0,
"created_at": 1768380224,
"metadata": {
"size": "720x720"
}
}