Skip to main content
Glama

Prompt Transform

lab_prompt_transform
Idempotent

Turn a loose idea into a production-ready image or video prompt — the same Dreamer engine the FilmLab web UI uses (modes: beautify, storyboard, polish, format, shorten, expand, simplify, custom, stiluebernahme). beautify GENERATES (a 50-character thought comes back as a full prompt); polish/format/shorten/expand/simplify PRESERVE what is there. medium=video plus depth=skeleton yields the 15-block production prompt; depth only applies to video. anlass only applies to beautify. custom and stiluebernahme require instruction. For video the answer carries clip_duration_seconds — hand THAT number to lab_animate(duration_seconds), otherwise a prompt timed to 12s gets rendered as lab_animate's 5s default. In an Apps-capable host this opens as a form you can adjust and re-run; elsewhere it answers with the prompt as plain text. Pass tool (the registry key you will hand to lab_animate/lab_generate) and the finished prompt is laid out in the skeleton of that model family — location, camera, lens and light land where that family reads them, worded the way it reads them; families without a measured rule keep them appended as before, and the answer says so (prompt_skelett).

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
modeNoDefault beautify (generates). beautify: Aus der Idee einen vollständigen Prompt bauen — ergänzt Licht, Optik, Kamera, Stimmung | storyboard: Szene in 4–8 nummerierte Panels zerlegen — je Panel ein eigenständiger Bild-Prompt | polish: Wortwahl polieren, Flow verbessern, Redundanz entfernen — Länge bleibt | format: In // Subject // Lighting // Camera Sektionen ordnen, Wortlaut bleibt | shorten: ~30% kürzer, jedes Wort muss Gewicht tragen | expand: Texturen, Lichtreflexe, atmosphärische Details | simplify: Direkt und klar, weniger Fachjargon | custom: Eigene Anweisung — z.B. 'Mach es düsterer' | stiluebernahme: Licht, Optik und Look aus einer Beschreibung — Motiv und Bildaufbau bleiben wörtlich
toolNoOptional: the model you will render with, as the registry key from lab_list_models. Decides which family skeleton lays out camera, lens and light — and whether it is a measured rule or the plain appended form.
depthNovideo only: sketch (5 blocks, default) or skeleton (15 blocks)
anlassNobeautify only: what the image is FOR. Default frei
mediumNophoto (default) or video — decides the section layout
promptYesThe text to work on — a loose thought is enough for beautify
winkelNoOptional: change the camera angle of the EXISTING prompt — a key such as augen, unter, auf, vogel, frosch, schraeg, ots, pov, profil. Implies mode=custom and needs no instruction; combinable with groesse.
familieNoOptional, instead of tool: the model family by name when no registry key is at hand. Medium decides whether the image or the video skeleton applies.
groesseNoOptional: change the shot size of the EXISTING prompt, keeping subject, light and place — a key such as ews, ws, mws, ms, mcu, cu, ecu, macro. Implies mode=custom and needs no instruction. An unknown key is rejected with the known ones.
technikenNoUp to three directing technique keys from lab_regie_techniken. Their prompt fragments are appended verbatim after the transform, ordered angle, framing, composition, movement. One angle and one movement at most; movement only with medium=video.
project_idNoOptional: the project this prompt is for. With tool or familie, its Lens Lab optics, Pose Director framing and gaffer light are laid into the prompt. If the project has look_in_post on and a Lens Lab set chosen, grain, halation, vignetting, chromatic aberration and edge softness are left out — the FilmLab Look plugin adds them in Resolve; the answer lists what was removed.
referenzenNoThe references the prompt may point at, IN THE ORDER you will pass them to lab_animate/lab_propose. Write @bild1, @video1, @ton1 in your prompt and they come back as the markers the model actually reads (@Image1, @Video2, @Audio1) — the reference clip itself is @Video1, so the first video reference is @Video2. A mention with no matching reference is rejected instead of being left in the text, where it would reach the model as a word.
instructionNoRequired for custom (an order, e.g. 'make it darker') and stiluebernahme (a style description)
location_idNoOptional, only with tool or familie: the location board whose prompt prefix becomes the place block — the same board you will hand to lab_animate/lab_generate.
duration_secondsNovideo only: the clip length in seconds the ACTION TIMING beats are written to. Default 5 (what lab_animate renders without an explicit duration). Rejected for medium=photo.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • changedInput schema / properties / project_id / description
      Previous value: -"Optional, only with tool or familie: the project whose Lens Lab optics, Pose Director framing and gaffer light should be laid into the prompt."New value: +"Optional: the project this prompt is for. With tool or familie, its Lens Lab optics, Pose Director framing and gaffer light are laid into the prompt. If the project has look_in_post on and a Lens Lab set chosen, grain, halation, vignetting, chromatic aberration and edge softness are left out — the FilmLab Look plugin adds them in Resolve; the answer lists what was removed."
  2. Changed1 schema field changed
    • addedInput schema / additionalProperties
      Added value: +false
  3. Changed2 schema fields changed
    • addedInput schema / properties / groesse
      Added value: +{
      +  "description": "Optional: change the shot size of the EXISTING prompt, keeping subject, light and place — a key such as ews, ws, mws, ms, mcu, cu, ecu, macro. Implies mode=custom and needs no instruction. An unknown key is rejected with the known ones.",
      +  "type": "string"
      +}
    • addedInput schema / properties / winkel
      Added value: +{
      +  "description": "Optional: change the camera angle of the EXISTING prompt — a key such as augen, unter, auf, vogel, frosch, schraeg, ots, pov, profil. Implies mode=custom and needs no instruction; combinable with groesse.",
      +  "type": "string"
      +}
  4. Changed1 schema field changed
    • changedInput schema / properties / anlass / enum
      Previous value: -[
      -  "frei",
      -  "interview",
      -  "szene",
      -  "portrait",
      -  "street",
      -  "editorial"
      -]New value: +[
      +  "frei",
      +  "interview",
      +  "szene",
      +  "portrait",
      +  "street",
      +  "editorial",
      +  "handy"
      +]
  5. First observed

TDQS

A4.8/5.0
Behavior5/5

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

Annotations only declare readOnly=false, idempotent, non-destructive; the description goes well beyond that by disclosing mode-specific behavior (generate vs preserve), medium/depth interdependencies, that the Apps host opens a re-runnable form while other hosts return plain text, that look_in_post suppresses grain/halation/vignetting and lists removals, and that unmatched references are rejected rather than passed through.

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

Conciseness4/5

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

The core purpose and mode-routing are front-loaded and nearly every sentence carries distinct information. However, the heavy em-dash run-on style makes it dense to parse for a 15-parameter tool, and a few clauses could be tightened without losing meaning.

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 15-parameter tool with no output schema, the description covers return-side details (clip_duration_seconds, prompt_skelett, marker rewriting to @Image1/@Video2/@Audio1), host-dependent presentation, and edge cases like unmatched-reference rejection and look_in_post removals. An agent has enough to invoke it correctly.

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

Parameters4/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; the description adds integration semantics the schema lacks, such as handing clip_duration_seconds to lab_animate's duration_seconds and using `tool` so the prompt lays out in that model family's skeleton. Most other param text (mode meanings, video-only depth) largely restates the schema, so it does not earn a full 5.

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 opening states a specific verb and resource — 'Turn a loose idea into a production-ready image or video prompt' — and immediately identifies the engine and its modes. An agent can distinguish this transform tool from generation siblings (lab_generate, lab_animate) without opening the schema.

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 routes usage: beautify GENERATES while polish/format/shorten/expand/simplify PRESERVE, custom and stiluebernahme require an instruction, depth only applies to video and anlass only to beautify. It also names the handoff — pass clip_duration_seconds to lab_animate(duration_seconds) — and names sibling tools (lab_animate, lab_generate, lab_list_models, lab_regie_techniken).

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

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources