kijai 24683f1dad Squashed commit of the following:
commit 6a01a8a1d80d36b5b8ac979a36069c8eb0c2f9a7
Author: kijai <40791699+kijai@users.noreply.github.com>
Date:   Thu Aug 14 15:40:50 2025 +0300

    Update wanvideo_2_1_I2V_FantasyPortrait_example_01.json

commit e3cf4bf5bc13321e6d8f91fcb7ee92210a7adf01
Merge: bbf14ec f3d5f6b
Author: kijai <40791699+kijai@users.noreply.github.com>
Date:   Thu Aug 14 15:08:53 2025 +0300

    Merge branch 'main' into fantasy_portrait

commit bbf14ec9e9965c1a8582eea02b50913e79a036d0
Author: kijai <40791699+kijai@users.noreply.github.com>
Date:   Thu Aug 14 02:16:11 2025 +0300

    update

commit 8192f9f4302b3933e48641a8ef313929e3e263aa
Author: kijai <40791699+kijai@users.noreply.github.com>
Date:   Thu Aug 14 01:46:15 2025 +0300

    progress bar, fix context windows

commit 39fab8ad4d950a974ba49bd177814f30f518b478
Author: kijai <40791699+kijai@users.noreply.github.com>
Date:   Thu Aug 14 01:29:15 2025 +0300

    Update nodes.py

commit 36f472c0134e6342ab8c2062a7e3f0b0c829003b
Author: kijai <40791699+kijai@users.noreply.github.com>
Date:   Thu Aug 14 01:14:24 2025 +0300

    Add start/end percent

commit 16f5922c6bc575754412c9b473907377562b956c
Author: kijai <40791699+kijai@users.noreply.github.com>
Date:   Thu Aug 14 00:58:57 2025 +0300

    init
2025-08-14 15:41:25 +03:00
2025-03-22 22:17:25 +02:00
2025-06-09 04:24:37 +03:00
2025-07-18 16:15:50 +03:00
2025-07-21 20:09:53 +03:00
2025-07-08 15:09:54 +03:00
2025-04-29 20:41:27 +03:00
2025-08-06 21:02:39 +03:00
2025-08-11 18:46:46 +03:00
2025-06-19 20:38:23 +03:00
2025-08-14 15:41:25 +03:00
2025-02-25 15:23:26 +02:00
2025-04-18 19:43:40 +03:00
2025-03-04 23:10:40 +02:00
2025-07-18 16:41:49 +03:00
2025-08-14 15:41:25 +03:00
2025-08-12 21:48:15 +03:00
2025-07-31 12:37:16 +03:00
2025-07-10 12:53:37 +03:00

ComfyUI wrapper nodes for WanVideo and related models.

WORK IN PROGRESS (perpetually)

Why should I use custom nodes when WanVideo works natively?

Short answer: Unless it's a model/feature not available yet on native, you shouldn't.

Long answer: Due to the complexity of ComfyUI core code, and my lack of coding experience, in many cases it's far easier and faster to implement new models and features to a standalone wrapper, so this is a way to test things relatively quickly. I consider this my personal sandbox (which is obviously open for everyone) to play with without having to worry about compability issues etc, but as such this code is always work in progress and prone to have issues. Also not all new models end up being worth the trouble to implement in core Comfy, though I've also made some patcher nodes to allow using them in native workflows, such as the ATI node available in this wrapper. This is also the end goal, idea isn't to compete or even offer alternatives to everything available in native workflows. All that said (this is clearly not a sales pitch) I do appreciate everyone using these nodes to explore new releases and possibilities with WanVideo.

Installation

  1. Clone this repo into custom_nodes folder.
  2. Install dependencies: pip install -r requirements.txt or if you use the portable install, run this in ComfyUI_windows_portable -folder:

python_embeded\python.exe -m pip install -r ComfyUI\custom_nodes\ComfyUI-WanVideoWrapper\requirements.txt

Models

https://huggingface.co/Kijai/WanVideo_comfy/tree/main

fp8 scaled models (personal recommendation):

https://huggingface.co/Kijai/WanVideo_comfy_fp8_scaled

Text encoders to ComfyUI/models/text_encoders

Clip vision to ComfyUI/models/clip_vision

Transformer (main video model) to ComfyUI/models/diffusion_models

Vae to ComfyUI/models/vae

You can also use the native ComfyUI text encoding and clip vision loader with the wrapper instead of the original models:

image

GGUF models can now be loaded in the main model loader as well.


Supported extra models:

SkyReels: https://huggingface.co/collections/Skywork/skyreels-v2-6801b1b93df627d441d0d0d9

WanVideoFun: https://huggingface.co/collections/alibaba-pai/wan21-fun-v11-680f514c89fe7b4df9d44f17

ReCamMaster: https://github.com/KwaiVGI/ReCamMaster

VACE: https://github.com/ali-vilab/VACE

Phantom: https://huggingface.co/bytedance-research/Phantom

ATI: https://huggingface.co/bytedance-research/ATI

Uni3C: https://github.com/alibaba-damo-academy/Uni3C

MiniMaxRemover: https://huggingface.co/zibojia/minimax-remover

MAGREF: https://huggingface.co/MAGREF-Video/MAGREF

FantasyTalking: https://github.com/Fantasy-AMAP/fantasy-talking

MultiTalk: https://github.com/MeiGen-AI/MultiTalk

EchoShot: https://github.com/D2I-ai/EchoShot

Examples:

ReCamMaster:

https://github.com/user-attachments/assets/c58a12c2-13ba-4af8-8041-e283dbef197e

TeaCache (with the old temporary WIP naive version, I2V):

Note that with the new version the threshold values should be 10x higher

Range of 0.25-0.30 seems good when using the coefficients, start step can be 0, with more aggressive threshold values it may make sense to start later to avoid any potential step skips early on, that generally ruin the motion.

https://github.com/user-attachments/assets/504a9a50-3337-43d2-97b8-8e1661f29f46

Context window test:

1025 frames using window size of 81 frames, with 16 overlap. With the 1.3B T2V model this used under 5GB VRAM and took 10 minutes to gen on a 5090:

https://github.com/user-attachments/assets/89b393af-cf1b-49ae-aa29-23e57f65911e


This very first test was 512x512x81

~16GB used with 20/40 blocks offloaded

https://github.com/user-attachments/assets/fa6d0a4f-4a4d-4de5-84a4-877cc37b715f

Vid2vid example:

with 14B T2V model:

https://github.com/user-attachments/assets/ef228b8a-a13a-4327-8a1b-1eb343cf00d8

with 1.3B T2V model

https://github.com/user-attachments/assets/4f35ba84-da7a-4d5b-97ee-9641296f391e

S
Description
No description provided
Readme Apache-2.0
35 MiB
Languages
Python 100%