Comfy Kitchen

0.2.8 · active · verified Sat Apr 11

Comfy Kitchen is a fast kernel library designed for ComfyUI, offering optimized computational primitives with support for multiple compute backends such as PyTorch, JAX, and CuPy. It provides low-level, high-performance operations for AI workloads, allowing users to leverage different hardware and frameworks. The current version is 0.2.8, and it appears to follow a rapid iteration release cadence, indicating active development.

Warnings

Install

Imports

Quickstart

This quickstart demonstrates how to initialize Comfy Kitchen, set a compute backend (e.g., 'torch'), list available kernels, and load a specific kernel. It highlights the importance of installing optional backend dependencies and explicitly setting the backend before use.

import comfy_kitchen.kernels as K
import os

# --- Important: Choose and install a backend first ---
# For this example, we default to 'torch'.
# Ensure you have installed the corresponding extra, e.g., `pip install comfy-kitchen[torch]`
try:
    backend_choice = os.environ.get('COMFY_KITCHEN_BACKEND', 'torch')
    K.set_backend(backend_choice)
    print(f"Successfully set Comfy Kitchen backend to: {backend_choice}")

    # List available kernels for the selected backend
    available_kernels = K.list_kernels()
    print(f"Available kernels for '{backend_choice}' backend: {', '.join(available_kernels)}")

    # Attempt to load an example kernel (e.g., a diffusion related one)
    kernel_name = "diffusion_forward" # Common kernel, but might vary per version/backend
    
    if kernel_name in available_kernels:
        kernel = K.load_kernel(kernel_name)
        print(f"Loaded kernel: {kernel.name} from backend: {K.get_backend()}")
        print(f"Kernel signature (expected inputs): {kernel.signature()}")
        
        # A full example would involve preparing inputs as per kernel.signature()
        # For demonstration, we just show successful loading and signature.
        # Example: to use, you'd prepare tensors (e.g., torch.Tensor) matching the signature
        # output = kernel.forward(*your_prepared_tensors_here)
        print("Kernel is ready for execution with appropriate input tensors.")
    else:
        print(f"Kernel '{kernel_name}' not found for backend '{backend_choice}'.")

except ImportError as e:
    print(f"ERROR: Failed to import a backend. Did you run `pip install comfy-kitchen[{backend_choice}]`? Details: {e}")
except Exception as e:
    print(f"An error occurred during Comfy Kitchen setup or kernel loading: {e}")

view raw JSON →