Run Qwen3-VL with Keras 3: JAX, PyTorch, or TensorFlow

GitHub Docs HuggingFace

kerasformers/qwen3-vl-32b-instruct

Pure-Keras 3 conversion of Qwen/Qwen3-VL-32B-Instruct for kerasformers. One implementation runs unmodified on TensorFlow / Torch / JAX. This is the 32B variant, served here as image + text -> text via Qwen3VLProcessor; weights are stored in bfloat16.

For model details, license, and usage terms, see the upstream model card.

Paper: Qwen3 Technical Report (arXiv:2505.09388) · HF Papers

Paper: Qwen2.5-VL Technical Report (arXiv:2502.13923) · HF Papers

Paper: Qwen2-VL: Enhancing Vision-Language Model's Perception of the World at Any Resolution (arXiv:2409.12191) · HF Papers

Paper: Qwen-VL: A Frontier Large Vision-Language Model with Versatile Abilities (arXiv:2308.12966) · HF Papers

✨ Quick start

Text-only

import os
os.environ["KERAS_BACKEND"] = "torch"  # or "jax" / "tensorflow"

from kerasformers.models.qwen3_vl import Qwen3VLTextGenerate, Qwen3VLProcessor

model = Qwen3VLTextGenerate.from_weights("kerasformers/qwen3-vl-32b-instruct")
processor = Qwen3VLProcessor.from_weights("kerasformers/qwen3-vl-32b-instruct")

inputs = processor(conversation=[
    {"role": "user", "content": [{"type": "text", "text": "Hello, who are you?"}]}
])
outputs = model.generate(**inputs, max_new_tokens=64)
print(processor.decode(outputs[0]))

Image + text

import os
os.environ["KERAS_BACKEND"] = "torch"  # or "jax" / "tensorflow"

from PIL import Image
from kerasformers.models.qwen3_vl import Qwen3VLConditionalGenerate, Qwen3VLProcessor

model = Qwen3VLConditionalGenerate.from_weights("kerasformers/qwen3-vl-32b-instruct")
processor = Qwen3VLProcessor.from_weights("kerasformers/qwen3-vl-32b-instruct")

inputs = processor(conversation=[
    {"role": "user", "content": [
        {"type": "image", "image": Image.open("photo.jpg")},
        {"type": "text", "text": "Describe this image in one sentence."},
    ]}
])
outputs = model.generate(**inputs, max_new_tokens=64)
print(processor.decode(outputs[0]))

Load any Qwen3-VL variant the same way with from_weights("kerasformers/<variant>"):

Variant Hub
qwen3-vl-2b-instruct kerasformers/qwen3-vl-2b-instruct
qwen3-vl-2b-thinking kerasformers/qwen3-vl-2b-thinking
qwen3-vl-4b-instruct kerasformers/qwen3-vl-4b-instruct
qwen3-vl-4b-thinking kerasformers/qwen3-vl-4b-thinking
qwen3-vl-8b-instruct kerasformers/qwen3-vl-8b-instruct
qwen3-vl-8b-thinking kerasformers/qwen3-vl-8b-thinking
qwen3-vl-32b-instruct kerasformers/qwen3-vl-32b-instruct
qwen3-vl-32b-thinking kerasformers/qwen3-vl-32b-thinking

Special Thanks

A huge thank you to the Qwen team at Alibaba for creating and releasing these models.

License: Apache 2.0.

Downloads last month
84
Inference Providers NEW
This model isn't deployed by any Inference Provider. 🙋 Ask for provider support

Model tree for kerasformers/qwen3-vl-32b-instruct

Finetuned
(62)
this model

Collection including kerasformers/qwen3-vl-32b-instruct

Papers for kerasformers/qwen3-vl-32b-instruct