Model reference · open weights
madrimed1.2-vision-embed is an open-weight embedding model from madrisight. madrimed1.2-vision-embed (FP32) weighs 814 MB; the smallest configuration that runs it is RTX 3060 12 GB.
For self-hosting, compare this build's requirements below with the GPU you plan to rent.
Summary of the madrisight/madrimed1.2-vision-embed model card, 2026-11-06
What it is
| Released by | madrisight |
|---|---|
| Released | 2026-10-19 |
| Parameters | 407M |
| VRAM | 814 MB for the weights |
What it runs on
| Card | Runs | Memory |
|---|---|---|
| RTX 3060 12 GB | fits | 11.6 GB |
| RTX 4060 Ti 16 GB | fits | 15.4 GB |
| RTX 3090 24 GB | fits | 23.4 GB |
| RTX 4090 24 GB | fits | 23.4 GB |
| RTX 5090 32 GB | fits | 31.0 GB |
| L40S 48 GB | fits | 44.0 GB |
| A100 80 GB | fits | 78.2 GB |
| H100 80 GB | fits | 78.1 GB |
| RTX PRO 6000 Blackwell 96 GB | fits | 93.8 GB |
| DGX Spark (GB10) 128 GB unified | fits | 107 GB |
| H200 141 GB | fits | 138 GB |
| B200 180 GB | fits | 176 GB |
From the model card
This vision encoder is an isolated visual representation tower for dense feature extraction from multi-modality radiological scans other medical images. It projects dynamic-resolution medical imagery into an L2-normalized 2048-dimensional embedding space, optimized for cross-modal alignment and topological Graph Retrieval-Augmented Generation.
pip install git+https://github.com/krrish-v/metalliger.git
import torch
from transformers import AutoProcessor, Qwen3VLVisionModel
from metalliger.utils.vison import func, GraphRAG
from metalliger.utils.text import TextEmbedder, EmbedderConfig
from PIL import Image
VISION_MODEL_DIR = "madrisight/madrimed1.2-vision-embed"
TEXT_MODEL_DIR = "madrisight/madrimed1.2-text-embed"
device = "cuda" if torch.cuda.is_available() else ("mps" if torch.backends.mps.is_available() else "cpu")
# Vision side (unchanged)
processor = AutoProcessor.from_pretrained(VISION_MODEL_DIR, trust_remote_code=True)
vision_model = Qwen3VLVisionModel.from_pretrained(
VISION_MODEL_DIR, dtype=torch.float32, trust_remote_code=True,
).to(device).eval()
embedder = TextEmbedder(EmbedderConfig(model_dir=TEXT_MODEL_DIR, dtype=torch.float32))
vision_helper = func()
image_records = ["MM-25-e.jpeg", "MM-120-a.jpeg", "MM-7-e.jpeg"]
G, image_embeddings, latencies = vision_helper.similarity_graph(
images=image_records, image_processor=processor, vision_model=vision_model, texts=None,
)
rag_service = GraphRAG()
seed_nodes, retrieved_subgraph, smoothed_sims = rag_service.query_graph_rag_pure(
text_query=text_query,
embedder=embedder,
G=G,
img_embeddings=image_embeddings,
top_k_seeds=3,
k_neighbors=1,
verbose=False,
)
print(f"Entry Seed Node ID: {seed_nodes[0]}")
print(f"Retrieved Context Subgraph IDs: {retrieved_subgraph}")
Image.open(G.nodes[seed_nodes[0]]["image"]).show()
The visual representation quality was benchmarked using stratified multi-organ medical cohorts:
src="https://raw.githubusercontent.com/krrish-v/metalliger/main/data/vision_space_diagnostic.png"
alt="Vision Space Diagnostic"
/>
When deploying this model inside a Graph RAG or retrieval pipeline:
@software{madrimed1.2-vision-embed,
title = {Madrimed 1.2 Vison Encoder},
author = {Madrisight},
year = {2026},
url = {https://huggingface.co/madrisight/madrimed1.2-vision-embed}
}Quoted from the model card on Hugging Face. The full card is behind the Hugging Face link above.