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

Как заменить персонажа в видео с помощью ИИ (одно изображение, один запрос)

Замените человека в коротком ролике персонажем с одного изображения. Реальные результаты до и после, ограничения и пример вызова API.

Автор
Lydia
Опубликовано
Время чтения
9 мин чтения
Женщина в чёрном комбинезоне с халтером стоит перед зеркалом танцевальной студии в сумерках, а в отражении бородатый мужчина в распахнутой белой льняной рубашке в точности повторяет её позу; результат MiniMax H3 Character Swap.

ИИ-замена персонажа подменяет человека в видео другим персонажем, не трогая темп, камеру и действие. MiniMax H3 Character Swap делает это одним запросом: вы отправляете короткий ролик, одно изображение нового персонажа и несколько слов о том, кого заменить, а в ответ получаете новый ролик, где этот персонаж играет исходный дубль. Шага распознавания нет, маску рисовать не нужно. Вам нужно разрешение каждого реального человека, который есть в видео и на изображении (см. раздел о согласии ниже). Наши примеры — обычные сцены; это руководство не касается контента для взрослых.

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

Что подаётся на вход и что получается

ВходЧто передать
ВидеоMP4 до 90 МБ; используются только первые 15 секунд. Берите один непрерывный кадр: по данным страницы модели, дубль без склеек работает лучше всего.
ИзображениеОдно изображение нового персонажа: фото, 3D-рендер или рисунок. JPEG, PNG, WebP или GIF до 10 МБ. Лучше всего подходит изображение в полный рост на однотонном фоне.
ПромптТолько именная группа, указывающая, кого заменить, например «the woman on the left» или «the man in the white shirt» (по-английски). Платформа сама оборачивает её в инструкцию, на которой обучалась модель, поэтому не пишите «замени X на Y». Пусто означает главного человека в кадре.
Длительность, соотношение сторон, разрешениеДлительность и соотношение сторон подгоните под свой ролик. Разрешение: 480p, 540p, 768p или 1080p; результат длится от 3 до 15 секунд. На странице модели указан звук в результате; звук в роликах ниже мы не проверяли.

Сначала попробуйте 480p. Это самый дешёвый уровень, и он покажет, получается ли замена, прежде чем вы заплатите за 1080p.

Примеры, которые можно повторить

Все ролики здесь сгенерированы ИИ, а люди в них вымышленные взрослые. Каждый из них — пример на странице модели, там же его входные файлы, промпт и сид. Показательные запуски сделаны в 768p; код ниже использует 480p для дешёвой первой пробы, поэтому повтор в 480p будет выглядеть несколько иначе.

Танцевальное соло («Studio mirror dancer swap», сид 7). Исходник: в пустой студии женщина в чёрном комбинезоне с халтером поднимает руку, делает полный оборот и улыбается в камеру. Референс: бородатый мужчина в льняной рубашке; промпт — «the woman in the black halter jumpsuit».

Замена персонажа из примера со студией: пятисекундный ролик в 768p, женщина заменена мужчиной с референса.
Бородатый мужчина в распахнутой белой льняной рубашке поднимает руку в пустой танцевальной студии на закате, вместо танцовщицы из исходного ролика.
Постерный кадр замены в студии.

Поднятая рука и улыбка есть в результате. Первый сид (41) добавил на фоне ряд лишних танцоров, а сид 7 оставил зал пустым, как в исходнике; если запуск добавляет людей, попробуйте другой сид.

Фуникулёр («Funicular scarlet jumpsuit swap», сид 12). Исходник: темноволосая женщина в горчичном тренче оборачивается от окна, заправляет прядь за ухо и смеётся. Референс: студийное фото в полный рост — женщина с короткой платиновой стрижкой в алом комбинезоне с открытыми плечами; промпт — «the woman in the mustard trench coat».

Студийный портрет в полный рост: женщина с короткой платиновой стрижкой в алом комбинезоне с открытыми плечами и чёрных туфлях на каблуках, референс персонажа.
Референсное изображение: в полный рост, однотонный фон.
Замена персонажа из примера с фуникулёром: пятисекундный ролик в 768p, женщина в тренче заменена женщиной в алом комбинезоне.

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

Барбершоп, два референса — нарисованный и анимированный (сид 42, промпт «the man in the white shirt»). В обоих примерах один исходный ролик: мужчина в белой рубашке встаёт, поправляет волосы перед зеркалом и уходит.

Исходный ролик из барбершопа, общий для обоих примеров, пять секунд.

Первый референс — комикс-рисунок тушью: рыжеволосая женщина в коричневой лётной куртке и зелёных брюках карго. В результате («Barbershop comic heroine swap») появляется женщина из реальной съёмки с теми же рыжими волосами, курткой и брюками; в постерном кадре она держит руку у волос перед зеркалом, как исходный мужчина.

Комикс-рисунок тушью: рыжеволосая женщина в коричневой лётной куртке с меховым воротником, чёрном топе и зелёных брюках карго, в полный рост на кремовом фоне.
Референс первый: комикс-рисунок.
Рыжеволосая женщина в коричневой лётной куртке и зелёных брюках карго стоит у зеркала барбершопа, подняв руку к волосам, рядом её отражение.
Постерный кадр результата с героиней комикса.
Замена персонажа из примера с героиней комикса, пять секунд в 768p.

Второй референс — рендер героя 3D-анимации: седые волосы и борода, тёмно-синее двубортное пальто поверх кремового вязаного свитера и коричневые ботинки («Barbershop 3D character swap»). В результате получается мужчина из реальной съёмки с седыми волосами, короткой бородой и тёмно-синим пальто, а в его постерном кадре тот же жест: рука у волос перед зеркалом. Контурные линии и затенение рендера не переносятся; волосы, цвета и одежда — переносятся.

Герой 3D-анимации с седыми волосами и короткой седой бородой, улыбается, в тёмно-синем двубортном пальто поверх кремового свитера с косами и в коричневых ботинках, в полный рост на светло-голубом фоне.
Референс второй: персонаж 3D-анимации.
Мужчина с седыми волосами в тёмно-синем пальто стоит у зеркала барбершопа, подняв руку к волосам, рядом его отражение.
Постерный кадр результата с 3D-персонажем.
Замена персонажа из примера с 3D-персонажем, пять секунд в 768p.

Важен ли адаптер

В наших тестах — да. На тех же входных данных запуск без адаптера замены персонажа позволил исходному мужчине вернуться на фон в роли прохожего, а в сцене с двумя людьми на диване потерял действие во второй половине; с адаптером изменился только названный человек, а действие повторяло исходник. Страница модели всегда работает с адаптером, так что настраивать нечего. Чтобы заменить двоих, запустите ролик дважды и каждый раз называйте другого человека.

Вызов из кода

Загрузите два файла и запустите одну задачу. Установите Python SDK (pip install spicyapi) и задайте SPICY_API_KEY:

python
import uuid

from spicyapi import SpicyClient, output_assets

client = SpicyClient()  # reads SPICY_API_KEY from the environment

clip = client.upload_file("./studio-solo.mp4")
character = client.upload_file("./character-full-body.jpg")

task = client.create_task(
    model="minimax/h3-character-swap/video-edit",
    input_data={
        "video_url": clip["uri"],
        "image_url": character["uri"],
        "prompt": "the woman in the black halter jumpsuit",
        "duration_seconds": 5,
        "aspect_ratio": "16:9",
        "resolution": "480p",
        "seed": 7,
    },
    idempotency_key=str(uuid.uuid4()),  # new key per new request
)

final = client.wait_for_terminal(task["taskId"])
if final["state"] != "succeeded":
    raise RuntimeError(f"{task['taskId']} ended as {final['state']}")
print(output_assets(final)[0]["url"])  # copy the video to your own storage now

Загрузка, ожидание, ошибки и повторные попытки описаны в руководстве по задачам и в справочнике Python SDK. Результаты хранятся ограниченное время, поэтому прежде чем опираться на возвращённую ссылку, прочитайте про хранение и доставку медиа. В Playground те же входные данные — это форма: загрузите ролик и изображение, напишите, кого заменить, и запустите.

Сколько это стоит

Цена складывается из трёх частей: секунды результата плюс секунды исходного видео (каждая начатая секунда считается, до 15) по тарифу вашего разрешения, плюс $0.02 за запрос за изображение персонажа.

РазрешениеЗа секунду
480p$0.06
540p$0.09
768p$0.135
1080p$0.27

Результат в 5 секунд из исходника в 5 секунд в 480p — это 10 секунд × $0.06 + $0.02 = $0.62; в 768p — 10 × $0.135 + $0.02 = $1.37. Минимальный результат — 3 секунды, поэтому самый дешёвый тест — ролик на 3 секунды с результатом на 3 секунды в 480p: 6 × $0.06 + $0.02 = $0.38. Живая оценка на странице модели показывает итог до запуска.

Ограничения, с которыми мы столкнулись

  • Алый комбинезон на чёрном комбинезоне. Мы запустили студийный ролик (женщина в чёрном комбинезоне с халтером) с фото алого комбинезона выше, на сидах 7 и 99. В обоих запусках осталась исходная одежда, оттенок кожи вышел светлее, чем на референсе, а лицо ушло от фото. То же фото на ролике с фуникулёром (тренч, сид 12) получилось правильно с первого раза. Причину мы не выделяли; разница между роликами в том, что женщина в студии уже была в цельном наряде, как на референсе, поэтому если одежда не меняется, попробуйте исходник, где человек одет иначе, или другой сид.
  • Лишние люди. Один студийный запуск (сид 41) добавил танцоров на фоне, которых не было в исходнике. Запустите другой сид.
  • Один персонаж на запрос, и используются только первые 15 секунд исходника. Результат — новый ролик заданной длины, а не ваш файл с одним перерисованным человеком, поэтому мелкие детали фона могут отличаться. Всегда сверяйте лицо с референсом до публикации.

Согласие и право на изображение

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

Какой инструмент для какой задачи

  • Один человек, одно изображение, быстрая замена или нарисованный персонаж: MiniMax H3 Character Swap, как описано выше.
  • Несколько человек или до трёх фото одного персонажа: Video Character Swap сначала анализирует ролик, даёт выбрать цели по номеру и принимает ролики от 5 до 30 секунд. Порядок работы разобран в руководстве по референсам.
  • Нужно менять только лицо: используйте сценарий замены лица, он описан в руководстве по API замены лица.

Вопросы и ответы

Можно ли попробовать бесплатно? Бесплатного уровня у этой модели нет. Самый дешёвый тест — ролик на 3 секунды в 480p, $0.38 по расчёту выше.

Какой длины может быть видео? Используются первые 15 секунд исходника, результат длится от 3 до 15 секунд. Подгоните длительность под свой ролик.

Можно ли заменить больше одного человека? Один персонаж на запрос. Запустите ролик ещё раз, назвав другого человека, или используйте Video Character Swap для нескольких целей за один анализ.

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

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

Другие языки English · 日本語 · 한국어 · Español