← PicsartCONTENT HISTORYWHAT CHANGED · RULE-BASED ANALYSIS
Update to Picsart
Snapshot Oct 9, 2026 · 18:02 UTC · version 2.1.0
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": "Finish the film — colour unification and grade, the soundtrack decision (keep generation audio, add a music bed, or hand off to a sound team), the final-resolution pass, masters, and the project archive. Use for stages 9–11 of the film pipeline, after picture lock and cleanup. Routed from the film skill.",
"included_files": [
{
"relative_path": "references/DELIVERY.md",
"size_in_bytes": 3284
}
],
"name": "film-finishing",
"skill_md_contents": "---\nname: film-finishing\ndescription: \"Finish the film — colour unification and grade, the soundtrack decision (keep generation audio, add a music bed, or hand off to a sound team), the final-resolution pass, masters, and the project archive. Use for stages 9–11 of the film pipeline, after picture lock and cleanup. Routed from the film skill.\"\n---\n\n# ChatGPT and Codex integration\n\nApply these host conventions throughout this skill and its references.\n\n- Discover the connected Picsart tools and use their actual names and schemas.\n The `picsart_*` names in the workflow identify tools, not a fixed host namespace.\n If the connection is missing, explain that Picsart must be connected; continue\n script and shot planning when possible. Never invent tool results or renders.\n- Read board decisions from the current user message and attached widget context.\n Use `read_widget_context` only if the host actually exposes that tool. Do not\n assume ChatGPT has Claude's context reader. Treat a board's initial tool result\n and unsent widget state as previews, never as user approval. If a submitted\n decision has no accessible payload, explain briefly and use the text fallback\n to collect the missing decision; do not guess or repeat charged operations.\n- Use the host's available question interface or one concise conversational\n question for preset choices.\n- UI rendering and delivery of feedback are the remote MCP server's responsibility.\n If a board is unavailable, present its relevant options in text and record the\n user's selection using the same documented feedback fields. Do not claim that\n a plugin manifest makes Claude-specific widgets compatible with ChatGPT.\n- Save `film.json` and artifacts in the user's writable project workspace, not\n the installed plugin directory. If persistent file tools are unavailable,\n keep a structured project checkpoint in the conversation and provide it for\n download when the host supports files. Never claim a file was saved without\n confirmation from a file tool.\n- Honor the user's current instructions and already authorized scope. Preserve\n quoted spend limits and production locks; do not infer authorization from a\n preview, a timeout, or a connection being installed. A timed-out charged call\n needs a status check before considering a retry.\n- This package holds six film skills (`film`, `film-development`, `film-assets`, `film-scenes`, `film-edit`, `film-finishing`) and three motion skills (`motion`, `motion-import`, `motion-design`). Route between them directly.\n- `motion-import` reads a design's layers through the Figma app's tools. If Figma is not connected in this host, use its flat-frame fallback and say so once.\n\n\n# Finishing — grade, sound, master, archive\n\nPicture lock is behind you; nothing here changes the cut. The order inside this\nskill is fixed and worth saying out loud to the user: **final-res re-roll →\nre-assemble → grade → export once → masters → archive.** Grading the 480p draft\nwastes the grade; exporting before the grade wastes an export.\n\nFor the paid final pass, follow `../film-scenes/SKILL.md`, **Native draft to\nfinal**: use `fromDraft` only when this connection's live schema and preflight\naccept it. Otherwise explicitly quote a regular final rerender and review the\nchanged picture before grading. Keep this plugin's existing export and delivery\nflow; a draft is not a final-resolution deliverable.\n\n## The final-resolution pass — pay once\n\nThe final quality comes from\n**re-generating every approved shot at the final resolution with its saved final\nprompt, verbatim** — same blocks, same references, higher `resolution`. Preflight\nthe whole batch, quote the total, and dispatch only on the user's yes; this is\nthe film's biggest single spend and the one that must never arrive as a\nsurprise (2026-09-07). Video upscaling exists on this surface; pick the upscaler\nfrom the live catalog at the time of the pass (`picsart_model_catalog`,\n`purpose: \"utility\"`) — none is named here, because the tools change. **The\npractitioner post order is: upscale FIRST, then texture, then grade** — every\ndownstream correction should touch the highest-resolution pixels. Then\nre-assemble the locked cut at the final canvas (≤1920×1920 —\nmulti-shot output cannot exceed it, whatever a single model renders).\n\nSay the quiet part: this pass follows the approved prompts but is a **fresh\nroll**. Small differences from the draft are expected and are not a bug. Where a\nre-roll visibly breaks something the draft had (a face, a join), that is a Stage 8\nregeneration on the final-res take — log it, fix it, move on.\n\n## Stage 9 — colour: unify, then grade\n\nEvery generation arrives with its own baked-in grade, so the first job is\n**unification** — bring neighbouring shots of each scene to one look — and only\nthen the creative grade. The creative tone already exists: it was baked into the\nlocation assets in Stage 4, so the grade refines, never invents.\n\n**There is no grade console.** It was retired on 2026-08-21 while the earlier\nstages are being made right, and no grading panel exists yet. Until one does: resolve the real looks yourself with\n`picsart_media_resolve_looks` (never a remembered look name), offer three or four\nagainst the bible's palette line (or the locations' own colours with scheme\nAuto) via the host's question interface, then apply. The mechanics\nare unchanged — `picsart_media_apply_look` / adjust patches on the assembled\nscene, free to set, charged only when a preview\n(`picsart_media_contact_sheet`, per frame) or the export renders. Preview the\ngrade on a handful of frames from two or three scenes before approving it for the\nfilm.\n\nScope order: per-scene unification first (`scope: \"sc01\"`), then the film-wide\nlook. **The anti-AI-look recipe** — the documented practitioner finish for\ngenerated footage — layers in this order: upscale (above) → a film-grain /\nfine-texture pass → the grade \"until it reads closer to live action\". Footage-\nlevel grain at finishing is distinct from the style prefix's in-generation\ngrain: the prefix shapes what the model renders; this pass unifies what the\nrenders became. If the user has a real colorist instead, export ungraded and\nhand off — see the package below.\n\n## Stage 10 — sound: clean, bed, or hand off\n\nWhat generation gave you: lip-synced dialogue in the shot, in-frame action noise,\nsome ambience. What it cannot give: consistent voice timbre between clips,\nlicensed music, a mix. The in-chat path:\n\n- **Dialogue follows the film's voice policy** (`film.json.voicePolicy`, always\n `native` — there is nothing to decide, `film-development`). `native`: the generated voice is the performance — never\n re-recorded; between-clip timbre drift is a fact, and where it distracts,\n prefer a retake of the worse clip (Stage 8 path) over pretending a mix exists\n here.\n\n **The voice pass is parked (2026-08-27), and Stage 10 works with what the\n takes gave it.** The swap that keeps lip-sync needs a library `voiceId` and a\n designed voice cannot become one on this platform — the request is in\n `../../docs/ASK-VOICE-ID.md`; when it lands, the pass is: read the take against\n the script line, extract its audio, isolate it if there is room tone, convert\n it into the character's recorded voice, mux it back — same length out as in (±3ms\n measured), so nothing needs re-timing.\n\n Until then, sound at Stage 10 means the two things that ARE available: a\n continuous bed under each scene to hide the level and tone steps at every join,\n and honest level matching shot to shot. Do not offer a voice fix; say what the\n film has.\n\n Where a mouth is on screen for a whole line and even that is not tight enough,\n the shot can instead be generated audio-driven from the start\n (`ltx-2.3-a2v` — an audio track plus an optional first frame), so the lips\n follow our voice from the outset. Check the\n catalog for what is current rather than remembering a model id. Changing\n policy mid-film re-opens every dialogue shot; that is why it is decided at\n the lock.\n- **Ambience is the glue**: when shots of a scene differ slightly in picture, a\n continuous bed stitches them into one space. Generation audio is per-clip, so\n seams are audible; note where, and lean on the music bed to carry across them.\n- **Music bed — offered ONCE, only after the cut is picked.** Scoring a cut\n that is about to change wastes the track, and a declined offer is settled for\n the session. Don't interrogate (\"do you want music?\") — draft the brief from\n what the film already knows (register from the bible, tempo from the cut) and\n offer three exits: generate it, tweak the vibe, or skip.\n `picsart_generate` with a music model from the live catalog\n (`picsart_model_catalog`, `mode: \"audio\"`, `inputType: \"music\"`), and\n **instrumental always under speech** — vocals fight the dialogue for the same\n perceptual channel and both lose. Mix as a separate compositor audio track,\n dialogue dominant (duck the bed under lines; at full level only when the film\n has no speech). Flag plainly that generated music's licensing is the user's\n to verify for festivals/commercial use.\n- **Sound post is a team's job**: a film going to festivals or dubbing needs a\n sound post team; offer the handoff package instead of imitating one.\n\n**Handoff package** (either stage, when a human colorist/sound team exists): the\nclean cut + per-shot source URLs from selects at max quality, the shot order and\ntrims from `docs/`, the bible (tone, colour scheme and palette line), the sound references gathered\nwith the film's references, and the generation audio as-is. Everything already durable on Drive —\nthat is the handoff.\n\n## Stage 11 — master, QC, archive\n\nQC on the full final export, ideally by fresh eyes, per the checklist in\n`references/DELIVERY.md` (artifacts, joins, digital errors, titles — titles are\nmade in an editor or as overlay tracks, never generated; models cannot hold clean\ntypographic text). Then the deliverables and the archive — the full table and\nlist live in `DELIVERY.md`. The archive is not sentimental: prompts + registry +\nlog are **the means of production**; a sequel or a re-cut regenerates from them.\n\n**The disclosure pack is a deliverable, not a note.** 2026 festivals (SXSW,\nTribeca, the AI-specific festivals) require disclosure of the AI tools and\nmodels used — incomplete disclosure disqualifies at some. Write\n`docs/DISCLOSURE.md` mechanically from the generation log: every model used,\nper stage (images, video, voices, music), plus the human-contribution\nstatement and an AI-credits block for the titles. It costs nothing and the\nfilm cannot be submitted without it.\n\nGate out (the film is done): QC notes closed · masters exported and checked by\nplayback · archive on Drive, complete · `DISCLOSURE.md` written · rights notes\n(voices, music, AI-use disclosures where a platform requires them) gathered in\none place.\n\n## Costs\n\n| Free | Charged |\n|---|---|\n| look resolution, grade setting, scene re-bootstrap, planning, handoff assembly, every `picsart_media_export` (final and each master variant — render time and a file, **not credits**, 2026-09-07) | the final-res re-roll (every shot, video rates), grade previews (`picsart_media_contact_sheet`, per frame), music generation |\n\n## Traps\n\n- Grading before the final-res re-roll — grade the final pixels, not the draft's.\n- Calling the final pass an upscale. It is a fresh roll; say so before it runs.\n- Re-rolling the film at final resolution on the strength of the original\n forecast. Quote this batch, then wait — it is the biggest single number in\n the project.\n- \"One more export\" per master variant nobody asked for. Exports cost no\n credits, but each is a real render and another file in the user's Drive —\n confirm the deliverable list first.\n- Shipping generated music to a festival without the licensing caveat in writing.\n- Archiving the film but not the prompts and registry — the film without its\n means of production cannot be revised or continued.\n"
}SHA-256 of public snapshot: 28d6baaa7fa93043103800a1483ed547b967e958c7cdf9ac5ec19095b189b8c7