Instructions to use hipinis/20260718 with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Notebooks
- Google Colab
- Kaggle
- Local Apps Settings
- llama.cpp
How to use hipinis/20260718 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 hipinis/20260718:Q8_0 # Run inference directly in the terminal: llama cli -hf hipinis/20260718:Q8_0
Install from WinGet (Windows)
winget install llama.cpp # Start a local OpenAI-compatible server with a web UI: llama serve -hf hipinis/20260718:Q8_0 # Run inference directly in the terminal: llama cli -hf hipinis/20260718:Q8_0
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 hipinis/20260718:Q8_0 # Run inference directly in the terminal: ./llama-cli -hf hipinis/20260718:Q8_0
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 hipinis/20260718:Q8_0 # Run inference directly in the terminal: ./build/bin/llama-cli -hf hipinis/20260718:Q8_0
Use Docker
docker model run hf.co/hipinis/20260718:Q8_0
- LM Studio
- Jan
- Ollama
How to use hipinis/20260718 with Ollama:
ollama run hf.co/hipinis/20260718:Q8_0
- Unsloth Desktop
- Pi
How to use hipinis/20260718 with Pi:
Start the llama.cpp server
# Install llama.cpp: brew install llama.cpp # Start a local OpenAI-compatible server: llama serve -hf hipinis/20260718:Q8_0
Configure the model in Pi
# Install Pi: npm install -g @earendil-works/pi-coding-agent # Add to ~/.pi/agent/models.json: { "providers": { "llama-cpp": { "baseUrl": "http://localhost:8080/v1", "api": "openai-completions", "apiKey": "none", "models": [ { "id": "hipinis/20260718:Q8_0" } ] } } }Run Pi
# Start Pi in your project directory: pi
- Docker Model Runner
How to use hipinis/20260718 with Docker Model Runner:
docker model run hf.co/hipinis/20260718:Q8_0
- Lemonade
How to use hipinis/20260718 with Lemonade:
Pull the model
# Download Lemonade from https://lemonade-server.ai/ lemonade pull hipinis/20260718:Q8_0
Run and chat with the model
lemonade run user.20260718-Q8_0
List all available models
lemonade list
- Hermes Agent
How to use hipinis/20260718 with Hermes Agent:
Start the llama.cpp server
# Install llama.cpp: brew install llama.cpp # Start a local OpenAI-compatible server: llama serve -hf hipinis/20260718:Q8_0
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 hipinis/20260718:Q8_0
Run Hermes
hermes
- Atomic Chat
- OpenClaw
How to use hipinis/20260718 with OpenClaw:
Start the llama.cpp server
# Install llama.cpp: brew install llama.cpp # Start a local OpenAI-compatible server: llama serve -hf hipinis/20260718:Q8_0
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 "hipinis/20260718:Q8_0" \ --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"
Download custom_nodes/ComfyUI-PromptRelay/parser.py from hipinis/20260718: direct link, hf CLI and curl.
- Browser
- Download file 5.97 kB
-
https://huggingface.co/hipinis/20260718/resolve/main/custom_nodes/ComfyUI-PromptRelay/parser.py
- Command line
-
hf download hf://hipinis/20260718/custom_nodes/ComfyUI-PromptRelay/parser.py
-
curl -L -o parser.py https://huggingface.co/hipinis/20260718/resolve/main/custom_nodes/ComfyUI-PromptRelay/parser.py
5.97 kB
| import re | |
| _INLINE_TAG_RE = re.compile(r"\[([\d\.]+)(?:[:\-]([\d\.]+))?\]") | |
| _DIGIT_RANGE_TAIL_RE = re.compile(r"([\d]+(?:\.\d+)?)\s*[-\u2013]\s*([\d]+(?:\.\d+)?)\s*$") | |
| def _try_parse_num(s): | |
| """Parse s as integer. Tries digit conversion first, then word2number if available.""" | |
| s = s.strip() | |
| try: | |
| return int(float(s)) | |
| except (ValueError, TypeError): | |
| pass | |
| try: | |
| from word2number import w2n | |
| return int(w2n.word_to_num(s)) | |
| except Exception: | |
| pass | |
| return None | |
| def _parse_header(line): | |
| """Return (start, end_or_None) if line is a block segment header, else None. | |
| Valid format: one or more prefix words, followed by a number (digit or word form), | |
| optional range, then colon at end of line. Matching is case-insensitive. | |
| Examples: | |
| 'Scene 1:' -> (1, None) | |
| 'My Scene 3:' -> (3, None) | |
| 'Shot 2-4:' -> (2, 4) | |
| 'Part eleven:' -> (11, None) [requires word2number] | |
| 'segment twenty:' -> (20, None) [requires word2number] | |
| """ | |
| line = line.strip() | |
| if not line.endswith(':'): | |
| return None | |
| body = line[:-1].rstrip() | |
| tokens = body.split() | |
| # Need at least 2 tokens: at least one prefix word + one number token | |
| if len(tokens) < 2: | |
| return None | |
| # Try digit range at end: "Scene 2-4:" | |
| m = _DIGIT_RANGE_TAIL_RE.search(body) | |
| if m and body[:m.start()].strip(): | |
| start = _try_parse_num(m.group(1)) | |
| end = _try_parse_num(m.group(2)) | |
| if start is not None and end is not None: | |
| return (start, end) | |
| # Try 1..N tail tokens as word-or-digit number (longest candidate first) | |
| # Keep at least one prefix token so bare "1:" is not matched as a header | |
| max_num_tokens = min(4, len(tokens) - 1) | |
| for n in range(max_num_tokens, 0, -1): | |
| candidate = " ".join(tokens[-n:]) | |
| val = _try_parse_num(candidate) | |
| if val is not None: | |
| return (val, None) | |
| return None | |
| def _extract_inline_tag(text): | |
| """Extract first [n] or [n-m] weight tag from text. | |
| Returns (clean_text, weight_or_None). Tag is stripped from text. | |
| """ | |
| m = _INLINE_TAG_RE.search(text) | |
| if not m: | |
| return text.strip(), None | |
| val1 = float(m.group(1)) | |
| val2 = float(m.group(2)) if m.group(2) else None | |
| weight = (val2 - val1) if val2 is not None else val1 | |
| clean = _INLINE_TAG_RE.sub("", text).strip() | |
| return clean, weight | |
| def _parse_inline_syntax(text): | |
| """Parse pipe-separated inline syntax with optional [n-m] weight tags. | |
| Syntax examples: | |
| 'one | two | three' -> equal weights | |
| 'one [0-50] | two [50-150] | three [150]' -> proportional weights | |
| """ | |
| segments = [] | |
| for part in text.split('|'): | |
| clean, weight = _extract_inline_tag(part) | |
| if clean: | |
| segments.append({"text": clean, "weight": weight if weight is not None else 1.0}) | |
| return segments | |
| def _parse_block_syntax(text): | |
| """Parse block header syntax where each segment is preceded by a header line. | |
| Header format: any words followed by a number (or word-number) and a colon | |
| on its own line. Optional [n-m] inline tag in body overrides header weight. | |
| Syntax examples: | |
| 'Scene 1:\\ntext\\nScene 2:\\ntext' | |
| 'My Part 3-6:\\ntext' -> weight = 6-3 = 3 | |
| 'segment eleven:\\ntext' -> weight = 1.0 (single number = sequence marker) | |
| """ | |
| lines = text.splitlines(keepends=True) | |
| raw_segments = [] | |
| current_header = None | |
| current_body = [] | |
| for line in lines: | |
| h = _parse_header(line) | |
| if h is not None: | |
| if current_body or current_header is not None: | |
| raw_segments.append((current_header, "".join(current_body))) | |
| current_header = h | |
| current_body = [] | |
| else: | |
| current_body.append(line) | |
| if current_body or current_header is not None: | |
| raw_segments.append((current_header, "".join(current_body))) | |
| segments = [] | |
| for header, body in raw_segments: | |
| clean, inline_weight = _extract_inline_tag(body) | |
| if not clean: | |
| continue | |
| if inline_weight is not None: | |
| weight = inline_weight | |
| elif header is not None: | |
| start, end = header | |
| # Range header: weight is proportional span. Single number: equal weight. | |
| weight = (end - start) if end is not None else 1.0 | |
| else: | |
| weight = 1.0 | |
| segments.append({"text": clean, "weight": weight}) | |
| return segments | |
| def parse_smart_prompt(text): | |
| """Parse smart_prompt text into a list of {"text": str, "weight": float} dicts. | |
| Detects syntax automatically: | |
| --- Inline (newline-agnostic) --- | |
| Segments separated by | with optional [n-m] proportional weight tags. | |
| 'man walks | man runs | man jumps' | |
| 'man walks [0-50] | man runs [50-150] | man jumps [150-200]' | |
| --- Block (newline-specific) --- | |
| Segments preceded by a header line: any words + number + colon on its own line. | |
| The number (or range) is stripped and used only for weight. Ordinal numbers | |
| like 'Scene 1:' are sequence markers (equal weight). Ranges like 'Scene 1-3:' | |
| assign proportional weight (3-1=2). Word-form numbers require word2number package. | |
| 'Scene 1:\\nman walks\\nScene 2:\\nman runs' | |
| 'My Shot 1-3:\\nman walks\\nMy Shot 3-7:\\nman runs' | |
| 'segment eleven:\\nman walks' (requires: pip install word2number) | |
| All syntax markers are fully stripped before text is returned. | |
| """ | |
| lines = text.splitlines() | |
| has_blocks = any(_parse_header(line) is not None for line in lines) | |
| if has_blocks: | |
| return _parse_block_syntax(text) | |
| return _parse_inline_syntax(text) | |