models

sora-2

Markdown · JSON

sora-2

Sora 2 создаёт видео с синхронизированными диалогами, звуковыми эффектами и фоновым звуком по тексту или изображению-референсу. Стандартный вариант поддерживает визуальные эксперименты и концептуальные клипы; разработчик предоставляет отдельные процессы для повторно используемых нечеловеческих персонажей, продолжения и точечных правок видео.

О модели

Описание раскрывает возможности модели. Доступные в Ailoot входные данные, результаты и параметры выбранного метода перечислены ниже.

Sora 2 — модель OpenAI для генерации видео и аудио: динамических клипов по письменному описанию сцены или изображению-референсу. Она генерирует визуальную последовательность вместе с синхронизированными речью, эффектами и фоновым звуком. Стандартный вариант Sora 2 предназначен для визуальных экспериментов, разработки концепций, прототипов и чернового монтажа. Sora 2 Pro — отдельная редакция, ориентированная на большую визуальную точность и финальную обработку в более высоком разрешении.

Опишите кадр, который можно увидеть и услышать

Руководство разработчика по запросам строит полезный бриф вокруг кадрирования, объекта, действия, обстановки и света. Задайте сцене цельный визуальный стиль, затем опишите движение ясными этапами. Оригинальная продуктовая концепция может показывать небольшой механический предмет, который один раз поворачивается на верстаке, пока камера медленно приближается, с мягким светом из окна и негромким звуком мотора. Укажите, что зритель должен заметить и как заканчивается действие.

Делайте движение камеры и действие объекта в каждом кадре понятными. Сложную последовательность можно разделить на отдельные блоки кадров, каждый со своим кадрированием, действием и освещением. Сохраняйте одинаковые детали объекта и палитру, если несколько клипов должны образовать одну последовательность. Руководство подчёркивает, что короткие кадры обычно надёжнее следуют указаниям, а повторная генерация по одному запросу создаёт разные дубли.

Анонс модели описывает улучшенное физическое поведение и непрерывность между кадрами, включая реалистичный, кинематографический и аниме-стили. Это предполагаемые возможности, которые нужно направлять и проверять. Оценивайте движение, контакт объектов, пропорции и непрерывность, а не предполагайте, что правдоподобный первый кадр гарантирует связную последовательность. Если действие неясно, упростите его и задайте видимые начало и конец.

Режиссируйте диалог и звук отдельно

Задавайте произносимые реплики отдельно от визуального описания и последовательно обозначайте говорящих. Делайте диалог достаточно коротким, чтобы он помещался в действие и заданную длину клипа. Для анимации с двумя персонажами чередуйте краткие вопрос и ответ, а не пытайтесь вместить длинную речь в короткий кадр. Руководство предупреждает, что сложный и длинный диалог может нарушить темп и синхронизацию.

Опишите звуковую среду сцены: звук небольшого движения, атмосферу помещения или ритм окружающего эффекта. Объясните, какой звук должен совпадать с действием. Прослушайте полученную речь и эффекты вместе с изображением, проверяя распределение реплик между говорящими, формулировки и время. Синхронизированное аудио — часть сгенерированного клипа, а не отдельный текстовый ответ.

Размер, длительность и начало по изображению

Документированные размеры вывода стандартной модели — 720×1280 в вертикальной ориентации и 1280×720 в горизонтальной. Размеры более высокого разрешения из варианта Pro не следует приписывать стандартной Sora 2. Размер и длительность — явные настройки запроса; другой размер или просьба о более длинном фильме в тексте запроса не меняют эти настройки. Справочник создания перечисляет настройки клипов длительностью 4, 8 и 12 секунд, поэтому при подготовке кадра выбирайте короткое, определённое действие. Расширенный процесс разработчика также документирует настройки клипов длительностью 16 и 20 секунд.

Изображение-референс задаёт первый кадр, а текст описывает последующие события. Разработчик поддерживает референсы JPEG, PNG и WebP и требует, чтобы изображение соответствовало целевому размеру видео. Подготовьте объект, окружение и композицию в этом начальном изображении, затем запросите конкретное движение. Это референс начального кадра, а не гарантия совпадения каждой детали на протяжении клипа.

Повторно используемые нечеловеческие персонажи

Расширенный процесс разработчика может создавать повторно используемый ресурс персонажа из короткого видео-референса животного, маскота или объекта. Рекомендации по подготовке требуют клип MP4 продолжительностью примерно от двух до четырёх секунд, от 720p до 1080p, с соотношением сторон 16:9 или 9:16. Совпадение соотношения сторон источника и результата помогает избежать растянутого вида. Генерация может ссылаться максимум на двух персонажей.

Сохраняйте идентификатор персонажа и упоминайте его имя в запросе; передача одного идентификатора не составляет полной подготовки по руководству. Ресурсы персонажей могут сопровождать генерацию по изображению, но продолжения видео их не принимают. Разработчик по умолчанию блокирует загрузки персонажей с человеческим обликом и в документированном процессе API отклоняет изображения-референсы с человеческими лицами. Функции личных персонажей приложения Sora — отдельный продуктовый процесс.

Продолжите или отредактируйте завершённый клип

Продолжение принимает готовое исходное видео и запрос на продолжение, используя весь исходный клип как контекст для движения, направления камеры и непрерывности сцены. Руководство описывает добавление до 20 секунд за одно продолжение. Документированный ввод продолжения — исходное видео и текст; дополнительные референсы персонажей или изображений исключены из этого режима. Опишите, как продолжается существующее действие, а не вводите несвязанную сцену без перехода.

Редактирование видео нацелено на ясное изменение существующего клипа. Точечная правка может менять цвет объекта или палитру сцены, сохраняя остальную часть кадра. Руководство разработчика рекомендует одно чётко определённое изменение за раз и отличает редактирование сгенерированного видео от загрузки произвольных материалов, для которой есть отдельное условие допуска. Сохраняйте готовый источник и определяйте точную нужную правку перед следующим редактированием.

Задания рендеринга и готовое видео

Документированный процесс видео разработчика асинхронен: отправленное задание может находиться в очереди или выполняться, прежде чем завершиться успешно или с ошибкой. Завершённое задание выдаёт видео MP4; миниатюры и спрайтовые листы помогают предварительному просмотру и навигации. Сохраняйте связь идентификатора задания с запросом, референсами и возвращёнными ресурсами. Первоначальный ответ задания не является итоговым воспроизводимым видео.

Обычный процесс загрузки описывает срок действия URL скачивания в один час. Расширенный пакетный процесс подготавливает независимые JSON-запросы рендеринга со стабильными идентификаторами элементов, загруженными референсами и результатом, сопоставленным каждому кадру; его готовые ресурсы имеют отдельный период скачивания до 24 часов. Своевременно сохраняйте готовый клип и проверяйте фактические изображение и звук, прежде чем считать его выбранным дублем.

Документированные ограничения контента API разработчика требуют материалов, подходящих для аудитории младше 18 лет, и отклоняют защищённых авторским правом персонажей или музыку, а также генерацию реальных людей. Подготавливайте сцену и референсы соответственно. Прямой результат модели — видео с аудио, а не сгенерированные отдельные изображения, диалоговый ответ инструмента или фильм неограниченной длины. Сохраняйте точное обозначение стандартной модели и принятый исходный клип при продолжении визуальной концепции.

Ailoot Ultra · Chat Completions POST /v1/chat/completions sora-2

sora-2

Прочее /sora-2

Начало

Sora 2 создаёт видео с синхронизированными диалогами, звуковыми эффектами и фоновым звуком по тексту или изображению-референсу. Стандартный вариант поддерживает визуальные эксперименты и концептуальные клипы; разработчик предоставляет отдельные процессы для повторно используемых нечеловеческих персонажей, продолжения и точечных правок видео.

Допустимые входные данные
Текст
Результаты
json · sse

Доступно в Ailoot · входные данные и методы

Ailoot Ultra · Chat Completions POST /v1/chat/completions
Входные данные
text
Результат
json, sse
Выходной формат
JSON или text/event-stream
ПолеТипТребованиеЗначения и ограниченияПо умолчанию
ПолеmodelТипstringТребованиеОбязательноЗначения и ограничения
sora-2
По умолчанию—
ПолеmessagesТипmessage[]ТребованиеОбязательноЗначения и ограниченияПо умолчанию—
Полеmessages[].roleТипstringТребованиеОбязательноЗначения и ограниченияПо умолчанию—
Полеmessages[].contentТипstringТребованиеОбязательноЗначения и ограниченияПо умолчанию—
ПолеstreamТипbooleanТребованиеНеобязательноЗначения и ограниченияПо умолчаниюfalse
Сочетания входных материалов

owned_text_messages

Параметры и жизненный цикл метода
ПараметрКонтракт
Параметрcontent_typeКонтрактapplication/json
ПараметрrequiredКонтрактmodel, messages
Параметрmaterial_typesКонтрактtext
ПараметрmessagesКонтрактмассив сообщений с role и буквальным строковым content
Параметрfile_materialКонтрактФактический материал UTF-8 можно вставить как буквальное строковое содержимое; ссылка на файл не подразумевается.
Параметрoptional_controlsКонтрактstream

Жизненный цикл: synchronous_json_or_sse

Тарифы

Тарифная справка не добавляет режимы запроса. Поддерживаемые параметры указаны для выбранного метода.

Быстрый режим
Не указано При выборе быстрого режима
Режим flex
Не указано При выборе режима flex
Максимальная интенсивность рассуждений
Не указано При максимальной интенсивности рассуждений с корректировкой по умолчанию (default)

Ставки Ailoot

Цены по конфигурациям

КонфигурацияШкала ставокПлата
КонфигурацияБазовые ставки за токеныШкала ставокБазовая ставкаПлата
Вход · Входные токены $0 / 1K токенов
Выход · Выходные токены $0.2 / 1K токенов
Вход · Чтение кэша $0 / 1K токенов
Вход · Запись в кэш $0 / 1K токенов
Вход · Запись в кэш, 1 час — / 1K токенов

Ailoot резервирует расчётную сумму перед запросом. После получения результата списывает итоговую плату по измеренному расходу. Для окончательного списания за потоковый ответ используется итоговая запись расхода. Как работают резервирование и расчёт →

Примеры запросов

Ailoot Ultra · Chat Completions

curl · полный ответ JSONPython SDK · полный ответ JSONcurl · сохранить поток SSE
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
python3 - <<'PY_REQUEST'
import json,os
from pathlib import Path
p=json.loads('{"model":"sora-2","messages":[{"role":"user","content":"hello"}],"stream":false}')

Path("request.json").write_text(json.dumps(p,ensure_ascii=False))
PY_REQUEST
curl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/chat/completions \
  -H "Authorization: Bearer $AILOOT_API_KEY" -H 'Content-Type: application/json' \
  --data-binary @request.json -D response-headers.txt -o result.json
python3 - <<'PY_RESULT'
from pathlib import Path
print(Path("result.json").read_text(encoding="utf-8"))
PY_RESULT
from openai import OpenAI
import os

if not os.environ.get("AILOOT_API_KEY", "").strip(): raise SystemExit("Set AILOOT_API_KEY before making a request")
client=OpenAI(base_url="https://api.ailoot.ai/v1",api_key=os.environ["AILOOT_API_KEY"],max_retries=0)
result=client.chat.completions.create(model="sora-2", messages=[{"role":"user","content":"hello"}], stream=False)
import json
from pathlib import Path

data = result.to_dict(mode="json")
Path("result.json").write_text(json.dumps(data, ensure_ascii=False, indent=2), encoding="utf-8")
print(json.dumps(data, ensure_ascii=False, indent=2))
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
python3 - <<'PY_REQUEST'
import json,os
from pathlib import Path
p=json.loads('{"model":"sora-2","messages":[{"role":"user","content":"hello"}],"stream":true}')

Path("request.json").write_text(json.dumps(p,ensure_ascii=False))
PY_REQUEST
curl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/chat/completions \
  -H "Authorization: Bearer $AILOOT_API_KEY" -H 'Content-Type: application/json' \
  --data-binary @request.json -D response-headers.txt -o result.sse

Получить и сохранить результаты

Ailoot Ultra · Chat Completions

JSON или text/event-stream

Сохраняйте все готовые результаты

Сохраняйте каждый полностью полученный ответ, файл и элемент содержимого.

Сохраните полный JSON или все байты SSE, заголовки ответа, возвращённые данные об использовании и все предоставленные поля результата. Конкретный тип результата для отдельной модели не заявляется.

Если нужно проверить исходный ответ

Сохраните исходный ответ и идентичность попытки; это не подразумевает проверку новой задачи или повторную отправку.

Поля ответа
ПолеТипЗначение
Полеcomplete response JSONТипobjectЗначениеСохраняйте каждое возвращённое поле, не предполагая тип результата, характерный для отдельной модели.
ПолеSSE data eventsТипstreamЗначениеСохраняйте каждое возвращённое событие и маркер завершения, не выбирая только текстовые поля.

Псевдонимы

Псевдонимы моделей

Ailoot Ultra sora-2

Псевдонимы путей метода

Используйте пути методов, указанные выше.

Связанные ID для вызова

sora-2

Ailoot Ultra · Сообщения Anthropic POST /v1/messages sora-2

sora-2

Прочее /sora-2

Начало

Sora 2 создаёт видео с синхронизированными диалогами, звуковыми эффектами и фоновым звуком по тексту или изображению-референсу. Стандартный вариант поддерживает визуальные эксперименты и концептуальные клипы; разработчик предоставляет отдельные процессы для повторно используемых нечеловеческих персонажей, продолжения и точечных правок видео.

Допустимые входные данные
Текст
Результаты
json · sse

Доступно в Ailoot · входные данные и методы

Ailoot Ultra · Сообщения Anthropic POST /v1/messages
Входные данные
text
Результат
json, sse
Выходной формат
JSON или SSE
ПолеТипТребованиеЗначения и ограниченияПо умолчанию
ПолеmodelТипstringТребованиеОбязательноЗначения и ограничения
sora-2
По умолчанию—
ПолеmessagesТипmessage[]ТребованиеОбязательноЗначения и ограниченияПо умолчанию—
Полеmessages[].roleТипstringТребованиеОбязательноЗначения и ограничения
user, assistant
По умолчанию—
Полеmessages[].contentТипstringТребованиеОбязательноЗначения и ограниченияПо умолчанию—
Полеmax_tokensТипintegerТребованиеОбязательноЗначения и ограниченияПо умолчанию—
ПолеstreamТипbooleanТребованиеНеобязательноЗначения и ограниченияПо умолчаниюfalse
Сочетания входных материалов

Текст · Текст UTF-8

строка messages[].content

Параметры и жизненный цикл метода
ПараметрКонтракт
Параметрcontent_typeКонтрактapplication/json
ПараметрrequiredКонтрактmodel, messages, max_tokens
Параметрoptional_controlsКонтрактstream
Параметрmaterial_typesКонтрактtext
Параметрtext_file_materialКонтрактПрочитайте фактический документ UTF-8 и поместите его текст в указанную строку входа или содержимого сообщения.

Жизненный цикл: synchronous_or_streamed

Тарифы

Тарифная справка не добавляет режимы запроса. Поддерживаемые параметры указаны для выбранного метода.

Быстрый режим
Не указано При выборе быстрого режима
Режим flex
Не указано При выборе режима flex
Максимальная интенсивность рассуждений
Не указано При максимальной интенсивности рассуждений с корректировкой по умолчанию (default)

Ставки Ailoot

Цены по конфигурациям

КонфигурацияШкала ставокПлата
КонфигурацияБазовые ставки за токеныШкала ставокБазовая ставкаПлата
Вход · Входные токены $0 / 1K токенов
Выход · Выходные токены $0.2 / 1K токенов
Вход · Чтение кэша $0 / 1K токенов
Вход · Запись в кэш $0 / 1K токенов
Вход · Запись в кэш, 1 час — / 1K токенов

Ailoot резервирует расчётную сумму перед запросом. После получения результата списывает итоговую плату по измеренному расходу. Для окончательного списания за потоковый ответ используется итоговая запись расхода. Как работают резервирование и расчёт →

Примеры запросов

Ailoot Ultra · Сообщения Anthropic

Полное минимальное тело запроса в формате JSONcurl · используйте свой документ UTF-8Python · сохраните полный результат
{
  "model": "sora-2",
  "max_tokens": 128,
  "messages": [
    {
      "role": "user",
      "content": "Summarize the incident report."
    }
  ],
  "stream": false
}
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
: "${AILOOT_TEXT_FILE:?Set your actual UTF-8 document}"
export AILOOT_TEXT_FILE
python3 - <<'PY_REQUEST'
import json, os
from pathlib import Path

source_file = Path(os.environ['AILOOT_TEXT_FILE'])
if not source_file.is_file():
    raise SystemExit('Set AILOOT_TEXT_FILE to your actual UTF-8 document')
text = source_file.read_text(encoding='utf-8')
if not text.strip():
    raise SystemExit('Choose a document containing text')
payload = {'model': 'sora-2', 'max_tokens': 128, 'messages': [{'role': 'user', 'content': 'Summarize the incident report.'}]}
payload['messages'][0]['content'] = 'Summarize this material and quote supporting source passages.\n\n' + text
Path('request.json').write_text(json.dumps(payload, ensure_ascii=False), encoding='utf-8')
PY_REQUEST
curl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/messages \
  -H "x-api-key: $AILOOT_API_KEY" -H 'anthropic-version: 2023-06-01' -H 'Content-Type: application/json' \
  --data-binary @request.json -D response-headers.txt -o result.json
python3 - <<'PY_RESULT'
import json
from pathlib import Path

result = json.loads(Path('result.json').read_text(encoding='utf-8'))
print(json.dumps(result, ensure_ascii=False, indent=2))
PY_RESULT
import json, os
from pathlib import Path

source_file = Path(os.environ['AILOOT_TEXT_FILE'])
if not source_file.is_file():
    raise SystemExit('Set AILOOT_TEXT_FILE to your actual UTF-8 document')
text = source_file.read_text(encoding='utf-8')
if not text.strip():
    raise SystemExit('Choose a document containing text')
payload = {'model': 'sora-2', 'max_tokens': 128, 'messages': [{'role': 'user', 'content': 'Summarize the incident report.'}]}
payload['messages'][0]['content'] = 'Summarize this material and quote supporting source passages.\n\n' + text
from urllib.request import Request, urlopen
from urllib.error import HTTPError

api_key = os.environ['AILOOT_API_KEY']
if not api_key.strip():
    raise SystemExit('Set AILOOT_API_KEY before making a request')
headers = {'x-api-key': 'PLACEHOLDER_KEY', 'anthropic-version': '2023-06-01', 'Content-Type': 'application/json'}
headers['x-api-key'] = api_key
request = Request('https://api.ailoot.ai/v1/messages', data=json.dumps(payload, ensure_ascii=False).encode('utf-8'), headers=headers, method='POST')
try:
    with urlopen(request, timeout=120) as response:
        raw = response.read()
        Path('response-headers.txt').write_text(str(response.headers), encoding='utf-8')
except HTTPError as error:
    Path('result.json').write_bytes(error.read())
    Path('response-headers.txt').write_text(str(error.headers), encoding='utf-8')
    raise
Path('result.json').write_bytes(raw)
import json
from pathlib import Path

result = json.loads(Path('result.json').read_text(encoding='utf-8'))
print(json.dumps(result, ensure_ascii=False, indent=2))

Получить и сохранить результаты

Ailoot Ultra · Сообщения Anthropic

JSON или SSE

Сохраняйте все готовые результаты

Сохраняйте каждый полностью полученный ответ, файл и элемент содержимого.

Сохраняйте все блоки содержимого, подписи рассуждений и фактические ID обращений к инструментам. Собирайте все изменения блоков SSE; первый текстовый блок не является полным выходом.

Если нужно проверить исходный ответ

Сохраняйте ID запросов и ответов, а также заголовки. Общий URL получения текстового задания не предоставлен.

Поля ответа
ПолеТип
ПолеidТипstring
ПолеmodelТипstring
Полеcontent[]Типtext|thinking|tool_use|other content block
Полеstop_reasonТипstring|null
ПолеusageТипobject
Ошибки и дальнейшие шаги
ОтветУсловиеСледующий шаг
Ответ400 · invalid_request_errorУсловиеНеверные обязательные поля, представление материалов или значение параметраСледующий шагИсправьте указанные поля перед новым запросом на создание.

Псевдонимы

Псевдонимы моделей

Ailoot Ultra sora-2

Псевдонимы путей метода

Используйте пути методов, указанные выше.

Связанные ID для вызова

sora-2

FAQ · sora-2
Какие входные данные и результаты доступны?

POST /v1/chat/completions · sora-2: text → json, sse

POST /v1/messages · sora-2: text → json, sse

Какие поля использует запрос?

POST /v1/chat/completions · sora-2: model, messages, stream

POST /v1/messages · sora-2: model, messages, max_tokens, stream

Подробнее

Подключите Ailoot к Claude Code, OpenCode, Hermes или своему приложению.

Компания и портфель её проектов

Компания и портфель её проектов: миллионы клиентов; продажи на миллиарды ежемесячно.

Покупайте токены со скидкой.

Скидка по подписке для регулярной работы. Промокоды — до 50% на покупку токенов.

Подписка
Выберите тариф со скидкой для своих регулярных запросов.
Промокод до 50%
Введите код при покупке. Цена пересчитается с учётом действующей акции.
Расходы в истории
Модель, токены и сумма сохраняются для каждого запроса.

Выбрать подписку · Посмотреть цены моделей

Подключайте API к продукту, который вы продаёте.

SaaS, приложения и боты — по оферте и лицензионному договору Ailoot. Для перепродажи запросите реселлерскую лицензию.

Коммерческое приложение
Встраивайте генерацию текста, картинок, видео и звука в платные функции своего сервиса.
Лицензия для реселлера
Пришлите описание проекта и схему доступа. Запросите письменные условия использования и перепродажи.
Документы на сайте
Оферта, лицензионный договор и политика обработки данных доступны до подключения.

Запросить реселлерскую лицензию · Оферта и лицензионный договор