← FrameoCONTENT HISTORYWHAT CHANGED · RULE-BASED ANALYSIS
Update to Frameo
Snapshot Oct 8, 2026 · 18:02 UTC · version 1.2.1
Collection source: downloaded plugin package.
First saved snapshot
No earlier snapshot is available to establish a change.
Compare saved observations
Download comparison JSONFull technical diff · 0 changed fields
Full snapshot data
{
"description": "A consistent character across views and expressions, on the canvas so every later image and video can keep the same face.",
"included_files": [
{
"relative_path": "agents/openai.yaml",
"size_in_bytes": 378
},
{
"relative_path": "assets/icon.svg",
"size_in_bytes": 456
}
],
"name": "character-sheet",
"skill_md_contents": "---\nname: character-sheet\ndescription: \"A consistent character across views and expressions, on the canvas so every later image and video can keep the same face.\"\n---\n\nNeeds: a description or a photo; the style (photoreal, anime, 3D, editorial)\nCredits: about 90–130 (5–7 images at ~18 each)\nTime: 10 minutes\n\n## When\n\nBefore any multi-shot work with a recurring person or mascot: a series, a brand\ncharacter, a game or story cast. `script-to-video` calls this for its cast.\n\n## Ask first\n\n1. **Who** — a photo (`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 a description: age, build, hair, clothes, one\n distinguishing detail.\n2. **Style** — photoreal, editorial, anime, 3D, game concept.\n3. **Views** — the default is front, three-quarter, profile, full body, two expressions.\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**Canvas rows.** Every `generate_image` here takes `placement_kind=\"character\"` and `placement_group=<the character's name>`, so the sheet is one row on the character board, and later shots that use it as a reference get rows of their own.\n\n**1. The anchor (~18).** `generate_image`: front view, neutral expression, plain background,\nin the style; `image_urls=[photo]` when given. `wait_task`, show it; this is the face\neverything else follows — iterate here, not later.\n\n**2. The views (~18 each).** `generate_image` per view, each with its own quote, with\n`image_urls=[anchor]` first and the view in the prompt (\"three-quarter view, same person,\nsame clothes\"). Keep the background plain. `wait_task` for the links.\n\n**3. The references.** The anchor and views stay on the project canvas; their links, anchor\nfirst, are what later generations take as `image_urls` / `reference_image_urls`.\n\n**4. Save it to the cast (free).** `save_character` with the character's name and the anchor\nfirst, then the views in `image_urls`, six images at most (the most a saved character keeps;\nwith more views, the six that show the face and outfit best): later work in the project finds it with\n`list_characters`, and it shows in the Frameo app's character panel.\n\n## Done\n\nThe anchor and its views on the canvas in one row, with their links for later shots, and the\ncharacter in the project's cast.\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: bf0383d85ac33e93e214eb5513015cb6aa48356a698d1790c0f7e2dff23017eb