Другая камера: ReCamMaster
Урок «wrapper-recam» в группе WanVideoWrapper списка уроков. Шагов: 13.
Чему вы научитесь
Готовое видео перерисуется так, будто камера двигалась по-другому.
Что понадобится
- Файлы моделей, которые урок проверяет:
- модель ReCamMaster:
models/diffusion_models, напримерWan2_1_kwai_recammaster_1_3B_step20000_bf16.safetensors; - чтение текста Wan, umt5-xxl:
models/text_encoders, напримерumt5_xxl_fp8_e4m3fn_scaled.safetensors; - VAE от Wan 2.1 (wan_2.1_vae):
models/vae, напримерwan_2.1_vae.safetensors.
- модель ReCamMaster:
- Ноды: WanVideo Model Loader, WanVideo T5 Text Encoder Loader, WanVideo VAE Loader, WanVideo TextEncode, Load Video, Get Video Components, WanVideo Encode, WanVideo ReCamMaster Default Camera, WanVideo ReCamMaster Camera Embed, WanVideo Sampler, WanVideo Decode, Create Video, Save Video.
- Приложение ничего не скачивает и не устанавливает. Тексты шагов ниже говорят, какие файлы, в какие папки и какой шаблон ComfyUI их называет.
Шаги
Слова каждого шага, как их показывает урок. Имена нод выделены.
Что делает ReCamMaster (чтение)
ReCamMaster берёт готовое видео и рисует ту же сцену заново, но с другим движением камеры: с облётом, наездом или поворотом. То, что происходит в сцене, остаётся.
Модель небольшая, на основе Wan 2.1 1.3B. Она обучена на роликах из 81 кадра размером 832 на 480 и с ними работает лучше всего.
Берите своё видео или то, на которое у вас есть права.
Урок собирает граф с пустого холста: «Файл ▸ Новый проект».
Загрузите модель
Добавьте ноду WanVideo Model Loader и выберите в поле
modelмодель ReCamMaster.Если нужного файла в списке нет, значит, его нет в вашем ComfyUI. Приложение ничего не скачивает. Проще всего открыть в самом ComfyUI пример графа ReCamMaster из папки
example_workflowsпака WanVideoWrapper: он покажет, каких файлов не хватает и куда их положить. Потом выберите здесь в меню «Синхронизация ▸ Синхронизировать сейчас», и файлы появятся в списках.Чтение текста и VAE
Добавьте ноды WanVideo T5 Text Encoder Loader и WanVideo VAE Loader. В поле
model_nameпервой выберите файлumt5-xxl-enc, второй файлwan_2.1_vae.Опишите, что в видео
Добавьте ноду WanVideo TextEncode и подключите ко входу
t5выход ноды WanVideo T5 Text Encoder Loader. В полеpositive_promptопишите, что происходит в видео: кто, где, что делает.Камеру описывать не нужно, её вы зададите отдельно.
Загрузите видео
Добавьте ноды Load Video и Get Video Components. В поле
fileпервой выберите видео из папкиinput, её выход подключите ко входуvideoвторой.Переведите видео в сжатый вид
Добавьте ноду WanVideo Encode. Ко входу
vaeподключите выход ноды WanVideo VAE Loader, ко входуimageвыходimagesноды Get Video Components.Если видео длиннее 81 кадра или другого размера, поставьте между ними ноды
ImageFromBatchиImageScale. Первая оставит 81 кадр, вторая приведёт размер к 832 на 480.Выберите движение камеры
Добавьте ноду WanVideo ReCamMaster Default Camera и подключите ко входу
latentsвыход ноды WanVideo Encode.В поле
camera_typeвыберите движение:pan_right,pan_left: поворот вправо и влево;tilt_up,tilt_down: наклон вверх и вниз;zoom_in,zoom_out: наезд и отъезд;translate_up,translate_down: подъём и спуск;arc_left,arc_right: облёт слева и справа.
Соедините камеру и видео
Добавьте ноду WanVideo ReCamMaster Camera Embed. Ко входу
camera_posesподключите выход ноды WanVideo ReCamMaster Default Camera, ко входуlatentsвыход ноды WanVideo Encode.Видео приходит сюда второй раз: по нему модель рисует сцену, а по пути камеры поворачивает её.
Добавьте сэмплер
Добавьте ноду WanVideo Sampler и подключите к ней:
- ко входу
modelмодель; - ко входу
text_embedsпромпт; - ко входу
image_embedsвыходcamera_embedsноды WanVideo ReCamMaster Camera Embed.
Поставьте
steps20.- ко входу
Превратите результат в кадры
Добавьте ноду WanVideo Decode. Ко входу samples подключите выход сэмплера, ко входу vae выход ноды WanVideo VAE Loader.
- Соберите ролик
Добавьте ноды Create Video и Save Video, кадры в images, ролик в video. В поле fps поставьте 16.
- Если сцена изменилась (чтение)
Что проверить:
- в ролике другая сцена: промпт не подходит к видео. Опишите то, что в нём на самом деле;
- картинка мутная: видео не того размера. Приведите его к 832 на 480;
- нужен облёт на заданный угол: для него в паке есть отдельная нода, WanVideo ReCamMaster Generate Orbit Camera. Её ставят вместо ноды WanVideo ReCamMaster Default Camera.
- Граф готов (чтение)
Сохраните граф через «Файл ▸ Сохранить workflow для ComfyUI…», откройте файл в ComfyUI и запустите там. Само приложение в ComfyUI ничего не запускает.
Один запуск даёт одно движение камеры. Чтобы сравнить два движения, запустите граф дважды.
Что проверяет урок
Шаг для чтения сделан, когда вы нажимаете Понятно, дальше. Шаг с делом отмечается сам, когда на холсте есть:
- Шаг 2, Загрузите модель:
- нода WanVideo Model Loader.
- в поле
modelноды WanVideo Model Loader стоит файл такого вида: модель ReCamMaster; такой файл лежит вmodels/diffusion_models, напримерWan2_1_kwai_recammaster_1_3B_step20000_bf16.safetensors.
- Шаг 3, Чтение текста и VAE:
- нода WanVideo T5 Text Encoder Loader.
- нода WanVideo VAE Loader.
- в поле
model_nameноды WanVideo T5 Text Encoder Loader стоит файл такого вида: чтение текста Wan, umt5-xxl; такой файл лежит вmodels/text_encoders, напримерumt5_xxl_fp8_e4m3fn_scaled.safetensors. - в поле
model_nameноды WanVideo VAE Loader стоит файл такого вида: VAE от Wan 2.1 (wan_2.1_vae); такой файл лежит вmodels/vae, напримерwan_2.1_vae.safetensors.
- Шаг 4, Опишите, что в видео:
- нода WanVideo TextEncode.
wan_t5_modelноды WanVideo T5 Text Encoder Loader во входt5ноды WanVideo TextEncode.positive_promptноды WanVideo TextEncode: не меньше 3 знаков и 2 настоящих слов.
- Шаг 5, Загрузите видео:
- нода Load Video.
- нода Get Video Components.
VIDEOноды Load Video во входvideoноды Get Video Components.fileноды Load Video: значение выбрано.
- Шаг 6, Переведите видео в сжатый вид:
- нода WanVideo Encode.
vaeноды WanVideo VAE Loader во входvaeноды WanVideo Encode.imagesноды Get Video Components во входimageноды WanVideo Encode (можно через Upscale Image или Resize Image или ImageResizeKJv2 или ImageFromBatch или GetImageRangeFromBatch).
- Шаг 7, Выберите движение камеры:
- нода WanVideo ReCamMaster Default Camera.
samplesноды WanVideo Encode во входlatentsноды WanVideo ReCamMaster Default Camera.
- Шаг 8, Соедините камеру и видео:
- нода WanVideo ReCamMaster Camera Embed.
camera_posesноды WanVideo ReCamMaster Default Camera во входcamera_posesноды WanVideo ReCamMaster Camera Embed.samplesноды WanVideo Encode во входlatentsноды WanVideo ReCamMaster Camera Embed.
- Шаг 9, Добавьте сэмплер:
- нода WanVideo Sampler.
modelноды WanVideo Model Loader во входmodelноды WanVideo Sampler.text_embedsноды WanVideo TextEncode во входtext_embedsноды WanVideo Sampler.WANVIDIMAGE_EMBEDSноды WanVideo ReCamMaster Camera Embed во входimage_embedsноды WanVideo Sampler.stepsноды WanVideo Sampler: от 20 до 30; «Сделать за меня» ставит 20. Почему: reCamMaster обучен на двадцати шагах.
- Шаг 10, Превратите результат в кадры:
- нода WanVideo Decode.
samplesноды WanVideo Sampler во входsamplesноды WanVideo Decode.vaeноды WanVideo VAE Loader во входvaeноды WanVideo Decode.
- Шаг 11, Соберите ролик:
- нода Create Video.
- нода Save Video.
IMAGEноды WanVideo Decode во входimagesноды Create Video.VIDEOноды Create Video во входvideoноды Save Video.fpsноды Create Video:16. Почему: wan рисует 16 кадров в секунду. С другим числом ролик пойдёт быстрее или медленнее, чем задумано.
Частые ошибки
- Промпт не совпадает с видео: появляется другая сцена.
- Видео другого размера: размытый результат.