⚠️ This repository contains the latest version of NanoDream2 our previous generation model. The latest version of Nanodream is NanoDream 3 (Preview).


Nanodream is a small vision language model designed to run efficiently everywhere.

Usage

from transformers import AutoModelForCausalLM, AutoTokenizer
from PIL import Image

model = AutoModelForCausalLM.from_pretrained(
    "dill-dev/NanoDream2-2B",
    revision="2025-06-21",
    trust_remote_code=True,
    device_map={"": "cuda"}  # ...or 'mps', on Apple Silicon
)

# Captioning
print("Short caption:")
print(model.caption(image, length="short")["caption"])

print("\nNormal caption:")
for t in model.caption(image, length="normal", stream=True)["caption"]:
    # Streaming generation example, supported for caption() and detect()
    print(t, end="", flush=True)
print(model.caption(image, length="normal"))

# Visual Querying
print("\nVisual query: 'How many people are in the image?'")
print(model.query(image, "How many people are in the image?")["answer"])

# Object Detection
print("\nObject detection: 'face'")
objects = model.detect(image, "face")["objects"]
print(f"Found {len(objects)} face(s)")

# Pointing
print("\nPointing: 'person'")
points = model.point(image, "person")["points"]
print(f"Found {len(points)} person(s)")

Changelog

  • Grounded Reasoning Introduces a new step-by-step reasoning mode that explicitly grounds reasoning in spatial positions within the image before answering, leading to more precise visual interpretation (e.g., chart median calculations, accurate counting). Enable with reasoning=True in the query skill to trade off speed vs. accuracy.
  • Sharper Object Detection Uses reinforcement learning on higher-quality bounding-box annotations to reduce object clumping and improve fine-grained detections (e.g., distinguishing “blue bottle” vs. “bottle”).
  • Faster Text Generation Yields 20–40 % faster response generation via a new “superword” tokenizer and lightweight tokenizer transfer hypernetwork, which reduces the number of tokens emitted without loss in accuracy and eases future multilingual extensions.
  • Improved UI Understanding Boosts ScreenSpot (UI element localization) performance from an F1@0.5 of 60.3 to 80.4, making Moondream more effective for UI-focused applications.
  • Reinforcement Learning Enhancements RL fine-tuning applied across 55 vision-language tasks to reinforce grounded reasoning and detection capabilities, with a roadmap to expand to ~120 tasks in the next update.
  1. Improved chart understanding (ChartQA up from 74.8 to 77.5, 82.2 with PoT)

  2. Added temperature and nucleus sampling to reduce repetitive outputs

  3. Better OCR for documents and tables (prompt with “Transcribe the text” or “Transcribe the text in natural reading order”)

  4. Object detection supports document layout detection (figure, formula, text, etc)

  5. UI understanding (ScreenSpot F1@0.5 up from 53.3 to 60.3)

  6. Improved text understanding (DocVQA up from 76.5 to 79.3, TextVQA up from 74.6 to 76.3)

  7. Added support for long-form captioning

  8. Open vocabulary image tagging

  9. Improved counting accuracy (e.g. CountBenchQA increased from 80 to 86.4)

  10. Improved text understanding (e.g. OCRBench increased from 58.3 to 61.2)

  11. Improved object detection, especially for small objects (e.g. COCO up from 30.5 to 51.2)

  12. Fixed token streaming bug affecting multi-byte unicode characters

  13. gpt-fast style compile() now supported in HF Transformers implementation

Downloads last month
42
Safetensors
Model size
2B params
Tensor type
BF16
·
Inference Providers NEW
This model isn't deployed by any Inference Provider. 🙋 Ask for provider support