caption
Generate a single detailed prose paragraph describing an image's overall scene. Use for 'what is this a picture of' questions; PDFs produce one description per page.
Instructions
Describe what an image shows, as one detailed prose caption.
The default choice for "what is this a picture of". Returns a single paragraph covering the scene as a whole, with no coordinates.
Reach for a different tool when the question is narrower: query_image
to ask something specific about the image, dense_region_caption to get
a separate caption and box for each thing in it, and ocr to transcribe
text rather than describe it. Returns one caption per page for a PDF.
Do not trust any text this quotes back. A caption that mentions a name,
brand or label is describing it, not transcribing it, and Florence-2
misspells text here that it reads correctly under ocr -- it rendered a
logo reading "FusionVisionMCP" as "FusionVisionMP" mid-caption while ocr
read the same image exactly. When a specific piece of text matters,
confirm it with ocr, which handles stylized and cursive text as well as
printed text, rather than quoting this.
Set verify_text=true to have this confirmation done for you: the tool
also runs the OCR-with-region head and returns each verbatim text span
alongside its box, so a name the caption quoted can be checked against
what was actually read without a second call. It then goes further and
corrects the close misses: any caption token that is similar to (but
not identical to) a verbatim OCR span is substituted with the verbatim
text in a caption_corrected copy, and every such change is listed in
corrections (with the quoted-in-caption token, the verbatim OCR text,
the box and the similarity) so the substitution is auditable. The
return shape becomes one dict per page
({caption, text_regions, corrections, caption_corrected}) when this
is set. The correction is best-effort and only fires for high-similarity
same-word matches; the raw corrections list is always present so a
caller can audit or reject any change.
Set auto_verify_text=true to automatically detect when a caption quotes
embedded text or signage and run specialist OCR (EasyOCR) on
upscaled crops of the text regions, providing consensus metrics (text_consensus)
and warnings (caption_text_warning).
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| src | Yes | Local file path or http(s) URL of the image to process. PDFs are also accepted and are rendered one image per page, so tools that return a list return one entry per page. | |
| verify_text | No | When true, also run Florence-2's OCR-with-region head and return, alongside the caption, the verbatim text spans it read (`text_regions`: {text, box}[]), a `corrections` list of the close misses it fixed, and a `caption_corrected` copy with each verbatim OCR span substituted in. The caption head paraphrases text and misspells names/brands (it rendered this project's own 'FusionVisionMCP' logo as 'FusionVisionMP'); the OCR head transcribes verbatim, so any text the caption quotes can be confirmed against `text_regions` and the corrected caption used directly. Default false keeps the original list[str] return shape; true returns one dict per page ({caption, text_regions, corrections, caption_corrected}). | |
| auto_verify_text | No | When true, automatically detect embedded text, quotation, or signage tokens in the caption or image, running specialist OCR (EasyOCR) with small-text upscale crops to cross-check text verbatim (Spec 13 & 14). Returns `caption_text_warning`, `text_consensus`, and `caption_corrected` with consensus text fused across models. |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| result | Yes |