Nodes/Bernini v2 (Native)/Load Bernini v2 Wan Renderer
ComfyUI Node

Load Bernini v2 Wan Renderer

Two of these, high and low, or nothing renders

By T8mars·Created 2 days ago·Updated about 11 hours ago· 1
Load Bernini v2 Wan Renderer
    • MODEL
    model_index
    flow_shift5.00
    weight_dtypebfloat16

    Bernini v2's renderer is a Wan 2.2 dual-expert model, and this is the node that loads it. You'll use it twice in every workflow: one instance pointed at wan_high (motion and composition) and one at wan_low (detail), and the two MODEL outputs feed the high/low inputs of Bernini v2 Renderer Guider. There is no single "load the whole renderer" node - the dual-expert split is the architecture, so the two-instance setup isn't ceremony, it's the model.

    What makes it worth a paragraph of its own is what it loads. The models are sharded native-Comfy Wan checkpoints produced by the pack's tools/repack_diffusers.py - converted from ByteDance's Diffusers format into a form ComfyUI's own model manager understands. So unlike the other Bernini paths, there's no hidden Diffusers runtime: the loader hands you a standard MODEL that participates in normal device/offload management, low-VRAM mode, and the regular model cache. The output goes to the guider, and that's its only consumer.

    The inputs that matter

    • model_index - a dropdown over the shard indexes under ComfyUI/models/bernini_v2/. It lists the wan_high and wan_low index files; pick the right one per instance. (The dropdown filters to the two Wan expert folders, so you can't accidentally load the Qwen planner through this node.)
    • flow_shift (default 5) - applied as a flow-matching shift on the sampling schedule. The pack's quality tests run at 5; it's the modern "composition vs detail" balance knob. Leave it unless you have a reason.
    • weight_dtype (default bfloat16) - bfloat16, float16, default, and the three FP8 flavors (fp8_e4m3fn, fp8_e4m3fn_fast, fp8_e5m2).

    Where people get burned

    • The FP8 trap. If you're using the recommended Balanced INT8 package, its weights are pre-quantized with stock ComfyUI int8_tensorwise + ConvRot metadata. Those cannot be recast to FP8 - the loader raises an error telling you to pick bfloat16 or default. The FP8 options are only for the un-quantized BF16 package. This is a guard, not a bug.
    • Wiring them backwards. wan_high must go to high_noise_model, wan_low to low_noise_model. It's the guider's boundary logic that decides the hand-off; swap them and you've inverted the whole denoising plan.
    • INT8 needs a current stack. The quantized format requires a current ComfyUI/comfy-kitchen and an NVIDIA GPU with SM 7.5 or newer for the optimized path. On RTX 50-series, the README recommends an isolated PyTorch/CUDA 13 environment for performance validation - PyTorch 2.7/CUDA 12.8 loads it but warns and isn't the optimized path.
    • GGUF is a side-door. If you want GGUF-quantized renderers, that's bridged through the external ComfyUI-GGUF pack, not this node - and the planner still runs on native weights either way.

    Installing it

    Pack install: ComfyUI Manager → search "Bernini v2 (Native)", or git clone https://github.com/T8mars/comfyui-bernini-v2-T8.git into ComfyUI/custom_nodes, restart (needs ComfyUI 0.33+). Then the ~45.6 GiB Balanced INT8 package from t8star/Bernini-V2-Comfy into ComfyUI/models/bernini_v2/ (the folder layout - wan_high/, wan_low/, mllm/, vit_decoder/ - is what the dropdowns read), plus the Wan 2.1 VAE. Load the example t2v.json and you'll see the two instances side by side feeding the guider.

    Categoryadvanced/loaders/bernini_v2

    Inputs (3)

    NameTypeDefaultDescription
    model_indexCOMBO0 options:
    flow_shiftFLOAT5.000.01–100
    weight_dtypeoptCOMBObfloat166 options: bfloat16, float16, default, fp8_e4m3fn, fp8_e4m3fn_fast, fp8_e5m2

    Outputs (1)

    NameTypeDescription
    MODELMODEL