Downloads · 30 days
34
13% of all-time downloads
build-small-hackathon/paint-match-minicpm
paint-match-minicpm is a image-text-to-text model from build-small-hackathon. Use it for the image-text-to-text task on the model card, and read the license before you ship it in a product. The card lists the license as apache-2.0.
MiniCPM-V-4.6 (1B) finetuned to extract paint codes from scale model instruction sheets and shop screenshots. Runs via llama.cpp on CPU — no GPU required.
Downloads · 30 days
34
13% of all-time downloads
All-time downloads
267
Public
Parameters
1.3B
3.3 GB on disk
Likes
0
Public
Click a slice to open those files.
.safetensors2.6 GB · 80%
From the Hugging Face model README
MiniCPM-V-4.6 (1B) finetuned to extract paint codes from scale model instruction sheets and shop screenshots. Runs via llama.cpp on CPU — no GPU required.
Part of the Paint Match project for the Hugging Face "Build Small" hackathon.
Given a photo of a scale model instruction sheet or a hobby shop screenshot, the model returns a structured JSON list of paint codes (Humbrol, Tamiya, Meng, etc.). Used as the inference core of a fully local paint-matching tool running on a Radxa Dragon Q6A ARM board.
| Metric | Score |
|---|---|
| F1 — benchmark (10 images) | 0.935 |
| F1 — shop holdout (53 images) | 0.927 |
| F1 — paper holdout (7 images) | 0.928 |
| Avg latency (Radxa CPU) | ~64s |
Base model comparison (InternVL3.5-2B): F1=0.873, ~190s latency.
| File | Description |
|---|---|
model.safetensors | Merged model weights (LoRA baked in) |
config.json + tokenizer files | Model config and tokenizer |
minicpm-ft-Q6_K.gguf | Quantized GGUF for llama.cpp inference |
llama-cli \
-m minicpm-ft-Q6_K.gguf \
--mmproj mmproj-model-f16.gguf \
--image instruction_sheet.jpg \
-p "Extract all paint codes from this image as JSON."
from transformers import AutoModel, AutoTokenizer
from PIL import Image
model = AutoModel.from_pretrained(
"build-small-hackathon/paint-match-minicpm",
trust_remote_code=True,
)
tokenizer = AutoTokenizer.from_pretrained(
"build-small-hackathon/paint-match-minicpm",
trust_remote_code=True,
)
image = Image.open("instruction_sheet.jpg").convert("RGB")
msgs = [{"role": "user", "content": [image, "Extract all paint codes from this image as JSON."]}]
result = model.chat(image=None, msgs=msgs, tokenizer=tokenizer)
print(result)