Kling Motion Control API
Переносит движение с одного ролика на другой. На вход до 1 изображения, описание до 2 500 символов. Модель Kuaishou, выпущена 4 марта 2026 года.
Kling 3.0 Motion Control API работает в России без VPN: один API ключ GEN202, оплата рублями с российской карты.
Цена: за секунду, 720p — 32 кр. (16 ₽ · $0.1455), 1080p — 42.6 кр. (21,3 ₽ · $0.1936).
кр. — кредиты, покупаются за рубли.
работает
Песочница
{ "model": "kling/3-0-motion-control", "input": { "input_urls": [ "https://gen202.com/assets/sample-nano-banana-2.jpg" ], "video_urls": [ "https://example.com/input.mp4" ], "prompt": "Заменить фон на вечернюю городскую улицу, свет тёплый" } }
Нажмите «Запустить» — готовое видео появится здесь
{
"code": 200,
"msg": "success",
"data": {
"taskId": "cm8r4t0vk0001s60p2xq7f9ab",
"model": "kling/3-0-motion-control",
"state": "success",
"resultJson": "{\"resultUrls\":[\"https://file.example/result.mp4\"]}",
"failCode": "",
"failMsg": "",
"creditsConsumed": 32
}
}
Цена Kling 3.0 Motion Control
Цена за секунду. Списывается фактический расход, о котором сообщил поставщик.
| Вариант | Наша цена |
|---|---|
| 720P | 32 кр. $0.145516 ₽ |
| 1080P | 42.6 кр. $0.193621,3 ₽ |
В среднем на +15,3% ниже официальной цены поставщика. кр. — кредиты, покупаются за рубли.
Вызов через API
Ролик делается минуты, поэтому файл не приходит в ответ на запрос. Первый вызов
ставит задачу и сразу отвечает её номером, второй по этому номеру отдаёт состояние задачи, а когда
она готова — ссылку на результат. Ключ передаётся в обоих запросах заголовком
Authorization: Bearer sk-… и выпускается
в кабинете. На один ключ шлюз пропускает
30 постановок задачи и 300
запросов состояния в минуту.
Поля запроса
Значения проверяются до обращения к поставщику: поле не из списка модели или значение вне
перечисления возвращают 422 и кредитов не тратят.
| Поле | Тип | Обяз. | Допустимые значения |
|---|---|---|---|
| model | текст | обязательное | kling/3-0-motion-control |
| input | объект | обязательное | Параметры генерации — поля из таблицы ниже |
Поля input
| Поле | Тип | Обяз. | Допустимые значения |
|---|---|---|---|
| input_urls | список ссылок | обязательное | от 1 до 1 ссылок на изображение |
| video_urls | список ссылок | обязательное | от 1 до 1 ссылок на видео |
| prompt | текст | опц. | не длиннее 2 500 символов |
| mode | значение из списка | опц. | 720p · 1080p |
| character_orientation | значение из списка | опц. | video · image |
| background_source | значение из списка | опц. | input_video · input_image |
Ссылка на исходный файл принимается только полным адресом на http или https: не длиннее 2048 символов, на общедоступном сайте, без имени и пароля перед адресом и без порта, кроме 80 и 443. Относительный путь, а также адреса внутри сети — localhost, 127.0.0.1, 10.0.0.5, 192.168.1.2 — и имена без точки шлюз отклоняет ответом 422, к поставщику не обращаясь.
Ответ
Оба запроса отвечают одним конвертом: {"code":…,"msg":…,"data":…}, где
code повторяет HTTP-статус, а полезное лежит в
data. Тот же конверт приходит и при отказе — разбирать две формы ответа
не нужно.
/api/v1/jobs/createTask
| Поле | Тип | Что в нём |
|---|---|---|
| data.taskId | строка | Номер задачи. Больше в ответе ничего нет и быть не может — работа только началась. |
/api/v1/jobs/recordInfo
| Поле | Тип | Что в нём |
|---|---|---|
| data.taskId | строка | Номер задачи — тот же, что вернул createTask. |
| data.model | строка | Имя модели в том виде, в каком его прислал клиент. |
| data.state | строка | Состояние задачи: waiting, queuing, generating, success или fail. |
| data.param | строка | Параметры, с которыми задача создана, — строкой JSON внутри JSON. |
| data.resultJson | строка | Результат строкой JSON внутри JSON: {"resultUrls":["https://…"]} — разбирается вторым разбором. До завершения задачи — пустая строка. |
| data.failCode | строка | Код неудачи из таблицы ниже. У остальных задач — пустая строка. |
| data.failMsg | строка | Причина неудачи словами модели. Иначе пустая строка. |
| data.failComment | строка | Наш комментарий к словам модели, по-русски: что произошло. Есть не у всякой неудачи; иначе пустая строка. |
| data.costTime | число | Сколько задача заняла, миллисекунды. Пока не завершилась — null. |
| data.completeTime | число | Когда завершилась, миллисекунды эпохи Unix. Пока не завершилась — null. |
| data.createTime | число | Когда создана, миллисекунды эпохи Unix. |
| data.updateTime | число | Когда состояние менялось в последний раз, миллисекунды эпохи Unix. |
| data.creditsConsumed | число | Сколько кредитов списано. Ноль, пока задача не завершилась, и ноль у неудачной. |
Состояния задачи
Состояние лежит в поле state ответа
/api/v1/jobs/recordInfo. Первые три означают, что работа идёт: запрос надо
повторить примерно через 3 секунды — чаще спрашивать нечего, столько же
ждёт между опросами сам шлюз. Два последних состояния окончательные: после них задача не меняется.
| state | Что происходит |
|---|---|
| waiting | Задача принята и стоит в очереди шлюза; поставщику она ещё не отправлена. |
| queuing | Поставщик задачу принял и поставил в свою очередь. |
| generating | Генерация идёт. |
| success | Готово: ссылки на результат лежат в resultJson, в creditsConsumed — сколько списано. |
| fail | Задача не удалась: причина в failCode и failMsg, удержанные кредиты возвращены целиком. |
Задача идёт, пока модель не пришлёт результат или отказ. Причина неудачи приходит двумя полями:
failCode из таблицы ниже и failMsg словами.
| failCode | Что произошло |
|---|---|
| 501 | Поставщик вернул отказ: генерация не удалась. |
| 408 | Модель не приняла задачу за 60 минут или не отвечала сутки. |
| 404 | Поставщик не знает такой задачи. |
| 429 | Поставщик отбил создание задачи по своему лимиту. |
| 500 | Поломка на нашей стороне; подробности остаются в журнале шлюза. |
Слова модели в failMsg бывают непонятны, поэтому к части неудач шлюз
добавляет поле failComment — наш комментарий по-русски о том, что
произошло. У остальных неудач это поле пустое.
| failMsg, пример | failComment |
|---|---|
| Image fetch failed. | Модель не смогла скачать файл из нашего хранилища. Вероятно, это разовый сбой, повторите запрос. Если ошибка повторится — напишите в поддержку: hi@gen202.com |
| File type not supported | По ссылке открывается страница сайта, а не файл. Загрузите сам файл или дайте прямую ссылку на него. |
| image #2: width and height must be between 300px and 6000px (got 262x377) (invalid_asset_material) | Одна из картинок слишком маленькая. Seedance принимает картинки от 300 до 6000 пикселей по каждой стороне. |
| Seedance identified your task as video editing based on your prompt. | Seedance понял запрос как редактирование присланного видео. В песочнице и чате выберите режим «Редактирование видео», в API поставьте пропорции adaptive и длительность −1. |
| Seedance identified your task as video extension based on your prompt. | Seedance решил, что присланное видео нужно продлить. Для этого поставьте пропорции adaptive, а если продлевать не нужно — уберите эту просьбу из промта. |
| generate task timeout. | Модель не успела создать результат и сама остановила задачу. |
| Internal Error | Модель остановилась и не назвала причину. Возможно, она перегружена или временно недоступна. Или запрос отклонён из-за чувствительной темы: нагота и откровенные сцены, дети, известные люди, насилие, чужие персонажи и бренды. |
| The request failed because the input image may contain sensitive information. | Модель отклонила загруженную картинку из-за чувствительной темы. Такие темы: нагота и откровенные сцены, дети, известные люди, насилие, чужие персонажи и бренды. |
| The generated content was filtered by the safety system. | Модель отклонила запрос из-за чувствительной темы. Такие темы: нагота и откровенные сцены, дети, известные люди, насилие, чужие персонажи и бренды. |
| The model provider rejected or dropped the task creation request. | Модель остановилась и не назвала причину. Возможно, она перегружена или временно недоступна. Или запрос отклонён из-за чувствительной темы: нагота и откровенные сцены, дети, известные люди, насилие, чужие персонажи и бренды. |
| No result from the provider within the task deadline. | Модель либо не приняла задачу за 15 минут (у видео — за 60), либо не ответила за сутки. |
Ссылка на готовый файл живёт 14 дней — столько его хранит поставщик. Файл,
который нужен дольше, скачивайте к себе сразу после того, как задача пришла в состояние
success.
Отказы
Тело отказа одно на все случаи: {"code":…,"msg":…,"data":null}. Задача, не
дошедшая до результата, не тарифицируется — удержанные кредиты возвращаются целиком.
| Код | Адрес | Когда |
|---|---|---|
| 400 | /api/v1/jobs/createTask | Тело запроса — не разбираемый JSON. |
| 401 | /api/v1/jobs/createTask | Ключа нет в заголовке Authorization, либо он неверный или отключён. |
| 402 | /api/v1/jobs/createTask | Свободных кредитов меньше, чем удерживается под задачу. |
| 403 | /api/v1/jobs/createTask | Аккаунт заблокирован: вызовы модели, пополнение и загрузка файлов ему закрыты. Ключи при этом не отключены — запрет лежит на аккаунте. |
| 413 | /api/v1/jobs/createTask | Тело запроса больше 512 КиБ. |
| 415 | /api/v1/jobs/createTask | Тело отправлено не как application/json или заголовок Content-Type не передан. |
| 422 | /api/v1/jobs/createTask | Поле model пустое или его имени нет в каталоге, input — не объект, поле не из списка модели либо значение вне её перечисления. В сообщении перечислено, что принимается. Тот же код — если во входе наша ссылка на готовый результат старше 14 дней: файла уже нет, его нужно загрузить заново. И если модель не может выполнить именно это сочетание полей: в сообщении сказано, что поменять, — например, другие файлы-образцы. |
| 429 | /api/v1/jobs/createTask | Больше 30 запросов в минуту на один ключ, больше 50 незавершённых задач на аккаунте либо таймаут: за час 5 запросов к моделям этого вида отклонены из-за чувствительной темы, и запуск всех моделей этого вида приостановлен. У такого отказа в теле есть поле timeout с временем окончания паузы, а в заголовке Retry-After — секунды до него. |
| 500 | /api/v1/jobs/createTask | Поломка на нашей стороне. Подробности остаются в журнале шлюза и наружу не уходят. |
| 401 | /api/v1/jobs/recordInfo | Ключа нет в заголовке Authorization, либо он неверный или отключён. |
| 404 | /api/v1/jobs/recordInfo | Задачи с таким номером нет или она создана другим аккаунтом. |
| 422 | /api/v1/jobs/recordInfo | Параметр taskId не передан. |
| 429 | /api/v1/jobs/recordInfo | Больше 300 запросов в минуту на один ключ. |
| 500 | /api/v1/jobs/recordInfo | Поломка на нашей стороне. Подробности остаются в журнале шлюза и наружу не уходят. |
Пример вызова
# 1. Поставить задачу — в ответе придёт её номер
TASK=$(curl -s https://api.gen202.com/api/v1/jobs/createTask \
-H "Authorization: Bearer sk-ваш-ключ" \
-H "Content-Type: application/json" \
-d '{
"model": "kling/3-0-motion-control",
"input": {
"input_urls": [
"https://gen202.com/assets/sample-nano-banana-2.jpg"
],
"video_urls": [
"https://example.com/input.mp4"
],
"prompt": "Заменить фон на вечернюю городскую улицу, свет тёплый"
}
}' | jq -r '.data.taskId')
# 2. Спрашивать состояние, пока задача не закончится: waiting, queuing и
# generating означают «работа идёт», success и fail — окончательные
while true; do
RECORD=$(curl -s "https://api.gen202.com/api/v1/jobs/recordInfo?taskId=$TASK" \
-H "Authorization: Bearer sk-ваш-ключ")
STATE=$(echo "$RECORD" | jq -r '.data.state')
case "$STATE" in success|fail) break;; esac
sleep 3
done
# 3. Забрать результат. Ссылка на файл лежит в resultJson — это строка JSON
# внутри JSON, поэтому её разбирают вторым разбором (fromjson)
echo "$RECORD" | jq -r '.data |
if .state == "fail"
then "отказ \(.failCode): \(.failMsg)"
else .resultJson | fromjson | .resultUrls[0]
end'
import json
import time
import requests
headers = {"Authorization": "Bearer sk-ваш-ключ"}
# 1. Поставить задачу — в ответе придёт её номер
created = requests.post(
"https://api.gen202.com/api/v1/jobs/createTask",
headers=headers,
json={
"model": "kling/3-0-motion-control",
"input": {
"input_urls": [
"https://gen202.com/assets/sample-nano-banana-2.jpg"
],
"video_urls": [
"https://example.com/input.mp4"
],
"prompt": "Заменить фон на вечернюю городскую улицу, свет тёплый"
}
},
).json()
task_id = created["data"]["taskId"]
# 2. Спрашивать состояние, пока задача не закончится: waiting, queuing и
# generating означают «работа идёт», success и fail — окончательные
while True:
task = requests.get(
"https://api.gen202.com/api/v1/jobs/recordInfo",
headers=headers,
params={"taskId": task_id},
).json()["data"]
if task["state"] in ("success", "fail"):
break
time.sleep(3)
# 3. Разобрать итог. У неудачи причина в failCode и failMsg
if task["state"] == "fail":
raise SystemExit("отказ " + task["failCode"] + ": " + task["failMsg"])
# resultJson — строка JSON внутри JSON, поэтому разбор второй
result = json.loads(task["resultJson"])
print(result["resultUrls"][0])
print("списано кредитов:", task["creditsConsumed"])
Пример проходит весь путь: ставит задачу, повторяет запрос состояния раз в
3 секунды, пока задача не закончится, и разбирает ответ до ссылки
на файл. Разборов два, потому что поле resultJson — строка JSON
внутри JSON. В теле первого запроса стоят обязательные поля модели и значения из её
перечислений, поэтому он проходит проверку шлюза как есть.
Заменить в нём нужно два значения: свой ключ и ссылки на исходные файлы — адреса example.com стоят заполнителями, файлов по ним нет.
Пример на оболочке разбирает ответ через jq; на Python своего
ничего не нужно, кроме requests.
Остальные модели этого семейства и их поля — в разделе документации Видео.
Что делает Kling 3.0 Motion Control
Kling 3.0 Motion Control — модель Kuaishou из линейки Kling AI 3.0: она переносит движение и мимику с готового ролика на героя со снимка. О её запуске Kuaishou объявил 4 марта 2026 года. Секунда стоит у GEN202 от 16 ₽ до 21,3 ₽, и разницу задаёт выбранное разрешение.
Модель повторяет чужое движение на своём герое: как он двигается и что при этом делает лицо, снимается с присланного ролика, а внешность берётся со снимка.
На входе обязательны оба файла: одна ссылка на картинку в поле input_urls и одна на ролик в поле video_urls.
Описание здесь необязательно и вмещает до 2 500 знаков. Полный набор полей стоит таблицей выше и в разделе «Kling».
Как перенести движение из ролика на снимок
Работа собирается из двух файлов и трёх переключателей, а описание словами лишь уточняет обстановку.
- Возьмите снимок героя. Одна ссылка на картинку кладётся в поле input_urls: с неё берут внешность, одежду и лицо.
- Подберите ролик с нужным движением. Ссылка на него уходит в поле video_urls, и этот ролик задаёт, что герой будет делать.
- Обрежьте ролик до нужного куска. Длительность результата приносит присланное видео, поэтому в него кладут ровно тот отрезок, который нужен.
- Укажите, откуда брать разворот и фон. Поле character_orientation выбирает между значениями video и image, поле background_source — между input_video и input_image.
- Поставьте разрешение. Поле mode оставляет выбор из двух значений: 720p и 1080p.
Выпуски переноса движения и соседние модели серии
Перенос движения у Kuaishou не отдельный продукт, а работа внутри линейки: она была в прошлом выпуске и перешла в нынешний. В таблице — как Kuaishou называет каждый выпуск, когда он вышел, что в нём поменялось и где он открывается у нас.
| Имя у Kuaishou | Дата | Чем отличается | Наш адрес |
|---|---|---|---|
| Motion Control выпуска 2.6 | 16 декабря 2025 | Первый выпуск переноса движения: до 30 секунд сложного движения одним куском | — |
| Kling VIDEO 3.0 Motion Control | 4 марта 2026 | Лицо держится ровнее на сложном движении, разных ракурсах и длинных отрезках | эта страница, kling/3-0-motion-control |
| Kling VIDEO 3.0 | 5 февраля 2026 | Соседняя работа: ролик сочиняется по описанию, речь и губы сводятся там | карточка Kling 3.0 |
| Kling VIDEO 3.0 Omni | 5 февраля 2026 | Соседняя работа: рассказ из нескольких кадров с разбором раскадровки по полям | карточка Kling O3 |
Чем нынешний перенос лучше прошлого, Kuaishou отвечает одной строкой: «Kling 3.0 significantly improves facial consistency across complex motion, multiple angles, and longer sequences compared to 2.6». Перевод наш: «По сравнению с 2.6 у Kling 3.0 заметно лучше держится лицо при сложном движении, при разных ракурсах и на длинных отрезках». Ответ стоит на странице переноса движения Kling AI.
О запуске нынешнего выпуска Kuaishou написал 4 марта 2026 года: «Kling VIDEO 3.0 Motion Control: Major Launch! - Professional Motion Capture, Reimagined. Upgraded Motion Capture, High Facial Consistency». Перевод наш: «Kling VIDEO 3.0 Motion Control: большой запуск. Профессиональный захват движения, придуманный заново: улучшенный захват движения, высокое постоянство лица». Строка стоит на странице истории выпусков Kling AI, текст на 21 сентября 2026 года.
Датировка выпуска 2.6 взята с его собственной страницы: под заголовком руководства стоит подпись «Kling AI · Dec 16, 2025». Она лежит в разделе быстрого старта — руководство Kling по выпуску VIDEO 2.6.
Сколько длится результат Kling 3.0 Motion Control и в каком он разрешении
Длину результата задаёт присланный ролик: сколько секунд в нём движения, столько и выйдет.
Поэтому на время работы резервируется предел модели, а не цена заказанных секунд. Сколько именно, сказано под таблицей цен выше.
Разрешение выбирается полем mode: 720p и 1080p.
Что Kuaishou говорит о переносе движения
Работу Kuaishou описывает двумя фразами: «Bring any static image to life. Upload a reference video, and Kling will replicate the movement, facial expressions, and details with zero character distortion». Перевод наш: «Оживите любой неподвижный снимок. Загрузите ролик-образец, и Kling повторит движение, выражение лица и мелкие подробности без искажения героя». Страница — страница переноса движения Kling AI.
Порядок работы там же разложен на три шага, и первый звучит так: «Upload Your Assets — Provide a static character image and a motion reference video showing the exact expressions you want to replicate». Перевод наш: «Загрузите материал — дайте неподвижный снимок героя и ролик-образец с тем самым выражением, которое надо повторить». Этим двум файлам в запросе к GEN202 отвечают поля input_urls и video_urls.
Чем эта работа сильна, Kuaishou говорит так: «Unlike standard AI video generators that distort features during head turns, Kling locks your character's identity for stable, recognizable results from any perspective». Перевод наш: «В отличие от обычных генераторов видео, у которых черты лица плывут при повороте головы, Kling закрепляет облик героя и держит его узнаваемым с любой стороны». И отдельно про заслонённого героя: «Maintain character consistency even when the subject is partially blocked or moves between close-up and long shots» — перевод наш: «Герой остаётся собой, даже когда его частично заслоняют и когда он переходит с крупного плана на общий».
Какой снимок подходит, Kuaishou отвечает в разборе частых вопросов на той же странице: «Use clear, front-facing images with strong facial detail. Close-up shots with visible expressions will produce the most accurate results». Перевод наш: «Берите чёткие снимки анфас с хорошо различимым лицом. Крупный план с видимым выражением даёт самый точный результат». И про ролик-образец: «Use clear videos with visible facial movement. For pro-level character animation, ensure the character's facing direction matches your input image» — перевод наш: «Берите чёткие ролики, где видно движение лица. Для точной анимации следите, чтобы герой на снимке был развёрнут так же, как в ролике».
Чего эта работа не делает, сказано там же прямо: «Motion Control focuses on movement and expressions. For speech and lip-sync, use standard Video 3.0 generation with text prompts». Перевод наш: «Перенос движения занимается движением и выражением лица. Речь и совпадение губ со словами делает обычная генерация Video 3.0 по описанию». Та самая генерация разобрана в руководстве Kling по модели VIDEO 3.0, а у нас она открывается на странице Kling 3.0.
Про рисованных и трёхмерных героев ответ такой: «Yes. Our AI motion capture works seamlessly on human, anime, and 3D characters as long as the style remains consistent». Перевод наш: «Да. Захват движения одинаково работает на людях, рисованных и трёхмерных героях, пока стиль не меняется».
Счёт у самого Kuaishou ведётся в кредитах кабинета Kling AI. Соседнюю модель серии он описывает на странице возможности Video 3.0, но и там числа денег нет: свои кредиты он в доллары не переводит, а столбец «Официальная» в таблице цен выше показывает долларовую цену доступа к этой модели по API — $0.126 за секунду у младшего разрешения.
Слова Kuaishou о переносе движения приведены по страницам Kling AI на 15 сентября 2026 года.
Где Kuaishou очерчивает границу переноса движения
Границы этой работы Kuaishou называет сам. Речь и совпадение губ со словами он оставляет обычной генерации Kling 3.0, а переносу движения отводит движение тела и выражение лица.
- Герой ведётся один. Когда лиц в ролике несколько, модель возьмёт то, которое заметнее в кадре.
- Чем ближе герой на снимке к тому, кто двигался в ролике, тем точнее перенос: расхождение вроде движения человека на животном разработчик называет прямо.
- Трудное и быстрое движение выходит короче исходного: модель забирает из ролика только тот отрезок, где движение читается непрерывно.
Что о переносе движения писали со стороны
Выпуск, в котором эта работа появилась, разбирало издание The Decoder — автор Matthias Bastian, 21 декабря 2025 года. Предел ролика-образца там назван числами: «Users can upload motion references between 3 and 30 seconds long to create uninterrupted sequences». Перевод наш: «Пользователь может загрузить образцы движения длиной от 3 до 30 секунд, чтобы получить непрерывную последовательность». Заметка — разбор выпуска Kling 2.6 у The Decoder.
Тот же порядок действует и в GEN202: длину результата задаёт присланный ролик-образец.
Заметка The Decoder приведена на 15 сентября 2026 года.
Что переносится хорошо, а что приходится подгонять
Разработчик описывает, что переносится. Ниже — то, что видно только на съёмке: как подбирают снимок и ролик, чтобы перенос вышел с первой попытки.
Наблюдения о переносе движения взяты из разборов третьей версии: Продуктивный Совет, 6 марта 2026, Atomic Gains, 14 марта 2026, AI for Real Life, 16 марта 2026, Roboverse, 8 июня 2026.
- Возьмите снимок прямо из первого кадра своего же ролика: поза, ракурс и крупность тогда совпадают сами, а поменять остаётся внешность и обстановку.
- Крупность снимка и ролика должна сойтись. Поясной портрет с ростовым роликом чаще всего заканчивается отказом, а при меньшем расхождении камера обрезает герою голову.
- В кадре снимка нужен запас места под размах движения. Когда его нет, герой упирается в край и в ролик попадает не целиком.
- Чем крупнее лицо на снимке, тем ближе сходство. На ростовом плане модель дорисовывает черты сама, и герой перестаёт быть похожим.
- Руки берутся из ролика. Если кисти в него не попали, модель придумает их сама, а на быстром движении пальцы смазываются.
- Мелкие движения лица — облизать губы, повести глазами — сбивают перенос заметнее крупных.
- Обстановка приходит со снимка и остаётся почти неподвижной: люди на заднем плане не ходят, вспышки не срабатывают. Движение фона просят описанием, и выходит оно не с первой попытки.
- Одежду и обстановку описанием не подменить: и то и другое берётся со снимка, поэтому нужный вид собирают заранее в самой картинке.
- Разворот по ролику переносит движение точнее, а разворот по снимку удерживает исходную позу ценой расхождения с образцом. Первый ставят, когда снимок повторяет начало ролика.
- Звук переезжает из ролика целиком, вместе с голосом того, кто в нём говорил. Свой голос подставляют отдельно, после переноса.
- Годный образец — один человек, понятная поза, простое действие и спокойная камера. Хаотичное движение камеры и перекрытия героя другими предметами перенос расшатывают.
- Взаимодействие с обстановкой переезжает вместе с движением: руки в воде поднимают брызги, а сам герой отбрасывает тень и оставляет следы.
Из этого складывается обычный порядок: сначала снимают ролик с нужным движением, потом берут из него кадр и переделывают в нём внешность, а уже этот кадр подают на вход.
Рубли в таблице выше — цены GEN202, сервиса доступа к моделям с оплатой из России; у самого Kuaishou счёт идёт в кредитах его кабинета. Из чего складывается кредит и как пополняется счёт, написано на странице цен.