Moondream logo

How to automate tagging images and video with Moondream's vision AI

The /query skill allows you to easily generate tags for your images or video frames. You could tag approximately 3,370 images or frames of video for just $1 with our cloud API or run for free with Moondream Station.

With this you can build powerful visual search and smart organization of huge media libraries more efficiently than ever before.

Digital asset management with automated tagging (light)
Structured JSON Output

Generate tags in a structured JSON format, perfect for databases and APIs that need consistent, parseable data.

Try in playground
Structured JSON Output

Prompt

provide 10 tags for this image using this format: { "tags": [] }

Response

1491ms • 790 tokens • $0.000336
{
  "tags": [
    "Golden Gate Bridge",
    "suspension bridge",
    "orange",
    "water",
    "sky",
    "mountains",
    "sunrise",
    "fog",
    "towers",
    "cables"
  ]
}

Code Example

import moondream as md
from PIL import Image

# Initialize with API key
model = md.vl(api_key="your-api-key")

# Load an image
image = Image.open("path/to/image.jpg")

# Ask a question with reasoning enabled
result = model.query(image, "provide 10 tags for this image using this format: { \"tags\": [] }", reasoning=True)
answer = result["answer"]
request_id = result["request_id"]
print(f"Answer: {answer}")
print(f"Request ID: {request_id}")
Comma-Separated Lists

Simple, universal format that works anywhere—from search engines to spreadsheets to human-readable displays.

Try in playground
Comma-Separated Lists

Prompt

return comma separated list of tags

Response

1197ms • 781 tokens • $0.000329
black and white, woman, blonde hair, black dress, black gloves, handgun, round table, decanter, short glass, short tumbler, round ashtray, pen, dark background, fireplace

Code Example

import moondream as md
from PIL import Image

# Initialize with API key
model = md.vl(api_key="your-api-key")

# Load an image
image = Image.open("path/to/image.jpg")

# Ask a question with reasoning enabled
result = model.query(image, "return comma separated list of tags", reasoning=True)
answer = result["answer"]
request_id = result["request_id"]
print(f"Answer: {answer}")
print(f"Request ID: {request_id}")
Category Classification

Classify images into predefined categories for organizing and routing media at scale.

Try in playground
Category Classification

Prompt

return a category tag of dining out or groceries

Response

1189ms • 744 tokens • $0.000230
dining out

Code Example

import moondream as md
from PIL import Image

# Initialize with API key
model = md.vl(api_key="your-api-key")

# Load an image
image = Image.open("path/to/image.jpg")

# Ask a question with reasoning enabled
result = model.query(image, "return a category tag of dining out or groceries", reasoning=True)
answer = result["answer"]
request_id = result["request_id"]
print(f"Answer: {answer}")
print(f"Request ID: {request_id}")
Get Started

Get Running in Minutes.

Moondream is open source and you can install and run it anywhere, for free. You can have it running on your computer or in our cloud in a matter of minutes.

Run It Yourself
  • Moondream Station is free
  • Works with our Python and Node clients
  • Works offline, fully under your control
  • CPU or GPU compatible
Moondream Station
Run in the Cloud
  • Spin up instantly—no downloads or DevOps
  • $5 in free monthly credits, no card required
  • Predictable pay-as-you-go pricing
  • 2 RPS on free tier, scales to 10 RPS or more with paid credits
Moondream Cloud