← FrameoCONTENT HISTORY

Update to Frameo

Snapshot Oct 8, 2026 · 18:02 UTC · version 1.2.1

Collection source: downloaded plugin package.

WHAT CHANGED · RULE-BASED ANALYSIS

First saved snapshot

No earlier snapshot is available to establish a change.

Compare saved observations

Download comparison JSON
Full technical diff · 0 changed fields
Full snapshot data
{
  "description": "Three to five thumbnail concepts for a video: a face or product, a short title treatment, high contrast, delivered at upload size.",
  "included_files": [
    {
      "relative_path": "agents/openai.yaml",
      "size_in_bytes": 369
    },
    {
      "relative_path": "assets/icon.svg",
      "size_in_bytes": 334
    }
  ],
  "name": "thumbnail-set",
  "skill_md_contents": "---\nname: thumbnail-set\ndescription: \"Three to five thumbnail concepts for a video: a face or product, a short title treatment, high contrast, delivered at upload size.\"\n---\n\nNeeds: the video's title; a face photo or the product photos; the platform (YouTube 16:9, Instagram 1:1 or 4:5)\nCredits: about 110–180 (3–5 images at ~36 each, the default model's 4K tier)\nTime: 10 minutes\n\n## When\n\nAfter the video exists: a set to A/B. Not for the video itself.\n\n## Ask first\n\n1. **Title** — the 2–4 words that go on the image.\n2. **Subject** — a face (`show_upload` for files on the user's device, `import_media_url` for a web link; images attached to the chat do not reach Frameo, and `create_upload_url` is for clients that send the file themselves) or the product photos.\n3. **Platform** — sets the frame: YouTube 16:9, Instagram 1:1; for Instagram 4:5 generate at\n   3:4 (the nearest supported ratio) and crop at the end.\n\n## Steps\n\n**Before any paid step.** The project: `list_projects` (or `create_project`) gives the `project_id`\nand, when the project has several modules, the `module_id`; every call below that takes a project —\n`estimate_cost` included — gets that same pair; without it those tools answer `project_needed`. The\nquote: one `estimate_cost(items=[…])` prices a stage in one call, with the same project, model,\nsize and number of `image_urls` or `reference_image_urls` (`reference_count`) as each generate call, and returns a `quote_id` per item plus the total. Each generate call\nthen passes its own item's `quote_id` and `confirmed_by_user=true`. A quote is single-use and lasts\n15 minutes, so a long plan is priced stage by stage, right before each stage runs; a stage that\ncomes to more than the user approved is asked about again first. Generate calls return\n`generation_ids`; `wait_task` returns the links, and `show_generations` shows each stage's running\nand finished work in one card where the chat app displays Frameo cards: all the stage's ids at\nonce, before its first `wait_task`, and the finished result with `final: true`.\n\n**The plan first.** Before the first paid call, the plan goes to the user in the chat as plain\ntext: what will be made, in order, one line per generation (for a script, the shot list; for a\nset, each shot), with each line's credits and the total. The credits come from\n`estimate_cost(items=[…])`, up to 10 items a call, so a long plan takes several calls; those\nquotes may expire unused, since each stage is quoted again right before it runs. Nothing is\ngenerated until the user says yes. The user can drop or change lines; a changed line is priced\nagain.\n\n**1. Concepts.** Propose 3–5 in one line each (big face + reaction, product + number, before/\nafter, a question, a bold object on colour); the user picks or edits.\n\n**2. Images (~36 each at 4K).** `generate_image` per concept, each with its own quote,\n`image_urls=[face or product]`,\nprompt = the concept plus \"high contrast, one focal point, space on the left third for\ntext, no small details\", `aspect_ratio` from Ask first (1:1, 16:9, 9:16 or 3:4) and\n`image_resolution` at the highest tier the model offers (`list_models(kind=\"image\")`\nnames them, e.g. 4K on the default; the quote is exact for that model and tier). Leave the title off the image: the exact title is burned in at step 3, not generated.\n`wait_task`, then show the set.\n\n**3. Title and exact size (free).** One `run_ffmpeg` per pick: `scale` + `crop` to the\nplatform's pixel size (1280×720, 1080×1080, 1080×1350), and the title burned in from an `.ass`\nsidecar with the `ass` filter (Noto Sans, large and bold, thick outline, in the free space) unless the\nuser prefers their own editor; ask which. `wait_task` for each\noutput link.\n\n**4. Deliver.** Links and `open_in_frameo`.\n\n## Done\n\nThe set on the canvas in one row.\n`open_in_frameo` on the result opens the project in the Frameo app, where every take sits on\nthe canvas, ready for retakes and edits.\n\n## Files\n\nNone.\n"
}

SHA-256 of public snapshot: 164e958f145cf1de9d7cc48f27c17d606ccee0e6bbfd25fb1d2da07d8ca47695