> ## Documentation Index
> Fetch the complete documentation index at: https://student-213fb9fc.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# Vision

> Multimodal vision capabilities with AJ STUDIOZ Cloud Infra

## Overview

Several models on AJ STUDIOZ Cloud Infra support **vision** — the ability to understand images alongside text.

## Vision-Capable Models

| Model                    | Notes                              |
| ------------------------ | ---------------------------------- |
| `qwen3-vl:235b`          | State-of-the-art vision + language |
| `qwen3-vl:235b-instruct` | Instruction-tuned vision model     |
| `minimax-m2.5`           | Multimodal understanding           |
| `minimax-m2.1`           | Multimodal, general purpose        |
| `gemini-3-flash-preview` | Fast vision model                  |

***

## Image Input Format

Images are passed as `base64` encoded strings or public URLs in the message content:

### Using a URL

```python theme={null}
from openai import OpenAI

client = OpenAI(
    base_url="https://api.ajstudioz.co.in/v1",
    api_key="YOUR_API_KEY"
)

response = client.chat.completions.create(
    model="qwen3-vl:235b-instruct",
    messages=[
        {
            "role": "user",
            "content": [
                {
                    "type": "image_url",
                    "image_url": {
                        "url": "https://upload.wikimedia.org/wikipedia/commons/thumb/4/47/PNG_transparency_demonstration_1.png/280px-PNG_transparency_demonstration_1.png"
                    }
                },
                {
                    "type": "text",
                    "text": "What is in this image?"
                }
            ]
        }
    ]
)
print(response.choices[0].message.content)
```

### Using Base64

```python theme={null}
import base64
from openai import OpenAI

client = OpenAI(
    base_url="https://api.ajstudioz.co.in/v1",
    api_key="YOUR_API_KEY"
)

# Read and encode the image
with open("image.jpg", "rb") as f:
    image_data = base64.b64encode(f.read()).decode("utf-8")

response = client.chat.completions.create(
    model="qwen3-vl:235b-instruct",
    messages=[
        {
            "role": "user",
            "content": [
                {
                    "type": "image_url",
                    "image_url": {
                        "url": f"data:image/jpeg;base64,{image_data}"
                    }
                },
                {
                    "type": "text",
                    "text": "Describe this image in detail."
                }
            ]
        }
    ]
)
print(response.choices[0].message.content)
```

***

## Multiple Images

```python theme={null}
response = client.chat.completions.create(
    model="qwen3-vl:235b",
    messages=[
        {
            "role": "user",
            "content": [
                {"type": "image_url", "image_url": {"url": "https://example.com/image1.jpg"}},
                {"type": "image_url", "image_url": {"url": "https://example.com/image2.jpg"}},
                {"type": "text", "text": "Compare these two images."}
            ]
        }
    ]
)
```

***

## Supported Image Formats

| Format         | Support |
| -------------- | ------- |
| JPEG           | ✅       |
| PNG            | ✅       |
| WebP           | ✅       |
| GIF (static)   | ✅       |
| GIF (animated) | ❌       |
| PDF            | ❌       |

<Note>
  Maximum image size is **20MB**. For best performance, use images under 2MB.
</Note>
