Skip to main content
Glama

develop

Render a developed preview by adjusting film stock, exposure, grain, or print paper. Only the fields you pass change; returns the developed preview image.

Instructions

Change the film recipe (only the fields you pass) and return the developed preview.

Input Schema

NameRequiredDescriptionDefault
filmNoCamera film stock (negative, slide/positive or cine). See list_stocks. Default 'kodak_portra_400'. Changing film also switches to its recommended paper unless print is given.
grainNoStochastic silver-halide grain. Only rendered in quality='full' (previews skip it for speed). Default True.
printNoPrint paper or cine print film. Ignored for slide films and when scan_negative is on. Default 'kodak_portra_endura'.
resetNoStart from the default recipe before applying the given fields.
qualityNo'preview' (fast, no grain) or 'full' (grain and all spatial effects, slower).preview
contrastNoMultiplier on the film's characteristic-curve gamma. >1 like push processing, <1 like pull. Range 0.5 to 1.6. Default 1.0.
couplersNoStrength of DIR inhibitor couplers (inter-layer effects). Higher = more saturation and local contrast/acutance, 0 = off. Range 0.0 to 2.0. Default 1.0.
halationNoRed/orange glow around highlights from light bouncing off the film base, plus in-emulsion scatter. Default True.
preflashNoUniform pre-exposure of the paper. Lowers print contrast and opens up the shadows. Try 0.005-0.05. Range 0.0 to 0.1. Default 0.0.
diffusionNoStrength of a Pro-Mist style diffusion filter on the camera, in filter grades (0, 1/8, 1/4, 1/2, 1, 2). 0 = no filter. Range 0.0 to 2.0. Default 0.0.
grain_sizeNoGrain particle area in µm². Roughly 0.1 ≈ ISO 100, 0.4 ≈ ISO 400; bigger = coarser. Range 0.02 to 2.0. Default 0.2.
exposure_evNoExposure compensation of the virtual camera in stops, on top of auto exposure. +1 = one stop over. Negative film holds highlights gracefully; underexposure gets muddy and grainy. Range -4.0 to 4.0. Default 0.0.
auto_exposureNoMeter the scene like a camera so midgray lands on the film's midgray before compensation. Default True.
scan_negativeNoScan the developed film itself instead of printing it (orange-masked negative, or the slide for positive films). Default False.
film_format_mmNoLong edge of the film frame in mm (35 = 135, 60/120 = medium format). Smaller formats = bigger grain and halation relative to the frame. Range 8.0 to 120.0. Default 35.0.
m_filter_shiftNoMagenta filtration shift from neutral, Kodak CC units. +M makes the print greener, -M makes it more magenta. Range -40.0 to 40.0. Default 0.0.
print_exposureNoEnlarger exposure multiplier (like print time). >1 = darker print, <1 = lighter print. Range 0.2 to 3.0. Default 1.0.
scatter_amountNoIn-emulsion light scatter (softness). 1 = physical default, 0 = none. Range 0.0 to 2.0. Default 1.0.
y_filter_shiftNoYellow filtration shift from neutral, Kodak CC units. +Y makes the print bluer/cooler, -Y makes it yellower/warmer. Range -40.0 to 40.0. Default 0.0.
halation_amountNoMultiplier on halation strength (1 = physical default for this stock). Try 3-8 for a CineStill-like glow. Range 0.0 to 10.0. Default 1.0.
diffusion_familyNoDiffusion filter family. Default 'black_pro_mist'.
highlight_boost_evNoReconstructs clipped highlights before they hit the film, so light sources bloom and halate more realistically. Range 0.0 to 4.0. Default 0.0.
print_compensationNoLike a lab printer: compensate print exposure for exposure_ev, so exposure_ev mostly changes tonality (highlight/shadow latitude, grain, saturation) rather than brightness. Turn off to make exposure_ev brighten/darken the print directly. Default True.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations, the description carries the full burden of behavioral disclosure. It states that only passed fields are changed and that a developed preview is returned, but it does not say whether changes persist, whether they are undoable, what permissions are needed, or how costly a 'full' quality render may be. For a state-changing tool with 23 parameters, this is a significant gap.

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 a single front-loaded sentence with no filler. It states the action, the partial-update rule, and the return value efficiently.

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

Completeness2/5

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

Given 23 parameters, no annotations, and no output schema, the description is too thin. It does not explain what the developed preview contains, how it relates to the current state, or when to use this tool rather than its siblings. The rich parameter schema helps, but the description remains incomplete for a tool of this complexity.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema already documents each parameter in detail. The description adds only the useful partial-update clarification that 'only the fields you pass' are changed, which slightly extends beyond the schema but does not provide parameter-specific meaning. The baseline of 3 is appropriate when the schema does the heavy lifting.

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

Purpose4/5

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

The description uses a specific verb and resource: 'Change the film recipe' and 'return the developed preview.' It is clear what the tool does, but it does not distinguish itself from siblings such as frame, compare, or list_stocks, leaving the agent to infer when this tool is preferred.

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

Usage Guidelines2/5

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

There is no explicit when-to-use or when-not-to-use guidance, and no alternatives are named. The phrase 'only the fields you pass' describes partial-update behavior but does not tell the agent under what circumstances to call develop versus frame, compare, or list_stocks.

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