Extensions/ComfyUI-WanKeyframing
ComfyUI Extension

ComfyUI-WanKeyframing

A powerful ComfyUI custom node collection for keyframe-based video generation and batch image processing. This extension provides advanced tools for creating smooth…

By apenguin24·Created 10 months ago·Updated 10 months ago· 0
apenguin24/ComfyUI-WanKeyframing
Nodes2
On cloudLocal install
CategoryLoad, conditioning/video_models
Stars0
Updated10 months ago
Readme

ComfyUI-WanKeyframing

A powerful ComfyUI custom node collection for keyframe-based video generation and batch image processing. This extension provides advanced tools for creating smooth video sequences from keyframes with intelligent conditioning and latent space interpolation.

Features

  • Batch Image Loading: Load and process multiple images from directories with smart resizing and sorting
  • Keyframe Video Generation: Create video sequences from keyframes with smooth transitions
  • Multiple Resize Modes: Flexible image resizing with stretch, fit, and crop options
  • Advanced Sorting: Sort images by name, date, size, or keep original order
  • Multi-Latent Encoding: Generate video-ready latent representations with conditioning
  • Prompt Keyframing: Use indexed prompts for different video segments

Installation

Method 1: ComfyUI Manager (Recommended)

  1. Install ComfyUI Manager
  2. Search for "WanKeyframing" in the manager
  3. Click Install

Method 2: Git Clone

cd ComfyUI/custom_nodes/
git clone https://github.com/apenguin24/ComfyUI-WanKeyframing.git

Method 3: Manual Download

  1. Download the repository as a ZIP file
  2. Extract to ComfyUI/custom_nodes/comfyui-wankeyframing/
  3. Restart ComfyUI

Nodes Overview

Load Images From Directory

Efficiently loads and processes multiple images from a directory with advanced options.

Features:

  • Smart Resizing: Automatically resize images to consistent dimensions
  • Multiple Sort Options: Sort by name, date, size, or preserve order
  • Reload Control: Force reload images when needed
  • Format Support: PNG, JPG, JPEG, BMP, WEBP, TIF, TIFF

Parameters:

  • directory: Input directory path (relative to ComfyUI input folder)
  • reload_on_execute: Force reload on each execution
  • target_width/height: Target dimensions for all images (8-8192px)
  • resize_mode: How to handle different sized images
    • Stretch: Stretch to exact dimensions (may distort)
    • Fit: Fit inside dimensions, pad with black
    • Crop: Crop to fill dimensions, maintain aspect ratio
  • sort_mode: Image loading order
    • name_asc/desc: Sort alphabetically by filename
    • date_asc/desc: Sort by file modification date
    • size_asc/desc: Sort by file size
    • none: System order (no sorting)

Wan Keyframe To Video

Advanced keyframe-to-video encoder that creates smooth video sequences with intelligent conditioning.

Features:

  • Multi-Segment Processing: Process multiple keyframe pairs simultaneously
  • Indexed Prompts: Use different prompts for different video segments
  • CLIP Vision Support: Enhanced conditioning with vision embeddings
  • Flexible Video Length: Control FPS and duration
  • Latent Space Interpolation: Smooth transitions between keyframes

Parameters:

  • clip: CLIP model for text encoding
  • positive_prompt: Multi-line prompts with keyframe indexing (e.g., [0] prompt1)
  • negative_prompt: Negative conditioning text
  • vae: VAE model for latent encoding
  • width/height: Video dimensions (16-8192px, step 16)
  • fps: Frames per second (1-120)
  • seconds: Video duration (1-60 seconds)
  • keyframes: Input keyframe images (optional)
  • clip_vision_outputs: CLIP vision embeddings (optional)

🔧 Usage Examples

Basic Keyframe Video Workflow

  1. Load Keyframes: Use "Load Images From Directory" to load your keyframe sequence

    • Set appropriate target dimensions
    • Use "name_asc" sorting for numbered sequences
  2. Generate Video: Connect to "Wan Keyframe To Video"

    • Set desired video parameters (FPS, duration, dimensions)
    • Use indexed prompts for segment-specific conditioning:
      [0] A serene mountain landscape at dawn
      [1] The same landscape in golden hour
      [2] A starlit night scene
      
  3. Process: The node will create smooth transitions between keyframes

Advanced Prompt Keyframing

Use indexed prompts to control different segments of your video:

[0] A peaceful garden in spring, soft lighting
[1] The garden in summer, vibrant colors, bright sun
[2] Autumn garden with falling leaves, warm tones
[3] Winter garden covered in snow, cold blue lighting

Each [N] corresponds to the keyframe at index N, creating segment-specific conditioning.

Technical Details

Resize Modes Explained

  • Stretch: Direct resize to target dimensions. Fast but may distort aspect ratio.
  • Fit: Maintains aspect ratio, adds padding. Good for preserving image content.
  • Crop: Maintains aspect ratio, crops excess. Good for filling frame completely.

Video Generation Process

  1. Keyframe Processing: Each consecutive pair of keyframes creates a video segment
  2. Prompt Mapping: Indexed prompts are matched to keyframe segments
  3. Latent Encoding: Images are encoded to latent space with VAE
  4. Conditioning: CLIP embeddings are generated for each segment
  5. Stacking: All segments are combined into a single batch for processing

Performance Tips

  • Use consistent image sizes when possible to reduce processing overhead
  • Moderate video lengths (1-5 seconds) work best for memory efficiency
  • Consider using lower resolution for testing, then upscale final results

Troubleshooting

Images won't load:

  • Check that the directory path is relative to ComfyUI's input folder
  • Ensure images are in supported formats
  • Verify file permissions

Memory errors:

  • Reduce video length or resolution
  • Use fewer keyframes
  • Close other applications to free RAM

Inconsistent results:

  • Enable "reload_on_execute" if images change frequently
  • Check that keyframe count matches your prompt indexing
  • Ensure all keyframes have similar content/style

Contributing

Contributions are welcome! Please feel free to submit pull requests or open issues for bugs and feature requests.