Bernini S2V Conditioning v2 - Bernini in-context video/image conditioning with masked lip-sync for one or two speakers. Your browser does not support the video tag.
Unzip ComfyUI-WanBerniniS2V_v2.zip into ComfyUI/custom_nodes/, then restart ComfyUI.
or save the Python files in: ComfyUI/custom_nodes/ComfyUI-WanBerniniS2V_v2/
Disable or remove the older ComfyUI-WanBerniniS2V folder if you only want v2.
audio_1 + mask_1audio_2 / mask_2 unwiredaudio_1 + mask_1 - first speakeraudio_2 + mask_2 - second speakerspeaker_2_start_frame = -1 - second audio starts when the first clip endsPaint on the output frame where each speaker's face appears. Masks control lip-sync placement only, they are not tied to reference_image_N slots.
Speech-driven video on Bernini-R , T2V, I2V, and V2V with lip-sync.
This model adds single-speaker audio support to Bernini-R, so you can drive video with speech in text-to-video, image-to-video, and video-to-video setups. It is not state-of-the-art audio-to-video, but it removes the need for post-processing or extra models just to add speech to Wan videos. For basic talking-head work, or longer videos built from short sequences, it is a handy all-in-one option on top of Bernini's motion and editing strengths.
| File | Role |
|---|---|
| 'wan2.2_bernini_r_high_noise_fp16_s2v.safetensors' | High noise |
| 'wan2.2_bernini_r_low_noise_fp16_s2v.safetensors' | Low noise |
| 'wan2.2_bernini_r_high_noise_fp8_scaled_s2v.safetensors' | High noise |
| 'wan2.2_bernini_r_low_noise_fp8_scaled_s2v.safetensors' | Low noise |
| 'wan2.2_bernini_r_high_noise_int8_convrot_s2v.safetensors' | High noise |
| 'wan2.2_bernini_r_low_noise_int8_convrot_s2v.safetensors' | Low noise |
ComfyUI detects these as WAN22_S2V / 'WanModel_S2V' (audio keys trigger S2V model type).
ComfyUI/models/diffusion_models/
ComfyUI/models/audio_encoders/
(Create a folder in 'ComfyUI/custom_nodes/' named 'ComfyUI-WanBerniniS2V', then save the Python files in that folder.)
| Setting | Recommendation |
|---|---|
| Channels | Mono, wav2vec2 downmixes stereo internally |
| Sample rate | 44.1 khz or 48 khz (resampled to 16 kHz) |
| Content | Clear speech, less background music = better sync |
| Length | in my testing, max 9 to 15 seconds |
Bernini-R-S2V-FP16/wan2.2_bernini_r_high_noise_fp16_s2v.safetensors 33 GBBernini-R-S2V-FP16/wan2.2_bernini_r_low_noise_fp16_s2v.safetensors 33 GBBernini-R-S2V-FP8/wan2.2_bernini_r_high_noise_fp8_scaled_s2v.safetensors 20 GBBernini-R-S2V-FP8/wan2.2_bernini_r_low_noise_fp8_scaled_s2v.safetensors 20 GBBernini-R-S2V-int8-convrot/wan2.2_bernini_r_high_noise_int8_convrot_s2v.safetensors 19 GBBernini-R-S2V-int8-convrot/wan2.2_bernini_r_low_noise_int8_convrot_s2v.safetensors 19 GBaudio_encoders/wav2vec2_large_english_fp16.safetensors 631 MBHave the files? Submit a torrent.
Submit a torrentHave the complete files and permission to share them? Replace the example folder path. The script checks the files, makes a torrent and submits its magnet and checksums. Keep your torrent client seeding. Get your community key from your settings, and read the script before running it.
curl -fsSL https://pirateface.co/package.sh | bash -s -- --repo rzgar/Bernini-R-S2V ./model-folderByteDance/Bernini-R