Перейти к основному контенту

Почему ваше POV-видео с ИИ превращается в вид от третьего лица

Задайте камеру от первого лица, исправьте вводящие в заблуждение референсы и устраните переходы POV-видео с ИИ в крупный план или вид от третьего лица.

Автор
Lydia
Опубликовано
Время чтения
14 мин чтения
Обновлено
Вид от первого лица на взрослого мужчину в тёмно-синем пиджаке за столиком ресторана в сумерках; на переднем плане предплечья наблюдателя и чашка кофе.

Вы запросили кадр от первого лица, а ролик показывает собеседника из-за плеча наблюдателя или камера приближается к его лицу. Сначала найдите противоречивые указания для камеры в начальном кадре и описании движения. Крупный план, прямой зрительный контакт и метка «POV» не создают точку зрения. Верхний ракурс задаёт высоту камеры; первое лицо определяет, чьи глаза она представляет.

В этой сцене на уровне глаз начальный кадр строится из позиции наблюдателя. Его голову и туловище оставьте за кадром; кисти или предплечья могут входить снизу, но для создания первого лица они не обязательны. Описывайте действия собеседника отдельно от действий камеры.

Ниже приведена сцена за столиком ресторана для Seedance 2.5 image-to-video, затем исправления реально видимых ошибок, действия рук, движущийся POV и соединение кадров. Все изображённые люди — вымышленные взрослые. Иллюстрации показывают положение камеры, а не сгенерированное видео.

Создайте первый кадр с места, которое занимает зритель

Референс должен выглядеть как фотография, снятая глазами сидящего наблюдателя. Напротив за небольшим столом сидит взрослый мужчина в тёмно-синем пиджаке поверх белой рубашки с расстёгнутым воротником; его глаза примерно на высоте объектива. Ближний край стола проходит по низу кадра, предплечья наблюдателя входят из нижних углов. Нет ни его затылка, ни силуэта плеча, ни отдельного оператора.

Используйте это описание в инструменте для изображений или поставьте такую же сцену с фотографиями, на использование которых есть разрешение:

Photographic first-person view from a seated adult observer at a restaurant table beside a large window at dusk. A fictional adult man in a navy blazer over an open-collared white shirt sits directly across the small table at conversational distance, hands loosely clasped. Camera at the seated observer's eye height. His face and upper torso are unobstructed. Only the observer's relaxed forearms in dark sleeves enter from the lower corners, resting near the near table edge beside a white coffee cup. A candle in a glass holder and a small vase of flowers stand between them. Warm lamp light against a blue-hour city view through the window. The observer's head, face, shoulders and torso are outside the frame. One continuous room, no mirrors, no over-the-shoulder composition.

Плечо у края — не безобидная деталь: оно сообщает модели, что камера может находиться позади наблюдателя. Обрежьте его, если остаток сохраняет связный вид с сидячей позиции. Если после обрезки остаётся боковой или повышенный ракурс, создайте кадр заново: анимация не переставит камеру за вас.

Ресторан от первого лица с предплечьями наблюдателя на переднем плане рядом с внешним видом, включающим его затылок.

Иллюстрация: предплечья на переднем плане могут поддержать первое лицо; видимые голова и плечо устанавливают внешний ракурс.

Seedream 5.0 Flash указан примерно по $0.029 за изображение, поэтому пять или шесть повторных попыток стоят меньше одного напрасного видео. Задача edit позволяет исправить отдельный дефект, например лишнее плечо или слишком большую кисть, без пересоздания сцены. Перед загрузкой в Seedance 2.5 image-to-video проверьте ограничения: каждая сторона от 300 до 6000 пикселей, до 10 MB, JPG, PNG, WEBP или GIF. Результат следует форме исходного изображения, поэтому сначала обрежьте его до нужного соотношения сторон. Используйте вымышленного персонажа или человека, на изображение которого есть разрешение; входная проверка Seedance может отклонить фото реального узнаваемого лица.

Сделайте пробный ролик с одним небольшим действием

В Seedance 2.5 image-to-video Playground загрузите утверждённый кадр, выберите пять секунд в 480p, выключите звук и вставьте промпт движения. Для первого дубля оставьте конечное изображение пустым. Результат следует форме исходного изображения; точка зрения задаётся картинкой и словами, а не переключателем POV.

Скопируйте этот промпт:

One continuous five-second first-person shot from the seated observer's eyes. The adult man across the table looks toward the observer, gives one small smile and tilts his head slightly. The observer remains seated and still. Keep the camera position, eye height and framing unchanged. The man's hands stay on his side of the table. The observer's forearms remain low in the foreground. Stable warm lamp light. One take, no cut, no orbit, no zoom, no external view, no dialogue.

Seedance 2.5 image-to-video указан по $0.1234 за секунду в 480p, поэтому пробный ролик на пять секунд стоит $0.617. В 720p тариф составляет $0.2773 за секунду, или $1.3865 за тот же ролик, а в 1080p — $0.6823 за секунду ($3.4115). С аудио и без него тариф одинаков. Для финального рендера со звуком включите generate_audio и добавьте "Sound: quiet restaurant ambience, cutlery, low voices; no music or captions." Проверяйте композицию и движение недорого в 480p; когда кадр и формулировки готовы, рендер в 720p или 1080p добавляет разрешение, а не меняет положение камеры. Для реальной задачи получите новую оценку цены.

Избегайте "camera circles him", "cinematic reveal", "pull back to show the couple" и "over his shoulder". Каждая фраза требует другой точки зрения. Персонаж может взглянуть вниз на чашку при неподвижной камере; если описать этот взгляд как движение камеры, возникнет конфликт, который затем придётся устранять.

Три ресторанных кадра сравнивают исходный вид, изменение положения головы и взгляда при постоянном кадрировании и перемещённую камеру, показывающую мужчину в профиль.

Иллюстрация: изменение взгляда персонажа и движение камеры дают разные кадры.

Исправляйте видимый симптом вместо добавления синонимов POV

Что видно в результатеВероятный конфликт инструкции или референсаКакую правку попробовать
Появляются голова или спина наблюдателяИсточник или формулировка раскрытия сцены подразумевает внешнюю камеруЗамените источник видом из позиции глаз; уберите раскрытие сцены и указания ракурса из-за плеча
Стол виден сверхуРеференсная камера слишком высокоПересоздайте на уровне глаз сидящего человека; держите глаза мужчины близко к высоте объектива
Камера приближается к лицуКрупный план или наезд противоречит неподвижному наблюдателюУберите эти указания; оставьте край стола и раму окна фиксированными опорами композиции
Зрительный контакт исчезает, но кадрирование не меняетсяПерсонаж изменил взгляд, а не точку зренияУкажите, когда он смотрит на наблюдателя; не генерируйте заново из-за намеренного взгляда в сторону
Входят руки не того человекаОба получают неоднозначные указания "you reach"Отдельно назовите "the man across the table" и "the observer's right hand"; сначала анимируйте только одну пару рук
Чашка закрывает лицоРеквизит изначально высоко или действие поднимает его на линию взглядаДержите чашку на столе; слегка сдвиньте её вместо подъёма к объективу
Появляются телефон, камера или отражение наблюдателя"Selfie", "vlog", слова о зеркале или отражающая поверхность в кадреУберите эти слова, избегайте стекла и зеркал за персонажем и укажите, что камера и телефон не появляются на экране
Рука наблюдателя исчезает после первой секундыПерсонаж отпустил её или вышел из зоны досягаемостиЗадайте непрерывный контакт в промпте ("keeps hold of the observer's hand") или запланируйте склейку после исчезновения руки

Измените противоречивый ввод до попытки с другим seed; иначе следующий запрос повторит ту же пространственную неоднозначность.

Ресторанный вид с уровня глаз сидящего человека сопоставлен с высокой камерой, смотрящей сверху на того же мужчину и стол.

Иллюстрация: высота глаз меняет отношения между зрителем, лицом и столешницей.

Дайте рукам наблюдателя действие

POV-кадр создаёт ощущение присутствия, когда руки наблюдателя действуют. Правило то же, что для точки зрения: задайте ситуацию в первом кадре и используйте промпт только для следующего движения. Если наблюдатель должен держать чашку, уже поместите её в его руку на изображении, с предплечьем от нижнего края, и попросите одно медленное движение:

From the seated observer's fixed eye position, the observer's right hand lifts the white coffee cup a few centimeters and sets it back on the saucer. The man across the table watches, then smiles. One continuous shot, unchanged camera height and distance, no cuts.

При передаче предметов нужно ясно распределить действия. Начните с действия собеседника: его проще описать пространственно, чем согласованный обмен. Для этого нужен другой первый кадр: чашка должна стоять на его стороне стола, рядом с его руками, как на рисунке ниже. Отредактируйте утверждённый кадр или пересоздайте его, чтобы переместить чашку до анимации. Затем используйте этот промпт:

From the seated observer's fixed eye position, the adult man across the table uses his right hand to slide the white cup a short distance toward the observer, then releases it. The cup stays on the tabletop throughout. The observer's hands remain resting at the near edge and do not touch the cup. The man briefly glances at the cup, then back toward the observer. One continuous shot, unchanged camera height and distance, no cuts.

В первой попытке не просите наблюдателя хватать чашку: новой руке придётся войти, коснуться и принять предмет, пока другая его отпускает. Если обмен нужен сюжету, поставьте его вторым действием после остановки чашки, начиная с кадра, где обе руки уже показаны правильно.

Три иллюстративных кадра показывают, как взрослый мужчина касается чашки, сдвигает её к наблюдателю и отпускает; руки наблюдателя остаются отдельно.

Иллюстрация: касание, сдвиг и отпускание выполняет мужчина напротив; руки наблюдателя остаются отдельно.

Когда камера должна двигаться

Кадр от первого лица может двигаться, если движется наблюдатель. Опубликованный пример на странице Seedance 2.5 Spicy image-to-video хорошо это показывает: в начальном кадре женщина держит руку наблюдателя, а промпт говорит, что она обхватывает рукой руку зрителя и тянет, "breaking into a run and towing the camera after her", с движением ручной камеры от первого лица.

Женщина берёт зрителя за руку на ночном рынке, бежит вперёд и тянет камеру за собой; рука зрителя видна только в начале. Ролик без звука.

Камера движется примерно на уровне человеческих глаз с покачиванием ручной съёмки; женщина со смехом оборачивается к объективу. Нет ни облёта, ни вида с воздуха. Рука наблюдателя появляется только в начале; пример не показывает непрерывного удержания руки. Если контакт важен, попросите её не отпускать руку и проверьте весь ролик.

Для POV при ходьбе подготовьте кадр с понятным путём и попросите движение вперёд по нему. Отделяйте инструкции движения от звуковой подсказки:

One continuous first-person shot at standing eye height. The observer walks forward along the lit corridor at an easy pace; the camera advances at walking speed with a slight handheld sway and keeps the corridor centered. No one enters the frame from behind and the observer's body stays out of the frame. Sound: footsteps on tile and faint room tone.

Не добавляйте строку о фиксированной камере в промпт ходьбы: инструкции противоречат друг другу. Ходьба — другое задание для камеры, а не усиленный вариант сидячего крупного плана. Не просите одновременно облетать персонажа, двигать его назад и показывать взаимодействие рук в одном дубле.

Для приветствия стоя замените всю сцену: камера на высоте глаз стоящего взрослого в дверном проёме, другой взрослый в двух шагах внутри комнаты, без стула или предплечий сидящего человека на переднем плане. Попросите другого взрослого слегка открыть дверь и улыбнуться, пока наблюдатель неподвижен. Повторное использование сидячего ресторанного кадра с "standing doorway POV" заставляет модель решать две несовместимые пространственные задачи.

Продолжайте следующее действие с последнего кадра

Когда неподвижный кадр работает, стройте последовательность из коротких дублей. Каждый начинается с изображения с правильным положением камеры, поэтому точка зрения сохраняется самой конструкцией.

  • В Seedance 2.5 установите return_last_frame в true: ответ включит конечный кадр ролика как отдельное изображение. Используйте его как следующий image_url.
  • Для уже имеющегося ролика экспортируйте последний кадр сами: ffmpeg -sseof -0.2 -i input.mp4 -update 1 -q:v 2 last-frame.png.
  • Чтобы закончить кадр там, где нужно, передайте второе изображение как last_image_url, всегда вместе с image_url, и опишите переход между ними. Подготовьте оба в одинаковом соотношении сторон: несогласованное кадрирование может исказить финальную композицию. Seedance 2.5 Spicy принимает ту же пару. Можно дать одинаковое изображение на обоих концах, запросив возврат к этой композиции; проверьте отрендеренный конец вместо предположения о точном совпадении.

Длиннее не значит надёжнее. Сама страница модели советует подтвердить движение на пяти секундах перед продлением: анатомия и оформление сцены дрейфуют с длиной кадра, управляемого изображением. Несколько коротких дублей, соединённых монтажом, держатся лучше одного 30-секундного.

Проверьте ролик, затем обрежьте или отрендерите заново

Если первые четыре секунды остаются от первого лица, а последняя отъезжает назад, обрежьте до смены точки зрения. Если нежелательное плечо остаётся у края весь ролик, кадрирование помогает лишь тогда, когда центральная сцена всё ещё выглядит из позиции наблюдателя. Обрезка не создаст отсутствующий вид из позиции глаз и не исправит перспективу стола.

Проверяйте скачанный исходный файл, а не миниатюру плеера, которая может скрыть краткую смену точки зрения. Эта команда извлекает четыре равномерно распределённых проверочных изображения из пятисекундного ролика:

bash
ffmpeg -i input.mp4 \
  -vf "fps=4/5,scale=480:-2,tile=2x2" \
  -frames:v 1 pov-review.jpg

По контактному листу найдите изменения кадрирования, затем воспроизведите весь ролик для оценки движения и контакта рук; короткий дефект может попасть между выборками. Чтобы убрать непригодный конец, эта команда экспортирует только первые четыре секунды и сохраняет аудиодорожку, если она есть:

bash
ffmpeg -i input.mp4 -t 4 -map 0:v:0 -map 0:a? \
  -c:v libx264 -crf 18 -pix_fmt yuv420p -c:a aac pov-trimmed.mp4

Фильтры описаны в документации FFmpeg.

Если сцене нужен обратный ракурс, сделайте намеренную склейку на другой кадр. Вид из-за наблюдателя может хорошо работать в истории, но это третье лицо. Сохраните пространственную связность части от первого лица, затем перейдите к новой точке зрения отдельным кадром. Руководство по планированию кадров показывает, как размещать такие склейки в короткой сцене.

Выберите способ создания кадра

  • Есть утверждённое изображение: Seedance 2.5 image-to-video, как выше. Оно закрепляет построенную вами начальную композицию; проверьте, удерживает ли её ролик.
  • Есть только слова: text-to-video принимает описание от первого лица, но модель решает, где стоит камера, поэтому начальная композиция меньше под вашим контролем. Начните с положения камеры ("the camera is a person seated at a table"), а затем описывайте действие.
  • Один персонаж появляется в нескольких POV-кадрах: используйте reference-to-video с неподвижными изображениями или рабочий процесс для постоянного персонажа.
  • Неподвижная позиция глаз продолжает дрейфовать: у некоторых моделей есть настоящий параметр фиксации камеры; руководство по фиксированной камере перечисляет их и объясняет формулировку фиксации для моделей без него.
  • Сцены от первого лица для взрослых: Seedance 2.5 Spicy — версия без цензуры, настроенная с LoRA; первое лицо указано среди применений. Она использует ту же логику начального изображения, не имеет входов aspect_ratio и return_last_frame и указана по $0.216 за секунду в 480p, $0.432 в 720p и $1.08 в 1080p. Руководство по видеопромптам без цензуры содержит промпты от первого лица, а руководство по изображению в видео без цензуры описывает подготовку исходной картинки.

Используйте утверждённый POV-кадр в приложении

Задайте SPICY_API_KEY в окружении, а SPICY_IMAGE_URI — как доступный URL начального изображения или загруженный URI spicy://. Этот пример Python 3 отправляет один новый кадр после подтверждения цены.

python
import json
import os
import urllib.request
import uuid

base = "https://api.spicyapi.ai/api/v1"
headers = {"Authorization": "Bearer " + os.environ["SPICY_API_KEY"],
           "Content-Type": "application/json", "User-Agent": "SpicyAPI-Blog/1.0"}
settings = {
    "duration_seconds": 5,
    "resolution": "480p",
    "generate_audio": False
}
settings["prompt"] = 'One continuous fixed-camera first-person shot from a seated observer. The man across the table gives one small smile. Keep the camera height, framing, room and clothing unchanged.'
settings["image_url"] = os.environ["SPICY_IMAGE_URI"]
payload = {"model": "bytedance/seedance-2.5/image-to-video", "input": settings}

def post(path, body):
    request = urllib.request.Request(base + path, json.dumps(body).encode(), headers)
    with urllib.request.urlopen(request, timeout=60) as response:
        result = json.load(response)
    if result.get("code") != 200:
        raise RuntimeError(result)
    return result["data"]

quote = post("/jobs/quote", payload)
if input(f"Maximum charge ${quote['maxCharge']}. Type yes to generate: ") != "yes":
    raise SystemExit("Stopped before generation")
headers["Idempotency-Key"] = str(uuid.uuid4())
print("Request key:", headers["Idempotency-Key"], flush=True)
task = post("/jobs/createTask", {**payload, "quoteId": quote["quoteId"],
                              "expectedCost": quote["estimatedCost"]})
print("Task ID:", task["taskId"])

Сохраните выведенный ключ запроса для восстановления того же запроса; новому кадру нужен новый ключ. Документация Task API описывает доставку результатов и восстановление.

Для повторных кадров поручите Agent использовать утверждённый входной файл: CLI spicyapi tasks create --model bytedance/seedance-2.5/image-to-video --input-file input.json --wait; MCP попросите вызвать spicyapi_task_create с этой моделью и входом; Skill попросите “Use the spicyapi Skill to generate this approved shot and return the result.” CLI и MCP показывают цену до создания. См. документацию интеграции Agent.

Другие языки English · 日本語 · 한국어 · Deutsch · Français · Español · Português (Brasil) · Italiano · Polski