refactor: expose CacheProvider API via comfy_api.latest.Caching

- Add Caching class to comfy_api/latest/__init__.py that re-exports
  from comfy_execution.cache_provider (source of truth)
- Fix docstring: "Skip large values" instead of "Skip small values"
  (small compute-heavy values are good cache targets)
- Maintain backward compatibility: comfy_execution.cache_provider
  imports still work

Usage:
    from comfy_api.latest import Caching

    class MyProvider(Caching.CacheProvider):
        def on_lookup(self, context): ...
        def on_store(self, context, value): ...

    Caching.register_provider(MyProvider())

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
Deep Mehta 2026-01-29 19:42:34 +05:30
parent 9b0ca8b95c
commit 2049066cff
2 changed files with 41 additions and 1 deletions

View File

@ -106,6 +106,42 @@ class Types:
MESH = MESH MESH = MESH
VOXEL = VOXEL VOXEL = VOXEL
class Caching:
"""
External cache provider API for distributed caching.
Enables sharing cached results across multiple ComfyUI instances
(e.g., Kubernetes pods) without monkey-patching internal methods.
Example usage:
from comfy_api.latest import Caching
class MyRedisProvider(Caching.CacheProvider):
def on_lookup(self, context):
# Check Redis for cached result
...
def on_store(self, context, value):
# Store to Redis (can be async internally)
...
Caching.register_provider(MyRedisProvider())
"""
# Import from comfy_execution.cache_provider (source of truth)
from comfy_execution.cache_provider import (
CacheProvider,
CacheContext,
CacheValue,
register_cache_provider as register_provider,
unregister_cache_provider as unregister_provider,
get_cache_providers as get_providers,
has_cache_providers as has_providers,
clear_cache_providers as clear_providers,
estimate_value_size,
)
ComfyAPI = ComfyAPI_latest ComfyAPI = ComfyAPI_latest
# Create a synchronous version of the API # Create a synchronous version of the API
@ -125,6 +161,7 @@ __all__ = [
"Input", "Input",
"InputImpl", "InputImpl",
"Types", "Types",
"Caching",
"ComfyExtension", "ComfyExtension",
"io", "io",
"IO", "IO",

View File

@ -4,6 +4,9 @@ External Cache Provider API for distributed caching.
This module provides a public API for external cache providers, enabling This module provides a public API for external cache providers, enabling
distributed caching across multiple ComfyUI instances (e.g., Kubernetes pods). distributed caching across multiple ComfyUI instances (e.g., Kubernetes pods).
Public API is also available via:
from comfy_api.latest import Caching
Example usage: Example usage:
from comfy_execution.cache_provider import ( from comfy_execution.cache_provider import (
CacheProvider, CacheContext, CacheValue, register_cache_provider CacheProvider, CacheContext, CacheValue, register_cache_provider
@ -120,7 +123,7 @@ class CacheProvider(ABC):
Common filters: Common filters:
- By class_type: Only expensive nodes (KSampler, VAEDecode) - By class_type: Only expensive nodes (KSampler, VAEDecode)
- By size: Skip small values (< 1MB) - By size: Skip large values to reduce network overhead
Default: Returns True (cache everything). Default: Returns True (cache everything).
""" """