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
| ### 🗻 This file is created through the spirit of Mount Fuji at its peak | |
| # TODO(yoland): clean up this after I get back down | |
| import sys | |
| import pytest | |
| import os | |
| import tempfile | |
| from unittest.mock import patch | |
| from importlib import reload | |
| import folder_paths | |
| import comfy.cli_args | |
| from comfy.options import enable_args_parsing | |
| enable_args_parsing() | |
| def clear_folder_paths(): | |
| # Reload the module after each test to ensure isolation | |
| yield | |
| reload(folder_paths) | |
| def temp_dir(): | |
| with tempfile.TemporaryDirectory() as tmpdirname: | |
| yield tmpdirname | |
| def set_base_dir(): | |
| def _set_base_dir(base_dir): | |
| # Mock CLI args | |
| with patch.object(sys, 'argv', ["main.py", "--base-directory", base_dir]): | |
| reload(comfy.cli_args) | |
| reload(folder_paths) | |
| yield _set_base_dir | |
| # Reload the modules after each test to ensure isolation | |
| with patch.object(sys, 'argv', ["main.py"]): | |
| reload(comfy.cli_args) | |
| reload(folder_paths) | |
| def test_get_directory_by_type(clear_folder_paths): | |
| test_dir = "/test/dir" | |
| folder_paths.set_output_directory(test_dir) | |
| assert folder_paths.get_directory_by_type("output") == test_dir | |
| assert folder_paths.get_directory_by_type("invalid") is None | |
| def test_annotated_filepath(): | |
| assert folder_paths.annotated_filepath("test.txt") == ("test.txt", None) | |
| assert folder_paths.annotated_filepath("test.txt [output]") == ("test.txt", folder_paths.get_output_directory()) | |
| assert folder_paths.annotated_filepath("test.txt [input]") == ("test.txt", folder_paths.get_input_directory()) | |
| assert folder_paths.annotated_filepath("test.txt [temp]") == ("test.txt", folder_paths.get_temp_directory()) | |
| def test_get_annotated_filepath(): | |
| default_dir = "/default/dir" | |
| assert folder_paths.get_annotated_filepath("test.txt", default_dir) == os.path.join(default_dir, "test.txt") | |
| assert folder_paths.get_annotated_filepath("test.txt [output]") == os.path.join(folder_paths.get_output_directory(), "test.txt") | |
| def test_add_model_folder_path_append(clear_folder_paths): | |
| folder_paths.add_model_folder_path("test_folder", "/default/path", is_default=True) | |
| folder_paths.add_model_folder_path("test_folder", "/test/path", is_default=False) | |
| assert folder_paths.get_folder_paths("test_folder") == ["/default/path", "/test/path"] | |
| def test_add_model_folder_path_insert(clear_folder_paths): | |
| folder_paths.add_model_folder_path("test_folder", "/test/path", is_default=False) | |
| folder_paths.add_model_folder_path("test_folder", "/default/path", is_default=True) | |
| assert folder_paths.get_folder_paths("test_folder") == ["/default/path", "/test/path"] | |
| def test_add_model_folder_path_re_add_existing_default(clear_folder_paths): | |
| folder_paths.add_model_folder_path("test_folder", "/test/path", is_default=False) | |
| folder_paths.add_model_folder_path("test_folder", "/old_default/path", is_default=True) | |
| assert folder_paths.get_folder_paths("test_folder") == ["/old_default/path", "/test/path"] | |
| folder_paths.add_model_folder_path("test_folder", "/test/path", is_default=True) | |
| assert folder_paths.get_folder_paths("test_folder") == ["/test/path", "/old_default/path"] | |
| def test_add_model_folder_path_re_add_existing_non_default(clear_folder_paths): | |
| folder_paths.add_model_folder_path("test_folder", "/test/path", is_default=False) | |
| folder_paths.add_model_folder_path("test_folder", "/default/path", is_default=True) | |
| assert folder_paths.get_folder_paths("test_folder") == ["/default/path", "/test/path"] | |
| folder_paths.add_model_folder_path("test_folder", "/test/path", is_default=False) | |
| assert folder_paths.get_folder_paths("test_folder") == ["/default/path", "/test/path"] | |
| def test_recursive_search(temp_dir): | |
| os.makedirs(os.path.join(temp_dir, "subdir")) | |
| open(os.path.join(temp_dir, "file1.txt"), "w").close() | |
| open(os.path.join(temp_dir, "subdir", "file2.txt"), "w").close() | |
| files, dirs = folder_paths.recursive_search(temp_dir) | |
| assert set(files) == {"file1.txt", os.path.join("subdir", "file2.txt")} | |
| assert len(dirs) == 2 # temp_dir and subdir | |
| def test_filter_files_extensions(): | |
| files = ["file1.txt", "file2.jpg", "file3.png", "file4.txt"] | |
| assert folder_paths.filter_files_extensions(files, [".txt"]) == ["file1.txt", "file4.txt"] | |
| assert folder_paths.filter_files_extensions(files, [".jpg", ".png"]) == ["file2.jpg", "file3.png"] | |
| assert folder_paths.filter_files_extensions(files, []) == files | |
| def test_get_filename_list(mock_folder_names_and_paths, mock_recursive_search): | |
| mock_folder_names_and_paths.__getitem__.return_value = (["/test/path"], {".txt"}) | |
| mock_recursive_search.return_value = (["file1.txt", "file2.jpg"], {}) | |
| assert folder_paths.get_filename_list("test_folder") == ["file1.txt"] | |
| def test_get_save_image_path(temp_dir): | |
| with patch("folder_paths.output_directory", temp_dir): | |
| full_output_folder, filename, counter, subfolder, filename_prefix = folder_paths.get_save_image_path("test", temp_dir, 100, 100) | |
| assert os.path.samefile(full_output_folder, temp_dir) | |
| assert filename == "test" | |
| assert counter == 1 | |
| assert subfolder == "" | |
| assert filename_prefix == "test" | |
| def test_base_path_changes(set_base_dir): | |
| test_dir = os.path.abspath("/test/dir") | |
| set_base_dir(test_dir) | |
| assert folder_paths.base_path == test_dir | |
| assert folder_paths.models_dir == os.path.join(test_dir, "models") | |
| assert folder_paths.input_directory == os.path.join(test_dir, "input") | |
| assert folder_paths.output_directory == os.path.join(test_dir, "output") | |
| assert folder_paths.temp_directory == os.path.join(test_dir, "temp") | |
| assert folder_paths.user_directory == os.path.join(test_dir, "user") | |
| assert os.path.join(test_dir, "custom_nodes") in folder_paths.get_folder_paths("custom_nodes") | |
| for name in ["checkpoints", "loras", "vae", "configs", "embeddings", "controlnet", "classifiers"]: | |
| assert folder_paths.get_folder_paths(name)[0] == os.path.join(test_dir, "models", name) | |
| def test_base_path_change_clears_old(set_base_dir): | |
| test_dir = os.path.abspath("/test/dir") | |
| set_base_dir(test_dir) | |
| assert len(folder_paths.get_folder_paths("custom_nodes")) == 1 | |
| single_model_paths = [ | |
| "checkpoints", | |
| "loras", | |
| "vae", | |
| "configs", | |
| "clip_vision", | |
| "style_models", | |
| "diffusers", | |
| "vae_approx", | |
| "gligen", | |
| "upscale_models", | |
| "embeddings", | |
| "hypernetworks", | |
| "photomaker", | |
| "classifiers", | |
| ] | |
| for name in single_model_paths: | |
| assert len(folder_paths.get_folder_paths(name)) == 1 | |
| for name in ["controlnet", "diffusion_models", "text_encoders"]: | |
| assert len(folder_paths.get_folder_paths(name)) == 2 | |