Video ads cu RunPod (pentru experți)
Generează clipuri vorbite și scene cu Wan 2.2 și InfiniteTalk pe pod-ul tău RunPod, cu scripturile RoyLead care fac grosul muncii. Costuri, configurare, capcane.
Actualizat pe 16 septembrie 2026
⚠️ Pentru experți. Îți trebuie lucrul cu terminalul (Linux, macOS sau WSL pe Windows),
sshșiffmpeg, plus un cont RunPod cu card atașat. Dacă nu te regăsești în descrierea asta, folosește fal.ai: aceleași modele, plătești pe clip, nu instalezi nimic. Este calea pe care playbook-ul lansării o propune implicit.
Cu RunPod închiriezi un GPU la oră și rulezi pe el modelele open source: Wan 2.2 pentru scenele mute (image-to-video) și InfiniteTalk pentru replicile vorbite, cu buzele sincronizate. Scripturile RoyLead fac partea plictisitoare: așteaptă ca ComfyUI să fie gata, pregătesc InfiniteTalk, urcă pozele și vocile, generează clipurile pe rând, le descarcă și montează videoclipul final.
Cât costă
| Element | Cost |
|---|---|
| GPU RTX PRO 6000 (96 GB), Secure Cloud | 2,09 $ pe oră, doar cât e pornit |
| GPU RTX 5090 Community | 0,69 $ pe oră, dar 62 GB de RAM: cu modelele complete poate rămâne fără memorie |
| Disc de rețea de 200 GB cu modelele | 14 $ pe lună, tot timpul |
| O rundă de 6 clipuri (pod abia pornit) | circa 25 de minute, sub 1 $ |
| Scurtmetraj de 60 s, 12 cadre ori 3 încercări | circa 2 ore de GPU |
Pod-ul se șterge la finalul sesiunii: un pod oprit, dar neșters, continuă să coste. Discul rămâne, cu modelele pe el.
Pasul 1 — Cont, cheie SSH, disc
- Creează contul pe runpod.io și încarcă credit.
- În Settings → SSH Public Keys înregistrează cheia ta publică (
~/.ssh/id_ed25519.pub; dacă nu ai una:ssh-keygen -t ed25519). Scripturile folosesc~/.ssh/id_ed25519; pentru altă cheie seteazăRUNPOD_SSH_KEY=/cale/catre/cheieînainte să le pornești. - Creează un Network Volume de 200 GB într-un data center EU (ex. EU-RO-1). Discul ține modelele (circa 176 GB): le descarci o singură dată. Data center-ul discului decide unde vei putea crea pod-urile.
Pasul 2 — Pod-ul
Template recomandat: „One Click - ComfyUI Wan2.1 - Wan 2.2” (autor Hearmeman, id
758dsjwiqz). La creare:
- GPU: RTX PRO 6000 Blackwell (96 GB) în Secure Cloud. Cu mai puțin RAM, modelele complete (28 GB fiecare) scot pod-ul din memorie la încărcarea celui de-al doilea.
- Disc: network volume-ul tău, montat pe
/workspace. - Variabilele template-ului: prima dată
download_wan22=trueșidownload_wan21=true(descarcă modelele pe disc, 8-10 minute). La pod-urile următoare pune-le pefalse: modelele sunt deja pe disc, iar o nouă descărcare îl umple. - Portul 8188: este ComfyUI în browser, la adresa
https://<pod_id>-8188.proxy.runpod.net.
Din pagina pod-ului, la Connect, ia cele două lucruri de care au nevoie scripturile: pod
id-ul (e în URL) și utilizatorul SSH al proxy-ului (<pod_id>-<cod>@ssh.runpod.io).
Pasul 3 — InfiniteTalk (doar pentru clipurile vorbite)
Template-ul nu include InfiniteTalk. O singură dată, pe disc, în /workspace/ComfyUI/models/,
adaugă aceste fișiere (de pe Hugging Face):
| Folder | Fișier | Repository |
|---|---|---|
diffusion_models | Wan2_1-InfiniTetalk-Single_fp16.safetensors | Kijai/WanVideo_comfy (folderul 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 (folderul Lightx2v) |
Modelul de bază wan2.1_i2v_480p_14B_bf16.safetensors îl descarcă deja template-ul.
💡 Spațiu. Un disc de „200 GB” are în realitate circa 186. Cu tot instalat rămân vreo 20 GB pentru videoclipuri: dacă descărcările se opresc fără eroare, e plin. Fișierul
wan2.1_t2v_14B_bf16.safetensors(27 GB, Wan din text) nu e necesar: poate fi șters.
Celelalte două lucruri cerute de InfiniteTalk (o legătură de folder și un patch pentru biblioteca
transformers 5) le face orchestrate.sh singur la fiecare pod nou, pentru că stau pe discul
containerului și se pierd când pod-ul e șters.
Pasul 4 — Scripturile pe PC-ul tău
Descarcă-le într-un folder, pe toate (se caută unele pe altele):
- lib_video.sh ↗ — verificările comune
- orchestrate.sh ↗ — generează clipurile pe pod
- gen_video.py ↗ — un clip (îl folosește orchestrate)
- fix_wav2vec_tf5.py ↗ — patch-ul pentru InfiniteTalk (îl aplică orchestrate)
- monta_video.sh ↗ — montează videoclipul vorbit
- monta_short.sh ↗ — montează short-urile fără voce
- exemple: clip.tsv.esempio ↗, montaggio.tsv.esempio ↗, chiusura.txt.esempio ↗
Din terminal:
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
Îți mai trebuie ffmpeg (cu libx264 și libass), ffprobe, python3, curl, ssh.
Scripturile nu se modifică: citesc totul din fișiere de date aflate în folderul videoclipului.
Pasul 5 — Folderul unui videoclip
video-ul-meu/
clip.tsv lucrările: nume, tip (it = vorbit, wan = scenă mută), imagine, replică sau cadre, prompt
immagini/ cadrele de pornire (unul pe scenă, generate cu ChatGPT din pozele produsului)
audio/battute/ replicile în mp3, una pentru fiecare clip vorbit
montaggio.tsv ordinea clipurilor în videoclip, cu mp3-ul care merge sub scenele mute
montaggio/sottotitoli.ass subtitrările (pe Meta se uită fără sunet)
chiusura.txt 3 rânduri: ofertă, rândul 2, rândul 3 (opțional)
prodotto.png poza produsului pentru final (opțional, merge cu chiusura.txt)
Vocile se fac cu ElevenLabs, un text întreg pentru fiecare personaj, cu [long pause] între
replici, apoi se taie pe pauze într-un mp3 per replică (ffmpeg -af silencedetect).
Dacă folosești playbook-ul lansării cu Claude Code, scenariul, clip.tsv, montaggio.tsv,
subtitrările și tăieturile vocilor ți le pregătește el.
Pasul 6 — Generează și montează
# pornește pod-ul, ia pod_id și utilizatorul ssh din "Connect", apoi:
nohup ./orchestrate.sh <pod_id> <utilizator_ssh> ~/video-ul-meu > ~/video-ul-meu/orchestrate.log 2>&1 &
tail -f ~/video-ul-meu/orchestrate.log # READY, MODELS, UPLOADED, apoi câte un DONE pe clip, ALL_DONE
Clipurile ajung în video-ul-meu/clip/. Mâinile cu obiecte ies greșit des: pune la socoteală 2-3
încercări pe scenă (schimbi sămânța relansând, sau promptul). Timpi măsurați pe RTX PRO 6000:
primul clip 5-7 minute (încarcă modelele), apoi 1-4 minute fiecare.
./monta_video.sh ~/video-ul-meu # → video-ul-meu/video-finale.mp4 (1080x1920, 30 fps, -16 LUFS)
./monta_short.sh ~/video-ul-meu # → video-ul-meu/short-<nume>.mp4, unul pe clip, cu grafica deasupra
monta_video.sh se oprește singur dacă vocea are goluri mai mari de 1,5 secunde: mai bine o
eroare acum decât un videoclip mut online. Fișierul final se scrie pe discul de sistem și apoi se
copiază: pe un disc Windows montat în WSL, unirea se poate opri cu „No space left on device”.
Apoi șterge pod-ul.
Capcane deja întâlnite
- ComfyUI răspunde 403 (eroarea 1010) la apelurile fără User-Agent de browser: scripturile îl
trimit; dacă folosești curl de mână, adaugă
-A "Mozilla/5.0". - SSH direct refuzat: se trece prin proxy-ul
ssh.runpod.iocu-ttși comenzile pe stdin (o facelib_video.sh). - ComfyUI nu pornește pe unele mașini Community (502 constant, în log „could not bind on any
address”): mașina nu are IPv6.
orchestrate.shîl repornește singur pe0.0.0.0. - Memorie insuficientă cu RTX 5090: 62 GB de RAM nu ajung pentru două modele complete de
28 GB. Ori un GPU cu mai mult RAM, ori versiunile
fp8_scaledale modelelor. - GPU indisponibil în momentul creării: varianta de rezervă care a mers, RTX PRO 6000 Max-Q în
Community fără disc de rețea, cu
download_wan22=true(redescarcă în 8 minute). - ComfyUI moare și template-ul nu îl repornește:
orchestrate.shîl repornește; de mână:python3 /ComfyUI/main.py --listen 0.0.0.0 --use-sage-attention --extra-model-paths-config /ComfyUI/extra_model_paths.yaml.
Regulile Meta pentru videoclipurile cu AI
- În Ads Manager trebuie declarat că materialul este generat cu AI.
- Personajul se prezintă ca purtător de cuvânt, niciodată ca „client real”: Meta consideră asta înșelător.
- Subtitrări întotdeauna: majoritatea se uită fără sunet.
Gata să pui asta în practică?
Creează-ți contul RoyLead și începe în câteva minute.