Instructions to use saik0s/comfy_backup with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- llama-cpp-python
How to use saik0s/comfy_backup with llama-cpp-python:
# !pip install llama-cpp-python from llama_cpp import Llama llm = Llama.from_pretrained( repo_id="saik0s/comfy_backup", filename="ComfyUI/models/text_encoders/gemma-3-12b-it-q2_k.gguf", )
llm.create_chat_completion( messages = "No input example has been defined for this model task." )
- Notebooks
- Google Colab
- Kaggle
- Local Apps Settings
- llama.cpp
How to use saik0s/comfy_backup with llama.cpp:
Install (macOS, Linux)
curl -LsSf https://llama.app/install.sh | sh # Start a local OpenAI-compatible server with a web UI: llama serve -hf saik0s/comfy_backup:Q4_K_S # Run inference directly in the terminal: llama cli -hf saik0s/comfy_backup:Q4_K_S
Install from WinGet (Windows)
winget install llama.cpp # Start a local OpenAI-compatible server with a web UI: llama serve -hf saik0s/comfy_backup:Q4_K_S # Run inference directly in the terminal: llama cli -hf saik0s/comfy_backup:Q4_K_S
Use pre-built binary
# Download pre-built binary from: # https://github.com/ggerganov/llama.cpp/releases # Start a local OpenAI-compatible server with a web UI: ./llama-server -hf saik0s/comfy_backup:Q4_K_S # Run inference directly in the terminal: ./llama-cli -hf saik0s/comfy_backup:Q4_K_S
Build from source code
git clone https://github.com/ggerganov/llama.cpp.git cd llama.cpp cmake -B build cmake --build build -j --target llama-server llama-cli # Start a local OpenAI-compatible server with a web UI: ./build/bin/llama-server -hf saik0s/comfy_backup:Q4_K_S # Run inference directly in the terminal: ./build/bin/llama-cli -hf saik0s/comfy_backup:Q4_K_S
Use Docker
docker model run hf.co/saik0s/comfy_backup:Q4_K_S
- LM Studio
- Jan
- Ollama
How to use saik0s/comfy_backup with Ollama:
ollama run hf.co/saik0s/comfy_backup:Q4_K_S
- Unsloth Studio
How to use saik0s/comfy_backup with Unsloth Studio:
Install Unsloth Studio (macOS, Linux, WSL)
curl -fsSL https://unsloth.ai/install.sh | sh # Run unsloth studio unsloth studio -H 0.0.0.0 -p 8888 # Then open http://localhost:8888 in your browser # Search for saik0s/comfy_backup to start chatting
Install Unsloth Studio (Windows)
irm https://unsloth.ai/install.ps1 | iex # Run unsloth studio unsloth studio -H 0.0.0.0 -p 8888 # Then open http://localhost:8888 in your browser # Search for saik0s/comfy_backup to start chatting
Using HuggingFace Spaces for Unsloth
# No setup required # Open https://huggingface.co/spaces/unsloth/studio in your browser # Search for saik0s/comfy_backup to start chatting
- Pi
How to use saik0s/comfy_backup with Pi:
Start the llama.cpp server
# Install llama.cpp: brew install llama.cpp # Start a local OpenAI-compatible server: llama serve -hf saik0s/comfy_backup:Q4_K_S
Configure the model in Pi
# Install Pi: npm install -g @mariozechner/pi-coding-agent # Add to ~/.pi/agent/models.json: { "providers": { "llama-cpp": { "baseUrl": "http://localhost:8080/v1", "api": "openai-completions", "apiKey": "none", "models": [ { "id": "saik0s/comfy_backup:Q4_K_S" } ] } } }Run Pi
# Start Pi in your project directory: pi
- Hermes Agent new
How to use saik0s/comfy_backup with Hermes Agent:
Start the llama.cpp server
# Install llama.cpp: brew install llama.cpp # Start a local OpenAI-compatible server: llama serve -hf saik0s/comfy_backup:Q4_K_S
Configure Hermes
# Install Hermes: curl -fsSL https://hermes-agent.nousresearch.com/install.sh | bash hermes setup # Point Hermes at the local server: hermes config set model.provider custom hermes config set model.base_url http://127.0.0.1:8080/v1 hermes config set model.default saik0s/comfy_backup:Q4_K_S
Run Hermes
hermes
- Atomic Chat new
- Docker Model Runner
How to use saik0s/comfy_backup with Docker Model Runner:
docker model run hf.co/saik0s/comfy_backup:Q4_K_S
- Lemonade
How to use saik0s/comfy_backup with Lemonade:
Pull the model
# Download Lemonade from https://lemonade-server.ai/ lemonade pull saik0s/comfy_backup:Q4_K_S
Run and chat with the model
lemonade run user.comfy_backup-Q4_K_S
List all available models
lemonade list
| from typing import Any, Optional, Tuple, List | |
| import hashlib | |
| import json | |
| import logging | |
| import threading | |
| # Public types — source of truth is comfy_api.latest._caching | |
| from comfy_api.latest._caching import CacheProvider, CacheContext, CacheValue # noqa: F401 (re-exported) | |
| _logger = logging.getLogger(__name__) | |
| _providers: List[CacheProvider] = [] | |
| _providers_lock = threading.Lock() | |
| _providers_snapshot: Tuple[CacheProvider, ...] = () | |
| def register_cache_provider(provider: CacheProvider) -> None: | |
| """Register an external cache provider. Providers are called in registration order.""" | |
| global _providers_snapshot | |
| with _providers_lock: | |
| if provider in _providers: | |
| _logger.warning(f"Provider {provider.__class__.__name__} already registered") | |
| return | |
| _providers.append(provider) | |
| _providers_snapshot = tuple(_providers) | |
| _logger.debug(f"Registered cache provider: {provider.__class__.__name__}") | |
| def unregister_cache_provider(provider: CacheProvider) -> None: | |
| global _providers_snapshot | |
| with _providers_lock: | |
| try: | |
| _providers.remove(provider) | |
| _providers_snapshot = tuple(_providers) | |
| _logger.debug(f"Unregistered cache provider: {provider.__class__.__name__}") | |
| except ValueError: | |
| _logger.warning(f"Provider {provider.__class__.__name__} was not registered") | |
| def _get_cache_providers() -> Tuple[CacheProvider, ...]: | |
| return _providers_snapshot | |
| def _has_cache_providers() -> bool: | |
| return bool(_providers_snapshot) | |
| def _clear_cache_providers() -> None: | |
| global _providers_snapshot | |
| with _providers_lock: | |
| _providers.clear() | |
| _providers_snapshot = () | |
| def _canonicalize(obj: Any) -> Any: | |
| # Convert to canonical JSON-serializable form with deterministic ordering. | |
| # Frozensets have non-deterministic iteration order between Python sessions. | |
| # Raises ValueError for non-cacheable types (Unhashable, unknown) so that | |
| # _serialize_cache_key returns None and external caching is skipped. | |
| if isinstance(obj, frozenset): | |
| return ("__frozenset__", sorted( | |
| [_canonicalize(item) for item in obj], | |
| key=lambda x: json.dumps(x, sort_keys=True) | |
| )) | |
| elif isinstance(obj, set): | |
| return ("__set__", sorted( | |
| [_canonicalize(item) for item in obj], | |
| key=lambda x: json.dumps(x, sort_keys=True) | |
| )) | |
| elif isinstance(obj, tuple): | |
| return ("__tuple__", [_canonicalize(item) for item in obj]) | |
| elif isinstance(obj, list): | |
| return [_canonicalize(item) for item in obj] | |
| elif isinstance(obj, dict): | |
| return {"__dict__": sorted( | |
| [[_canonicalize(k), _canonicalize(v)] for k, v in obj.items()], | |
| key=lambda x: json.dumps(x, sort_keys=True) | |
| )} | |
| elif isinstance(obj, (int, float, str, bool, type(None))): | |
| return (type(obj).__name__, obj) | |
| elif isinstance(obj, bytes): | |
| return ("__bytes__", obj.hex()) | |
| else: | |
| raise ValueError(f"Cannot canonicalize type: {type(obj).__name__}") | |
| def _serialize_cache_key(cache_key: Any) -> Optional[str]: | |
| # Returns deterministic SHA256 hex digest, or None on failure. | |
| # Uses JSON (not pickle) because pickle is non-deterministic across sessions. | |
| try: | |
| canonical = _canonicalize(cache_key) | |
| json_str = json.dumps(canonical, sort_keys=True, separators=(',', ':')) | |
| return hashlib.sha256(json_str.encode('utf-8')).hexdigest() | |
| except Exception as e: | |
| _logger.warning(f"Failed to serialize cache key: {e}") | |
| return None | |
| def _contains_self_unequal(obj: Any) -> bool: | |
| # Local cache matches by ==. Values where not (x == x) (NaN, etc.) will | |
| # never hit locally, but serialized form would match externally. Skip these. | |
| try: | |
| if not (obj == obj): | |
| return True | |
| except Exception: | |
| return True | |
| if isinstance(obj, (frozenset, tuple, list, set)): | |
| return any(_contains_self_unequal(item) for item in obj) | |
| if isinstance(obj, dict): | |
| return any(_contains_self_unequal(k) or _contains_self_unequal(v) for k, v in obj.items()) | |
| if hasattr(obj, 'value'): | |
| return _contains_self_unequal(obj.value) | |
| return False | |
| def _estimate_value_size(value: CacheValue) -> int: | |
| try: | |
| import torch | |
| except ImportError: | |
| return 0 | |
| total = 0 | |
| def estimate(obj): | |
| nonlocal total | |
| if isinstance(obj, torch.Tensor): | |
| total += obj.numel() * obj.element_size() | |
| elif isinstance(obj, dict): | |
| for v in obj.values(): | |
| estimate(v) | |
| elif isinstance(obj, (list, tuple)): | |
| for item in obj: | |
| estimate(item) | |
| for output in value.outputs: | |
| estimate(output) | |
| return total | |