Nodes/Bernini v2 (Native)/Load Bernini v2 T5
ComfyUI Node

Load Bernini v2 T5

The text encoder your prompts actually go through

By T8mars·Created 2 days ago·Updated about 11 hours ago· 1
Load Bernini v2 T5
    • CLIP
    repack_manifest
    dtypebfloat16

    Before your prompt means anything to the Wan renderer, it has to be tokenized and encoded by a text model - and for Bernini v2 that's UMT5-XXL, the same multilingual T5 family Wan uses, but the exact one that shipped with the Bernini repack. Load Bernini v2 T5 is the node that pulls it out of the model package and hands it to ComfyUI as a standard CLIP object. From there it behaves like any other text encoder: you wire it into CLIPTextEncode for your positive and negative conditioning, and those feed Bernini v2 Plan.

    There's a subtle reason not to reach for a generic Wan T5 instead: the loader reads the T5 from the same repack manifest the rest of the pack uses, which guarantees the text encoder and the renderer are a matched pair from one download. Bernini's pipeline was tuned against that exact encoder, and prompt adherence is already the model's weakest link on short prompts. Matching the encoder is cheap insurance.

    The inputs

    Like the other loaders in this pack, it's about as simple as a node gets:

    • repack_manifest - dropdown over the repack-manifest.json files under ComfyUI/models/bernini_v2/. Pick the one for the package you downloaded (Bernini-v2-balanced-int8/ or Bernini-v2-bf16-native/). The T5 lives inside that package, so this is also the directory choice.
    • dtype - bfloat16 or float16. Default bfloat16; on the Balanced INT8 package the stored weights are INT8 with BF16 compute, so this is the compute dtype, not the storage format.

    Output is a CLIP that goes to CLIPTextEncode nodes - one for positive, one for negative. That's the entire consumer.

    Practical notes

    • It's not free VRAM-wise. UMT5-XXL is a big encoder; it loads under ComfyUI's normal offload management like the rest of the pack, but don't be surprised at a several-gigabyte hit while it's resident. It'll come back out after the job.
    • Empty dropdown = wrong model location. Same story as the other loaders: the manifest dropdown only populates when the repack is actually in ComfyUI/models/bernini_v2/. Re-run the README's hf download command with the right --local-dir and the folder structure sorts itself out.
    • This node is why "just use any Wan T5" is a trap. The Bernini repack's T5 matches the renderer's tokenizer and conditioning expectations. Mismatched encoders are exactly the kind of thing that produces "prompt works in the demo, ignores me" behavior. Use the matched one.

    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, then restart (needs ComfyUI 0.33+). Models are the real download - the recommended Balanced INT8 package is ~45.6 GiB from t8star/Bernini-V2-Comfy (it includes the T5), into ComfyUI/models/bernini_v2/, plus the Wan 2.1 VAE into ComfyUI/models/vae/. Then load the example t2v.json workflow and you'll see this node feeding the two CLIPTextEncode nodes upstream of Plan.

    Categoryadvanced/loaders/bernini_v2

    Inputs (2)

    NameTypeDefaultDescription
    repack_manifestCOMBO0 options:
    dtypeoptCOMBObfloat162 options: bfloat16, float16

    Outputs (1)

    NameTypeDescription
    CLIPCLIP