How to run InfiniteTalk on a cloud GPU

Rent a GPU on Deploy, then open a terminal in JupyterLab or over SSH. Install from the official MeiGen-AI/InfiniteTalk README, download the weights that README’s table names, run the documented command, and copy the mp4 off the instance before you destroy it. Destroying the instance deletes its disk.

Audio-driven portrait animation from a different repository, whose requirements section prints 24GB, 80GB, and 96GB, is How to run HunyuanVideo-Avatar on a cloud GPU. Long-duration audio-driven portrait animation from a different repository is How to run Hallo2 on a cloud GPU. Lip sync whose README states 8 GB for version 1.5 and 18 GB for version 1.6 is How to run LatentSync lip sync on a cloud GPU. Audio-driven lip sync from a different repository is How to run MuseTalk on a cloud GPU. Reference-to-video editing whose VACE sections print no GPU GB figure is How to run Wan2.1 VACE on a cloud GPU. If the process runs out of memory: How to fix CUDA out of memory on a cloud GPU. app.py listens on port 8418: How to use SSH port forwarding on a cloud GPU. Wan2.2-S2V-14B, whose single-GPU note says at least 80GB VRAM, is How to run Wan 2.2 S2V (speech-to-video) on a cloud GPU.

The README’s license section says the models in this repository are licensed under the Apache 2.0 License, that the authors claim no rights over generated contents, and that use must comply with that license. It also says you are accountable for use of the models. The model card’s License Agreement repeats that Apache 2.0 sentence and the same accountability sentence. LICENSE.txt is the Apache License, Version 2.0, January 2004. The GitHub license field on 2026-11-13 was Apache-2.0. The model API for MeiGen-AI/InfiniteTalk that day reported gated false and cardData.license apache-2.0. lastModified was 2025-09-04T08:01:03.000Z. The model card says installation and usage are on the GitHub repository. It does not print a GPU GB figure. Read LICENSE.txt before you redistribute the program or the weights. Only animate a person you have the right to use.

The commands below are copied from the upstream files named in each step. They were not run on a CloudGPU instance for this page. Anything this page adds around them is marked.

What the README says about memory

The GitHub README and the model card publish no GPU GB figure. The low-VRAM block is the one titled “Run with very low VRAM”. It says to set --num_persistent_param_in_dit 0. The argparse help for that flag says “Maximum parameter quantity retained in video memory, small number to reduce VRAM required”. It does not print a GB number. The quantization section says that if the inference process is killed due to insufficient memory, use the quantization model, which can help reduce memory usage. Those words are the README’s. This page did not remeasure them. The printed quantization command passes --quant fp8. The --quant help says the type must be int8 or fp8. The model repository also contains int8 files under quant_models/. The README does not print a command that passes --quant int8.

The open-source plan marks ComfyUI as done. The news line dated August 19, 2025 says the Gradio and the ComfyUI branch have been released, and it links https://github.com/MeiGen-AI/InfiniteTalk/tree/comfyui. A community line also links https://github.com/kijai/ComfyUI-WanVideoWrapper. This page follows the branch the news line links. The comfyui-branch README’s context-window paragraph prints a VRAM figure and a duration for the 1.3B T2V model, and a later paragraph prints a memory figure for a 512x512x81 test. Neither paragraph names InfiniteTalk. This page does not copy those paragraphs and does not treat them as an InfiniteTalk figure.

GET /v1/public/compute-capabilities does not list GPUs. It returns feature flags. The memory column is vram_gb from gpu-prices.json, updated_at 2026-11-13T20:10:32.168Z. GET /v1/public/gpu-catalog the same day (generated_at 2026-11-13T20:10:33.209Z) listed the same names and the same vram_gb values, plus Ascend 910B at 64, which is not in gpu-prices.json and is not listed here. The catalog response also includes an availability field. This page does not copy it. Every prices row has gpu_count 1. Every catalog row has min_gpu_count 1. The README’s multi-GPU example sets GPU_NUM=8. That is separate from the catalog column. This page does not claim a listing with 8 GPUs, and it does not mark a row as enough. Which listing you can start is on Deploy.

The catalog template list had no InfiniteTalk template.

Catalog name vram_gb
RTX 2080 8
RTX 3080 10
RTX 2080 Ti 11
RTX 3080 Ti 12
V100 16G 16
A30 24
RTX 3090 24
RTX 4090 24
RTX 4090D 24
RTX 4080 SUPER 32G 32
RTX 5090 32
RTX 5090D 32
V100 32G 32
A100 40G 40
A800 40G 40
A40 48
RTX 4090 48G 48
RTX 4090D 48G 48
RTX A6000 48
NVIDIA RTX PRO 5000 72G 72
RTX PRO 5000 72G 72
A100 80G 80
A800 80G 80
H800 80
RTX 6000D 83
H20 96G 96
RTX PRO 6000 96G 96
RTX PRO 6000 Max-Q 96
H20-3e 141G 141

Install

On Deploy, choose Raw GPU. The README’s install section does not print a clone. The first block is added on this page. The conda, pip, and ffmpeg blocks are the README’s. The heading above the ffmpeg commands is spelled “FFmeg” in the README. The environment name in the conda lines is multitalk.

# Added on this page. The README's install section does not print a clone.
git clone https://github.com/MeiGen-AI/InfiniteTalk.git
cd InfiniteTalk
conda create -n multitalk python=3.10
conda activate multitalk
pip install torch==2.4.1 torchvision==0.19.1 torchaudio==2.4.1 --index-url https://download.pytorch.org/whl/cu121
pip install -U xformers==0.0.28 --index-url https://download.pytorch.org/whl/cu121
# The README prints `pip install misaki[en]` without quotes.
# Quotes are added on this page so the shell does not treat [en] as a glob.
pip install "misaki[en]"
pip install ninja
pip install psutil
pip install packaging
pip install wheel
pip install flash_attn==2.7.4.post1
pip install -r requirements.txt
conda install -c conda-forge librosa
conda install -c conda-forge ffmpeg

The README also prints sudo yum install ffmpeg ffmpeg-devel as the other ffmpeg option. requirements.txt pins gradio>=5.0.0, diffusers>=0.31.0, transformers>=4.49.0, and optimum-quanto==0.2.6. It does not pin torch. The torch pin is the cu121 block above. This page did not run the install.

Download the weights

The model table names three downloads: Wan-AI/Wan2.1-I2V-14B-480P, TencentGameMate/chinese-wav2vec2-base, and MeiGen-AI/InfiniteTalk. The README prints four huggingface-cli download lines and does not print an install. requirements.txt does not pin huggingface_hub. The Hub v1.0 migration doc says the deprecated huggingface-cli command has been removed, that hf (added in v0.34) replaces it, and that the [cli] extra has been removed because the CLI ships with the core package. An unpinned huggingface_hub[cli] install does not provide the command those four lines call. This page does not run them as printed. The install below is the one in How to download a Hugging Face model on a cloud GPU. The download block keeps the README’s arguments and replaces huggingface-cli with hf. This page did not download the repositories.

# Added on this page. The download guide prints `pip3 install -U "huggingface_hub"`.
# The README does not print an install. This page does not install huggingface_hub[cli].
python -m pip install -U "huggingface_hub"
# Added on this page. The README prints `huggingface-cli download` for these four lines.
# The v1.0 migration doc says that command was removed and `hf` replaces it.
hf download Wan-AI/Wan2.1-I2V-14B-480P --local-dir ./weights/Wan2.1-I2V-14B-480P
hf download TencentGameMate/chinese-wav2vec2-base --local-dir ./weights/chinese-wav2vec2-base
hf download TencentGameMate/chinese-wav2vec2-base model.safetensors --revision refs/pr/1 --local-dir ./weights/chinese-wav2vec2-base
hf download MeiGen-AI/InfiniteTalk --local-dir ./weights/InfiniteTalk

The model API file list on 2026-11-13 included single/infinitetalk.safetensors, multi/infinitetalk.safetensors, quant_models/infinitetalk_single_fp8.safetensors, and comfyui/infinitetalk_single.safetensors plus comfyui/infinitetalk_multi.safetensors. Those paths are the file list, not a second download command.

Image-to-video and the video example file

The README says the model is compatible with both 480P and 720P. The single-GPU block, copied, passes --input_json examples/single_example_image.json and --size infinitetalk-480. That json’s cond_video is examples/single/ref_image.png and its cond_audio.person1 is examples/single/1.wav. --save_file is infinitetalk_res.

python generate_infinitetalk.py \
    --ckpt_dir weights/Wan2.1-I2V-14B-480P \
    --wav2vec_dir 'weights/chinese-wav2vec2-base' \
    --infinitetalk_dir weights/InfiniteTalk/single/infinitetalk.safetensors \
    --input_json examples/single_example_image.json \
    --size infinitetalk-480 \
    --sample_steps 40 \
    --mode streaming \
    --motion_frame 9 \
    --save_file infinitetalk_res

The 720P block is the same command with --size infinitetalk-720 and --save_file infinitetalk_res_720p. The low-VRAM block adds --num_persistent_param_in_dit 0 and sets --save_file infinitetalk_res_lowvram. The multi-person block uses weights/InfiniteTalk/multi/infinitetalk.safetensors, examples/multi_example_image.json, --num_persistent_param_in_dit 0, and --save_file infinitetalk_res_multiperson. That json’s cond_video is examples/multi/ref_img.png.

The repository also contains examples/single_example_video.json. Its cond_video is examples/single/ref_video.mp4 and its prompt is “A man is talking”. The README’s video-to-video tip describes V2V generation and does not print a command that passes that json. This page does not add that command. The usage list says --mode streaming is long video generation and --mode clip generates a short video with one chunk. The printed blocks pass --mode streaming. The argparse default of --mode is clip. The README says --max_frame_num defaults to 40 seconds (1000 frames). The argparse default of --max_frame_num is 1000. The help text does not print the words “40 seconds”.

generate_infinitetalk.py logs Saving generated video to {args.save_file}.mp4. save_video_ffmpeg writes save_path + ".mp4" and removes save_path + "-temp.mp4" and save_path + "-cropaudio.wav". With the flags the single-GPU block passes, the file is infinitetalk_res.mp4 in the current directory. The --audio_save_dir default is save_audio. This page did not run the script.

The multi-GPU block, copied, sets GPU_NUM=8 and passes --ulysses_size=$GPU_NUM, --dit_fsdp, --t5_fsdp, and --save_file infinitetalk_res_multigpu. The catalog rows cited above have min_gpu_count 1. This page does not claim an 8-GPU listing. The command was not run.

The FusioniX block says FusioniX requires 8 steps and lightx2v requires only 4 steps. The printed command passes --sample_steps 8, --lora_dir weights/Wan2.1_I2V_14B_FusionX_LoRA.safetensors, --sample_text_guide_scale 1.0, --sample_audio_guide_scale 2.0, --num_persistent_param_in_dit 0, and --save_file infinitetalk_res_lora. The quantization block, copied, adds --quant fp8 and --quant_dir weights/InfiniteTalk/quant_models/infinitetalk_single_fp8.safetensors, keeps --num_persistent_param_in_dit 0, and sets --save_file infinitetalk_res_quant. The heading says that block only supports a single GPU.

Gradio

The README prints two Gradio commands. Neither passes a port. Both pass --num_persistent_param_in_dit 0 and --motion_frame 9. The first uses weights/InfiniteTalk/single/infinitetalk.safetensors. The second uses weights/InfiniteTalk/multi/infinitetalk.safetensors. Run them from the clone root.

python app.py \
    --ckpt_dir weights/Wan2.1-I2V-14B-480P \
    --wav2vec_dir 'weights/chinese-wav2vec2-base' \
    --infinitetalk_dir weights/InfiniteTalk/single/infinitetalk.safetensors \
    --num_persistent_param_in_dit 0 \
    --motion_frame 9

app.py calls demo.launch(server_name="0.0.0.0", debug=True, server_port=8418). It does not pass share. When --save_file is omitted, the save name is built from the task, size, parallel sizes, a sliced prompt, and a timestamp, and the function returns that name plus .mp4. One Gradio example row is labelled VideoDubbing and points at examples/single/ref_video.mp4. This page did not start the app. From your own computer, the launch port is 8418. How to use SSH port forwarding on a cloud GPU is the tunnel.

ComfyUI branch

The comfyui branch README says to clone this repo into the custom_nodes folder and to run pip install -r requirements.txt. It does not print a git URL. The clone below is added. The portable line in that README names ComfyUI-WanVideoWrapper. This page does not run that Windows path. The branch commit read on 2026-11-13 was 7089f0a7c84d2cb20709599fb08444ab3bc837ce, committed 2025-08-19T02:05:32Z.

# Added on this page. The comfyui-branch README says "Clone this repo into custom_nodes folder" and does not print a URL.
# The main README links https://github.com/MeiGen-AI/InfiniteTalk/tree/comfyui
cd ComfyUI/custom_nodes
git clone --branch comfyui https://github.com/MeiGen-AI/InfiniteTalk.git
cd InfiniteTalk
pip install -r requirements.txt

That README says text encoders go in ComfyUI/models/text_encoders, clip vision in ComfyUI/models/clip_vision, the transformer in ComfyUI/models/diffusion_models, and the VAE in ComfyUI/models/vae. It says the InfiniteTalk-ComfyUI checkpoint is at https://huggingface.co/MeiGen-AI/InfiniteTalk/tree/main/comfyui. The models link above those folders is https://huggingface.co/Kijai/WanVideo_comfy/tree/main. example_workflows on that branch includes wanvideo_infinitetalk_single_example.json and wanvideo_infinitetalk_multi_example.json. The branch README does not name an output directory. How to install ComfyUI and ComfyUI-Manager on a cloud GPU says folder_paths.py sets the output directory to output. This page did not open those workflow files and did not install the branch.

When it fails

CUDA out of memory. The README’s printed low-VRAM flag is --num_persistent_param_in_dit 0. The printed quantization flag is --quant fp8 with --quant_dir weights/InfiniteTalk/quant_models/infinitetalk_single_fp8.safetensors. The README and the model card publish no GB cutoff. If the process raises that error, use how to fix CUDA out of memory on a cloud GPU.

“CUDA error: no kernel image is available for execution on the device” on an RTX 5090. The README’s torch line is torch==2.4.1 from the cu121 index, and xformers==0.0.28 from the same index. Those lines do not name compute capability 12.0. The RTX 5090 guide says that card is compute capability 12.0 (sm_120) and that PyTorch 2.7 and later, on a build for CUDA 12.8 or newer, is the line that announced support. This page did not install a torch wheel and did not re-test this package on an RTX 5090. Catalog RTX 5090 and RTX 5090D are 32. That is the catalog number only.

Save the videos, then destroy

Copy infinitetalk_res.mp4, infinitetalk_res_720p.mp4, infinitetalk_res_lowvram.mp4, infinitetalk_res_multigpu.mp4, infinitetalk_res_multiperson.mp4, infinitetalk_res_lora.mp4, and infinitetalk_res_quant.mp4 for the blocks you ran, plus the Gradio mp4 when --save_file was omitted, and save_audio if that default directory was written, before you destroy the instance. Save your work before you destroy a cloud GPU is the checklist. The terms say data on local instance storage is permanently deleted when the instance is destroyed.

The pricing page FAQ states the billing rule in these words:

Per-minute options have a 1-minute minimum; unused prepaid minutes are refunded when you destroy the instance. Some configurations use whole-hour billing with a 1-hour minimum; unused time within a charged hour is not refunded on voluntary stop. The billing period, minimum charge and initial prepayment are shown before confirmation. No subscription.

Prices are not copied here.

Frequently asked questions

How much VRAM does the InfiniteTalk README print?

The README and the model card publish no GPU GB figure. The low-VRAM block says to set --num_persistent_param_in_dit 0. The quantization section says the quantization model can help reduce memory usage, and the printed command passes --quant fp8. The --quant help says the type must be int8 or fp8. The comfyui-branch README memory paragraphs name other tests and are not copied here. This page does not mark a catalog row as enough. Which listing you can start is on https://cloudgpu.app/deploy.

Which image and video commands does the README print?

The printed single-GPU block runs generate_infinitetalk.py with examples/single_example_image.json, --size infinitetalk-480, --mode streaming, and --save_file infinitetalk_res. The 720P block changes the size and the save name. The low-VRAM block adds --num_persistent_param_in_dit 0. The multi-person block uses the multi checkpoint and examples/multi_example_image.json. examples/single_example_video.json exists and points at examples/single/ref_video.mp4. The README does not print a command that passes that file. This page did not run the commands.

Where are the videos saved, and which port does Gradio use?

generate_infinitetalk.py logs the save name plus .mp4. save_video_ffmpeg writes that mp4 and removes the temp mp4 and the crop-audio wav. The single-GPU block writes infinitetalk_res.mp4. app.py calls demo.launch with server_name 0.0.0.0, debug True, and server_port 8418, and does not pass share. When --save_file is omitted, the returned path is the constructed name plus .mp4. This page did not start the app.

What license does the repository print?

The README and the model card say the models are licensed under the Apache 2.0 License.

Sources (read 2026-11-13, Asia/Shanghai)

  • MeiGen-AI/InfiniteTalk README (install, weight table, image and multi-person commands, low-VRAM flag, fp8 quantization command, Gradio commands, ComfyUI branch link, Apache 2.0 license section): blob 8a8b242a496f3e7722194e1a6e04d686e953dd00. Repository HEAD 50aa0a94184315407a991ae804d9b58d6d311ba8, committed 2026-05-22T02:35:51Z. The weight table prints huggingface-cli download. This page runs those arguments with hf. https://github.com/MeiGen-AI/InfiniteTalk/blob/main/README.md
  • Hugging Face Hub v1.0 migration (huggingface-cli removed, hf replaces it, [cli] extra removed): https://huggingface.co/docs/huggingface_hub/en/concepts/migration , read 2026-11-13
  • generate_infinitetalk.py (--max_frame_num default 1000, --mode default clip, --quant help int8 or fp8, log line with .mp4, --audio_save_dir default save_audio): read from repository HEAD
  • wan/utils/multitalk_utils.py (save_video_ffmpeg appends .mp4 and removes the temp mp4 and crop-audio wav): read from repository HEAD
  • app.py (server_name 0.0.0.0, server_port 8418, debug=True, no share, VideoDubbing example row): read from repository HEAD
  • examples/single_example_image.json, examples/single_example_video.json, and examples/multi_example_image.json: read from repository HEAD
  • requirements.txt and LICENSE.txt: read from repository HEAD. GitHub license field Apache-2.0
  • comfyui branch README (custom_nodes clone, model folders, workflow filenames wanvideo_infinitetalk_single_example.json and wanvideo_infinitetalk_multi_example.json): commit 7089f0a7c84d2cb20709599fb08444ab3bc837ce, committed 2025-08-19T02:05:32Z. The context-window and 512x512x81 paragraphs are not copied
  • Hugging Face model card MeiGen-AI/InfiniteTalk (Apache 2.0 license agreement, no GPU GB figure): read 2026-11-13. Model API the same day: gated false, cardData.license apache-2.0, lastModified 2025-09-04T08:01:03.000Z, sha d59847ebdacf19245bfca3fb23311c0cada8378a
  • Public GPU memory: https://cloudgpu.app/gpu-prices.json (updated_at 2026-11-13T20:10:32.168Z) and https://cloudgpu.app/v1/public/gpu-catalog (generated_at 2026-11-13T20:10:33.209Z). GET /v1/public/compute-capabilities returned feature flags and no GPU list. The catalog had no InfiniteTalk template

Cards you can start are on the Deploy page. Prices are on https://cloudgpu.app/pricing and are not repeated here.

Last updated: 2026-11-13 (Asia/Shanghai).