Model reference · open weights
qwen3_v.qwen3_vl is an open-weight embedding model from timm. AxForge deploys and operates it for you on dedicated EU-owned hardware — with the licence handled where one is required.
Available as managed deployment — configured and operated for you on dedicated EU hardware, quoted per deployment.
What it is
| Released by | timm |
|---|---|
| Type | Embedding models |
| Task | Image embed |
| Parameters (lead) | 305M |
| Runs with | timm |
| Based on | Qwen/Qwen3-VL-4B-Instruct |
| Released | 2026-09-10 |
| Popularity | 501 downloads / month |
| Licence | Open weights |
About
A Qwen ViT image feature model extracted from Qwen3-VL-4B-Instruct. This is the classifier-ready wrapper with average pooling and affine-free LayerNorm over the encoder features.
NOTE: This checkpoint is a native timm remap of the original vision weights, with no additional training. It contains no language-model weights or trained image-classification head.
mean=(0.5, 0.5, 0.5) and std=(0.5, 0.5, 0.5). Rectangular inputs are supported. Each image dimension must be divisible by 16; any variant using the 2×2 merger requires divisibility by 32.forward_features() returns raw, unnormalized NHWC backbone features. The _enc variant returns spatially merged tokens from forward(); the classifier variant returns pooled image embeddings until a classification head is added.forward_intermediates() or features_only=True.import torch
import timm
from PIL import Image
model = timm.create_model('hf-hub:timm/qwen3_vit_306m.qwen3_vl_4b', pretrained=True).eval()
data_config = timm.data.resolve_model_data_config(model)
transform = timm.data.create_transform(**data_config, is_training=False)
image = Image.open('image.jpg').convert('RGB')
x = transform(image).unsqueeze(0)
with torch.inference_mode():
output = model(x) # (1, 1024): image embeddings
features = model.forward_features(x) # (1, 48, 48, 1024): raw backbone features (NHWC)
with torch.inference_mode():
maps = model.forward_intermediates(
x, indices=3, output_fmt='NCHW', intermediates_only=True,
)
for feature_map in maps:
print(feature_map.shape) # (1, 1024, 48, 48)
model = timm.create_model(
'hf-hub:timm/qwen3_vit_306m.qwen3_vl_4b', pretrained=True, num_classes=45,
)
logits = model(x) # (1, 45)
The new linear head is randomly initialized and must be trained on your target dataset.
@article{Qwen3-VL,
title={Qwen3-VL Technical Report},
author={Bai, Shuai and others},
journal={arXiv preprint arXiv:2511.21631},
year={2025}
}
@misc{rw2019timm,
author = {Ross Wightman},
title = {PyTorch Image Models},
year = {2019},
publisher = {GitHub},
journal = {GitHub repository},
doi = {10.5281/zenodo.4414861},
howpublished = {\url{https://github.com/huggingface/pytorch-image-models}}
}
From the published model card. Full card on the HuggingFace links in the sidebar.
How it works
Using it via the API
Once AxForge deploys qwen3-v-qwen3-vl for you, it answers on the OpenAI-compatible API — the same base URL and keys as every other model. (qwen3-v-qwen3-vl below is illustrative; you get the exact model name on deployment.)
$ curl -sS https://api.axforge.ai/v1/embeddings \
-H "Authorization: Bearer $AXFORGE_API_KEY" \
-H "Content-Type: application/json" \
-d '{"model":"qwen3-v-qwen3-vl","input":"text to embed"}'
Create an account — your API key is available in the console. 3M free tokens every 30 days with every new account.