Skip to main content
Glama
Hermoso

Hermoso

Official

Finish video

finish_video

Add reviewer-style proof pills and optional film grain to an existing rendered video URL, returning a new file while leaving the original untouched.

Instructions

Post-process an EXISTING rendered video (its served mp4 URL) with the proven direct-response 'reviewer' finish and/or a film-grain pass — no AI model, ~30s, billed for its compute only. pills=true composites a header pill (e.g. '10/10 would buy again'), a brand-accent sub-pill, and 3-4 green-check proof pills cascading in on the beat (YOU author the copy: header ≤40 chars, sub ≤34, each point ≤44 — concrete real benefits, never fabricated stats). grain=true applies a subtle camera-grain finish that makes photoreal AI renders look phone-shot ('less AI') — works alone or with pills. Returns a NEW video; the original is untouched.

Input Schema

NameRequiredDescriptionDefault
subNoaccent sub-pill copy, ≤34 chars (usually the product/brand)
grainNodefault false — anti-AI film-grain finish
pillsNodefault true — set false for a grain-only pass
accentNobrand accent hex for the sub-pill
headerNoheader pill copy, ≤40 chars (required when pills is on)
pointsNo3-4 proof points, ≤44 chars each
videoUrlYesthe served URL of the video to finish (from a previous render/job)

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changedv0.1.161
    • changedOutput schema / (root)
      Previous value: -{
      -  "$schema": "http://json-schema.org/draft-07/schema#",
      -  "additionalProperties": false,
      -  "properties": {
      -    "jobId": {
      -      "description": "the render job id — poll get_job with this id to resume or inspect",
      -      "type": "string"
      -    },
      -    "model": {
      -      "anyOf": [
      -        {
      -          "type": "string"
      -        },
      -        {
      -          "type": "null"
      -        }
      -      ],
      -      "description": "the product-facing label of the model that rendered it"
      -    },
      -    "raw": {
      -      "description": "the raw job result payload (e.g. images[] for carousel template ads)"
      -    },
      -    "stillRendering": {
      -      "description": "true when the render is still in progress — keep polling get_job with jobId",
      -      "type": "boolean"
      -    },
      -    "url": {
      -      "anyOf": [
      -        {
      -          "type": "string"
      -        },
      -        {
      -          "type": "null"
      -        }
      -      ],
      -      "description": "the served URL of the finished media (absent/null while still rendering)"
      -    }
      -  },
      -  "type": "object"
      -}New value: +null
  2. First observedv0.1.0

TDQS

A4.5/5.0
Behavior5/5

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

Goes well beyond the annotations: no AI model, ~30s runtime, billed for compute only, returns a NEW video and leaves the original untouched — this materially clarifies the non-destructive, non-idempotent profile. It also warns that copy is authored by the caller and stats must never be fabricated.

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?

Front-loaded with the core action and the key constraint (EXISTING video), then behavior, then cost/runtime, then return semantics. Dense — one long paragraph with parentheticals — but every clause carries information; no filler.

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

Completeness4/5

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

No output schema, but the description covers return semantics (new video, original untouched), cost and runtime, and the toggles. Minor gap: it doesn't say whether the result is returned inline as a URL or as a job to poll, which matters for chaining.

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?

With 100% schema coverage the baseline is 3, but the description adds real semantic value: how pills and grain interact (works alone or together), that pills defaults on, and the authoring intent for header/sub/points (concrete real benefits, never fabricated stats). It stops short of explaining 'accent' or the videoUrl provenance details beyond 'from a previous render/job'.

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?

States a specific verb+resource+scope: post-process an EXISTING rendered video (served mp4 URL) with the 'reviewer' pill finish and/or film grain. Explicitly distinguishes itself from generation siblings by capitalizing EXISTING and noting 'no AI model', so an agent won't confuse it with render_ad/edit_video.

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

Usage Guidelines4/5

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

Clear context for use (you already have a rendered mp4 URL; grain makes photoreal AI renders look phone-shot; pills works with grain or alone). No explicit when-not or named alternatives such as edit_video or upscale_video, which would push this to a 5.

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

Deploy Server

Other Tools