Skip to content
PS plain-sight
Local · MIT · Florence-2

An AI says what it sees.

plain-sight wraps Florence-2 as an MCP server and a CLI: prose descriptions at three detail tiers, OCR, and exact-basename .txt caption sidecars for LoRA training sets. Deterministic against a pinned model revision, and every payload names the weights that produced it. No cloud, no telemetry, never trust_remote_code.

Install

pip install -e .

Preview

plain-sight batch ./dataset --dry-run

Dataset lane

plain-sight batch ./dataset --prefix "mcpt_style, "

Features

The describing sibling of ai-eyes — it narrates, ai-eyes measures.

Three detail tiers

Florence-2's native ladder: one sentence (low), a few sentences (medium), a full paragraph (high) — plus OCR for reading text off pixels.

The dataset lane

Exact basename pairing (img_0042.png → img_0042.txt), bare prefix+caption+suffix, atomic writes, and colliding stems refused outright rather than silently merged into one caption.

Reproducible, and provable

do_sample=false + beam search against a pinned model revision. Every payload carries the resolved revision, and --manifest records a whole run, so a caption set can be attributed to the weights that made it.

MIT end to end

The tool is MIT and the model is pinned to florence-community/Florence-2-large — MIT, loaded with native transformers classes. trust_remote_code is never used.

MCP + CLI, one engine

Five MCP tools for Claude (describe_image, describe_batch, read_text, sight_status, sight_selftest) and a five-command CLI share the same Florence2Engine.

Honest about what it cannot know

Captions can invent detail, and OCR cannot report the absence of text -- a blank image still returns a string. plain-sight qualifies both rather than hiding them, and pairs with ai-eyes-mcp (SigLIP2) when a claim needs measuring.

Usage

Install

git clone https://github.com/mcp-tool-shop-org/plain-sight
cd plain-sight
pip install -e .

Describe + OCR

plain-sight describe hero.png --detail high
plain-sight ocr screenshot.png

Caption a training set

plain-sight batch ./dataset \
  --prefix "mcpt_style, " --detail high

Claude Code (MCP)

{
  "mcpServers": {
    "plain-sight": { "command": "plain-sight-mcp" }
  }
}