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
| import { app } from "../../../scripts/app.js"; | |
| import { $el } from "../../../scripts/ui.js"; | |
| let guide_config; | |
| const id = "pysssss.SnapToGrid.Guide"; | |
| const guide_config_default = { | |
| lines: { | |
| enabled: false, | |
| fillStyle: "rgba(255, 0, 0, 0.5)", | |
| }, | |
| block: { | |
| enabled: false, | |
| fillStyle: "rgba(0, 0, 255, 0.5)", | |
| }, | |
| } | |
| const ext = { | |
| name: id, | |
| init() { | |
| if (localStorage.getItem(id) === null) { | |
| localStorage.setItem(id, JSON.stringify(guide_config_default)); | |
| } | |
| guide_config = JSON.parse(localStorage.getItem(id)); | |
| app.ui.settings.addSetting({ | |
| id, | |
| name: "🐍 Display drag-and-drop guides", | |
| type: (name, setter, value) => { | |
| return $el("tr", [ | |
| $el("td", [ | |
| $el("label", { | |
| for: id.replaceAll(".", "-"), | |
| textContent: name, | |
| }), | |
| ]), | |
| $el("td", [ | |
| $el( | |
| "label", | |
| { | |
| textContent: "Lines: ", | |
| style: { | |
| display: "inline-block", | |
| }, | |
| }, | |
| [ | |
| $el("input", { | |
| id: id.replaceAll(".", "-") + "-line-text", | |
| type: "text", | |
| value: guide_config.lines.fillStyle, | |
| onchange: (event) => { | |
| guide_config.lines.fillStyle = event.target.value; | |
| localStorage.setItem(id, JSON.stringify(guide_config)); | |
| } | |
| }), | |
| $el("input", { | |
| id: id.replaceAll(".", "-") + "-line-checkbox", | |
| type: "checkbox", | |
| checked: guide_config.lines.enabled, | |
| onchange: (event) => { | |
| guide_config.lines.enabled = !!event.target.checked; | |
| localStorage.setItem(id, JSON.stringify(guide_config)); | |
| }, | |
| }), | |
| ] | |
| ), | |
| $el( | |
| "label", | |
| { | |
| textContent: "Block: ", | |
| style: { | |
| display: "inline-block", | |
| }, | |
| }, | |
| [ | |
| $el("input", { | |
| id: id.replaceAll(".", "-") + "-block-text", | |
| type: "text", | |
| value: guide_config.block.fillStyle, | |
| onchange: (event) => { | |
| guide_config.block.fillStyle = event.target.value; | |
| localStorage.setItem(id, JSON.stringify(guide_config)); | |
| } | |
| }), | |
| $el("input", { | |
| id: id.replaceAll(".", "-") + '-block-checkbox', | |
| type: "checkbox", | |
| checked: guide_config.block.enabled, | |
| onchange: (event) => { | |
| guide_config.block.enabled = !!event.target.checked; | |
| localStorage.setItem(id, JSON.stringify(guide_config)); | |
| }, | |
| }), | |
| ] | |
| ), | |
| ]), | |
| ]); | |
| } | |
| }); | |
| const alwaysSnapToGrid = () => | |
| app.ui.settings.getSettingValue("pysssss.SnapToGrid", /* default=*/ false); | |
| const snapToGridEnabled = () => | |
| app.shiftDown || alwaysSnapToGrid(); | |
| // Override drag-and-drop behavior to show orthogonal guide lines around selected node(s) and preview of where the node(s) will be placed | |
| const origDrawNode = LGraphCanvas.prototype.drawNode; | |
| LGraphCanvas.prototype.drawNode = function (node, ctx) { | |
| const enabled = guide_config.lines.enabled || guide_config.block.enabled; | |
| if (enabled && this.node_dragged && node.id in this.selected_nodes && snapToGridEnabled()) { | |
| // discretize the canvas into grid | |
| let x = LiteGraph.CANVAS_GRID_SIZE * Math.round(node.pos[0] / LiteGraph.CANVAS_GRID_SIZE); | |
| let y = LiteGraph.CANVAS_GRID_SIZE * Math.round(node.pos[1] / LiteGraph.CANVAS_GRID_SIZE); | |
| // calculate the width and height of the node | |
| // (also need to shift the y position of the node, depending on whether the title is visible) | |
| x -= node.pos[0]; | |
| y -= node.pos[1]; | |
| let w, h; | |
| if (node.flags.collapsed) { | |
| w = node._collapsed_width; | |
| h = LiteGraph.NODE_TITLE_HEIGHT; | |
| y -= LiteGraph.NODE_TITLE_HEIGHT; | |
| } else { | |
| w = node.size[0]; | |
| h = node.size[1]; | |
| let titleMode = node.constructor.title_mode; | |
| if (titleMode !== LiteGraph.TRANSPARENT_TITLE && titleMode !== LiteGraph.NO_TITLE) { | |
| h += LiteGraph.NODE_TITLE_HEIGHT; | |
| y -= LiteGraph.NODE_TITLE_HEIGHT; | |
| } | |
| } | |
| // save the original fill style | |
| const f = ctx.fillStyle; | |
| // draw preview for drag-and-drop (rectangle to show where the node will be placed) | |
| if (guide_config.block.enabled) { | |
| ctx.fillStyle = guide_config.block.fillStyle; | |
| ctx.fillRect(x, y, w, h); | |
| } | |
| // add guide lines around node (arbitrarily long enough to span most workflows) | |
| if (guide_config.lines.enabled) { | |
| const xd = 10000; | |
| const yd = 10000; | |
| const thickness = 3; | |
| ctx.fillStyle = guide_config.lines.fillStyle; | |
| ctx.fillRect(x - xd, y, 2*xd, thickness); | |
| ctx.fillRect(x, y - yd, thickness, 2*yd); | |
| ctx.fillRect(x - xd, y + h, 2*xd, thickness); | |
| ctx.fillRect(x + w, y - yd, thickness, 2*yd); | |
| } | |
| // restore the original fill style | |
| ctx.fillStyle = f; | |
| } | |
| return origDrawNode.apply(this, arguments); | |
| }; | |
| }, | |
| }; | |
| app.registerExtension(ext); | |