Skip to content

Proven edits

Ron Yitzhaki edited this page Oct 21, 2026 · 3 revisions

Proven edits

Some changes should not change the picture at all: un-precomposing, duplicating a comp deeply, baking or collapsing expressions, reordering effects, simplifying a rig. ae_prove_identical checks that they didn't, and shows where they did.

Ask for it in plain words: "Un-precompose 'Logo Precomp' into Main and prove the render didn't change."

How it works

  1. Capture. Surehand renders reference frames of the comps: by default the active comp, 5 frames spread over the work area, full size up to 1920 px on the longest side.
  2. The change. You or the AI make it.
  3. Compare. Surehand renders the same frames again and compares them pixel by pixel.

action: "run" does all three in one call: capture, the edits as ae_batch steps (one undo step, all or nothing), compare. With checkpoint: true it also saves a checkpoint first.

For an un-precompose, prove the parent comp: that's where the picture must stay the same.

For un-precomposing and deep duplicates, Precomp surgery (ae_precomp_surgery) makes the edit itself, with every expression reference rewritten, and proves it the same way before applying it.

The verdict

Verdict Meaning
IDENTICAL Every compared frame matches exactly.
IDENTICAL WITHIN TOLERANCE Every frame matches within the tolerance. By default that is less than half an 8-bit step per channel (0.5 / 255), so only the rounding of 16- and 32-bpc projects passes. tolerance: 0 asks for bit-identical.
DIFFERS At least one frame differs beyond the tolerance. Lists which frames.
NOT PROVEN Something prevented a fair comparison, for example a comp was deleted or resized since the capture, or the project is a different file.

For each frame it reports the largest channel difference, how many pixels changed, the largest color difference (ΔE) and the area that changed. It also shows a difference image of the worst frame (black = identical).

In the panel's feed a passed proof shows as Proven identical; a failed one as Not identical or Not proven.

Options

Option Meaning Default
comps Comps to prove, by id or exact name (up to 4) the active comp
frames Frames spread over each comp's work area (1–24) 5
times Exact times in seconds instead (snapped to frames, up to 24) —
maxSize Longest rendered side in pixels (64–4096) 1920
tolerance Allowed difference per channel, 0–255 0.5
id Which captured proof to compare the latest

What a proof does not cover

Be clear about the limits before you rely on a proof:

  • Only the sampled frames are compared. A difference between them, for example on a single frame between two samples, is missed. Use more frames or exact times around the moments that matter.
  • Video only, alpha included. Audio and the comp's background color are not compared.
  • 32-bpc values above 1.0 are clamped when the frames are saved, so differences in over-bright areas can be missed.
  • One project only. Comp ids belong to one project. A proof captured in a saved project is only compared in that same file; otherwise the verdict is NOT PROVEN. One captured in an unsaved project is compared if every comp still has its name, with a note that the project itself couldn't be confirmed.

Side effects

Rendering works like ae_render_frame: through a temporary comp that is removed again and leaves no undo step behind. After Effects still marks the project as changed. If the temporary comp can't be removed, the result says so and it can be deleted from the Project panel.

Reference frames are stored in ~/.surehand/ae/proofs/ for 7 days, 30 proofs at most.

Permissions

  • Capture and compare are allowed in Read-only mode and don't wait for approval.
  • run makes edits, so it follows the same rules as ae_batch: refused in Read-only mode, waits for approval in Ask mode, refuses shell commands when they are blocked.

In the chat

In AI apps that show views, a proof comes with its verdict and before, after and difference frames in the chat. See In-chat views.

Clone this wiki locally