Instructions to use LuckyOda/comfyui-carbonara-bundle with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- llama-cpp-python
How to use LuckyOda/comfyui-carbonara-bundle with llama-cpp-python:
# !pip install llama-cpp-python from llama_cpp import Llama llm = Llama.from_pretrained( repo_id="LuckyOda/comfyui-carbonara-bundle", filename="models/text_encoders/qwen-4b-zimage-heretic-q8.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 LuckyOda/comfyui-carbonara-bundle 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 LuckyOda/comfyui-carbonara-bundle # Run inference directly in the terminal: llama cli -hf LuckyOda/comfyui-carbonara-bundle
Install from WinGet (Windows)
winget install llama.cpp # Start a local OpenAI-compatible server with a web UI: llama serve -hf LuckyOda/comfyui-carbonara-bundle # Run inference directly in the terminal: llama cli -hf LuckyOda/comfyui-carbonara-bundle
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 LuckyOda/comfyui-carbonara-bundle # Run inference directly in the terminal: ./llama-cli -hf LuckyOda/comfyui-carbonara-bundle
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 LuckyOda/comfyui-carbonara-bundle # Run inference directly in the terminal: ./build/bin/llama-cli -hf LuckyOda/comfyui-carbonara-bundle
Use Docker
docker model run hf.co/LuckyOda/comfyui-carbonara-bundle
- LM Studio
- Jan
- Ollama
How to use LuckyOda/comfyui-carbonara-bundle with Ollama:
ollama run hf.co/LuckyOda/comfyui-carbonara-bundle
- Unsloth Studio
How to use LuckyOda/comfyui-carbonara-bundle 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 LuckyOda/comfyui-carbonara-bundle 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 LuckyOda/comfyui-carbonara-bundle to start chatting
Using HuggingFace Spaces for Unsloth
# No setup required # Open https://huggingface.co/spaces/unsloth/studio in your browser # Search for LuckyOda/comfyui-carbonara-bundle to start chatting
- Pi
How to use LuckyOda/comfyui-carbonara-bundle with Pi:
Start the llama.cpp server
# Install llama.cpp: brew install llama.cpp # Start a local OpenAI-compatible server: llama serve -hf LuckyOda/comfyui-carbonara-bundle
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": "LuckyOda/comfyui-carbonara-bundle" } ] } } }Run Pi
# Start Pi in your project directory: pi
- Hermes Agent new
How to use LuckyOda/comfyui-carbonara-bundle with Hermes Agent:
Start the llama.cpp server
# Install llama.cpp: brew install llama.cpp # Start a local OpenAI-compatible server: llama serve -hf LuckyOda/comfyui-carbonara-bundle
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 LuckyOda/comfyui-carbonara-bundle
Run Hermes
hermes
- Atomic Chat new
- OpenClaw new
How to use LuckyOda/comfyui-carbonara-bundle with OpenClaw:
Start the llama.cpp server
# Install llama.cpp: brew install llama.cpp # Start a local OpenAI-compatible server: llama serve -hf LuckyOda/comfyui-carbonara-bundle
Configure OpenClaw
# Install OpenClaw: npm install -g openclaw@latest # Register the local server and set it as the default model: openclaw onboard --non-interactive --mode local \ --auth-choice custom-api-key \ --custom-base-url http://127.0.0.1:8080/v1 \ --custom-model-id "LuckyOda/comfyui-carbonara-bundle" \ --custom-provider-id llama-cpp \ --custom-compatibility openai \ --custom-text-input \ --accept-risk \ --skip-health
Run OpenClaw
openclaw agent --local --agent main --message "Hello from Hugging Face"
- Docker Model Runner
How to use LuckyOda/comfyui-carbonara-bundle with Docker Model Runner:
docker model run hf.co/LuckyOda/comfyui-carbonara-bundle
- Lemonade
How to use LuckyOda/comfyui-carbonara-bundle with Lemonade:
Pull the model
# Download Lemonade from https://lemonade-server.ai/ lemonade pull LuckyOda/comfyui-carbonara-bundle
Run and chat with the model
lemonade run user.comfyui-carbonara-bundle-{{QUANT_TAG}}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 | |