MiniMax: S2V 01
S2V 01 использует портретный референс для внешности персонажа в новом сгенерированном видео. Предоставьте одно ясное изображение лица и опишите сцену и действие; процесс производителя с референсом объекта рассматривает изображение как референс персонажа.
О модели
Описание раскрывает возможности модели. Доступные в Ailoot входные данные, результаты и параметры выбранного метода перечислены ниже.
S2V 01 — видеомодель MiniMax с референсом персонажа. Предоставленное изображение направляет внешность персонажа, а текст описывает видеосцену и действие. Документированный тип референса — лицо человека, поэтому готовьте портрет как ориентир внешности персонажа, которого хотите поместить в сгенерированную последовательность.
Выберите референс, на котором нужное лицо ясное и легко различимо. Не скрывайте определяющие черты за рукой, крупным аксессуаром или сильной обрезкой, если они важны для результата. Сохраняйте один портрет для связанных кадров, чтобы источник внешности персонажа оставался известным. Референс даёт сведения о внешности; инструкцией объясняйте сцену, в которой должен действовать персонаж.
Схема производителя для референса персонажа принимает одно изображение в массиве референсных изображений. Поддерживаются JPG, JPEG, PNG и WebP с размером файла меньше 20 MB. Короткая сторона должна превышать 300 пикселей, а соотношение сторон — находиться между 2:5 и 5:2. Сохраняйте точный файл изображения с записью генерации, не подменяя его другим портретом при последующем сравнении.
Опишите сцену с ясной ролью человека с референса. Например, персонаж входит в тихую мастерскую, смотрит на предмет на столе и останавливается рядом. Укажите действие, окружение и точку наблюдения, важные для готового кадра. Если лицо должно оставаться читаемым, планируйте кадрирование и движение вокруг этого требования.
Текстовое описание поддерживает до 2 000 символов. Используйте их для конкретных инструкций: что делает персонаж, что его окружает и что должен показывать конечный вид. Описывайте одежду или детали сцены, когда они важны для истории, затем проверяйте сочетание этих деталей с предоставленным референсом внешности в созданном видео. Отделяйте роль референса от просьбы воспроизвести весь фон портрета как начальный кадр.
Автоматическая оптимизация инструкции документирована и включена по умолчанию. Её можно отключить для более точного контроля письменного описания. Сохраняйте этот выбор вместе с текстом и портретом при сравнении разных сцен. Для исследования проблемы сходства сохраняйте задание сцены неизменным, сравнивая улучшенный референс; для проверки действия сохраняйте референс, меняя описание движения.
Процесс производителя возвращает идентификатор задачи до завершения видео. Сохраняйте исходный идентификатор на этапах статуса и результата, затем сохраняйте готовый клип для проверки и монтажа. Храните портрет, инструкцию и полученное видео как одну запись, чтобы последующий кадр сравнивался с фактическим материалом, направлявшим прежний результат.
Проверяйте персонажа на протяжении последовательности, включая повороты, жесты и смену кадрирования. Оцените стабильность лица, понятность нужного действия и связь персонажа с предметами сцены. Выберите клип, лучше всего соответствующий назначению кадра, и определите конкретное несоответствие до изменения входных данных. Для повторяющегося персонажа полезно рассматривать несколько готовых кадров рядом с использованием одного портретного референса и ясной записи описания каждой сцены.
Ailoot Ultra · Видео POST /v1/videos minimaxi-s2v-01
minimaxi-s2v-01Начало
S2V 01 использует портретный референс для внешности персонажа в новом сгенерированном видео. Предоставьте одно ясное изображение лица и опишите сцену и действие; процесс производителя с референсом объекта рассматривает изображение как референс персонажа.
- Допустимые входные данные
- Текст · Картинки
- Результаты
- Видео
Доступно в Ailoot · входные данные и методы
Ailoot Ultra · Видео POST /v1/videos
- Входные данные
text,image- Результат
video
| Поле | Тип | Требование | Значения и ограничения | По умолчанию |
|---|---|---|---|---|
Полеmodel | Типstring | ТребованиеОбязательно | Значения и ограничения minimaxi-s2v-01 Условия: Используйте точный идентификатор модели Ailoot. | По умолчанию— |
Полеprompt | Типstring | ТребованиеОбязательно | Значения и ограничения Условия: Опишите сцену и движение. | По умолчанию— |
Полеend_image | Типstring | ТребованиеНеобязательно | Значения и ограничения Условия: Последний кадр применяется только в поддерживаемом режиме ввода изображений. | По умолчанию— |
Полеimage | Типstring or array<string> | ТребованиеНеобязательно | Значения и ограничения Условия: Используйте фактический публично доступный URL изображения или строку изображения в base64; максимальное количество изображений здесь не заявляется. | По умолчанию— |
Параметры и жизненный цикл метода
| Параметр | Контракт |
|---|---|
Параметрcontent_type | Контрактapplication/json |
Параметрrequired | Контрактmodel, prompt |
Параметрoptional | Контрактend_image, image |
Параметрmaterial_types | Контрактtext, image |
Параметрconditions | КонтрактИспользуйте точный идентификатор модели Ailoot., Опишите сцену и движение., Последний кадр применяется только в поддерживаемом режиме ввода изображений., Используйте фактический публично доступный URL изображения или строку изображения в base64; максимальное количество изображений здесь не заявляется. |
Псевдонимы метода: /v1/videos/generations
Жизненный цикл: submit_once_poll_original
GET /v1/videos/{request_id}
GET /v1/videos/generations/{request_id}
GET /v1/videos/{request_id}/content
GET /v1/media/assets
GET /v1/media/assets/{asset_id}
Тарифы
Как рассчитывается итоговая плата
Отображаемые тарифы позволяют оценить стоимость до генерации. Итоговое списание рассчитывается по стоимости, записанной для исходной генерации. Измеренная длительность результата и прогнозные объёмы не являются итоговым оплачиваемым объёмом.
Тарифная справка не добавляет режимы запроса. Поддерживаемые параметры указаны для выбранного метода.
- Быстрый режим
- Не указано При выборе быстрого режима
- Режим flex
- Не указано При выборе режима flex
- Максимальная интенсивность рассуждений
- Не указано При максимальной интенсивности рассуждений с корректировкой по умолчанию (default)
Оценочные ставки для сравнения
Цены по конфигурациям
Сопоставьте каждую плату с указанными условиями. Для каждого набора альтернативных конфигураций используйте одну ставку.
| Конфигурация | Шкала ставок | Прогноз количества | Расчётное количество | Плата |
|---|---|---|---|---|
| КонфигурацияБазовые тарифы на токены | Шкала ставокБазовая ставка | Прогноз количества— | Расчётное количество— | Плата Вход · Входные токены · Оценка только для сравнения — / 1K токенов Выход · Выходные токены · Оценка только для сравнения — / 1K токенов Вход · Чтение кэша · Оценка только для сравнения — / 1K токенов Вход · Запись в кэш · Оценка только для сравнения — / 1K токенов Вход · Запись в кэш, 1 час · Оценка только для сравнения — / 1K токенов |
| КонфигурацияЗа запрос | Шкала ставок— | Прогноз количества— | Расчётное количествоОдин запрос | Плата Вход · Оценка только для сравнения $1.4 за запрос |
| КонфигурацияОриентировочная стоимость генерации | Шкала ставок— | Прогноз количестваОценка для одной генерации | Расчётное количество— | Плата Выход · Оценочная стоимость генерации · Оценка только для сравнения $1.4 оценка до генерации Эта оценка не является дополнительным списанием или фиксированным тарифом для завершённой генерации. |
Ailoot резервирует расчётную сумму перед запросом. После получения результата списывает итоговую плату по измеренному расходу. Для окончательного списания за потоковый ответ используется итоговая запись расхода. Как работают резервирование и расчёт →
Примеры запросов
Ailoot Ultra · Видео
# Replace YOUR_ACCESSIBLE_IMAGE_URL with your actual reachable reference image URL.
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
cat > request.json <<'JSON'
{
"model": "minimaxi-s2v-01",
"prompt": "A cat is walking on grass.",
"image": "YOUR_ACCESSIBLE_IMAGE_URL"
}
JSON
curl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/videos \
-H "Authorization: Bearer $AILOOT_API_KEY" -H 'Content-Type: application/json' \
--data-binary @request.json -D response-headers.txt -o result.json
# Create once; retain id, polling_url, original task identifiers and every header.
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
export AILOOT_API_KEY
python3 - <<'PY_STATUS'
import json,os,subprocess
from pathlib import Path
from urllib.parse import urljoin,urlsplit
r=json.loads(Path("result.json").read_text())
u=urljoin("https://api.ailoot.ai",r["polling_url"])
p=urlsplit(u)
if p.scheme!="https" or p.netloc!="api.ailoot.ai" or p.username or p.password:
raise SystemExit("Unexpected returned polling URL; preserve the response")
subprocess.run(["curl","--fail-with-body","--silent","--show-error",u,"-H","Authorization: Bearer "+os.environ["AILOOT_API_KEY"],"-D","status-headers.txt","-o","status.json"],check=True)
# Read this same original polling_url again while pending.
# Preserve unknown/result_pending_check; do not repeat creation.
PY_STATUS
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
export AILOOT_API_KEY
python3 - <<'PY_ASSETS'
import json,os,subprocess
from pathlib import Path
from urllib.parse import urljoin,urlsplit
r=json.loads(Path("status.json").read_text())
roles={}
def visit(v,path=""):
if isinstance(v,dict):
for k,x in v.items(): visit(x,path+"/"+k)
elif isinstance(v,list):
for i,x in enumerate(v): visit(x,path+"/"+str(i))
elif isinstance(v,str):
u=urljoin("https://api.ailoot.ai",v); p=urlsplit(u)
if p.scheme=="https" and p.netloc=="api.ailoot.ai" and not p.username and not p.password and p.path.startswith("/v1/media/assets/") and p.path.endswith("/content"):
roles.setdefault(u,[]).append(path)
visit(r)
if not roles: raise SystemExit("No completed owned assets; retain the original status")
manifest=[]
for i,(u,paths) in enumerate(roles.items()):
target=Path(f"asset-{i}.bin")
subprocess.run(["curl","--fail-with-body","--silent","--show-error",u,"-H","Authorization: Bearer "+os.environ["AILOOT_API_KEY"],"-o",str(target)],check=True)
raw=target.read_bytes()
if not raw: raise SystemExit("Empty asset; retain original status and metadata")
ext="glb" if raw[:4]==b"glTF" else "png" if raw[:8]==b"\x89PNG\r\n\x1a\n" else "jpg" if raw[:3]==b"\xff\xd8\xff" else "webp" if raw[:4]==b"RIFF" and raw[8:12]==b"WEBP" else "mp4" if raw[4:8]==b"ftyp" else "bin"
name=f"asset-{i}.{ext}"
if target.name!=name: target.rename(name)
manifest.append({"file":name,"response_paths":paths,"bytes":len(raw)})
Path("asset-manifest.json").write_text(json.dumps(manifest,indent=2))
print("Saved",len(manifest),"unique owned assets; every response role retained")
PY_ASSETS
Получить и сохранить результаты
Ailoot Ultra · Видео
GET /v1/videos/{request_id}GET /v1/videos/generations/{request_id}GET /v1/videos/{request_id}/contentGET /v1/media/assetsGET /v1/media/assets/{asset_id}
Сохраняйте все готовые результаты
Сохраните каждое готовое видео или полученный файл; загрузите содержимое по каждому фактически полученному URL материала.
Сохраните полный ответ и заголовки, исходные идентификаторы, каждый фактический результат и все поля использования и учёта. Сохраните каждый уникальный ресурс, принадлежащий Ailoot, и каждую роль, которая на него ссылается.
Если нужно проверить исходный ответ
Сохраните возвращённый публичный id задачи или операции и все заголовки. Проверяйте только исходную задачу; unknown или result_pending_check не разрешают создавать новую.
Поля ответа
| Поле | Тип |
|---|---|
Полеid | Типstring |
Полеpolling_url | Типstring |
Полеprovider_task_id | Типstring |
Полеtask_id | Типstring |
Полеstatus | Типstring |
Полеvideo_url | Типstring |
Псевдонимы
Псевдонимы моделей
Ailoot Ultra minimaxi-s2v-01
Псевдонимы путей метода
/v1/videos/generations
Связанные ID для вызова
FAQ · MiniMax: S2V 01
- Какие входные данные и результаты доступны?
POST /v1/videos·minimaxi-s2v-01:text,image→video- Какие поля использует запрос?
POST /v1/videos·minimaxi-s2v-01:model,prompt,end_image,image