Qwen-VL¶
Class: QwenVlmBlockV1
Source: inference.core.workflows.core_steps.models.foundation.qwen_vlm.v1.QwenVlmBlockV1
Run any Qwen vision-language model โ natively on Roboflow infrastructure or via OpenRouter.
You can specify arbitrary text prompts or predefined ones, the block supports the following types of prompt:
-
Open Prompt (
unconstrained) - Use any prompt to generate a raw response -
Text Recognition (OCR) (
ocr) - Model recognizes text in the image -
Visual Question Answering (
visual-question-answering) - Model answers the question you submit in the prompt -
Captioning (short) (
caption) - Model provides a short description of the image -
Captioning (
detailed-caption) - Model provides a long description of the image -
Single-Label Classification (
classification) - Model classifies the image content as one of the provided classes -
Multi-Label Classification (
multi-label-classification) - Model classifies the image content as one or more of the provided classes -
Unprompted Object Detection (
object-detection) - Model detects and returns the bounding boxes for prominent objects in the image -
Structured Output Generation (
structured-answering) - Model returns a JSON response with the specified fields
๐ ๏ธ Backend selection¶
-
Native (Roboflow) โ small Qwen-VL models (0.8Bโ7B) run on the same infrastructure as your other Roboflow models. Lower latency. Recommended for tasks like OCR, captioning, and visual question answering.
-
OpenRouter โ large hosted Qwen models (9Bโ397B) reached via OpenRouter. Defaults to a Roboflow-managed API key and bills your Roboflow credits. Paste your own
sk-or-...key in theapi_keyfield to bypass Roboflow billing. Recommended for structured tasks that benefit from larger models (classification, object-detection, structured-answering).
The model_version dropdown lists every supported variant; each is bound to one backend.
A validator catches mismatches between your selected backend and model.
๐ Privacy filter (OpenRouter only)¶
- No data collection (default) โ providers may not train on your inputs.
- Allow data collection โ broader provider pool.
- Zero data retention โ strictest, restricts to providers that retain nothing.
Type identifier¶
Use the following identifier in step "type" field: roboflow_core/qwen_vlm@v1to add the block as
as step in your workflow.
Properties¶
| Name | Type | Description | Refs |
|---|---|---|---|
name |
str |
Enter a unique identifier for this step.. | โ |
api_key |
str |
OpenRouter API key (only used when backend=openrouter). Defaults to Roboflow's managed key. Provide your own sk-or-... key to call OpenRouter directly without Roboflow billing.. |
โ |
privacy_level |
str |
Provider privacy filter (only used when backend=openrouter). Stricter levels reduce the pool of providers and may increase per-call cost on the managed key.. | โ |
max_tokens |
int |
Maximum number of tokens the model can generate in its response.. | โ |
temperature |
float |
Sampling temperature (only used when backend=openrouter). The native Qwen-VL runtime doesn't accept a temperature knob. Range 0.0-2.0 โ higher = more random / "creative" generations.. | โ |
max_concurrent_requests |
int |
Maximum number of OpenRouter requests to run in parallel for a batch of images (only used when backend=openrouter). The native backend processes images sequentially. If unset, falls back to the global Workflows Execution Engine default. Restrict this if you hit OpenRouter rate limits.. | โ |
backend |
str |
Where to run inference. Native = Roboflow infrastructure. OpenRouter = large hosted Qwen models via OpenRouter.. | โ |
model_version |
str |
Native Qwen-VL variant. Pick a pre-trained model or Fine-tuned model to use a Qwen3 fine-tune from your workspace.. |
โ |
fine_tuned_model_id |
str |
Fine-tuned Qwen3-VL model from your workspace, in workspace/version form.. |
โ |
openrouter_model_version |
str |
OpenRouter-hosted Qwen variant.. | โ |
task_type |
str |
Task type to be performed by model. Value determines required parameters and output response.. | โ |
prompt |
str |
Text prompt to the Qwen model. | โ |
enable_thinking |
bool |
Enable Qwen3.5-VL's reasoning mode, where the model emits thinking tokens before its answer. The reasoning trace is returned in the thinking output. Only the Qwen 3.5 VL 2B checkpoint (and Qwen3-VL fine-tunes derived from it) supports this; ignored elsewhere.. |
โ |
output_structure |
Dict[str, str] |
Dictionary with structure of expected JSON response. | โ |
classes |
List[str] |
List of classes to be used. | โ |
The Refs column marks possibility to parametrise the property with dynamic values available
in workflow runtime. See Bindings for more info.
Runtime compatibility¶
-
requires_internetโ air-gapped / offline deployments - This block depends on a service that is not reachable from fully offline / air-gapped deployments.
Available Connections¶
Compatible Blocks
Check what blocks you can connect to Qwen-VL in version v1.
- inputs:
Google Gemma API,Camera Focus,Event Writer,Google Gemini,Current Time,Ellipse Visualization,Camera Focus,Image Contours,Image Preprocessing,Background Subtraction,Multi-Label Classification Model,Color Visualization,Crop Visualization,Mask Visualization,Multi-Label Classification Model,Google Vision OCR,Relative Static Crop,SIFT Comparison,Single-Label Classification Model,Semantic Segmentation Model,Object Detection Model,Google Gemini,Instance Segmentation Model,EasyOCR,Llama 3.2 Vision,VLM As Detector,Contrast Enhancement,Image Convert Grayscale,Google Gemma,Google Gemini,Keypoint Detection Model,Identify Changes,Image Blur,Keypoint Visualization,MQTT Writer,Buffer,Anthropic Claude,Camera Calibration,Twilio SMS Notification,LMM For Classification,Qwen 3.6 API,Semantic Segmentation Model,Perspective Correction,OpenAI-Compatible LLM,Contrast Equalization,Clip Comparison,Qwen-VL,Image Stack,Single-Label Classification Model,Model Comparison Visualization,PLC EthernetIP,Dot Visualization,OpenAI,Dynamic Zone,Reference Path Visualization,Polygon Visualization,Size Measurement,Microsoft SQL Server Sink,Webhook Sink,SIFT,Instance Segmentation Model,Image Slicer,Stability AI Outpainting,Halo Visualization,Dimension Collapse,Email Notification,QR Code Generator,Local File Sink,Classification Label Visualization,Bounding Box Visualization,MoonshotAI Kimi,Object Detection Model,Pixelate Visualization,Image Slicer,Depth Estimation,Roboflow Vision Events,Text Display,Object Detection Model,Icon Visualization,Motion Detection,Blur Visualization,VLM As Classifier,Anthropic Claude,Cosine Similarity,Grid Visualization,OpenRouter,MoonshotAI Kimi,Anthropic Claude,Detections List Roll-Up,LMM,Stability AI Inpainting,Roboflow Dataset Upload,PLC ModbusTCP,Model Monitoring Inference Aggregator,Qwen3.5-VL,Image Threshold,Trace Visualization,Circle Visualization,Instance Segmentation Model,Label Visualization,Morphological Transformation,Morphological Transformation,Polygon Zone Visualization,Keypoint Detection Model,Dynamic Crop,Polygon Visualization,Florence-2 Model,OpenAI,CSV Formatter,Stability AI Image Generation,Single-Label Classification Model,Gaze Detection,Qwen 3.5 API,CogVLM,Absolute Static Crop,Roboflow Dataset Upload,Multi-Label Classification Model,Stitch Images,Florence-2 Model,Twilio SMS/MMS Notification,Clip Comparison,Triangle Visualization,Roboflow Asset Library Attributes,Background Color Visualization,Keypoint Detection Model,Stitch OCR Detections,Corner Visualization,Line Counter Visualization,Stitch OCR Detections,Halo Visualization,Roboflow Custom Metadata,OCR Model,OpenAI,Email Notification,Slack Notification,S3 Sink,GLM-OCR,OpenAI,Llama 3.2 Vision,Heatmap Visualization,Instance Segmentation Model,OPC UA Writer Sink - outputs:
Google Gemma API,Event Writer,Google Gemini,Current Time,Ellipse Visualization,SAM 3,Image Preprocessing,YOLO-World Model,Mask Visualization,Crop Visualization,Segment Anything 2 Model,Color Visualization,Seg Preview,Perception Encoder Embedding Model,JSON Parser,Cache Set,Google Vision OCR,Single-Label Classification Model,SIFT Comparison,Object Detection Model,Google Gemini,Instance Segmentation Model,Llama 3.2 Vision,VLM As Detector,SAM 3,Google Gemma,Google Gemini,Keypoint Detection Model,Image Blur,Keypoint Visualization,MQTT Writer,Buffer,Anthropic Claude,VLM As Detector,PTZ Tracking (ONVIF),Twilio SMS Notification,Detections Stitch,LMM For Classification,Qwen 3.6 API,Semantic Segmentation Model,Perspective Correction,Cache Get,Detections Classes Replacement,SAM 3,Time in Zone,CLIP Embedding Model,OpenAI-Compatible LLM,Contrast Equalization,Clip Comparison,Qwen-VL,Model Comparison Visualization,PLC EthernetIP,Dot Visualization,OpenAI,Moondream2,Reference Path Visualization,Polygon Visualization,Size Measurement,Microsoft SQL Server Sink,Path Deviation,Webhook Sink,Instance Segmentation Model,Stability AI Outpainting,Halo Visualization,Email Notification,QR Code Generator,Local File Sink,Classification Label Visualization,Bounding Box Visualization,MoonshotAI Kimi,Object Detection Model,Path Deviation,Depth Estimation,Roboflow Vision Events,Text Display,Time in Zone,Distance Measurement,Object Detection Model,Icon Visualization,Motion Detection,VLM As Classifier,Anthropic Claude,Grid Visualization,OpenRouter,MoonshotAI Kimi,Anthropic Claude,Detections List Roll-Up,LMM,Stability AI Inpainting,Roboflow Dataset Upload,Qwen3.5-VL,Image Threshold,Model Monitoring Inference Aggregator,Trace Visualization,Circle Visualization,Instance Segmentation Model,Label Visualization,Pixel Color Count,Morphological Transformation,Morphological Transformation,Polygon Zone Visualization,Keypoint Detection Model,VLM As Classifier,Dynamic Crop,Polygon Visualization,Florence-2 Model,OpenAI,Stability AI Image Generation,Qwen 3.5 API,CogVLM,Roboflow Dataset Upload,Multi-Label Classification Model,Florence-2 Model,Twilio SMS/MMS Notification,Line Counter,Time in Zone,Clip Comparison,Triangle Visualization,Roboflow Asset Library Attributes,Background Color Visualization,Detections Consensus,Keypoint Detection Model,Corner Visualization,Stitch OCR Detections,Line Counter Visualization,Stitch OCR Detections,Halo Visualization,Roboflow Custom Metadata,Line Counter,OpenAI,Email Notification,Slack Notification,S3 Sink,GLM-OCR,OpenAI,Llama 3.2 Vision,Heatmap Visualization,Instance Segmentation Model,OPC UA Writer Sink
Input and Output Bindings¶
The available connections depend on its binding kinds. Check what binding kinds
Qwen-VL in version v1 has.
Bindings
-
input
api_key(Union[secret,string,ROBOFLOW_MANAGED_KEY]): OpenRouter API key (only used when backend=openrouter). Defaults to Roboflow's managed key. Provide your ownsk-or-...key to call OpenRouter directly without Roboflow billing..temperature(float): Sampling temperature (only used when backend=openrouter). The native Qwen-VL runtime doesn't accept a temperature knob. Range 0.0-2.0 โ higher = more random / "creative" generations..images(image): The image to infer on..model_version(string): Native Qwen-VL variant. Pick a pre-trained model orFine-tuned modelto use a Qwen3 fine-tune from your workspace..fine_tuned_model_id(Union[roboflow_model_id,string]): Fine-tuned Qwen3-VL model from your workspace, inworkspace/versionform..openrouter_model_version(string): OpenRouter-hosted Qwen variant..prompt(string): Text prompt to the Qwen model.classes(list_of_values): List of classes to be used.
-
output
output(Union[string,language_model_output]): String value ifstringor LLM / VLM output iflanguage_model_output.classes(list_of_values): List of values of any type.thinking(string): String value.
Example JSON definition of step Qwen-VL in version v1
{
"name": "<your_step_name_here>",
"type": "roboflow_core/qwen_vlm@v1",
"api_key": "rf_key:account",
"privacy_level": "<block_does_not_provide_example>",
"max_tokens": "<block_does_not_provide_example>",
"temperature": "<block_does_not_provide_example>",
"max_concurrent_requests": "<block_does_not_provide_example>",
"images": "$inputs.image",
"backend": "<block_does_not_provide_example>",
"model_version": "Qwen 3.5 VL 2B",
"fine_tuned_model_id": "your-workspace/3",
"openrouter_model_version": "Qwen 3.6 27B",
"task_type": "<block_does_not_provide_example>",
"prompt": "my prompt",
"enable_thinking": "<block_does_not_provide_example>",
"output_structure": {
"my_key": "description"
},
"classes": [
"class-a",
"class-b"
]
}