P-Video
prunaai-p-video-0
P-Video — генерация видео от prunaai, доступная через единый Ranvik API. Поддерживаемые возможности: async, image_to_video, text_to_video.
от 1.4 ₽ / сек
Технические характеристики
prunaai-p-video-0Возможности
- Async
- Image-to-video
- Text-to-video
Цены
| Единица | Цена |
|---|---|
| за секунду · 720p · draft | 1.4 ₽ |
| за секунду · 1080p · draft | 2.8 ₽ |
| за секунду · 720p | 5.6 ₽ |
| за секунду · 1080p | 11.2 ₽ |
Цены указаны в рублях. Списываются с баланса проекта при каждом успешном запросе.
Поддерживаемые параметры
Параметры передаются вендору как есть (pure proxy) — мы не валидируем их у себя на стороне. Если вендор не примет — вернётся его ошибка.
| Параметр | Тип | Диапазон / values | Default | Описание | ||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
positivePromptrequired | string | min: 1 · max: 2000 | — | Текстовый промпт описывающий генерируемое видео. примеры значенийПримеры Робот собирает розы в саду под дождём, slow-motion, мягкий свет. | ||||||||||||
width | integer | — | — | Ширина в px. Парный к height — только валидные комбинации (см. ниже). Несовместимо с resolution. | ||||||||||||
height | integer | — | — | Высота в px. Парный к width. Список валидных значений — см. combos у width. | ||||||||||||
resolution | enum | 720p, 1080p | — | Resolution preset. Несовместимо с width/height. | ||||||||||||
duration | integer | min: 1 · max: 10 | 5 | Длительность видео в секундах (1..10). НЕЛЬЗЯ использовать вместе с inputs.audio (длительность диктует аудио). примеры значенийПримеры 5 8 10 | ||||||||||||
fps | enum | 24, 48 | 24 | Frames per second. Только 24 или 48. | ||||||||||||
seed | integer | min: 0 · max: 9223372036854776000 | — | Seed для воспроизводимой генерации (64-bit). Если не указан — выбирается случайно и возвращается в ответе. | ||||||||||||
inputs.frameImages | array of strings or objects | min: 1 · max: 2 | — | Image-to-video. Каждый item — либо строка, либо объект {image, frame}. 1 image → first, 2 → first+last. 2 формата вводаFormat 1: string[] Image input — URL / UUID / Data URI / Base64. [ "https://example.com/first-frame.jpg" ] Format 2: object[]
[
{
"image": "https://example.com/start.jpg",
"frame": "first"
},
{
"image": "https://example.com/end.jpg",
"frame": "last"
}
] | ||||||||||||
inputs.audio | string | — | — | Audio-to-video: аудио-вход (UUID / URL). Длительность аудио задаёт длительность видео. НЕЛЬЗЯ использовать с параметром duration. примеры значенийПримеры https://example.com/dialogue.wav | ||||||||||||
settings.audio | boolean | — | true | Генерировать ли native audio на выходе. | ||||||||||||
settings.draft | boolean | — | false | Draft-режим: дешевле в ~4 раза, ниже качество (для итерации). 720p draft $0.005/s vs $0.02/s. | ||||||||||||
settings.promptUpsampling | boolean | — | true | Автоматическое расширение/улучшение prompt-а моделью. | ||||||||||||
numberResults | integer | min: 1 · max: 4 | 1 | Сколько вариаций сгенерировать (разные seeds). Каждая считается отдельно. | ||||||||||||
outputFormat | enum | MP4, WEBM, MOV | MP4 | Контейнер для финального видео. | ||||||||||||
outputQuality | integer | min: 20 · max: 99 | 95 | Качество компрессии (20–99). Выше — лучше визуально и больше размер файла. | ||||||||||||
safety.checkContent | boolean | — | false | Включить проверку контента на NSFW / запрещёнку. При true default-режим safety.mode становится fast. | ||||||||||||
safety.mode | enum | none, fast, full | none | Режим safety-сканера: none — выключен, fast — проверяет ключевые кадры, full — все кадры (медленнее). | ||||||||||||
webhookURL | string | — | — | URL для POST-уведомления при готовности задачи. При numberResults > 1 webhook триггерится на каждый результат отдельно. примеры значенийПримеры https://yourapp.com/webhooks/runware | ||||||||||||
uploadEndpoint | string | — | — | Presigned URL (S3 / GCS / Azure / HTTP PUT) для автозагрузки готового видео. Сырое binary в body PUT-запроса. примеры значенийПримеры https://bucket.s3.amazonaws.com/result.mp4?X-Amz-Signature=... |
Поддерживаемые размеры
Допустимы только эти комбинации width × height. Произвольные значения вендор отклонит — используй resolution preset либо одну из пар ниже.
1280×720720×1280960×720720×9601080×720720×1080720×7201920×10801080×19201440×10801080×14401620×10801080×16201080×1080Параметры ответа
Что возвращает API. У медиа-моделей формат зависит от режима: sync — сразу результат, async — task_id для опроса через GET /v1/tasks/{id}. Эта модель работает только в async-режиме.
Async (HTTP 202)
HTTP 202. Видео-генерация всегда async — нет sync-режима.
| Поле | Тип | Значения | Описание |
|---|---|---|---|
id | string | — | task_id для GET /v1/tasks/{id}. |
object | string | video.task | |
status | enum | queued, processing, completed, failed | |
model | string | — | |
created | integer | — |
Опрос статуса (GET /v1/tasks/{id})
GET /v1/tasks/{id} — опрос статуса.
| Поле | Тип | Значения | Описание |
|---|---|---|---|
id | string | — | |
status | enum | queued, processing, completed, failed, canceled | |
modality | string | video | |
model | string | — | |
data | array | — | Каждый элемент:
|
error | string | — |
Пример запроса
from openai import OpenAI
client = OpenAI(api_key="rk_live_...", base_url="https://api.ranvik.ru/v1")
resp = client.videos.generate(
model= "prunaai-p-video-0",
positivePrompt= "Пример промпта",
width= 1,
height= 1,
resolution= "720p",
duration= 5,
fps= 24,
seed= 4611686018427388000,
"inputs.frameImages": [],
"inputs.audio": "Пример промпта",
"settings.audio": True,
"settings.draft": False,
"settings.promptUpsampling": True,
numberResults= 1,
outputFormat= "MP4",
outputQuality= 95,
"safety.checkContent": False,
"safety.mode": "none",
webhookURL= "https://example.com/...",
uploadEndpoint= "value",
)
print(resp) Замените rk_live_... на ваш ключ из кабинета.