Downloads · 30 days
0
KIEFERSA/Sophea-Titan-1-mlx
Sophea-Titan-1-mlx is a image-text-to-text model from KIEFERSA. Use it for the image-text-to-text task on the model card, and read the license before you ship it in a product. It is set up for mlx. The card lists the license as apache-2.0.
MLX conversions of KIEFERSA/Sophea-Titan-1 — a Greek/English multimodal (vision + video) language model from the Qwen3.5-VL family (modeltype: qwen35, with a qwen35vision tower and qwen35text decoder). These builds ru…
Downloads · 30 days
0
Access
Public
Updated Jul 16, 2026
Repo size
98.6 GB
Likes
0
Public
Click a slice to open those files.
.safetensors98.6 GB · 100%
From the Hugging Face model README
MLX conversions of KIEFERSA/Sophea-Titan-1 — a Greek/English multimodal (vision + video) language model from the Qwen3.5-VL family (model_type: qwen3_5, with a qwen3_5_vision tower and qwen3_5_text decoder). These builds run natively on Apple Silicon via mlx-vlm.
Three floating-point formats are provided, each in its own subfolder:
<div style="overflow-x:auto"> <table style="width:100%;border-collapse:collapse;font-size:13px;font-variant-numeric:tabular-nums;font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,sans-serif"> <thead><tr> <th style="padding:10px 8px;text-align:left;font-weight:500;border-bottom:2px solid #0a8043;color:#0a8043;font-size:14px;">Format</th> <th style="padding:10px 8px;text-align:center;font-weight:500;border-bottom:2px solid #0a8043;color:#0a8043;font-size:14px;">Subfolder</th> <th style="padding:10px 8px;text-align:center;font-weight:500;border-bottom:2px solid #0a8043;color:#0a8043;font-size:14px;">Precision</th> <th style="padding:10px 8px;text-align:center;font-weight:500;border-bottom:2px solid #0a8043;color:#0a8043;font-size:14px;">Size</th> <th style="padding:10px 8px;text-align:center;font-weight:500;border-bottom:2px solid #0a8043;color:#0a8043;font-size:14px;">Effective bits/weight</th> </tr></thead><tbody> <tr> <td style="padding:7px 8px;padding-left:20px;text-align:left;border-bottom:1px solid rgba(128,128,128,.15);font-weight:700;">fp16</td> <td style="padding:7px 8px;text-align:center;border-bottom:1px solid rgba(128,128,128,.15);">[<code style="font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.9em;background:rgba(10,128,67,.10);padding:1px 5px;border-radius:5px">fp16/</code>](./fp16)</td> <td style="padding:7px 8px;text-align:center;border-bottom:1px solid rgba(128,128,128,.15);">float16 (unquantized)</td> <td style="padding:7px 8px;text-align:center;border-bottom:1px solid rgba(128,128,128,.15);">~51 GB</td> <td style="padding:7px 8px;text-align:center;border-bottom:1px solid rgba(128,128,128,.15);">16</td> </tr> <tr> <td style="padding:7px 8px;padding-left:20px;text-align:left;border-bottom:1px solid rgba(128,128,128,.15);font-weight:700;">fp8</td> <td style="padding:7px 8px;text-align:center;border-bottom:1px solid rgba(128,128,128,.15);">[<code style="font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.9em;background:rgba(10,128,67,.10);padding:1px 5px;border-radius:5px">fp8/</code>](./fp8)</td> <td style="padding:7px 8px;text-align:center;border-bottom:1px solid rgba(128,128,128,.15);">MXFP8 (<code style="font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.9em;background:rgba(10,128,67,.10);padding:1px 5px;border-radius:5px">mxfp8</code>, group 32)</td> <td style="padding:7px 8px;text-align:center;border-bottom:1px solid rgba(128,128,128,.15);">~27 GB</td> <td style="padding:7px 8px;text-align:center;border-bottom:1px solid rgba(128,128,128,.15);">8.38</td> </tr> <tr> <td style="padding:7px 8px;padding-left:20px;text-align:left;border-bottom:1px solid rgba(128,128,128,.15);font-weight:700;">fp4</td> <td style="padding:7px 8px;text-align:center;border-bottom:1px solid rgba(128,128,128,.15);">[<code style="font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.9em;background:rgba(10,128,67,.10);padding:1px 5px;border-radius:5px">fp4/</code>](./fp4)</td> <td style="padding:7px 8px;text-align:center;border-bottom:1px solid rgba(128,128,128,.15);">MXFP4 (<code style="font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.9em;background:rgba(10,128,67,.10);padding:1px 5px;border-radius:5px">mxfp4</code>, group 32)</td> <td style="padding:7px 8px;text-align:center;border-bottom:1px solid rgba(128,128,128,.15);">~14 GB</td> <td style="padding:7px 8px;text-align:center;border-bottom:1px solid rgba(128,128,128,.15);">4.45</td> </tr> </tbody></table></div>fp8 and fp4 use MLX's true micro-scaling floating-point quantization (mxfp8 / mxfp4), not integer affine quantization.
pip install -U mlx mlx-vlm
Tested with mlx==0.31.2, mlx-vlm==0.6.3. Runs on Apple Silicon (M-series).
Apple Silicon uses unified memory shared between CPU and GPU, so "VRAM" = your Mac's total RAM. macOS reserves memory for the OS and, by default, caps the GPU working set (Metal recommendedMaxWorkingSetSize) at roughly 75% of total RAM (e.g. ~48 GB on a 64 GB Mac, ~96 GB on a 128 GB Mac). The "Min Mac RAM" column already accounts for that cap.
# allow the GPU to use more of unified memory (value in MB), e.g. 28 GB
sudo sysctl iogpu.wired_limit_mb=28672
Because the three formats live in subfolders, download the one you want, then point mlx-vlm at the local folder.
from huggingface_hub import snapshot_download
# Pick a format: "fp4", "fp8", or "fp16"
path = snapshot_download(
"KIEFERSA/Sophea-Titan-1-mlx",
allow_patterns="fp4/*",
token="<your_hf_token>", # private repo
)
model_dir = f"{path}/fp4"
Then generate (text-only or with an image / video):
# text-only
python -m mlx_vlm generate --model "$model_dir" \
--prompt "Γεια σου! Πες μου μια πρόταση στα ελληνικά." --max-tokens 128
# with an image
python -m mlx_vlm generate --model "$model_dir" \
--image path/to/image.jpg \
--prompt "Περίγραψε την εικόνα." --max-tokens 256
Or from Python:
from mlx_vlm import load, generate
from mlx_vlm.prompt_utils import apply_chat_template
model, processor = load(model_dir)
config = model.config
messages = [{"role": "user", "content": "Περίγραψε την εικόνα."}]
prompt = apply_chat_template(processor, config, messages, num_images=1)
out = generate(model, processor, prompt, ["path/to/image.jpg"], max_tokens=256, verbose=True)
print(out)
mlx-vlm ships an OpenAI-compatible server. Start it on a downloaded format folder:
python -m mlx_vlm.server --model "$model_dir" --host 0.0.0.0 --port 8080
# e.g. --model ./fp8 (or fp4 / fp16)
Then call it like the OpenAI Chat Completions API:
# text-only
curl http://localhost:8080/v1/chat/completions \
-H "Content-Type: application/json" \
-d '{
"messages": [{"role": "user", "content": "Γεια σου! Πες μου μια πρόταση στα ελληνικά."}],
"max_tokens": 128
}'
# with an image (URL or data: URI)
curl http://localhost:8080/v1/chat/completions \
-H "Content-Type: application/json" \
-d '{
"messages": [{"role": "user", "content": [
{"type": "text", "text": "Περίγραψε την εικόνα."},
{"type": "image_url", "image_url": {"url": "https://example.com/image.jpg"}}
]}],
"max_tokens": 256
}'
Or with the OpenAI Python client:
from openai import OpenAI
client = OpenAI(base_url="http://localhost:8080/v1", api_key="not-needed")
resp = client.chat.completions.create(
model="sophea-titan-1", # any string; the server uses the preloaded --model
messages=[{"role": "user", "content": "Γράψε ένα σύντομο ποίημα για τη θάλασσα."}],
max_tokens=128,
)
print(resp.choices[0].message.content)
Useful flags: --max-tokens, --vision-cache-size, --prefill-step-size, and KV-cache quantization (--kv-bits, --max-kv-size) for long contexts. See python -m mlx_vlm.server --help.
Converted from the bf16 source with mlx-vlm:
# fp16
python -m mlx_vlm convert --hf-path <src> --mlx-path fp16 --dtype float16
# fp8 (MXFP8)
python -m mlx_vlm convert --hf-path <src> --mlx-path fp8 \
-q --q-bits 8 --q-mode mxfp8 --q-group-size 32 --dtype float16
# fp4 (MXFP4)
python -m mlx_vlm convert --hf-path <src> --mlx-path fp4 \
-q --q-bits 4 --q-mode mxfp4 --q-group-size 32 --dtype float16
Note: the source ships a unified
processor_config.json; mlx-vlm expectspreprocessor_config.json, so it was aliased before conversion (both are included here).
fp4 build loads and produces fluent, correctly-accented Greek (~19 tokens/sec, ~15.7 GB peak) on an Apple Silicon laptop.