๐๏ธ ComfyUI Image-to-Video Workflow - WAN 2.1 Wrapper (Kiko WAN v3)
This is a high-performance, multi-pass Image-to-Video workflow for ComfyUI, powered by the WAN 2.1 Wrapper, with advanced optimizations like torch.compile and Sage Attention for faster and smarter frame generation. I tried to expose all the settings that Kijai exposes that I can understand ๐, This is not the fastest workflow you will find on here, but it is one I use to make 20 secons videos.
Crafted with โค๏ธ on Arch Linux BTW, using an RTX 4090 and 128 GB of RAMโthis setup is tuned for heavy-duty inference and silky-smooth video generation.
๐ Features
๐ง WAN 2.1 Wrapper for cinematic image-to-video transformations
๐ Two-pass generation: initial + refinement/extension
๐ Optional Slow Motion + Frame Interpolation (RIFE, FILM, etc.)
๐งฝ Sharpening and Upscaling (e.g., RealESRGAN, SwinIR)
๐ ๏ธ Includes torch.compile for faster inference
๐ Integrates Sage Attention for improved attention efficiency
๐ Customizable prompts, seed, duration, and aspect ratio logic
๐ Final loop polish with "Extend Last Frame"
โ๏ธ System Specs
OS: Arch Linux (rolling release)
GPU: NVIDIA RTX 4090 (24GB VRAM)
RAM: 128 GB DDR5
Python: 3.12.9 via
pyenvComfyUI: Latest build from GitHub
torch: 2.x with
torch.compileenabledSage Attention: Enabled via patched attention mechanism
๐ ๏ธ Workflow Overview
๐น Input & Resize
Drop an image and optionally resize to fit WAN 2.1's expected input.
๐น WAN 2.1 Wrapper Core
Uses
torch.compilefor speed boostEnhanced with Sage Attention (set via the custom node or environment)
๐น Pass 1: Generate + Optional Slow Motion
Frame-by-frame synthesis
Add slow motion via interpolation node (RIFE or FILM)
๐น Pass 2: Extend + Merge
Extends the motion, ensures smoother transitions
Combines motion with refined prompt guidance
๐น Final Polish
Sharpening and Upscaling
Final interpolation if needed
Loop-ready output by extending the last frame
๐งช Performance Tips
Tune torch compile for you system, they are all different, my setting might not work for you.
For Sage Attention:
Use the node
Running on lower-end GPUs? Disable upscaling and reduce frame count.
๐งฐ Requirements
ComfyUI
WAN 2.1 Wrapper Node
Optional:
RIFE,FILM, orDAINfor interpolationRealESRGAN/SwinIRfor upscalingSage Attentionpatch or node
โถ๏ธ How to Use
Load the
kiko-wan-v3.jsonfile into ComfyUI.Drop your image into the input node.
Customize prompts, duration, and frame count.
Click
Queue Promptto generate.Your video will be rendered in the output folder.
๐ Files
kiko-wan-v3.jsonโ Exported workflow (coming soon)kiko-wan-v3.pngโ Workflow diagram
๐ง Inspirations & Credits
Real-ESRGAN, RIFE, FILM, Sage Attention contributors
Arch Linux + NVIDIA ecosystem for elite workstation performance ๐
๐ก Future Plans
Add batch image-to-video mode
Audio?
โ๏ธ Custom Nodes Used in kiko-wan-wrapper-v3.json
Anything Everywhere: https://github.com/chrisgoringe/cg-use-everywhere
Display Any (rgthree): https://github.com/rgthree/rgthree-comfy
Fast Bypasser (rgthree): https://github.com/rgthree/rgthree-comfy
Fast Groups Bypasser (rgthree): https://github.com/rgthree/rgthree-comfy
GetImageRangeFromBatch: https://github.com/kijai/ComfyUI-KJNodes
GetImageSize+: https://github.com/cubiq/ComfyUI_essentials
Image Filter: https://github.com/chrisgoringe/cg-image-filter
ImageBatchMulti: https://github.com/kijai/ComfyUI-KJNodes
ImageFromBatch+: https://github.com/cubiq/ComfyUI_essentials
ImageListToImageBatch: https://github.com/ltdrdata/ComfyUI-Impact-Pack
ImageResizeKJ: https://github.com/kijai/ComfyUI-KJNodes
LoadWanVideoClipTextEncoder: https://github.com/kijai/ComfyUI-WanVideoWrapper/
LoadWanVideoT5TextEncoder: https://github.com/kijai/ComfyUI-WanVideoWrapper/
MarkdownNote: NOT FOUND
PlaySound|pysssss: https://github.com/pythongosssss/ComfyUI-Custom-Scripts
ProjectFilePathNode: https://github.com/MushroomFleet/DJZ-Nodes
RIFE VFI: https://github.com/Fannovel16/ComfyUI-Frame-Interpolation
ReActorRestoreFace: https://github.com/Gourieff/ComfyUI-ReActor
Seed Generator: https://github.com/giriss/comfy-image-saver
SimpleMath+: https://github.com/cubiq/ComfyUI_essentials
Text Input [Dream]: https://github.com/alt-key-project/comfyui-dream-project
VHS_VideoCombine: https://github.com/Kosinkadink/ComfyUI-VideoHelperSuite
WanVideoBlockSwap: https://github.com/kijai/ComfyUI-WanVideoWrapper/
WanVideoDecode: https://github.com/kijai/ComfyUI-WanVideoWrapper/
WanVideoEnhanceAVideo: https://github.com/kijai/ComfyUI-WanVideoWrapper/
WanVideoFlowEdit: https://github.com/kijai/ComfyUI-WanVideoWrapper/
WanVideoImageClipEncode: https://github.com/kijai/ComfyUI-WanVideoWrapper/
WanVideoLoopArgs: https://github.com/kijai/ComfyUI-WanVideoWrapper/
WanVideoLoraBlockEdit: https://github.com/kijai/ComfyUI-WanVideoWrapper/
WanVideoLoraSelect: https://github.com/kijai/ComfyUI-WanVideoWrapper/
WanVideoModelLoader: https://github.com/kijai/ComfyUI-WanVideoWrapper/
WanVideoSLG: https://github.com/kijai/ComfyUI-WanVideoWrapper/
WanVideoSampler: https://github.com/kijai/ComfyUI-WanVideoWrapper/
WanVideoTeaCache: https://github.com/kijai/ComfyUI-WanVideoWrapper/
WanVideoTextEncode: https://github.com/kijai/ComfyUI-WanVideoWrapper/
WanVideoTorchCompileSettings: https://github.com/kijai/ComfyUI-WanVideoWrapper/
WanVideoVAELoader: https://github.com/kijai/ComfyUI-WanVideoWrapper/
WanVideoVRAMManagement: https://github.com/kijai/ComfyUI-WanVideoWrapper/
Description
initial release
FAQ
Comments (13)
Hmm. I'm just getting a json file that looks like an apple quarantine report when I look at it in Notepad and a png file with no workflow data. Maybe re-upload?
Sounds like your on Apple? macOS gatekeeper will mark json files and quarantine them. My PNG wont have the workflow embedded as the export from ComfyUI is 4MB and I have to resize them which strips the embedded json. I have been to lazy to come up with a script to reapply. I just downloaded and verified that the JSON file will load in Comfy.
No. I'm on Windows 11 using Brave browser. The json file seemed to reference a quarantine on Mac via Chrome browser so definitely not connected to me and my PC. I'll try downloading it again to see if it's working now.
OK - found that if I extract via 7Zip, I get a corrupted json file but using the Windows 11 native extractor, it seems to be OK. Very odd. I've extracted loads of other workflows etc and never had the issue before. Anyway, as you correctly stated - your upload is fine. Just something odd at my end! Cheers.
@bennyboy_77_ukย Thanks for reporting, and the work around. I will investigate on my side if its something I am doing in Linux.
No matter what I do, I can't seem to get comfy to locate the ReactorRestoreFace node or the Searge_LLM_node. I've updated everything, removed the nodes and git cloned them back in, tried to update them in the manager, changed the version - but no luck. Not sure what the issue is. I pruned out the nodes for now. Seems to be a good workflow otherwise!
Me too. Updated "Standalone ComfyUI". I did all this. Still a problem.
Create a new folder called llm_gguf in the ComfyUI/models directory.
Download the file Mistral-7B-Instruct-v0.3.Q4_K_M.gguf (4.37 GB). from the repository MaziyarPanahi/Mistral-7B-Instruct-v0.3-GGUF on HuggingFace.
download link to the gguf model
place Mistral-7B-Instruct-v0.3.Q4_K_M.gguf in the ComfyUI/models/llm_gguf directory.
https://github.com/Gourieff/ComfyUI-ReActor
This was disabled in github awhile back due to its ability to make deep fakes, and has moved here.
If you don't need the LLM support you can delete this group of nodes.
@kiko9ย I get a failed to clone repo error when attempting to install via GIT
Invalid workflow against zod schema: Validation error: Invalid format. Must be 'github-user/repo-name' at "nodes[27].properties.aux_id"; Invalid format. Must be 'github-user/repo-name' at "nodes[132].properties.aux_id"
I have removed the LLM and added a list of github links to all custom_nodes, I hope this helps.
What's with all these workflows where it takes hours to find a single value to figure out what's going on?
Sorry, I like the get and set nodes to clean up the workflow for the wires. This allows me to move each section around anyplace I want. And now that I have 5 or so workflows that follow the same naming convention in the set and gets I can mix and match workflows very easily.
