Skip to content

one cut, every platform: multi-format export - #47

Open
OrellBuehler wants to merge 3 commits into
mainfrom
feat/multi-format-export
Open

one cut, every platform: multi-format export#47
OrellBuehler wants to merge 3 commits into
mainfrom
feat/multi-format-export

Conversation

@OrellBuehler

Copy link
Copy Markdown
Owner

Summary

  • A clip now keeps a crop per delivery shape (Clip.framings) beside the one smart crop bakes into its transform, so framing for 1:1 no longer overwrites the 9:16 framing.
  • Timeline::for_delivery renders the cut at another frame wearing those crops (generated captions re-fit to the new aspect); render_variants writes one file per delivery, named by shape (cut-9x16.mp4), sequentially, with clean cancel.
  • A framing pass (framing_inputs / sample_framings / apply_framings) samples each shot once and writes a crop for every requested shape as one Frame for 9:16, 1:1 revision.
  • MCP export_variants tool: shape names in, one file per shape out, each reported with the platforms it is ready for at its frame.
  • Export dialog Deliver to section: shape chips, the file names they will write, a smart-crop toggle, per-file readiness.

Test plan

  • cargo test --workspace --no-default-features (new tests: framing model/diff, for_delivery, plan/apply, per-variant graph)
  • cargo test -p kerf-core --no-default-features -- --ignored renders_every (real ffmpeg: two files, probed at their frames)
  • cargo clippy, cargo fmt --check, bun run check, bun test
  • Desktop: pick 9:16 + 1:1 in the export dialog, confirm two files land beside the chosen path

🤖 Generated with Claude Code

https://claude.ai/code/session_01Gm2h2GQnUyBRLnVe431o9w

OrellBuehler and others added 3 commits September 2, 2026 21:11
A clip keeps a crop per delivery shape (Clip.framings) beside the one smart
crop bakes into its transform, Timeline::for_delivery renders the cut at
another frame wearing those crops (and re-fits generated captions), and
render_variants writes one file per delivery, named by shape. A framing pass
(framing_inputs / sample_framings / apply_framings) samples each shot once
and writes a crop for every requested shape as one revision.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Gm2h2GQnUyBRLnVe431o9w
export_variants (MCP) and export_variants (Tauri) frame every shot for
every requested shape, render one file per delivery beside the chosen
path, and stream progress across all of them. The export dialog gets a
Deliver to section: shape chips, the file names they will write, a smart
crop toggle and a per-file readiness line.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Gm2h2GQnUyBRLnVe431o9w
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Gm2h2GQnUyBRLnVe431o9w
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant