ComfyUI Extension: ComfyUI-WanKeyframing

Authored by apenguin24

Created

Updated

0 stars

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.

Custom Nodes (0)

    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.