mirror of
https://github.com/comfyanonymous/ComfyUI.git
synced 2026-01-31 00:30:21 +08:00
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:
parent
9b0ca8b95c
commit
2049066cff
@ -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",
|
||||||
|
|||||||
@ -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).
|
||||||
"""
|
"""
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user