CivArchive
    Bernini Infinity -lowVRAM more than 300 frames option - v1.0
    NSFW

    ComfyUI Bruxos do VFX

    https://github.com/NyckM/Bruxos-do-VFX-Nodes/tree/main

    Custom nodes for video VFX with Wan 2.2 / Bernini: object and people removal, batch upscaling, face swap, A/B comparison, and production-ready utilities — all designed for real-world VFX workflows.

    <img width="832" height="480" alt="Workflow for object and people removal" src="https://github.com/user-attachments/assets/6745a8ce-00ce-4915-a60d-ed1354099311" />

    Why this exists

    Developed at Bruxos do VFX during the production of two feature films — Dr. Monstro (Marcos Jorge) and Alice Júnior 2 (Gil Baroni). The complexity of compositing and scene integration created the need for a dedicated object-removal workflow built on top of Bernini/Wan.

    Current performance averages 96 frames in 204 seconds.

    https://github.com/user-attachments/assets/1575f97f-34b9-492a-accb-818e97a6cbde

    https://github.com/user-attachments/assets/d1e47486-ac3b-4030-be42-56a0f16b0128


    Installation

    Easy (recommended)

    Run the included .bat installer from your ComfyUI installation folder. It will automatically install the node pack and download all required models.

    (RunPod version is still under development.)

    Manual

    Copy the package into:

    ComfyUI/custom_nodes/ComfyUI-Bruxos-do-VFX

    Restart ComfyUI.

    Required Models

    ModelDownloadDestinationUNET GGUF (high/low)https://huggingface.co/neuregex/Bernini-R-GGUF/tree/mainComfyUI/models/unetDistill LoRA (4 steps)https://huggingface.co/Cyph3r/lightx2v_T2V_14B_cfg_step_distill_v2_lora_rank64_bf16ComfyUI/models/lorasText Encoder (umt5)https://huggingface.co/Osrivers/umt5_xxl_fp8_e4m3fn_scaled.safetensorsComfyUI/models/text_encodersVAEhttps://huggingface.co/Kijai/WanVideo_comfy/blob/main/Wan2_1_VAE_bf16.safetensorsComfyUI/models/vae

    Important: Download the models using the Hugging Face CLI or a download manager. Browser downloads may produce incomplete or corrupted files.


    Nodes

    <img width="226" height="557" alt="Bernini Long Condition" src="https://github.com/user-attachments/assets/934fd9b3-087f-47db-aeb2-6ca01967c556" />

    Bernini / Generation

    • Bernini Infinity — Main renderer for videos longer than the standard 81-frame limit without requiring a custom sampler. It injects context_latents per chunk (with optional tail_memory) instead of relying on a single conditioning, taking advantage of Bernini/Wan's native architecture.

    • Bernini Region Mask — Converts colored masks (SAM2/SAM3/Scail2Color) into black-and-white masks with invert, grow, and blur controls.

    • Bernini Long (Conditioning / ChunkSelect / VideoMerge / AppendVideoChunk / EmptyVideoChunks / Info) — Helper nodes for long video generation.

    • FaceStitchUpscale — Blends the upscaled face back into the video using the face_bboxes generated by Pose and Face Detection.

    • SAM3 Point Editor — Green click = positive point, purple click = negative point directly on the frame, providing much more stable tracking than text prompts alone.

    Video

    • Load Video / Save Video — Native VIDEO (ComfyUI 2.0) equivalents to Video Helper Suite, including preview trimming (skip, cap, nth frame, force rate) and extended export controls for codec and CRF.

    • Compare Videos A/B — Built-in comparison player with wipe, side-by-side, difference, and toggle modes, allowing before/after inspection without leaving ComfyUI.

    • Mask BBox Preview — Displays the bounding box that bbox mode would crop before rendering.

    Upscaling

    • Upscale Config / Batch Blend — Super-nodes that replace the original Settings and Blend Frames subgraphs.

    Utilities

    • Grow + Blur Mask

    • Block Mask

    • Smart Sharpen

    • Text Utilities / Show Text

    • Seed Generator

    • Load Images From Folder

    • Video Info

    • Wan All-in-One Loader

    • Qwen-VL Caption

    • Prompt Guide (official Bernini presets)


    Sequential vs Context Window

    SequentialContext WindowProcessingProcesses chunks sequentially, advancing chunk_size - overlap frames each stepProcesses the full video using a sliding context windowVRAM UsageLowerSlightly highermask_mode = bbox❌ Falls back to inpaint✅ SupportedTemporal ConsistencyGood (via tail_memory)Better (native)Recommended UseVery long videos or limited VRAMVideos that fit in a single generation or when using bbox mode

    ⚠️ Using a very small chunk_size together with a large overlap dramatically increases the number of passes (for example: chunk=17, overlap=16 results in 61 passes). Larger chunks with smaller overlaps are generally recommended.

    Mask Modes

    • off — Regenerates the entire frame.

    • inpaint — Only edits the masked region while preserving the original image elsewhere.

    • bbox — Crops the masked region and generates it at a smaller resolution for significantly lower VRAM usage. (Available only in Context Window mode.)


    Changelog (Major Milestones)

    v0.2

    • Automatic 4n+1 frame correction (mirrored padding + final trimming)

    • Added mask_mode (off, inpaint, bbox)

    • Added mask_grow

    • Added mask_blur

    v0.3

    • Added FaceStitchUpscale

    v0.5

    • Added native VIDEO Load/Save nodes (ComfyUI 2.0)

    v0.6–0.9

    • Complete suite of native utility nodes (reducing third-party dependencies)

    • Compare Videos A/B

    • Mask BBox Preview

    • Upscale Config / Batch Blend

    • Server-side preview trimming in Load Video

    v0.10

    • Added SAM3 Point Editor (green positive / purple negative points) for significantly more stable object tracking.


    Why isn't there a "Bernini Long Sampler"?

    Because Bernini already passes temporal information through conditioning, and the Wan patch already accepts context_latents as a list. The important part is generating the correct conditionings:

    context_latents = [
        encoded_chunk,
        tail_latent,
    ]

    This approach leverages the native Bernini architecture instead of duplicating an entire sampler, making the package easier to maintain and fully compatible with existing Bernini workflows.

    An automatic chunk executor may be added in the future, but it would depend on the exact node names and class implementations installed on each user's system.


    🙏 Acknowledgements

    Built on top of Kijai's work and the Bernini models.

    Many thanks to the original authors and the open-source community.

    📄 License

    Apache License 2.0.

    Description

    FAQ

    Comments (14)

    myprivacy27091991221Jul 1, 2026
    CivitAI

    its very slow in my RTX 4070 12GB, took 30mins for just 121 frames, how to solve this?

    BruxosDoVFX
    Author
    Jul 1, 2026· 1 reaction

    first resolution, for 12gb vram the best isp 480p 832x480, second using bbox, is gonna generate just inside the mask, this is gonna help vram and memory optimized. use content window, because sequential is gonna make block more bigger.

    BruxosDoVFX
    Author
    Jul 16, 2026· 1 reaction

    workflow and nodes Updated

    myprivacy27091991221Jul 1, 2026
    CivitAI

    What is the difference between sequential & content_window?

    BruxosDoVFX
    Author
    Jul 1, 2026

    sequential vs context_window — what's the difference?

    Both control how the node processes a video that's longer than one chunk, but they handle the chunks very differently.

    sequential processes the video in chunks one after another, where each chunk slides forward by chunk_size − overlap. The tail_memory option feeds a few edited frames from the previous chunk into the next one to keep continuity. It's the more memory-friendly, straightforward path, but because it re-runs the model on overlapping windows, a small chunk_size with a large overlap can explode the number of chunks (e.g. chunk=17, overlap=16 → step 1 → 61 passes). Note: bbox masking does not apply in sequential — it falls back to inpaint.

    context_window treats the whole clip as one generation but gives the model a sliding context of neighboring frames, so it looks at surrounding frames for temporal consistency instead of stitching separate passes. It tends to give smoother motion/continuity across the full video, and it's the mode where bbox masking works (so you get the region-crop speedup).

    Rule of thumb:

    Short clip that fits in one pass → either works; context_window gives the best consistency and enables bbox.

    Very long clip / limited VRAM → sequential with a large chunk_size and a small overlap keeps the number of passes low.

    Want the bbox region crop to save time/VRAM → you must use context_window (in sequential it's ignored).

    BruxosDoVFX
    Author
    Jul 16, 2026

    workflow and nodes Updated

    kimdo156Jul 2, 2026
    CivitAI
    How do I install custom nodes? Even when I put them in the folder, they aren't being recognized. :(

    BruxosDoVFX
    Author
    Jul 3, 2026

    to fix that i create a bat file for install, https://github.com/NyckM/Bruxos-do-VFX-Nodes/tree/main/InstallEasy this automatic install and download the models for the Customnodes work, you should put this file on comfyui folder and open.

    BruxosDoVFX
    Author
    Jul 3, 2026

    Hi! A few common reasons this happens, in order of likelihood:

    1. ComfyUI wasn't restarted after copying the folder. New custom nodes are

    only picked up on startup, reopen ComfyUI completely (not just refresh

    the browser tab).

    2. Wrong folder location. The node pack folder itself

    ComfyUI-Bruxos-do-VFX) needs to sit directly inside

    ComfyUI/custom_nodes/, e.g.:

    ComfyUI/custom_nodes/ComfyUI-Bruxos-do-VFX/__init__.py

    not nested one level deeper, and not just the loose files.

    3. Browser cache, if the nodes load on the backend but don't show up in

    the node search: hard refresh with Ctrl+Shift+R.

    4. Startup errors being swallowed. Check your ComfyUI console/log right

    after startup for a line mentioning Bruxos — if it fails to import,

    there'll be a warning there with the actual reason.

    Could you paste the relevant lines from your console log (search for

    "Bruxos")? That'll tell us exactly what's failing instead of guessing. Also

    worth trying: use the install script bruxos_setup_windows.bat for Windows)

    if you're not already, since it handles the folder placement and pip install

    path automatically.

    kimdo156Jul 3, 2026· 1 reaction

    @BruxosDoVFX It turned out that the issue was caused by manually installing the custom nodes and then running 'Install Easy' on top of them. After a clean reinstall using only 'Install Easy', everything is working perfectly. Thank you so much for creating this workflow!

    BruxosDoVFX
    Author
    Jul 16, 2026

    workflow and nodes Updated

    greggyq159Jul 6, 2026· 1 reaction
    CivitAI

    It's a very good workflow. One thing I haven't been able to figure out. For models that use a lot of vram, I like to put a vram debug node between the samplers. But this is doing both sampler phases through one node. Is there anything to do about that? Thanks

    BruxosDoVFX
    Author
    Jul 16, 2026

    workflow and nodes Updated

    Workflows
    Wan Video 2.2 T2V-A14B

    Details

    Downloads
    152
    Platform
    CivitAI
    Platform Status
    Available
    Created
    7/1/2026
    Updated
    7/27/2026
    Deleted
    -

    Files

    berniniInfinityLowvram_v10.json

    Mirrors

    berniniInfinityLowvram_v10.json

    Mirrors