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_extensions import override | |
| from comfy_api.latest import IO, ComfyExtension, Input | |
| from comfy_api_nodes.apis.wavespeed import ( | |
| FlashVSRRequest, | |
| TaskCreatedResponse, | |
| TaskResultResponse, | |
| SeedVR2ImageRequest, | |
| ) | |
| from comfy_api_nodes.util import ( | |
| ApiEndpoint, | |
| download_url_to_video_output, | |
| poll_op, | |
| sync_op, | |
| upload_video_to_comfyapi, | |
| validate_container_format_is_mp4, | |
| validate_video_duration, | |
| upload_images_to_comfyapi, | |
| get_number_of_images, | |
| download_url_to_image_tensor, | |
| ) | |
| class WavespeedFlashVSRNode(IO.ComfyNode): | |
| def define_schema(cls): | |
| return IO.Schema( | |
| node_id="WavespeedFlashVSRNode", | |
| display_name="FlashVSR Video Upscale", | |
| category="partner/video/WaveSpeed", | |
| description="Fast, high-quality video upscaler that " | |
| "boosts resolution and restores clarity for low-resolution or blurry footage.", | |
| inputs=[ | |
| IO.Video.Input("video"), | |
| IO.Combo.Input("target_resolution", options=["720p", "1080p", "2K", "4K"]), | |
| ], | |
| outputs=[ | |
| IO.Video.Output(), | |
| ], | |
| hidden=[ | |
| IO.Hidden.auth_token_comfy_org, | |
| IO.Hidden.api_key_comfy_org, | |
| IO.Hidden.unique_id, | |
| ], | |
| is_api_node=True, | |
| price_badge=IO.PriceBadge( | |
| depends_on=IO.PriceBadgeDepends(widgets=["target_resolution"]), | |
| expr=""" | |
| ( | |
| $price_for_1sec := {"720p": 0.012, "1080p": 0.018, "2k": 0.024, "4k": 0.032}; | |
| { | |
| "type":"usd", | |
| "usd": $lookup($price_for_1sec, widgets.target_resolution), | |
| "format":{"suffix": "/second", "approximate": true} | |
| } | |
| ) | |
| """, | |
| ), | |
| ) | |
| async def execute( | |
| cls, | |
| video: Input.Video, | |
| target_resolution: str, | |
| ) -> IO.NodeOutput: | |
| validate_container_format_is_mp4(video) | |
| validate_video_duration(video, min_duration=5, max_duration=60 * 10) | |
| initial_res = await sync_op( | |
| cls, | |
| ApiEndpoint(path="/proxy/wavespeed/api/v3/wavespeed-ai/flashvsr", method="POST"), | |
| response_model=TaskCreatedResponse, | |
| data=FlashVSRRequest( | |
| target_resolution=target_resolution.lower(), | |
| video=await upload_video_to_comfyapi(cls, video), | |
| duration=video.get_duration(), | |
| ), | |
| ) | |
| if initial_res.code != 200: | |
| raise ValueError(f"Task creation fails with code={initial_res.code} and message={initial_res.message}") | |
| final_response = await poll_op( | |
| cls, | |
| ApiEndpoint(path=f"/proxy/wavespeed/api/v3/predictions/{initial_res.data.id}/result"), | |
| response_model=TaskResultResponse, | |
| status_extractor=lambda x: "failed" if x.data is None else x.data.status, | |
| poll_interval=10.0, | |
| ) | |
| if final_response.code != 200: | |
| raise ValueError( | |
| f"Task processing failed with code={final_response.code} and message={final_response.message}" | |
| ) | |
| return IO.NodeOutput(await download_url_to_video_output(final_response.data.outputs[0])) | |
| class WavespeedImageUpscaleNode(IO.ComfyNode): | |
| def define_schema(cls): | |
| return IO.Schema( | |
| node_id="WavespeedImageUpscaleNode", | |
| display_name="WaveSpeed Image Upscale", | |
| category="partner/image/WaveSpeed", | |
| description="Boost image resolution and quality, upscaling photos to 4K or 8K for sharp, detailed results.", | |
| inputs=[ | |
| IO.Combo.Input("model", options=["SeedVR2", "Ultimate"]), | |
| IO.Image.Input("image"), | |
| IO.Combo.Input("target_resolution", options=["2K", "4K", "8K"]), | |
| ], | |
| outputs=[ | |
| IO.Image.Output(), | |
| ], | |
| hidden=[ | |
| IO.Hidden.auth_token_comfy_org, | |
| IO.Hidden.api_key_comfy_org, | |
| IO.Hidden.unique_id, | |
| ], | |
| is_api_node=True, | |
| price_badge=IO.PriceBadge( | |
| depends_on=IO.PriceBadgeDepends(widgets=["model"]), | |
| expr=""" | |
| ( | |
| $prices := {"seedvr2": 0.01, "ultimate": 0.06}; | |
| {"type":"usd", "usd": $lookup($prices, widgets.model)} | |
| ) | |
| """, | |
| ), | |
| ) | |
| async def execute( | |
| cls, | |
| model: str, | |
| image: Input.Image, | |
| target_resolution: str, | |
| ) -> IO.NodeOutput: | |
| if get_number_of_images(image) != 1: | |
| raise ValueError("Exactly one input image is required.") | |
| if model == "SeedVR2": | |
| model_path = "seedvr2/image" | |
| else: | |
| model_path = "ultimate-image-upscaler" | |
| initial_res = await sync_op( | |
| cls, | |
| ApiEndpoint(path=f"/proxy/wavespeed/api/v3/wavespeed-ai/{model_path}", method="POST"), | |
| response_model=TaskCreatedResponse, | |
| data=SeedVR2ImageRequest( | |
| target_resolution=target_resolution.lower(), | |
| image=(await upload_images_to_comfyapi(cls, image, max_images=1))[0], | |
| ), | |
| ) | |
| if initial_res.code != 200: | |
| raise ValueError(f"Task creation fails with code={initial_res.code} and message={initial_res.message}") | |
| final_response = await poll_op( | |
| cls, | |
| ApiEndpoint(path=f"/proxy/wavespeed/api/v3/predictions/{initial_res.data.id}/result"), | |
| response_model=TaskResultResponse, | |
| status_extractor=lambda x: "failed" if x.data is None else x.data.status, | |
| poll_interval=10.0, | |
| ) | |
| if final_response.code != 200: | |
| raise ValueError( | |
| f"Task processing failed with code={final_response.code} and message={final_response.message}" | |
| ) | |
| return IO.NodeOutput(await download_url_to_image_tensor(final_response.data.outputs[0])) | |
| class WavespeedExtension(ComfyExtension): | |
| async def get_node_list(self) -> list[type[IO.ComfyNode]]: | |
| return [ | |
| WavespeedFlashVSRNode, | |
| WavespeedImageUpscaleNode, | |
| ] | |
| async def comfy_entrypoint() -> WavespeedExtension: | |
| return WavespeedExtension() | |