Видео для рекламы на RunPod (для опытных)
Генерация говорящих клипов и сцен с Wan 2.2 и InfiniteTalk на своём поде RunPod, где основную работу делают скрипты RoyLead. Стоимость, настройка, подводные камни.
Обновлено 16 сентября 2026 г.
⚠️ Для опытных. Нужно уметь работать в терминале (Linux, macOS или WSL на Windows), с
sshиffmpeg, и иметь аккаунт RunPod с привязанной картой. Если это не про вас, используйте fal.ai: те же модели, оплата за клип, ничего устанавливать не надо. Именно этот путь по умолчанию предлагает плейбук запуска.
На RunPod вы арендуете GPU по часам и запускаете на ней открытые модели: Wan 2.2 для немых сцен (image-to-video) и InfiniteTalk для реплик с синхронной артикуляцией. Скучную часть берут на себя скрипты RoyLead: они ждут готовности ComfyUI, настраивают InfiniteTalk, загружают фото и голоса, генерируют клипы по очереди, скачивают их и монтируют итоговое видео.
Сколько это стоит
| Статья | Стоимость |
|---|---|
| GPU RTX PRO 6000 (96 ГБ), Secure Cloud | 2,09 $ в час, только пока включена |
| GPU RTX 5090 Community | 0,69 $ в час, но 62 ГБ RAM: с полными моделями может не хватить памяти |
| Сетевой диск на 200 ГБ с моделями | 14 $ в месяц, постоянно |
| Один прогон из 6 клипов (под только что включён) | около 25 минут, меньше 1 $ |
| Ролик на 60 с, 12 сцен по 3 попытки | около 2 часов GPU |
Под удаляется в конце сессии: остановленный, но не удалённый под продолжает стоить денег. Диск остаётся, с моделями на нём.
Шаг 1 — Аккаунт, SSH-ключ, диск
- Создайте аккаунт на runpod.io и пополните баланс.
- В Settings → SSH Public Keys добавьте свой публичный ключ (
~/.ssh/id_ed25519.pub; если его нет:ssh-keygen -t ed25519). Скрипты используют~/.ssh/id_ed25519; для другого ключа задайтеRUNPOD_SSH_KEY=/путь/к/ключуперед запуском. - Создайте Network Volume на 200 ГБ в дата-центре EU (например, EU-RO-1). На диске лежат модели (около 176 ГБ): вы скачиваете их один раз. Дата-центр диска определяет, где вы сможете создавать поды.
Шаг 2 — Под
Рекомендуемый шаблон: «One Click - ComfyUI Wan2.1 - Wan 2.2» (автор Hearmeman, id
758dsjwiqz). При создании:
- GPU: RTX PRO 6000 Blackwell (96 ГБ) в Secure Cloud. С меньшим объёмом RAM полные модели (по 28 ГБ каждая) выбрасывают под из памяти при загрузке второй.
- Диск: ваш network volume, смонтированный в
/workspace. - Переменные шаблона: в первый раз
download_wan22=trueиdownload_wan21=true(скачивает модели на диск, 8-10 минут). На следующих подах ставьтеfalse: модели уже на диске, а повторная закачка его заполняет. - Порт 8188: это ComfyUI в браузере, по адресу
https://<pod_id>-8188.proxy.runpod.net.
На странице пода, в разделе Connect, возьмите две вещи, нужные скриптам: pod id (он в
URL) и SSH-пользователя прокси (<pod_id>-<код>@ssh.runpod.io).
Шаг 3 — InfiniteTalk (только для говорящих клипов)
В шаблон InfiniteTalk не входит. Один раз добавьте на диск, в /workspace/ComfyUI/models/, эти
файлы (с Hugging Face):
| Папка | Файл | Репозиторий |
|---|---|---|
diffusion_models | Wan2_1-InfiniTetalk-Single_fp16.safetensors | Kijai/WanVideo_comfy (папка InfiniteTalk) |
wav2vec2 | wav2vec2-chinese-base_fp16.safetensors | Kijai/wav2vec2_safetensors |
text_encoders | umt5-xxl-enc-bf16.safetensors | Kijai/WanVideo_comfy |
vae | Wan2_1_VAE_bf16.safetensors | Kijai/WanVideo_comfy |
loras | lightx2v_I2V_14B_480p_cfg_step_distill_rank64_bf16.safetensors | Kijai/WanVideo_comfy (папка Lightx2v) |
Базовую модель wan2.1_i2v_480p_14B_bf16.safetensors шаблон скачивает сам.
💡 Место. Диск «на 200 ГБ» вмещает реально около 186. Когда всё установлено, на видео остаётся примерно 20 ГБ: если закачки останавливаются без ошибок — диск полон. Файл
wan2.1_t2v_14B_bf16.safetensors(27 ГБ, Wan из текста) не нужен: его можно удалить.
Две другие вещи, которые требует InfiniteTalk (ссылка на папку и патч для библиотеки
transformers 5), orchestrate.sh делает сам на каждом новом поде, потому что они лежат на
диске контейнера и теряются при удалении пода.
Шаг 4 — Скрипты на вашем компьютере
Скачайте их в одну папку, все вместе (они ищут друг друга):
- lib_video.sh ↗ — общие проверки
- orchestrate.sh ↗ — генерирует клипы на поде
- gen_video.py ↗ — один клип (его использует orchestrate)
- fix_wav2vec_tf5.py ↗ — патч для InfiniteTalk (его применяет orchestrate)
- monta_video.sh ↗ — монтирует видео с речью
- monta_short.sh ↗ — монтирует шортсы без голоса
- примеры: clip.tsv.esempio ↗, montaggio.tsv.esempio ↗, chiusura.txt.esempio ↗
В терминале:
mkdir -p ~/video-tools && cd ~/video-tools
for f in lib_video.sh orchestrate.sh gen_video.py fix_wav2vec_tf5.py monta_video.sh monta_short.sh clip.tsv.esempio montaggio.tsv.esempio chiusura.txt.esempio; do
curl -fsSLO "https://app.roylead.com/supporto/video-tools/$f"
done
chmod +x *.sh
Понадобятся также ffmpeg (с libx264 и libass), ffprobe, python3, curl, ssh.
Скрипты не меняют: они читают всё из файлов с данными в папке видео.
Шаг 5 — Папка одного видео
my-video/
clip.tsv задания: имя, тип (it = с речью, wan = немая сцена), изображение, реплика или кадры, промпт
immagini/ стартовые кадры (по одному на сцену, сделаны в ChatGPT из фото продукта)
audio/battute/ реплики в mp3, по одной на говорящий клип
montaggio.tsv порядок клипов в видео, с mp3, который идёт под немыми сценами
montaggio/sottotitoli.ass субтитры (в Meta смотрят без звука)
chiusura.txt 3 строки: оффер, строка 2, строка 3 (необязательно)
prodotto.png фото продукта для финальной заставки (необязательно, идёт вместе с chiusura.txt)
Голоса делаются в ElevenLabs: один сплошной текст на персонажа с [long pause] между
репликами, затем он режется по паузам на отдельные mp3 (ffmpeg -af silencedetect).
Если вы используете плейбук запуска в Claude Code, сценарий, clip.tsv, montaggio.tsv,
субтитры и нарезку голосов он готовит сам.
Шаг 6 — Сгенерировать и смонтировать
# включите под, возьмите pod_id и ssh-пользователя из "Connect", затем:
nohup ./orchestrate.sh <pod_id> <ssh_пользователь> ~/my-video > ~/my-video/orchestrate.log 2>&1 &
tail -f ~/my-video/orchestrate.log # READY, MODELS, UPLOADED, затем по DONE на клип, ALL_DONE
Клипы появляются в my-video/clip/. Руки с предметами часто выходят криво: закладывайте 2-3
попытки на сцену (меняйте зерно перезапуском или сам промпт). Замеры на RTX PRO 6000: первый клип
5-7 минут (загружаются модели), далее по 1-4 минуты.
./monta_video.sh ~/my-video # → my-video/video-finale.mp4 (1080x1920, 30 fps, -16 LUFS)
./monta_short.sh ~/my-video # → my-video/short-<имя>.mp4, по одному на клип, с графикой поверх
monta_video.sh сам останавливается, если в голосе есть паузы дольше 1,5 секунды: лучше ошибка
сейчас, чем немое видео в сети. Итоговый файл пишется на системный диск и затем копируется: на
диске Windows, смонтированном в WSL, склейка может остановиться с «No space left on device».
Потом удалите под.
Уже встреченные подводные камни
- ComfyUI отвечает 403 (ошибка 1010) на запросы без браузерного User-Agent: скрипты его
отправляют; если пользуетесь curl вручную, добавьте
-A "Mozilla/5.0". - Прямой SSH отклонён: идём через прокси
ssh.runpod.ioс-ttи командами через stdin (это делаетlib_video.sh). - ComfyUI не запускается на некоторых машинах Community (постоянный 502, в логе «could not
bind on any address»): у машины нет IPv6.
orchestrate.shсам перезапускает его на0.0.0.0. - Нехватка памяти на RTX 5090: 62 ГБ RAM не хватает для двух полных моделей по 28 ГБ. Или GPU
с большим объёмом RAM, или версии моделей
fp8_scaled. - GPU недоступна в момент создания: сработал запасной вариант — RTX PRO 6000 Max-Q в Community
без сетевого диска, с
download_wan22=true(перекачка за 8 минут). - ComfyUI падает, а шаблон его не перезапускает:
orchestrate.shперезапускает; вручную:python3 /ComfyUI/main.py --listen 0.0.0.0 --use-sage-attention --extra-model-paths-config /ComfyUI/extra_model_paths.yaml.
Правила Meta для видео с ИИ
- В Ads Manager нужно указать, что контент создан с помощью ИИ.
- Персонаж представляется как ведущий или представитель, никогда как «настоящий клиент»: Meta считает это вводящим в заблуждение.
- Субтитры всегда: большинство смотрит без звука.
Готовы применить это на практике?
Создайте аккаунт RoyLead и начните за пару минут.