- Когда Wan 2.7 VideoEdit — правильный инструмент
- Подтвержденные endpoint и рабочий процесс
- Шаг 1: Получите API-ключ Novita AI
- Шаг 2: Поймите структуру запроса
- Шаг 3: Отправьте первый запрос VideoEdit
- Шаг 4: Опрашивайте endpoint результата задачи
- Шаг 5: Добавьте референсное изображение, когда нужен более строгий визуальный контроль
- Ключевые параметры, на которые стоит обратить внимание
- Документированные ограничения и практические рамки
- Пример на Python: отправка и опрос
- Пример cURL с опросом в shell
- Цены, кредиты и что проверить перед оценкой стоимости
- Частые ошибки интеграции
- Какой endpoint Wan 2.7 вам выбрать?
- FAQ
- Рекомендуемые статьи
Wan 2.7 VideoEdit на Novita AI — это правильный endpoint, когда у вас уже есть видео и вы хотите, чтобы модель перестилизовала или переписала сцену без перестройки движения с нуля. Вы отправляете исходное видео на POST https://api.novita.ai/v3/async/wan2.7-videoedit, получаете task_id, а затем опрашиваете GET /v3/async/task-result, пока отредактированный клип не будет готов. Это руководство показывает точную структуру запроса, когда добавлять референсные изображения и важные детали реализации, которые стоит учесть перед внедрением в продакшн.
Когда Wan 2.7 VideoEdit — правильный инструмент
Используйте Wan 2.7 VideoEdit, когда тайминг и движение камеры в исходном клипе уже достаточно хороши, и вы хотите, чтобы ИИ изменил то, что видит зритель, а не построение кадра.
Типичные случаи применения:
- У вас есть видеоклип с живым действием, и вы хотите преобразовать его в аниме, кинематографичный или стилизованный рендер.
- Вам нужно изменить одежду, окружение, реквизит или атмосферу, сохранив исходную траекторию движения.
- Вы хотите применить преобразование на основе промпта и, возможно, закрепить внешний вид с помощью референсного изображения.
Этот endpoint не подходит, когда:
- Вам нужно создать новое движение только из текста. Вместо этого используйте Wan 2.7 T2V.
- Вы хотите анимировать статичное изображение. Вместо этого используйте Wan 2.7 I2V.
- Вам нужен многосимвольный ролевой плей с именованными референсными слотами в сгенерированной сцене. Вместо этого используйте Wan 2.7 R2V.
Это различие важно, потому что VideoEdit начинает с входного клипа. Если исходное движение неверное, модель не исправит хореографию за вас.
Подтвержденные endpoint и рабочий процесс
Wan 2.7 VideoEdit на Novita AI использует один endpoint для отправки и общий endpoint для асинхронного получения результата:
| Поле | Значение |
|---|---|
| Endpoint отправки | POST https://api.novita.ai/v3/async/wan2.7-videoedit |
| Опрос результата | GET https://api.novita.ai/v3/async/task-result?task_id=<id> |
| Заголовок авторизации | Authorization: Bearer $NOVITA_API_KEY |
| Тип содержимого | application/json |
| Официальная документация | Справочник API Wan 2.7 VideoEdit |
API является асинхронным. Успешный вызов отправки возвращает task_id, а не URL готового видео. Ваше приложение должно сохранить этот идентификатор задачи и построить логику опроса или фоновой работы вокруг него.
Шаг 1: Получите API-ключ Novita AI
Создайте ключ в управлении ключами Novita AI и храните его в переменной окружения:
export NOVITA_API_KEY="your_api_key_here"
Не встраивайте ключ непосредственно в код браузера, мобильные приложения или файлы конфигурации, попадающие в систему контроля версий.
Шаг 2: Поймите структуру запроса
Wan 2.7 VideoEdit использует плоское JSON-тело. Запрос не вкладывает поля в input или parameters.
Минимально необходимо отправить:
video_urlprompt
Документированные опциональные поля, которые вам обычно понадобятся в первую очередь:
reference_image_urlдля референса внешнего вида/стиляresolutiondurationaudio_settingprompt_extendseed
Шаг 3: Отправьте первый запрос VideoEdit
Это самый простой практический запрос:
curl -s -X POST https://api.novita.ai/v3/async/wan2.7-videoedit \
-H "Authorization: Bearer $NOVITA_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"video_url": "https://example.com/source-clip.mp4",
"prompt": "Преврати эту сцену офисного коридора в неоновый киберпанковский коридор, сохрани движение ходьбы и траекторию камеры",
"resolution": "720P",
"duration": 5
}'
Ожидаемый ответ:
{
"task_id": "abc123..."
}
Ничего больше не гарантируется в момент отправки. Воспринимайте запрос как шаг постановки задачи в очередь, а не как синхронный ответ на редактирование.
Шаг 4: Опрашивайте endpoint результата задачи
Используйте полученный task_id с общим API результата задачи:
curl -s "https://api.novita.ai/v3/async/task-result?task_id=abc123..." \
-H "Authorization: Bearer $NOVITA_API_KEY"
Стройте логику на основе этих состояний:
| Статус | Значение |
|---|---|
TASK_STATUS_QUEUED |
Принято и ожидает выполнения |
TASK_STATUS_PROCESSING |
Редактирование выполняется |
TASK_STATUS_SUCCEED |
Отредактированное видео готово |
TASK_STATUS_FAILED |
Задача не выполнена; проверьте тело ответа |
Когда задача успешно завершена, ответ включает массив videos с URL отредактированного видео и временем жизни URL. Скачайте или переместите этот ресурс оперативно, не рассматривая хостинговый URL как постоянное хранилище.
Шаг 5: Добавьте референсное изображение, когда нужен более строгий визуальный контроль
reference_image_url опционален, но он полезным образом меняет поведение редактирования.
Используйте его, когда:
- Вы хотите, чтобы итоговый клип следовал определённому внешнему виду персонажа, костюму или цветовой палитре.
- Вы хотите направить вывод в определённое художественное направление, а не полагаться только на текстовый промпт.
- Движение исходного видео правильное, но идентичность сцены слишком размыта при использовании только текстового руководства.
Пример запроса с референсным изображением:
curl -s -X POST https://api.novita.ai/v3/async/wan2.7-videoedit \
-H "Authorization: Bearer $NOVITA_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"video_url": "https://example.com/source-clip.mp4",
"reference_image_url": "https://example.com/reference-look.png",
"prompt": "Преобразуй исполнителя во внешний вид и цветовую палитру референсного изображения, сохраняя тот же танцевальный тайминг",
"resolution": "1080P",
"duration": 6,
"audio_setting": "auto"
}'
Если результат продолжает отклоняться, обычное решение — не более длинный промпт, а более точный промпт плюс лучшее референсное изображение.
Ключевые параметры, на которые стоит обратить внимание
| Параметр | Тип | Обязательный | Что делает |
|---|---|---|---|
video_url |
string | Да | Исходное видео для редактирования |
prompt |
string | Да | Описывает целевое преобразование |
reference_image_url |
string | Нет | Референсное изображение для закрепления внешнего вида и стиля |
resolution |
string | Нет | Разрешение вывода; документированные значения включают 720P и 1080P |
duration |
integer | Нет | Целевая длина вывода в секундах; 0 сохраняет полную длину исходного видео |
audio_setting |
string | Нет | Управляет поведением генерации аудио |
prompt_extend |
boolean | Нет | Позволяет модели автоматически расширять короткие промпты |
seed |
integer | Нет | Улучшает воспроизводимость при повторных попытках |
Проверьте официальный справочник параметров, прежде чем полагаться на значения по умолчанию. Поля видеомоделей меняются чаще, чем поля текстовых моделей, и ограничения вывода легко ошибиться, если полагаться на память.
Документированные ограничения и практические рамки
По состоянию на 29 июля 2026 года официальная документация Novita для Wan 2.7 VideoEdit документирует следующие границы:
- Поддерживаемые разрешения:
720Pи1080P durationпо умолчанию равно0, что означает полную длину входного видео; документированный явный диапазон длины вывода — от 2 до 10 секунд, если вы его задаёте- Форматы входного видео:
mp4иmov - Ограничение размера входного видео: до 100 МБ
- Форматы референсного изображения:
jpg,jpeg,png,webp - Ограничение размера референсного изображения: до 20 МБ
- Формат выходного видео:
mp4
Эти ограничения легко упустить, когда вы строите общий медиа-пайплайн. Самая частая ошибка интеграции — отправка более длинного или большого исходного файла, чем принимает endpoint.
Два практических следствия:
- Если вы хотите, чтобы отредактированный клип сохранял длину исходника, опустите
durationили установите его в0, а не принудительно обрезайте до 2–10 секунд. - Если вы быстро тестируете промпты, сначала используйте
720Pи переходите к1080Pтолько когда преобразование уже работает.
Пример на Python: отправка и опрос
import os
import time
import requests
API_KEY = os.environ["NOVITA_API_KEY"]
BASE_URL = "https://api.novita.ai"
HEADERS = {
"Authorization": f"Bearer {API_KEY}",
"Content-Type": "application/json",
}
def submit_video_edit(
video_url: str,
prompt: str,
reference_image_url: str | None = None,
resolution: str = "720P",
duration: int = 0,
audio_setting: str = "auto",
prompt_extend: bool = True,
seed: int | None = None,
) -> str:
payload = {
"video_url": video_url,
"prompt": prompt,
"resolution": resolution,
"duration": duration,
"audio_setting": audio_setting,
"prompt_extend": prompt_extend,
}
if reference_image_url:
payload["reference_image_url"] = reference_image_url
if seed is not None:
payload["seed"] = seed
resp = requests.post(
f"{BASE_URL}/v3/async/wan2.7-videoedit",
headers=HEADERS,
json=payload,
timeout=60,
)
resp.raise_for_status()
return resp.json()["task_id"]
def poll_result(task_id: str, interval: int = 5, timeout: int = 300) -> dict:
deadline = time.time() + timeout
while time.time() < deadline:
resp = requests.get(
f"{BASE_URL}/v3/async/task-result",
headers=HEADERS,
params={"task_id": task_id},
timeout=60,
)
resp.raise_for_status()
data = resp.json()
status = data.get("task", {}).get("status")
if status == "TASK_STATUS_SUCCEED":
return data
if status == "TASK_STATUS_FAILED":
reason = data.get("task", {}).get("reason", "unknown")
raise RuntimeError(f"Задача {task_id} не выполнена: {reason}")
time.sleep(interval)
raise TimeoutError(f"Задача {task_id} не завершилась за {timeout}с")
if __name__ == "__main__":
task_id = submit_video_edit(
video_url="https://example.com/source-clip.mp4",
prompt="Измени уличную сцену на дождливый ретро-футуристический город ночью, сохрани исходный трекинг-шот",
reference_image_url="https://example.com/reference-frame.png",
resolution="720P",
duration=0,
seed=42,
)
print(f"Отправлена задача: {task_id}")
result = poll_result(task_id)
video = result["videos"][0]
print("URL отредактированного видео:", video["video_url"])
print("Время жизни URL:", video["video_url_ttl"])
Пример cURL с опросом в shell
TASK_ID=$(curl -s -X POST https://api.novita.ai/v3/async/wan2.7-videoedit \
-H "Authorization: Bearer $NOVITA_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"video_url": "https://example.com/source-clip.mp4",
"prompt": "Преобразуй клип в нарисованную от руки сцену аниме-города, сохрани движение бега",
"resolution": "720P",
"duration": 0,
"prompt_extend": true
}' | jq -r '.task_id')
while true; do
RESULT=$(curl -s "https://api.novita.ai/v3/async/task-result?task_id=$TASK_ID" \
-H "Authorization: Bearer $NOVITA_API_KEY")
STATUS=$(echo "$RESULT" | jq -r '.task.status')
if [ "$STATUS" = "TASK_STATUS_SUCCEED" ]; then
echo "$RESULT" | jq -r '.videos[0].video_url'
break
fi
if [ "$STATUS" = "TASK_STATUS_FAILED" ]; then
echo "$RESULT"
break
fi
sleep 5
done
Если вы интегрируетесь из бэкенд-сервиса, оберните этот цикл опроса в воркер, а не держите пользовательский запрос открытым на всё время генерации.
Цены, кредиты и что проверить перед оценкой стоимости
Novita AI публикует цены на видеомодели на своих страницах моделей и цен, но эти цифры могут меняться. Для Wan 2.7 VideoEdit проверяйте текущие тарифы непосредственно на странице цен Novita AI и в записи модели, указанной в официальной документации, прежде чем публиковать оценки затрат для клиентов.
Для инженерного планирования более безопасное предположение:
- Стоимость зависит от настроек сгенерированного клипа, а не только от фиксированной платы за запрос.
- Запуски
1080P— неверная база для итераций. - Более короткие клипы легче проверять и дешевле отлаживать.
Если вы создаёте внутренние инструменты, рассматривайте поиск цен как конфигурационную задачу, а не как константу, встроенную в код.
Частые ошибки интеграции
Отправка сырых файлов вместо доступного URL. Документированная структура запроса ожидает медиа-входы на основе URL. Убедитесь, что ваш исходный клип уже доступен по стабильному URL, на который может ссылаться ваш сервер.
Использование VideoEdit для изменения движения. VideoEdit — это endpoint для преобразования, а не для хореографии. Если исходное движение неверное, перегенерируйте с помощью T2V или I2V.
Путаница лимитов исходного видео и референсного изображения. Исходное видео — более крупный ресурс: mp4/mov, до 100 МБ. Меньший лимит в 20 МБ применяется к reference_image_url, а не к video_url.
Слишком агрессивный опрос. Обращение к endpoint результата задачи каждую секунду не нужно для многосекундных видео-задач. Интервал в 5-10 секунд обычно лучше.
Игнорирование времени жизни URL. URL результата временный. Сохраните ресурс оперативно, если отредактированный клип важен для дальнейшего использования.
Пропуск специфичности промпта. “Сделай лучше” — это не промпт для редактирования. Опишите целевой стиль, окружение, обработку объекта и то, какое движение должно остаться неизменным.
Какой endpoint Wan 2.7 вам выбрать?
Используйте это простое правило:
- Выбирайте VideoEdit, если у вас уже есть исходное видео.
- Выбирайте I2V, если у вас есть исходное изображение или вы хотите продолжение из статичного рабочего процесса.
- Выбирайте T2V, если у вас есть только текст.
- Выбирайте R2V, если согласованность идентичности и контроль референсных персонажей важнее, чем редактирование существующего клипа.
Это разделение и сохраняет вашу интеграцию простой. Команды часто злоупотребляют text-to-video для задач, которые на самом деле являются проблемами редактирования на основе промптов.
FAQ
Какой endpoint у Novita AI для Wan 2.7 VideoEdit?
POST https://api.novita.ai/v3/async/wan2.7-videoedit. Он возвращает task_id, затем вы опрашиваете GET https://api.novita.ai/v3/async/task-result?task_id=<id> для завершения.
Могу ли я предоставить референсное изображение вместе с исходным видео?
Да. Документированная структура запроса поддерживает опциональный reference_image_url вместе с video_url и prompt, что полезно для более точного управления итоговым внешним видом.
Какую длину видео поддерживает Wan 2.7 VideoEdit на Novita AI?
Согласно документации на 29 июля 2026 года, duration по умолчанию равно 0, что означает полную длину входного видео. Если вы явно задаёте duration, документированный диапазон составляет 2-10 секунд.
Принимает ли Wan 2.7 VideoEdit большие исходные видео?
Да, в рамках документированного лимита. Официальная документация указывает вход mp4/mov до 100 МБ. Отдельный лимит в 20 МБ применяется к опциональному референсному изображению.
Стоит ли использовать Wan 2.7 VideoEdit или Wan 2.7 I2V?
Используйте VideoEdit, если у вас уже есть клип и вы хотите его преобразовать. Используйте I2V, если ваша отправная точка — статичное изображение или рабочий процесс, ориентированный на изображение.
