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:
Roboflow Asset Library Attributes,MoonshotAI Kimi,Image Blur,Reference Path Visualization,Event Writer,Slack Notification,VLM As Classifier,Halo Visualization,Image Stack,Google Gemma,Qwen 3.6 API,Clip Comparison,Object Detection Model,Dot Visualization,Label Visualization,Background Color Visualization,Llama 3.2 Vision,Email Notification,Pixelate Visualization,OpenAI-Compatible LLM,Google Gemini,Anthropic Claude,OpenAI,Trace Visualization,Llama 3.2 Vision,Clip Comparison,OpenAI,GLM-OCR,Camera Focus,PLC ModbusTCP,Buffer,MQTT Writer,CSV Formatter,Webhook Sink,SIFT Comparison,Image Contours,Local File Sink,Motion Detection,Google Gemini,MoonshotAI Kimi,Polygon Visualization,Dimension Collapse,SIFT,Classification Label Visualization,Multi-Label Classification Model,Instance Segmentation Model,Keypoint Detection Model,Keypoint Visualization,Instance Segmentation Model,Icon Visualization,Dynamic Crop,Stability AI Inpainting,Bounding Box Visualization,Polygon Zone Visualization,Stability AI Outpainting,Multi-Label Classification Model,Crop Visualization,Image Convert Grayscale,Mask Visualization,Halo Visualization,PLC EthernetIP,Anthropic Claude,Text Display,Morphological Transformation,Roboflow Dataset Upload,Object Detection Model,Ellipse Visualization,Keypoint Detection Model,Size Measurement,Circle Visualization,Semantic Segmentation Model,Twilio SMS Notification,Email Notification,S3 Sink,Camera Focus,Identify Changes,Single-Label Classification Model,Image Slicer,LMM For Classification,OCR Model,Heatmap Visualization,OpenAI,Google Gemma API,Stitch Images,Morphological Transformation,EasyOCR,Single-Label Classification Model,Current Time,Blur Visualization,Stitch OCR Detections,Detections List Roll-Up,Florence-2 Model,Google Gemini,Corner Visualization,OpenRouter,Model Comparison Visualization,Model Monitoring Inference Aggregator,Google Vision OCR,Image Threshold,Instance Segmentation Model,LMM,Single-Label Classification Model,Polygon Visualization,Stability AI Image Generation,Line Counter Visualization,CogVLM,Relative Static Crop,Qwen3.5-VL,Grid Visualization,Image Preprocessing,Stitch OCR Detections,Gaze Detection,Anthropic Claude,OPC UA Writer Sink,Color Visualization,Dynamic Zone,Triangle Visualization,QR Code Generator,Roboflow Dataset Upload,Qwen 3.5 API,Contrast Enhancement,Absolute Static Crop,Background Subtraction,Multi-Label Classification Model,OpenAI,Image Slicer,Semantic Segmentation Model,Qwen-VL,Florence-2 Model,Perspective Correction,Twilio SMS/MMS Notification,Roboflow Vision Events,Microsoft SQL Server Sink,Cosine Similarity,Instance Segmentation Model,Depth Estimation,Roboflow Custom Metadata,Contrast Equalization,Camera Calibration,VLM As Detector,Keypoint Detection Model,Object Detection Model - outputs:
Cache Set,MoonshotAI Kimi,Roboflow Asset Library Attributes,Path Deviation,Image Blur,Keypoint Detection Model,Reference Path Visualization,PTZ Tracking (ONVIF),Event Writer,Slack Notification,Halo Visualization,CLIP Embedding Model,VLM As Classifier,Google Gemma,Qwen 3.6 API,Clip Comparison,Object Detection Model,Dot Visualization,Label Visualization,Background Color Visualization,Llama 3.2 Vision,Email Notification,OpenAI-Compatible LLM,Google Gemini,JSON Parser,Anthropic Claude,Cache Get,OpenAI,Trace Visualization,Llama 3.2 Vision,OpenAI,Clip Comparison,GLM-OCR,Buffer,MQTT Writer,Webhook Sink,SIFT Comparison,Local File Sink,Motion Detection,Google Gemini,MoonshotAI Kimi,Polygon Visualization,Classification Label Visualization,Instance Segmentation Model,Keypoint Detection Model,Keypoint Visualization,Instance Segmentation Model,Icon Visualization,Seg Preview,Dynamic Crop,Stability AI Inpainting,Bounding Box Visualization,Polygon Zone Visualization,Stability AI Outpainting,Multi-Label Classification Model,Crop Visualization,Mask Visualization,Halo Visualization,Detections Stitch,Distance Measurement,PLC EthernetIP,Anthropic Claude,Morphological Transformation,Text Display,VLM As Classifier,Roboflow Dataset Upload,VLM As Detector,Detections Consensus,Object Detection Model,Ellipse Visualization,Keypoint Detection Model,SAM3 Video Tracker,Time in Zone,SAM 3,Size Measurement,Circle Visualization,Semantic Segmentation Model,Path Deviation,Twilio SMS Notification,Email Notification,S3 Sink,SAM 3,LMM For Classification,Heatmap Visualization,Google Gemma API,OpenAI,Time in Zone,Morphological Transformation,Single-Label Classification Model,YOLO-World Model,Current Time,Stitch OCR Detections,Moondream2,Detections List Roll-Up,Florence-2 Model,Google Gemini,Corner Visualization,OpenRouter,Pixel Color Count,Model Comparison Visualization,SAM 3,Model Monitoring Inference Aggregator,Google Vision OCR,Image Threshold,Instance Segmentation Model,LMM,Polygon Visualization,Segment Anything 2 Model,Time in Zone,Stability AI Image Generation,Line Counter Visualization,Line Counter,CogVLM,Qwen3.5-VL,Grid Visualization,Image Preprocessing,Stitch OCR Detections,Anthropic Claude,OPC UA Writer Sink,Color Visualization,Triangle Visualization,QR Code Generator,Qwen 3.5 API,Roboflow Dataset Upload,OpenAI,Qwen-VL,Florence-2 Model,Perspective Correction,Roboflow Vision Events,Microsoft SQL Server Sink,Twilio SMS/MMS Notification,Perception Encoder Embedding Model,Instance Segmentation Model,Depth Estimation,Roboflow Custom Metadata,Contrast Equalization,Detections Classes Replacement,VLM As Detector,Line Counter,Object Detection Model
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"
]
}