Skip to main content
Glama

critique_composition

Identify framing issues and subject placement in an image, then explain why a weak composition looks off. Use it to get actionable visual feedback instead of just a numeric score.

Instructions

Critique an image's composition: framing, and, for low-scoring images, why it looks off.

Combines score_aesthetics (numeric quality), a rule-of-thirds/centeredness check on the main subject's bounding box, and — only when the aesthetic score is below low_score_threshold — a Moondream2 VQA explanation of what specifically looks unbalanced. Use it over score_aesthetics alone when you need to know why a shot is weak and where its subject sits in the frame, rather than just how it scores.

Returns image_size, subject_box, aesthetics, and framing (with thirds_offset near 0 meaning the subject sits on a rule-of-thirds power point, and center_offset near 0 meaning it is dead-center instead).

Pass target_subject whenever you know what the subject is — from your own context or a prior caption call. Auto-detection picks the largest, most central region and degrades on busy scenes that fill the frame, where no single region is the subject. If nothing can be located, returns a soft-failure shape (image size, aesthetic score, and a "note") rather than raising. Only the first page of a PDF is assessed.

Set style_context=true to also get the image's medium (style plus style_distribution), so the aesthetic score is read in the context of its medium — the documented photography bias means a non-photographic medium should not be judged by the raw score.

Set compare_with to a reference image to switch to relative mode: both images are critiqued and the result becomes {image, reference, delta, preferred} (tie when |delta| < 0.05), plus a cross_medium_warning when style_context=true and the two media differ. Same like-with-like framing as score_aesthetics' compare_with; the absolute score is not recalibrated, the relative delta is.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
srcYesLocal 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.
compare_withNoPath or URL of a reference image to compare against. When set, both the image and the reference are critiqued and the result becomes {image, reference, delta, preferred} (plus cross_medium_warning when style_context=true and the media differ). Same like-with-like framing as score_aesthetics' compare_with. Omit (default) for the single-image critique.
style_contextNoWhen true, also classify the image's medium/genre (photograph, oil painting, ...) using the already-loaded CLIP backbone and add it to the result as `style` and `style_distribution`. The aesthetic head was trained on photographs, so a non-photographic medium is the context the score is read in. Default false omits the classification.
target_subjectNoName of the main subject, e.g. 'the dog'. Omit to auto-detect it.
low_score_thresholdNoBelow this aesthetic score, ask Moondream2 to explain why.

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault

No arguments

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.8.2

TDQS

A5/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden and is highly disclosive. It states that the VQA explanation only triggers below `low_score_threshold`, that auto-detection degrades on busy scenes, that a soft-failure shape is returned rather than raising, that only the first PDF page is assessed, and that relative mode does not recalibrate the absolute score.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is long but densely structured, with each paragraph covering one distinct concern: core behavior, return shape, subject detection and PDF handling, style context, and relative mode. The core action and primary alternative are front-loaded, and there is no filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 5-parameter tool with multiple modes, the description covers inputs, return semantics, edge cases, and failure behavior. It clarifies ambiguous return fields like `thirds_offset`, `center_offset`, `delta`, `preferred`, and `cross_medium_warning`, so nothing an agent needs to invoke it correctly is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3, but the description adds substantial meaning beyond the schema. It explains that `target_subject` can come from a prior `caption` call, that `low_score_threshold` gates the Moondream2 explanation, that `style_context` adds `style`/`style_distribution`, and that `compare_with` switches the result shape and defines the tie threshold.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names a specific verb and resource ('Critique an image's composition') and details the constituent checks: framing, rule-of-thirds/centeredness on the subject bounding box, and a conditional Moondream2 explanation. It explicitly differentiates itself from the sibling `score_aesthetics`, so an agent can tell them apart without inspecting schemas.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It explicitly says when to use this tool over `score_aesthetics` ('when you need to know *why* a shot is weak and where its subject sits in the frame, rather than just how it scores'). It also gives parameter-level guidance: pass `target_subject` if known, set `style_context` for medium-aware scoring, and set `compare_with` for relative mode.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.