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
-
GGUF
Model size
0.8B params
Architecture
qwen35
Hardware compatibility
Log In to add your hardware

8-bit

Inference Providers NEW
This model isn't deployed by any Inference Provider. ๐Ÿ™‹ Ask for provider support

Model tree for Ray1239/clipwright-0.8b

Adapter
(688)
this model