Multimodal embedding models convert text, images, and videos into embeddings in a shared semantic space to enable cross-modal retrieval, content classification, and similarity search.
Core capabilities
- Cross-modal retrieval: Perform semantic searches across different content types, such as text-to-image, image-to-video, or image-to-image.
- Semantic similarity: Measure the semantic similarity between different content types in a unified embedding space.
- Content classification and clustering: Group, label, and cluster content based on semantic embeddings.
Key feature: Embeddings for all modalities (text, images, and video) share the same semantic space, enabling direct cross-modal matching and comparison using methods such as cosine similarity. See text and multimodal embedding for details on model selection and usage.
Embedding types
The multimodal embedding model supports two methods for generating embeddings:
-
Multimodal independent embedding: Generates a separate embedding for each input, such as text, an image, a video, or multiple images, within the
contents. For example, an input of one text string and one image returns two independent embeddings. This is ideal for comparing individual items, such as in image-to-image or text-to-image searches. -
Multimodal fused embedding: Fuses all inputs in contents into a single embedding to achieve a unified cross-modal semantic representation. This is suitable for scenarios that require a holistic understanding of multimodal content, such as fusing a product image and its description text into a unified representation for retrieval. For
qwen3-vl-embedding, you enable fusion by settingenable_fusion=true. The fused embedding supports the following combinations:- Text and image fusion
- Text and video fusion
- Fusing multiple images with text (by passing multiple
imageentries) - Fusion of images, video, and text
For model introductions, selection guidance, and usage instructions, see Text and multimodal embedding.qwen2.5-vl-embeddingsupports only fused embeddings, not independent embeddings.tongyi-embedding-vision-plusandtongyi-embedding-vision-flashsupport only independent embeddings.
Model overview
- Singapore
- China (Beijing)
Model | Embedding dimensions | Text length limit | Image size limit | Video size limit | Price (per 1M tokens) | Free quota(Note) |
|---|---|---|---|---|---|---|
tongyi-embedding-vision-plus | 1152 | 1,024 token | Up to 3 MB per image. Supports up to 8 images. | Up to 10 MB per video file | Image/Video: $0.09 Text: $0.09 | 1 million token This free quota is valid for 90 days from the date of Model Studio activation, model release, or application approval, whichever is later. |
tongyi-embedding-vision-flash | 768 | Image/Video: $0.03 Text: $0.09 |
Input formats and usage limits
| Fused multimodal model | ||||
|---|---|---|---|---|
| Model | Text | Image | Video | Request limit |
| qwen3-vl-embedding | Supports 33 major languages, such as Chinese, English, Japanese, Korean, French, and German.
All supported languages Chinese, Japanese, Korean, Indonesian, Vietnamese, Thai, English, French, German, Russian, Portuguese, Spanish, Italian, Swedish, Danish, Czech, Norwegian, Dutch, Finnish, Turkish, Polish, Swahili, Romanian, Serbian, Greek, Kazakh, Uzbek, Cebuano, Arabic, Urdu, Persian, Hindi/Devanagari, and Hebrew. | JPEG, PNG, WEBP, BMP, TIFF, ICO, DIB, ICNS, and SGI (URL or Base64 supported) | MP4, AVI, and MOV (URL only) | The total number of content elements in a single request cannot exceed 20. The number of images cannot exceed 5. Images, text, and videos share this limit. |
| Independent multimodal model | ||||
| Model | Text | Image | Video | Request limit |
| tongyi-embedding-vision-plus | Chinese/English | JPG, PNG, and BMP (URL or Base64 supported) | MP4, MPEG, AVI, MOV, MPG, WEBM, FLV, and MKV (URL only) | No limit on the number of content elements. The total number of input tokens must not exceed the token limit. |
| tongyi-embedding-vision-flash | ||||
| multimodal-embedding-v1 | The total number of content elements in a single request cannot exceed 20. A request can contain a maximum of 1 image, 1 video, and 20 text entries. These items share the total limit. | |||
All models accept text, image, and video inputs, individually or in combination.tongyi-embedding-vision-plus,tongyi-embedding-vision-flashmodels also supportmulti_imagesfor image sequences.
Model capabilities
Model | Default dimension | Vector type | Supported inputs | Description |
qwen3-vl-embedding | 2560 | Independent / Fusion | text, image, video, multiple images | Fusion mode, enabled with the |
tongyi-embedding-vision-plus | 1152 | Independent only | text, image, video, multi_images | Supports |
tongyi-embedding-vision-flash | 768 | |||
multimodal-embedding-v1 | 1024 | text, image, video | The vector dimension is fixed at 1,024 and cannot be configured. |
Prerequisites
Obtain an API key and export the API key as an environment variable. If you use an SDK to make calls, install the DashScope SDK.
HTTP call
POST https://dashscope.aliyuncs.com/api/v1/services/embeddings/multimodal-embedding/multimodal-embedding
Request |
The following example uses the |
Request headers | |
Content-Type string (Required)The content type of the request. Must be application/json. | |
Authorization string (Required)Authenticates the request with a Model Studio API key. Example: Bearer sk-xxxx. | |
Request body | |
model string(required)The model name. Select a model from the Model overview. | |
input object(required)The input content.
Properties contents array(required)The content items to process. Each item is a dictionary or string that specifies the content type and value in the format {"modality_type": "input_string_or_image/video_url"}. The supported modality types are text, image, video, and multi_images.The
object (optional)Embedding processing parameters. For HTTP calls, you must wrap these parameters in the parameters object. For SDK calls, you can use these parameters directly.
Properties output_type string (optional)The format for the output embedding representation. Currently, only dense is supported.dimension integer (optional)The output embedding dimension. Supported values vary by model:
float (optional)The video frame sampling rate. A smaller value extracts fewer frames. The valid range is [0, 1], and the default is 1.0.instruct string (optional)A custom task description to help the model understand the query's intent. English instructions are recommended and can improve performance by 1% to 5%.enable_fusion bool (optional)Specifies whether to generate a fused embedding. This parameter is supported only by the qwen3-vl-embedding model. When set to true, all multimodal content in the contents array is fused into a single embedding. The default value is false, which generates an independent embedding for each modality. Fused embeddings support combinations such as text and image, text and video, multiple images and text (by passing multiple image items), and a mix of image, video, and text. This is suitable for retrieval scenarios that require a comprehensive understanding of multimodal content. |
Response |
The usage field varies by model. See the following descriptions:
|
output objectTask output.
Properties embeddings arrayA list of the resulting embeddings, where each object corresponds to an input element.
Properties index intThe index of the result in the input list.embedding arrayThe dimension of the generated array of embeddings depends on the model and the dimension parameter.type stringThe input type for this result. text, image, video, and multi_images correspond to text, image, video, and multi-image inputs, respectively. Special types include: fusion is the type returned by the qwen3-vl-embedding model in fused embedding mode; vl is the type returned by the qwen3-vl-embedding model in independent embedding mode. | |
request_id stringUnique request identifier for tracing and troubleshooting. | |
code stringError code. Returned only for failed requests. See Error codes. | |
message stringDetailed error message. Returned only for failed requests. See Error codes. | |
usage objectStatistics about token usage.
Properties input_tokens intThe number of tokens in the input content for the current request. For the qwen3-vl-embedding and qwen2.5-vl-embedding models, this value includes only text tokens (including system template tokens) and does not include image or video tokens. For the tongyi-embedding-vision-* series models, this value includes the total number of text, image, and video tokens.input_tokens_details objectA detailed breakdown of input tokens. This field is returned only by the tongyi-embedding-vision-* series models. It is not returned by the qwen3-vl-embedding, qwen2.5-vl-embedding, or multimodal-embedding-v1 models.
Properties image_tokens intThe number of tokens for the input images or videos.text_tokens intThe number of tokens for the input text.intThe number of tokens in the output for the current request. This field is returned only by the tongyi-embedding-vision-* series models.total_tokens intThe total number of input and output tokens. This field is returned by the qwen3-vl-embedding and tongyi-embedding-vision-* models, but not by the qwen2.5-vl-embedding or multimodal-embedding-v1 models. For the qwen3-vl-embedding model, total_tokens = input_tokens + image_tokens.image_tokens intThe number of tokens for the input images or videos in the current request. The system samples frames from input videos, with the maximum number of frames controlled by the system configuration, and then calculates the tokens based on the processed result. This field is returned as a top-level field only by the qwen3-vl-embedding, qwen2.5-vl-embedding, and multimodal-embedding-v1 models. For the tongyi-embedding-vision-* series models, the image token count is included in input_tokens_details.image_tokens.image_count intThe number of images in the input for the current request. This field is returned only by the multimodal-embedding-v1 model.duration intThe duration of the input video in seconds. This field is returned only by the multimodal-embedding-v1 model. |
SDK usage
The SDK'sinputparameter maps toinput.contentsin the HTTP request body, but their structures are different.
Code examples
- Image embedding
- Video embedding
- Text embedding
- Fused embedding
- Multi-image fused embedding
- 2026-03-06 snapshot version
- Image URL
- Local image