Instructions to use Ray1239/clipwright-0.8b with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- PEFT
How to use Ray1239/clipwright-0.8b with PEFT:
from peft import PeftModel from transformers import AutoModelForCausalLM base_model = AutoModelForCausalLM.from_pretrained("Qwen/Qwen3.5-0.8B") model = PeftModel.from_pretrained(base_model, "Ray1239/clipwright-0.8b") - Notebooks
- Google Colab
- Kaggle
- Local Apps Settings
- llama.cpp
How to use Ray1239/clipwright-0.8b 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 Ray1239/clipwright-0.8b:Q8_0 # Run inference directly in the terminal: llama cli -hf Ray1239/clipwright-0.8b:Q8_0
Install from WinGet (Windows)
winget install llama.cpp # Start a local OpenAI-compatible server with a web UI: llama serve -hf Ray1239/clipwright-0.8b:Q8_0 # Run inference directly in the terminal: llama cli -hf Ray1239/clipwright-0.8b:Q8_0
Build from source code
git clone https://github.com/ggml-org/llama.cpp.git cd llama.cpp cmake -B build cmake --build build -j --target llama-app # Start a local OpenAI-compatible server with a web UI: ./build/bin/llama serve -hf Ray1239/clipwright-0.8b:Q8_0 # Run inference directly in the terminal: ./build/bin/llama cli -hf Ray1239/clipwright-0.8b:Q8_0
Use Docker
docker model run hf.co/Ray1239/clipwright-0.8b:Q8_0
- Llama new
- LM Studio
- Jan
- vLLM
How to use Ray1239/clipwright-0.8b with vLLM:
Install from pip and serve model
# Install vLLM from pip: pip install vllm # Start the vLLM server: vllm serve "Ray1239/clipwright-0.8b" # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:8000/v1/chat/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "Ray1239/clipwright-0.8b", "messages": [ { "role": "user", "content": "What is the capital of France?" } ] }'Use Docker
docker model run hf.co/Ray1239/clipwright-0.8b:Q8_0
- Ollama
How to use Ray1239/clipwright-0.8b with Ollama:
ollama run hf.co/Ray1239/clipwright-0.8b:Q8_0
- Unsloth Desktop
- Pi
How to use Ray1239/clipwright-0.8b with Pi:
Start the llama.cpp server
# Install llama.cpp: brew install llama.cpp # Start a local OpenAI-compatible server: llama serve -hf Ray1239/clipwright-0.8b: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": "Ray1239/clipwright-0.8b:Q8_0" } ] } } }Run Pi
# Start Pi in your project directory: pi
- Docker Model Runner
How to use Ray1239/clipwright-0.8b with Docker Model Runner:
docker model run hf.co/Ray1239/clipwright-0.8b:Q8_0
- Lemonade
How to use Ray1239/clipwright-0.8b with Lemonade:
Pull the model
# Download Lemonade from https://lemonade-server.ai/ lemonade pull Ray1239/clipwright-0.8b:Q8_0
Run and chat with the model
lemonade run user.clipwright-0.8b-Q8_0
List all available models
lemonade list
- Hermes Agent
How to use Ray1239/clipwright-0.8b with Hermes Agent:
Start the llama.cpp server
# Install llama.cpp: brew install llama.cpp # Start a local OpenAI-compatible server: llama serve -hf Ray1239/clipwright-0.8b: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 Ray1239/clipwright-0.8b:Q8_0
Run Hermes
hermes
- Atomic Chat
- OpenClaw
How to use Ray1239/clipwright-0.8b with OpenClaw:
Start the llama.cpp server
# Install llama.cpp: brew install llama.cpp # Start a local OpenAI-compatible server: llama serve -hf Ray1239/clipwright-0.8b: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 "Ray1239/clipwright-0.8b: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"
Clipwright 0.8B (V2)
A 0.8B model that does media jobs end to end. It runs ffmpeg, ffprobe, ImageMagick, SoX and ExifTool through one
run(cmd, foreach) tool in a sandbox, reads the results, and replies with the output files.
LoRA (r32, alpha 64, all linear layers, 2.8% of weights) on Qwen3.5-0.8B. Trained on 8,728 examples: 7,154 single-step and 1,574 multi-step. Every example was executed on real files and its output was checked before it was kept. One epoch on a Colab L4 (2h12m).
Files
| File | Use |
|---|---|
clipwright-0.8b-Q8_0.gguf |
LoRA merged into the base, Q8_0 (834 MB). Run with llama.cpp. Matches the LoRA on a 40-task spot check. |
adapter_model.safetensors + configs |
The PEFT adapter, to load on Qwen/Qwen3.5-0.8B. |
system_prompt.txt |
The system prompt it was trained with. Use it as is. |
tool.json |
The run tool schema (OpenAI function format). |
Quick start (llama.cpp)
llama-server -hf Ray1239/clipwright-0.8b:Q8_0 --jinja -c 32768
Send the system prompt and the run tool. The user message should list the input files under Files:, the way it
looked in training:
make a 10 second preview gif of talk.mp4
Files:
- in/talk.mp4 โ video h264 1920x1080 30fps, audio aac stereo 48kHz, 132.1s, 11.8 MB
Then execute each run call yourself with inputs in in/ (read-only) and outputs written to out/. Return the
result as a tool message, as JSON with exit_code, plus stdout or error, and a short summary of the files in
out/. Loop until the model stops calling the tool. Run it in a sandbox: these are real shell commands.
Evaluation
Every score comes from executing the model's commands and checking the output files: duration, dimensions, codecs, loudness, size and metadata. Greedy decoding, one run per task. 95% Wilson intervals are in brackets.
| Model | Single-step (850) | ffmpeg-only (542) | Multi-step (100) | Hand-written (45) |
|---|---|---|---|---|
| Qwen3.5-0.8B base | 3%* | 2%* | 0% | 4% |
| V1: Qwen2.5-Coder-7B + public burak29 data (Ray1239/ffmpeg-model) | 46% [43โ50] | 54% | 14% [9โ22] | 69% [54โ80] |
| Control: Qwen3.5-0.8B + burak29 data, same recipe | 35% [32โ38] | 34% | 2% [1โ7] | 47% [33โ61] |
| This model | 91% [88โ92] | 87% | 46% [37โ56] | 67% [52โ79] |
* random 100 of the 850.
The control uses the same base and recipe; only the data differs. The jump from the control to this model is significant on single-step and multi-step (paired exact test, p < 1e-11).
Limitations
- The single-step and multi-step test sets are held-out rows from the same generators as the training data, which favours this model. On 45 hand-written requests that no model saw, it ties the 7B V1 (67% vs 69%), and it solves 0 of the 5 hand-written jobs that ask for several outputs.
- Rare requests are weak. Asked to speed up a video and raise the voice pitch, it kept the pitch unchanged, broke the frame rate, and reported success.
- Its self-check runs ffprobe but doesn't reliably compare the result with the request. Verify outputs yourself.
- Trained on ffmpeg 8 syntax.
- Downloads last month
- -
8-bit