Veo 3.1 API
model: veo/3-lite
model: veo/3-fast
model: veo/3
Цена: за секунду, от 9 кр. ($0.045) до 14.4 кр. ($0.072). Разрешения: 720p, 1080p.
Цена: за секунду, от 18 кр. ($0.09) до 54 кр. ($0.27). Разрешения: 720p, 1080p, 4k.
Цена: за секунду, от 72 кр. ($0.36) до 108 кр. ($0.54). Разрешения: 720p, 1080p, 4k.
кр. — кредиты, покупаются за рубли.
Песочница
Ролик собирается после входа: новому счёту начисляют 50 кредитов, и первые ролики идут на них. Самая дешёвая секунда стоит 9 кр. Войдите, чтобы начать.
{
"prompt": "рыжий кот идёт по подоконнику, мягкий свет",
"model": "veo/3-fast",
"resolution": "720p",
"duration": 4
}
Нажмите «Запустить» — готовый ролик появится здесь
Ролик делается минуты. Задача живёт не дольше 60 минут, после чего шлюз закрывает её сам и возвращает удержание целиком.
{
"code": 200,
"msg": "success",
"data": {
"successFlag": 1,
"response": {
"resultUrls": [
"https://file.example/result.mp4"
]
},
"errorMessage": null
}
}
Цена Veo 3.1
Цена за ролик целиком: ставка выбранного разрешения, умноженная на запрошенные секунды и округлённая вверх до целого кредита. Она известна до вызова, ровно эта сумма удерживается на время работы, и ровно она списывается при готовности — неудачный ролик не стоит ничего.
| Разрешение | За секунду | Ролик 4 с | Ролик 6 с | Ролик 8 с | Официальная |
|---|---|---|---|---|---|
| 720p | 9 кр. · $0.0454,5 ₽ | 36 кр. | 54 кр. | 72 кр. | $0.05/с |
| 1080p | 14.4 кр. · $0.0727,2 ₽ | 58 кр. | 87 кр. | 116 кр. | $0.08/с |
| Разрешение | За секунду | Ролик 4 с | Ролик 6 с | Ролик 8 с | Официальная |
|---|---|---|---|---|---|
| 720p | 18 кр. · $0.099 ₽ | 72 кр. | 108 кр. | 144 кр. | $0.1/с |
| 1080p | 21.6 кр. · $0.10810,8 ₽ | 87 кр. | 130 кр. | 173 кр. | $0.12/с |
| 4k | 54 кр. · $0.2727 ₽ | 216 кр. | 324 кр. | 432 кр. | $0.3/с |
| Разрешение | За секунду | Ролик 4 с | Ролик 6 с | Ролик 8 с | Официальная |
|---|---|---|---|---|---|
| 720p | 72 кр. · $0.3636 ₽ | 288 кр. | 432 кр. | 576 кр. | $0.4/с |
| 1080p | 72 кр. · $0.3636 ₽ | 288 кр. | 432 кр. | 576 кр. | $0.4/с |
| 4k | 108 кр. · $0.5454 ₽ | 432 кр. | 648 кр. | 864 кр. | $0.6/с |
Veo 3.1 Lite — 720p, 1080p; Veo 3.1 Fast — 720p, 1080p, 4k; Veo 3.1 Quality — 720p, 1080p, 4k. Разрешения, которого нет в этом списке, у уровня нет и в продаже: шлюз отвечает на такой запрос отказом 422.
Официальная цена взята из таблицы цен Vertex AI, строка Veo, колонка «Video + Audio»: ролики приходят со звуком, и сравнивать нашу цену надо с тем тарифом, по которому этот же ролик обошёлся бы у Google. кр. — кредиты, покупаются за рубли.
Вызов через API
Адреса вызова
Veo вызывается не через createTask, а своими двумя адресами — теми же,
что у поставщика: код, написанный под его generate и
record-info, работает со шлюзом сменой адреса и ключа.
Первый вызов ставит задачу и сразу отвечает её номером, второй по этому номеру отдаёт состояние, а
когда ролик готов — ссылку на файл. Ключ передаётся в обоих запросах заголовком
Authorization: Bearer sk-… и выпускается
в кабинете.
Поля запроса
Поля лежат в корне тела запроса, а не внутри input. Обязателен один
prompt: остальные шлюз подставит сам — теми значениями, что названы в
столбце пояснения, и счёт посчитает по ним же.
| Поле | Тип | Обяз. | Допустимые значения |
|---|---|---|---|
| prompt | текст | обязательное | не длиннее 20 000 символов · Описание ролика. Пустое — отказ 422 до обращения к поставщику. |
| imageUrls | список ссылок | опц. | до 3 ссылок на изображение · Картинки на входе. Адрес проверяется теми же правилами, что у остальных моделей: схема, длина и запрет ходить внутрь чужой сети — отказ 422 до обращения к поставщику. |
| model | значение из списка | опц. | veo/3, veo/3-fast, veo/3-lite · Уровень модели. Без него шлюз подставит veo/3-fast; написание поставщика (veo3_fast) принимается наравне с нашим. |
| generationType | значение из списка | опц. | TEXT_2_VIDEO, FIRST_AND_LAST_FRAMES_2_VIDEO, REFERENCE_2_VIDEO · Что делать с картинками на входе: развернуть ролик вокруг одной, взять две как первый и последний кадр или до трёх как образцы. Сочетание с уровнем и длительностью проверяет поставщик. |
| aspect_ratio | значение из списка | опц. | 16:9, 9:16, Auto · Форма кадра. Имя пишется через подчёркивание — так оно записано у поставщика. Не прислано — поле не уходит вовсе, кадр выбирает поставщик. |
| resolution | значение из списка | опц. | 720p, 1080p, 4k · Разрешение ролика. Без него шлюз подставит 720p. |
| duration | число из списка | опц. | 4, 6, 8 секунд · Длительность ролика в секундах — по ней считается цена. Без неё шлюз подставит 8. |
| enableTranslation | да или нет | опц. | true или false · Флаг поставщика. Не прислан — шлюз его не отправляет. |
| watermark | текст | опц. | не длиннее 20 000 символов · Водяной знак. Предела длины поставщик не называет — стоит наш общий потолок. |
| callBackUrl | текст | опц. | полный адрес http или https · Адрес, на который шлюз постучится, когда ролик будет готов или отказан. Тело — то же, что отдаёт запрос состояния. |
Значение вне списка шлюз отклоняет до обращения к поставщику ответом
422, и кредитов это не стоит. Поля, которых нет в таблице, он молча
отбрасывает.
Как узнать готовность
Поля state у Veo нет: состояние приходит числом
successFlag — 0 работает,
1 готово (ссылка на файл в response),
2 и 3 отказ, причина в
errorMessage. Расчёт закрывается тем же запросом состояния:
списание при готовности и возврат при отказе происходят в тот самый
record-info, который увидел итог. Пока вы не спросили, кредиты
остаются удержанными.
Счёт идёт за секунду видео и известен до запуска целиком — ровно эта сумма удерживается на время
работы, и неудачный ролик не стоит ничего.
Сочетание, которого нет в продаже (veo/3-lite в 4k), шлюз
отклоняет ответом 422, а не считает по выдуманной.
Ответ, когда ролик готов
Конверт тот же, что у задач, а внутри — ответ поставщика как есть. Ссылка лежит объектом, а не
строкой JSON внутри JSON: разбирать её вторым разбором, как
resultJson обычных задач, не нужно.
{
"code": 200,
"msg": "success",
"data": {
"successFlag": 1,
"response": { "resultUrls": ["https://file.example/result.mp4"] },
"errorMessage": null
}
}
Отказы
Тело отказа одно на все случаи: {"code":…,"msg":…,"data":null} — тот же
конверт, что у задач. Ролик, не дошедший до результата, не тарифицируется: удержанные кредиты
возвращаются целиком.
| Код | Адрес | Когда |
|---|---|---|
| 401 | /api/v1/veo/generate | Ни ключа в заголовке Authorization, ни входа по сессии; либо ключ неверный или отключён. |
| 402 | /api/v1/veo/generate | Свободных кредитов меньше, чем стоит запрошенный ролик. Цена Veo известна до вызова целиком, и удерживается ровно она. |
| 422 | /api/v1/veo/generate | Пустой prompt; значение model, resolution или duration вне списка; ссылка в imageUrls не прошла проверку адреса; сочетание уровня и разрешения, которого нет в продаже. Сюда же попадает запрос по сессии, назвавший чужой или отключённый ключ учёта. |
| 502 | /api/v1/veo/generate | Поставщик не ответил или ответил ошибкой. Задача не создаётся, удержание снимается целиком. |
| 503 | /api/v1/veo/generate | Поставщик перегружен или отбил запрос по своему лимиту. Удержание снимается, повторить можно через несколько секунд — срок назван в заголовке Retry-After. |
| 401 | /api/v1/veo/record-info | Ни ключа в заголовке Authorization, ни входа по сессии; либо ключ неверный или отключён. |
| 404 | /api/v1/veo/record-info | Задачи с таким номером нет или она создана другим аккаунтом. |
| 502 | /api/v1/veo/record-info | Состояние узнать не удалось: поставщик не ответил или ответил ошибкой. Списание при этом не производится: расчёт закрывается по состоянию задачи, а оно осталось неизвестным. |
| 503 | /api/v1/veo/record-info | Поставщик перегружен. Повторить опрос можно через несколько секунд — срок назван в заголовке Retry-After; удержание остаётся на месте. |
Пример вызова
Показан весь путь: постановка задачи, ожидание с паузой в 3 секунды и ссылка на готовый ролик. Подставить остаётся только свой ключ.
# 1. Поставить задачу — в ответе её номер
TASK=$(curl -s https://api.gen202.com/api/v1/veo/generate \
-H "Authorization: Bearer sk-ваш-ключ" \
-H "Content-Type: application/json" \
-d '{
"prompt": "рыжий кот идёт по подоконнику, мягкий свет",
"model": "veo/3-lite",
"resolution": "720p",
"duration": 8
}' | jq -r '.data.taskId')
# 2. Спрашивать состояние, пока successFlag не перестанет быть 0
while true; do
RECORD=$(curl -s "https://api.gen202.com/api/v1/veo/record-info?taskId=$TASK" \
-H "Authorization: Bearer sk-ваш-ключ")
FLAG=$(echo "$RECORD" | jq -r '.data.successFlag')
[ "$FLAG" != "0" ] && break
sleep 3
done
# 3. Забрать ссылку: 1 — готово, 2 и 3 — отказ
echo "$RECORD" | jq -r '.data.response.resultUrls[0] // .data.errorMessage'
import time
import requests
headers = {"Authorization": "Bearer sk-ваш-ключ"}
# 1. Поставить задачу — в ответе её номер
created = requests.post(
"https://api.gen202.com/api/v1/veo/generate",
headers=headers,
json={
"prompt": "рыжий кот идёт по подоконнику, мягкий свет",
"model": "veo/3-lite",
"resolution": "720p",
"duration": 8,
},
).json()
task_id = created["data"]["taskId"]
# 2. Спрашивать состояние, пока successFlag не перестанет быть 0
while True:
record = requests.get(
"https://api.gen202.com/api/v1/veo/record-info",
headers=headers,
params={"taskId": task_id},
).json()["data"]
if record["successFlag"] != 0:
break
time.sleep(3)
# 3. Забрать ссылку. Разбор здесь один: у Veo response — объект, а не строка
if record["successFlag"] != 1:
raise SystemExit("отказ: " + str(record.get("errorMessage")))
print(record["response"]["resultUrls"][0])
Пример вызова
Показан весь путь: постановка задачи, ожидание с паузой в 3 секунды и ссылка на готовый ролик. Подставить остаётся только свой ключ.
# 1. Поставить задачу — в ответе её номер
TASK=$(curl -s https://api.gen202.com/api/v1/veo/generate \
-H "Authorization: Bearer sk-ваш-ключ" \
-H "Content-Type: application/json" \
-d '{
"prompt": "рыжий кот идёт по подоконнику, мягкий свет",
"model": "veo/3-fast",
"resolution": "720p",
"duration": 8
}' | jq -r '.data.taskId')
# 2. Спрашивать состояние, пока successFlag не перестанет быть 0
while true; do
RECORD=$(curl -s "https://api.gen202.com/api/v1/veo/record-info?taskId=$TASK" \
-H "Authorization: Bearer sk-ваш-ключ")
FLAG=$(echo "$RECORD" | jq -r '.data.successFlag')
[ "$FLAG" != "0" ] && break
sleep 3
done
# 3. Забрать ссылку: 1 — готово, 2 и 3 — отказ
echo "$RECORD" | jq -r '.data.response.resultUrls[0] // .data.errorMessage'
import time
import requests
headers = {"Authorization": "Bearer sk-ваш-ключ"}
# 1. Поставить задачу — в ответе её номер
created = requests.post(
"https://api.gen202.com/api/v1/veo/generate",
headers=headers,
json={
"prompt": "рыжий кот идёт по подоконнику, мягкий свет",
"model": "veo/3-fast",
"resolution": "720p",
"duration": 8,
},
).json()
task_id = created["data"]["taskId"]
# 2. Спрашивать состояние, пока successFlag не перестанет быть 0
while True:
record = requests.get(
"https://api.gen202.com/api/v1/veo/record-info",
headers=headers,
params={"taskId": task_id},
).json()["data"]
if record["successFlag"] != 0:
break
time.sleep(3)
# 3. Забрать ссылку. Разбор здесь один: у Veo response — объект, а не строка
if record["successFlag"] != 1:
raise SystemExit("отказ: " + str(record.get("errorMessage")))
print(record["response"]["resultUrls"][0])
Пример вызова
Показан весь путь: постановка задачи, ожидание с паузой в 3 секунды и ссылка на готовый ролик. Подставить остаётся только свой ключ.
# 1. Поставить задачу — в ответе её номер
TASK=$(curl -s https://api.gen202.com/api/v1/veo/generate \
-H "Authorization: Bearer sk-ваш-ключ" \
-H "Content-Type: application/json" \
-d '{
"prompt": "рыжий кот идёт по подоконнику, мягкий свет",
"model": "veo/3",
"resolution": "720p",
"duration": 8
}' | jq -r '.data.taskId')
# 2. Спрашивать состояние, пока successFlag не перестанет быть 0
while true; do
RECORD=$(curl -s "https://api.gen202.com/api/v1/veo/record-info?taskId=$TASK" \
-H "Authorization: Bearer sk-ваш-ключ")
FLAG=$(echo "$RECORD" | jq -r '.data.successFlag')
[ "$FLAG" != "0" ] && break
sleep 3
done
# 3. Забрать ссылку: 1 — готово, 2 и 3 — отказ
echo "$RECORD" | jq -r '.data.response.resultUrls[0] // .data.errorMessage'
import time
import requests
headers = {"Authorization": "Bearer sk-ваш-ключ"}
# 1. Поставить задачу — в ответе её номер
created = requests.post(
"https://api.gen202.com/api/v1/veo/generate",
headers=headers,
json={
"prompt": "рыжий кот идёт по подоконнику, мягкий свет",
"model": "veo/3",
"resolution": "720p",
"duration": 8,
},
).json()
task_id = created["data"]["taskId"]
# 2. Спрашивать состояние, пока successFlag не перестанет быть 0
while True:
record = requests.get(
"https://api.gen202.com/api/v1/veo/record-info",
headers=headers,
params={"taskId": task_id},
).json()["data"]
if record["successFlag"] != 0:
break
time.sleep(3)
# 3. Забрать ссылку. Разбор здесь один: у Veo response — объект, а не строка
if record["successFlag"] != 1:
raise SystemExit("отказ: " + str(record.get("errorMessage")))
print(record["response"]["resultUrls"][0])
Общее для всех моделей — ключ и заголовки, баланс и расход, справочник по Veo.
Что делает нейросеть Google Veo 3.1
Google Veo 3.1 — нейросеть, которая снимает видео и сразу записывает к нему звук.
Начинается всё с описания словами. Присланные картинки меняют работу: по одной снимается целый ролик, две задают его начало и конец, а несколько сразу служат образцами.
Уровень модели — это значение поля model, и имена у него такие: veo/3, veo/3-fast и veo/3-lite.
Без описания запрос не уйдёт: поле prompt единственное обязательное, и пустое шлюз отбивает у себя.
Адресов у модели два: задача ставится запросом на /api/v1/veo/generate, а готовность спрашивают у /api/v1/veo/record-info. Оба разобраны выше, в разделе про вызов, и в справочнике «Veo».
Прошлое поколение линейки разобрано отдельно: что оно умело, чего в нём не было и что с ним стало у Google — на странице Veo 3.
Можно ли работать в Veo 3.1 бесплатно и что придётся скачать
Работать в Veo 3.1 бесплатно не получится: ролик считают по секундам, и ставка зависит от уровня и разрешения. Новому счёту при первом входе начисляют приветственные кредиты, и тратить их можно на любую модель каталога. Ежемесячного платежа нет: с баланса уходит только стоимость сделанных роликов.
Скачать Veo 3.1 себе на компьютер нельзя: модель работает у Google, а обращаются к ней по нашему адресу. Готовое видео, наоборот, скачивается: под проигрывателем в песочнице стоит кнопка «Скачать», и файл приходит в mp4.
Официальным сайтом Veo 3.1 мы не являемся: модель выпустил Google, а GEN202 открывает к ней доступ из России.
Как сделать видео в Veo 3.1: порядок работы
Порядок один на всех уровнях, и меняются в нём только значения полей. Ниже он разобран по шагам — от первой строки описания до готового файла.
- Напишите, что происходит в кадре. Поле prompt единственное обязательное. В нём называют, кто в кадре, что он делает, что вокруг него и как при этом ведёт себя камера.
- Назовите звук словами. Звуковую дорожку модель пишет по тому же описанию. Реплики героев, шум обстановки и отдельные звуки происходящего называют там же, где сюжет.
- Выберите уровень. Имя уровня уходит в поле model. От него зависят потолок разрешения и ставка за секунду, а набор полей у всех уровней общий.
- Задайте длину, разрешение и форму кадра. Это поля duration, resolution и aspect_ratio. Первые два вместе решают, во что обойдётся задача; остальные поля на цену не влияют.
- Приложите картинки, если они есть. Ссылки складывают в imageUrls, а поле generationType говорит, как их прочитать: развернуть одну, связать пару кадров или взять образцами.
- Запустите задачу и заберите ролик. Задача ставится на /api/v1/veo/generate, готовность спрашивают у /api/v1/veo/record-info. В песочнице ролик появляется в проигрывателе сам, и оттуда же скачивается файлом.
Чем различаются уровни Veo 3.1
Набор полей у всех уровней общий, поэтому переход с одного на другой — это правка одной строки запроса, а не переделка вызова.
Расходится потолок разрешения: Veo 3.1 Fast и Veo 3.1 Quality доходят до 4k, у Veo 3.1 Lite он 1080p.
Расходится и цена: своя ставка за секунду стоит у каждого сочетания уровня с разрешением, и все они собраны в таблице выше.
Длительность, форма кадра и предел списка картинок у всех уровней одни и те же.
Уровень, который подставится сам, если поле model не прислать, — veo/3-fast.
| Характеристика | Lite | Fast | Quality |
|---|---|---|---|
| Имя для поля model | veo/3-lite | veo/3-fast | veo/3 |
| Потолок разрешения | 1080p | 4k | 4k |
| Длительность, секунд | 4, 6 и 8 | 4, 6 и 8 | 4, 6 и 8 |
| Формы кадра | 16:9, 9:16 и Auto | 16:9, 9:16 и Auto | 16:9, 9:16 и Auto |
| Ссылок в поле imageUrls | до 3 | до 3 | до 3 |
| Звук | пишется вместе с картинкой | пишется вместе с картинкой | пишется вместе с картинкой |
Длительность и разрешение ролика Veo 3.1
Длину берут из поля duration, и выбор такой: 4, 6 и 8 секунд. Не прислано — уйдёт 8.
Разрешение задаёт поле resolution: 720p, 1080p и 4k. Само подставляется 720p.
Форма кадра лежит в поле aspect_ratio: 16:9, 9:16 и Auto. Значение Auto отдаёт выбор поставщику — пропорции он берёт с присланной картинки.
Имя aspect_ratio пишется через подчёркивание, в отличие от соседних полей запроса: так его принимает поставщик, а слитное написание он пропускает молча.
Что кладут в запрос Veo 3.1 кроме описания
Картинки идут одним списком imageUrls, и берёт он до 3 ссылок. Отдельных полей под первый и последний кадр здесь не заведено.
Как их прочитать, говорит поле generationType: съёмка по одному описанию, работа по паре кадров и работа по образцам.
Своя надпись поверх кадра ставится полем watermark.
Как выглядит тело запроса целиком, показывает песочница; поля по одному разобраны в разделе «Veo».
Что писать в описании Veo 3.1, чтобы вышло задуманное
Описание — единственное обязательное поле, и от того, как оно составлено, зависит больше, чем от всех прочих значений вместе. Ниже — из чего его складывают.
- Начинают с главного: кто в кадре, что он делает и что происходит вокруг. Начало описания модель выполняет точнее конца.
- Героя и камеру разводят по разным предложениям. Если герой сам идёт на камеру, наезда камеры в ролике может не выйти вовсе.
- Движение камеры называют одно. Два указания сразу модель разрешает самым простым способом — оставляет кадр неподвижным.
- Действий в одном описании оставляют немного. Чем их больше, тем вернее указание про камеру потеряется первым.
- Когда нужен один непрерывный план, это говорят прямо. Смену плана внутри ролика тоже заказывают словами описания.
- Реплику подписывают именем того, кто её произносит, — иначе при двух героях она достанется не тому.
- Реплики держат короткими: чем длиннее сказанное, тем хуже оно совпадает с движением губ.
- Реплику отделяют двоеточием, а не кавычками: взятое в кавычки модель охотнее рисует в кадре надписью.
- Звуки называют поимённо, а не одним словом «звуки»: модель пишет дорожку ровно по тем словам, которые прочитала.
- Когда рассказ собирают из нескольких роликов, внешность героя и обстановку описывают заново в каждом.
Готовое описание вместе с остальными полями удобно собрать в песочнице: форма заполнена допустимыми значениями до первой правки.
Что Google обещает от Veo 3.1
Звук получается вместе с картинкой, а не накладывается после неё.
Слоёв в нём три: отдельные звуки происходящего, шум обстановки вокруг и реплики тех, кто в кадре.
Описание модель выполняет и короткое, и подробное, а движение и поведение предметов передаёт как в реальной жизни.
Veo 3.1 Quality предложен под съёмку, где важнее всего достоверность картинки в готовом монтаже.
Veo 3.1 Fast назван быстрым при сохранённом качестве и рассчитан на обычный ход работы. Отдельно он предложен тем, у кого ролики собирает программа: рекламные вставки, быстрая проверка нескольких замыслов, материал для лент.
Veo 3.1 Lite назван самым дешёвым — для тех, кто выпускает ролики потоком и переделывает их помногу раз.
Образцы служат одному: до 3 снимков одного человека, животного или товара, и внешность его обещано перенести в готовый ролик.
О чём Google предупреждает у Veo 3.1
Труднее прочего модели даётся связная человеческая речь, и заметнее всего это на коротких репликах.
Совпадение звука с движением губ дорабатывается до сих пор.
В запутанной сцене с быстрым движением предметы и обстановка к концу ролика держатся хуже, чем в простой.
Описание проходит через отсев по опасным разрядам — среди них насилие, непристойность, унижение и брань.
Похожий на снимок портрет известного человека модель делать отказывается.
Иногда работа обрывается на звуковой дорожке, и вместо готового файла приходит отказ.
Что в Veo 3.1 получается не сразу и как это обходят
Слова разработчика говорят, на что модель рассчитана. О том, обо что человек спотыкается на втором ролике, там нет ничего — это видно только за работой.
- Написанную реплику модель иногда не произносит вовсе, а в другой раз добавляет речь, о которой не просили.
- Когда в кадре двое, губы двигаются у того, кто молчит. Сцену после этого переснимают.
- На репликах в кадре сами появляются надписи. Отдельной дорожки с ними нет — они впечатаны в картинку, и убирают их поверх готового ролика.
- Одно бранное слово внутри реплики роняет всю работу. Та же сцена без него проходит.
- Голос героя держится, пока куски делают в один заход, и меняется от ролика к ролику, когда их снимают порознь.
- Неподвижная камера и крупный план даются модели легче всего, а достоверности в таком кадре больше.
- Число планов модель выдерживает не всегда: смен, расписанных в описании по секундам, в готовом ролике оказывается меньше.
- Часть названного в описании в готовый ролик не попадает вовсе. Тот же запрос, отправленный второй раз, даёт другой ролик, но причины не снимает.
- Присланный образец держится не весь ролик: одежда и предметы в кадре могут поменяться к концу.
- Когда заданы первый и последний кадр, недостающее модель дорисовывает ради совпадения с концом, а сам переход иногда выходит склейкой.
- Сложное движение тела вроде переворота в воздухе модель не доводит до конца, сколько бы раз его ни просили.
Отсюда порядок, к которому приходят: длинный рассказ собирают не одним роликом, а несколькими короткими. Последний кадр готового ролика снимают и ставят первым кадром следующего, а негодный кусок переснимают отдельно от остальных.