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
- OpenClaw new
How to use saik0s/comfy_backup with OpenClaw:
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 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 "saik0s/comfy_backup:Q4_K_S" \ --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 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
| """A set of constants and utilities for handling contexts. | |
| Sets up the inputs and outputs for the Context going forward, with additional functions for | |
| creating and exporting context objects. | |
| """ | |
| import comfy.samplers | |
| import folder_paths | |
| _all_context_input_output_data = { | |
| "base_ctx": ("base_ctx", "RGTHREE_CONTEXT", "CONTEXT"), | |
| "model": ("model", "MODEL", "MODEL"), | |
| "clip": ("clip", "CLIP", "CLIP"), | |
| "vae": ("vae", "VAE", "VAE"), | |
| "positive": ("positive", "CONDITIONING", "POSITIVE"), | |
| "negative": ("negative", "CONDITIONING", "NEGATIVE"), | |
| "latent": ("latent", "LATENT", "LATENT"), | |
| "images": ("images", "IMAGE", "IMAGE"), | |
| "seed": ("seed", "INT", "SEED"), | |
| "steps": ("steps", "INT", "STEPS"), | |
| "step_refiner": ("step_refiner", "INT", "STEP_REFINER"), | |
| "cfg": ("cfg", "FLOAT", "CFG"), | |
| "ckpt_name": ("ckpt_name", folder_paths.get_filename_list("checkpoints"), "CKPT_NAME"), | |
| "sampler": ("sampler", comfy.samplers.KSampler.SAMPLERS, "SAMPLER"), | |
| "scheduler": ("scheduler", comfy.samplers.KSampler.SCHEDULERS, "SCHEDULER"), | |
| "clip_width": ("clip_width", "INT", "CLIP_WIDTH"), | |
| "clip_height": ("clip_height", "INT", "CLIP_HEIGHT"), | |
| "text_pos_g": ("text_pos_g", "STRING", "TEXT_POS_G"), | |
| "text_pos_l": ("text_pos_l", "STRING", "TEXT_POS_L"), | |
| "text_neg_g": ("text_neg_g", "STRING", "TEXT_NEG_G"), | |
| "text_neg_l": ("text_neg_l", "STRING", "TEXT_NEG_L"), | |
| "mask": ("mask", "MASK", "MASK"), | |
| "control_net": ("control_net", "CONTROL_NET", "CONTROL_NET"), | |
| } | |
| force_input_types = ["INT", "STRING", "FLOAT"] | |
| force_input_names = ["sampler", "scheduler", "ckpt_name"] | |
| def _create_context_data(input_list=None): | |
| """Returns a tuple of context inputs, return types, and return names to use in a node"s def""" | |
| if input_list is None: | |
| input_list = _all_context_input_output_data.keys() | |
| list_ctx_return_types = [] | |
| list_ctx_return_names = [] | |
| ctx_optional_inputs = {} | |
| for inp in input_list: | |
| data = _all_context_input_output_data[inp] | |
| list_ctx_return_types.append(data[1]) | |
| list_ctx_return_names.append(data[2]) | |
| ctx_optional_inputs[data[0]] = tuple([data[1]] + ([{ | |
| "forceInput": True | |
| }] if data[1] in force_input_types or data[0] in force_input_names else [])) | |
| ctx_return_types = tuple(list_ctx_return_types) | |
| ctx_return_names = tuple(list_ctx_return_names) | |
| return (ctx_optional_inputs, ctx_return_types, ctx_return_names) | |
| ALL_CTX_OPTIONAL_INPUTS, ALL_CTX_RETURN_TYPES, ALL_CTX_RETURN_NAMES = _create_context_data() | |
| _original_ctx_inputs_list = [ | |
| "base_ctx", "model", "clip", "vae", "positive", "negative", "latent", "images", "seed" | |
| ] | |
| ORIG_CTX_OPTIONAL_INPUTS, ORIG_CTX_RETURN_TYPES, ORIG_CTX_RETURN_NAMES = _create_context_data( | |
| _original_ctx_inputs_list) | |
| def new_context(base_ctx, **kwargs): | |
| """Creates a new context from the provided data, with an optional base ctx to start.""" | |
| context = base_ctx if base_ctx is not None else None | |
| new_ctx = {} | |
| for key in _all_context_input_output_data: | |
| if key == "base_ctx": | |
| continue | |
| v = kwargs[key] if key in kwargs else None | |
| new_ctx[key] = v if v is not None else context[ | |
| key] if context is not None and key in context else None | |
| return new_ctx | |
| def merge_new_context(*args): | |
| """Creates a new context by merging provided contexts with the latter overriding same fields.""" | |
| new_ctx = {} | |
| for key in _all_context_input_output_data: | |
| if key == "base_ctx": | |
| continue | |
| v = None | |
| # Move backwards through the passed contexts until we find a value and use it. | |
| for ctx in reversed(args): | |
| v = ctx[key] if not is_context_empty(ctx) and key in ctx else None | |
| if v is not None: | |
| break | |
| new_ctx[key] = v | |
| return new_ctx | |
| def get_context_return_tuple(ctx, inputs_list=None): | |
| """Returns a tuple for returning in the order of the inputs list.""" | |
| if inputs_list is None: | |
| inputs_list = _all_context_input_output_data.keys() | |
| tup_list = [ | |
| ctx, | |
| ] | |
| for key in inputs_list: | |
| if key == "base_ctx": | |
| continue | |
| tup_list.append(ctx[key] if ctx is not None and key in ctx else None) | |
| return tuple(tup_list) | |
| def get_orig_context_return_tuple(ctx): | |
| """Returns a tuple for returning from a node with only the original context keys.""" | |
| return get_context_return_tuple(ctx, _original_ctx_inputs_list) | |
| def is_context_empty(ctx): | |
| """Checks if the provided ctx is None or contains just None values.""" | |
| return not ctx or all(v is None for v in ctx.values()) | |