Nodes/Bernini v2 (Native)/Bernini v2 Renderer Guider
ComfyUI Node

Bernini v2 Renderer Guider

The node that makes two Wan experts behave like one

By T8mars·Created 2 days ago·Updated about 11 hours ago· 1
Bernini v2 Renderer Guider
  • plan
  • high_noise_model
  • low_noise_model
  • vae
  • guider
  • latent
omega_video1.25
omega_image3.00
omega_text4.00
omega_target1.20
omega_scale0.75
use_task_defaultstrue
boundary0.875
guidance_batch_sizeauto
vae_encode_modeauto

This is the heart of the whole pack, and honestly the cleverest node in it. Bernini v2's renderer is a dual-expert Wan 2.2: a high-noise expert does motion and composition, then a low-noise expert refines detail, and the hand-off happens mid-denoise at a fixed sigma boundary. A naive implementation runs them as two separate sampling passes, which resets the sampler's history and subtly changes the result. This node runs them as one native ComfyUI guider that swaps the expert under the hood at the boundary - so the UniPC solver's history stays continuous across the switch, matching what ByteDance's official pipeline actually does.

It's also where your source media becomes part of the generation. The guider VAE-encodes your source video and reference images into separate Wan streams, then builds the renderer's guidance arms: base, text, target, and (for editing/reference tasks) source - five arms for rv2v. Each arm is a different conditioning combination the released renderer was trained on, and they get blended with the omega weights below.

What you plug in

  • plan - the output of Bernini v2 Plan. Non-negotiable; this node is a renderer, it works from the plan.
  • high_noise_model / low_noise_model - two Load Bernini v2 Wan Renderer instances, one pointed at wan_high, one at wan_low.
  • vae - the Wan 2.1 VAE (a stock VAELoader pointing at wan_2.1_vae.safetensors).

The four omega weights (omega_video, omega_image, omega_text, omega_target) and omega_scale are the guidance-strength knobs. You don't need to understand the theory; with use_task_defaults on, the node overwrites all five with the official per-task values (e.g. R2V wants omega_image at 3.0). Only turn that off if you're deliberately deviating from the reference quality tests.

The two advanced settings you'll actually touch:

  • boundary (default 0.875) - the sigma at which the high-noise expert hands off to the low-noise one. That's the official value; leave it.
  • guidance_batch_size (auto / 1 / 2 / all) - how many conditioning arms run per batch. auto is one arm at a time, the lowest-peak-VRAM choice and the default. all is fastest but greediest; on a 24 GB card, leave it alone.
  • vae_encode_mode (auto / tiled) - if the source-media VAE encode OOMs on big footage, tiled dodges it by never attempting the big regular encode first.

What comes out

Two outputs: the guider (GUIDER) and the latent (LATENT). The guider feeds the sampling node alongside the sigmas; the latent is the empty target latent the sampler starts from - wire it into SamplerCustomAdvanced's latent input (via the Bernini v2 UniPC Sigmas scheduler and RandomNoise).

Where people get burned

  • Swapping the model inputs. high_noise_model gets wan_high and low_noise_model gets wan_low - swap them and the boundary logic inverts, giving you nonsense. The dropdown names make it obvious once you know to look.
  • Editing is heavy by design. Because the source video is part of the model input, a v2v job costs roughly double an equivalent Wan 2.2 generation. That's the model, not a bug in this node.
  • Peak VRAM. The author's own 24 GB tests peak near 23 GiB at the official 50-step preset. If you OOM, drop guidance_batch_size to 1/auto, use tiled encode, and drop to the 640-long-edge example workflows.

Installing it

One pack, one install. ComfyUI Manager → search "Bernini v2 (Native)", or:

cd ComfyUI/custom_nodes
git clone https://github.com/T8mars/comfyui-bernini-v2-T8.git

Restart ComfyUI (needs 0.33+), then download the ~45.6 GiB Balanced INT8 package from t8star/Bernini-V2-Comfy into ComfyUI/models/bernini_v2/ and the Wan 2.1 VAE into ComfyUI/models/vae/ (README has the exact hf download commands). Load the t2v.json example and watch the boundary do its thing.

Categorysampling/bernini_v2

Inputs (13)

NameTypeDefaultDescription
planBERNINI_V2_PLAN
high_noise_modelMODEL
low_noise_modelMODEL
vaeVAE
omega_videoFLOAT1.250–20
omega_imageFLOAT3.000–20
omega_textFLOAT4.000–20
omega_targetFLOAT1.200–20
omega_scaleFLOAT0.750–2
use_task_defaultsBOOLEANtrue
boundaryFLOAT0.8750–1
guidance_batch_sizeCOMBOauto4 options: auto, 1, 2, all
vae_encode_modeCOMBOauto2 options: auto, tiled

Outputs (2)

NameTypeDescription
guiderGUIDER
latentLATENT