Skip to content

Releases: highercomve/GhostReel

GhostReel v0.6.0

Choose a tag to compare

@github-actions github-actions released this 23 Sep 21:09

Windows: GhostReel_*_x64-setup.exe · Linux: .AppImage · CLI only: ghostreel-cli-*.

GPU acceleration needs an NVIDIA driver 570+ (CUDA 12.8 runtime is bundled). On first start open Models and download the models.


Added

  • B-roll only script chats: a composer switch that cuts a montage on a theme with no interviews
    and no voice-over. Each chat keeps its choice, and chooses between the clips' natural sound or
    silence (for music). The model gets its own editing instructions (theme, shot-size progression,
    visual continuity), the footage digest marks interview tapes, and any clip over someone speaking
    on the microphone is dropped.
  • Full model log: a "Full log" button in the script chat shows every prompt, the model's
    thinking, its answers with token counts and timing, and the local helper's output, live while a
    turn runs. llama.cpp debug noise is filtered out.

Fixed

  • Claude CLI backend: the prompt is sent on stdin as a plain brief. Pointed at a prompt file,
    Claude described the file instead of answering ("no JSON object in CLI output").
  • Claude CLI sessions: turns resume their own pinned session instead of --continue, which
    could pick up whatever Claude session last ran in the folder.

GhostReel v0.5.0

Choose a tag to compare

@github-actions github-actions released this 23 Sep 02:17

Windows: GhostReel_*_x64-setup.exe · Linux: .AppImage · CLI only: ghostreel-cli-*.

GPU acceleration needs an NVIDIA driver 570+ (CUDA 12.8 runtime is bundled). On first start open Models and download the models.


Added

  • Built-in Web Server (Remote Access): GhostReel can now serve its full React desktop UI over HTTP,
    allowing users to view projects, monitor tasks, and drive editing from a phone, tablet, or another
    computer on the local network.
  • Embedded Axum web server (webui.rs): Reads the embedded frontend bundle from Tauri's assets,
    serves media clips and keyframe thumbnails, and proxies desktop invocations via POST /api/call.
  • Real-time Server-Sent Events (/api/events): Streams live queue events, background task updates,
    and chat generation progress to all connected web clients via onEvent().
  • Optional HTTP Basic Authentication: Protect web access with configurable username and password credentials.
  • Web Access Settings: Dedicated configuration section in Settings to toggle the server, customize bind
    address/port, set credentials, and view active LAN URLs.

GhostReel v0.4.5

Choose a tag to compare

@github-actions github-actions released this 22 Sep 22:28

Windows: GhostReel_*_x64-setup.exe · Linux: .AppImage · CLI only: ghostreel-cli-*.

GPU acceleration needs an NVIDIA driver 570+ (CUDA 12.8 runtime is bundled). On first start open Models and download the models.


Added

  • Configurable pipeline stages per project: Projects now store pipeline stage configuration
    (probe, transcribe, frames, describe, embed) persisted in SQLite (projects.pipeline_json,
    migration 11).
  • Index without transcription (b-roll / dialogue-free footage): Speech transcription can now be
    disabled during project creation or dynamically toggled later. Disabled stages are skipped entirely
    during index runs and excluded from progress estimation.
  • Smart pipeline job synchronization: When a stage is disabled across all projects watching a video,
    pending and queued jobs are marked skipped. Re-enabling a stage automatically restores them to pending
    for the next index run (while respecting zero-audio videos).
  • CLI pipeline management:
    • ghostreel project create <name> --no-transcribe or --stages <list>
    • ghostreel project config -p <project> [--enable|--disable|--no-transcribe|--transcribe]
    • ghostreel project show -p <project> displays active and disabled stages
    • ghostreel index -p <project> [--stages|--skip|--no-transcribe]
  • Desktop UI pipeline controls: Added a checkbox in the project creation modal to toggle
    transcription, and a dedicated Pipeline Stages section inside the [ ⚙ Project ▾ ] header dropdown
    to toggle stages interactively with clean vertical alignment.

GhostReel v0.4.4

Choose a tag to compare

@github-actions github-actions released this 22 Sep 19:49

Windows: GhostReel_*_x64-setup.exe · Linux: .AppImage · CLI only: ghostreel-cli-*.

GPU acceleration needs an NVIDIA driver 570+ (CUDA 12.8 runtime is bundled). On first start open Models and download the models.


Added

  • Concurrent multi-sequence batching in ghostreel-llm: Added --concurrency <N> to the
    standalone llama.cpp helper, evaluating visual prompts and autoregressively decoding tokens for
    multiple keyframes concurrently in continuous forward passes. Automatically computes optimal
    concurrency based on free GPU VRAM and model weights (e.g. 4 concurrent sequences on 12 GB VRAM),
    increasing describe throughput by up to ~6× (~0.75s/frame vs ~4.5s/frame).
  • Configurable keyframe vision sampling resolution: Default sampling resolution resized from
    1280px to 768px (configurable down to 512px / 640px or up to 1024px / 1280px). Cuts visual token
    counts and prompt evaluation time by ~2–4× while preserving sharp scene understanding. Available
    in AI Models settings and directly in the project view.
  • Lazy camera steadiness analysis: Decoupled ffmpeg shake and jerk measurement from synchronous
    keyframe extraction so initial indexing completes much faster. Steadiness runs as a dedicated
    background job post-indexing or on-demand, with support for re-analyzing existing projects.
  • Streamlined Project Header & Actions Menu: Replaced crowded horizontal header buttons with a
    clean right-aligned [ ⚙ Project ▾ ] actions menu beside [ Index now ]. Consolidates sampling
    resolution, keyframe rebuilds, camera shake analysis, project renaming, and instant access to
    "Delete project…" without scrolling down the video table.

GhostReel v0.4.3

Choose a tag to compare

@github-actions github-actions released this 22 Sep 14:19

Windows: GhostReel_*_x64-setup.exe · Linux: .AppImage or .deb · CLI only: ghostreel-cli-*.

GPU acceleration needs an NVIDIA driver 570+ (CUDA 12.8 runtime is bundled). On first start open Models and download the models.


Fixed

  • Jev is reachable from any chat. The Model / Jev / Jev → model selector disappeared as
    soon as a chat was selected, so building with Jev was only possible from a fresh chat. It is
    always shown now, and the chosen mode no longer resets when switching or starting chats.
  • A build continues the chat it was asked in. Building with Jev inside an open chat adds the
    brief, the cut and its editorial notes to that session instead of opening a new one, so the
    model's next turn still has the whole conversation.
  • Chats and timelines stay in step. A new chat starts with an empty timeline instead of showing
    the last script of another chat; opening a script selects the chat it belongs to; the chat link
    to the version on screen is marked; and saving an edited script keeps it in its session.
  • Existing preview renders are found. The preview panel picks up an MP4 already rendered for
    the script, and the preview/export task still running or finished for it, after navigating away
    and back.

GhostReel v0.4.2

Choose a tag to compare

@github-actions github-actions released this 22 Sep 14:30

Windows: GhostReel_*_x64-setup.exe · Linux: .AppImage or .deb · CLI only: ghostreel-cli-*.

GPU acceleration needs an NVIDIA driver 570+ (CUDA 12.8 runtime is bundled). On first start open Models and download the models.


Added

  • Switch chat brain directly in the composer. A dedicated brain bar in the script chat composer
    allows switching between Auto, Local (this computer), Server, and CLI without
    navigating to Settings or Models. Depending on the selected backend, it exposes the local model
    picker and think toggle, CLI tool and model selector with availability check, or server endpoint
    configuration directly within the chat workflow.
  • Image and screenshot attachments in script chat. Paste screenshots directly from the clipboard,
    drag and drop images, or pick files into the composer. Thumbnails can be previewed in a lightbox modal
    and removed before drafting.

Fixed

  • Chat progress and tool execution chips are preserved across navigation. Navigating away from
    the chat panel (e.g. to Activity, Models, or Settings) during a live turn no longer loses the
    running state or tool chips. The session cache and task queue synchronize live progress, keep the
    composer locked during execution, and automatically reload messages and scripts upon completion.
  • Immediate session update on turn start. Chat sessions update their timestamp and order
    immediately when a new prompt is sent, ensuring active sessions remain prioritized in the sidebar.
  • File export save dialog allowed by ACL. Added missing dialog:allow-save permission to Tauri
    capabilities, resolving Command plugin:dialog|save not allowed by ACL when exporting MP4,
    Premiere (FCP XML), or OpenTimelineIO (.otio).

GhostReel v0.4.1

Choose a tag to compare

@github-actions github-actions released this 21 Sep 21:32

Windows: GhostReel_*_x64-setup.exe · Linux: .AppImage or .deb · CLI only: ghostreel-cli-*.

GPU acceleration needs an NVIDIA driver 570+ (CUDA 12.8 runtime is bundled). On first start open Models and download the models.


Changed

  • The script composer is one decision. The chat box used to share a row with a Send button, a
    "Jev drafts first" checkbox and a "Build with Jev" button, which left the input about 130 px wide
    in the narrow chat column with its placeholder clipped mid-word. The textarea now takes the full
    width; beneath it a three-way control — Model, Jev, Jev → model — picks how the brief
    becomes a cut, with one action button whose label follows it and a one-line hint saying what each
    costs. The Jev modes are disabled with a reason when no key is set, instead of failing after
    being chosen.

Added

  • The editorial judge can be switched off on its own (jev.judge, and a pill in the composer).
    jev.enabled is still the master switch — off means nothing leaves the machine — but it also
    gates building with Jev, so turning the judge off used to take the Jev modes with it. Defaults
    on; existing config files are unaffected.

GhostReel v0.4.0

Choose a tag to compare

@github-actions github-actions released this 21 Sep 20:58

Windows: GhostReel_*_x64-setup.exe · Linux: .AppImage or .deb · CLI only: ghostreel-cli-*.

GPU acceleration needs an NVIDIA driver 570+ (CUDA 12.8 runtime is bundled). On first start open Models and download the models.


Added

  • Refining, as something that repeats and keeps the best. ghostreel script refine -p P --session N --rounds 3 asks the chat brain to improve a cut several times and keeps the best
    round the judge saw, never the last — a round can make a cut worse, and one did. On the Greet
    Mag brief: Jev's build at 61, then 66 / 67 / 63 across three rounds, with flow going 0.57 → 0.93
    and the ending 0.49 → 0.84. With Jev off there is no fitness to climb, so it degrades to plain
    repeated turns.
  • "Jev drafts first" in the app. A toggle beside the chat box turns Send into the whole chain:
    Jev chooses a cut out of the index, the judge reads it, and whichever brain Settings names
    refines it from there. This is what makes the chain worth having for a local model — writing
    from scratch the local Qwen scored 38 mechanically and 56 editorially; handed a built cut it
    scored 98 and 64, the same structural lift agy gives, because it is no longer doing the research
    it is bad at.
  • The cut closes on a picture rather than a talking head. hold_the_last_picture used to
    extend whatever clip was last, which on a speaker gave two seconds of somebody moving their
    hands with the sound already finished. It now cuts away to a described shot with nobody talking
    in it, chosen by what it shares with the closing line. Only under a bed: without one the closing
    voice is that picture's own audio.

Fixed

  • The interviewer pass was asking Jev the wrong way, twice. Accuracy falls off with the length
    of the state rather than the number of questions — an unmistakable interviewer line reads 0.56
    against 63 lines and 0.96 against 20 — and serde_json::Map is a BTreeMap, so the framing key
    what_this_is sorted after lines and twenty lines of dialogue arrived before the sentence
    explaining what they were. That cost four of fourteen subject lines to false positives on a
    labelled set: the speaker's own words scoring 0.89 as the interviewer, 0.46 with the framing
    first. Windows are 20 lines now and the key is named to sort first, with a test that says so.
    GHOSTREEL_DEBUG_JEV dumps each request.
  • A beat ran on into the reply over the top. One ended three segments past the speaker's last
    line, through "Yeah." "Yeah." into the interviewer starting a story of his own — ten words of
    ordinary English that no word count reaches and Jev scores 0.20. end_on_turns reads a run of
    two acknowledgements as a handover and keeps the longer side, so a pause inside somebody's own
    answer is left alone.
  • Refining barely changed anything, because it was barely told anything. judge::notes only
    spoke below 0.4, so a cut scoring ending 0.49, opening 0.56 and brief 0.68 heard about none of
    them and changed only the one beat it was told about. The judge now always names the two
    dimensions losing the most points, ranked by points lost rather than by score.
  • Every refine turn was judged against the wrong text. The turn passed its own message as the
    brief, so "says what was asked" scored the cut against "Improve this cut…" rather than against
    what was asked for. The same script read 67 in the turn and 76 against the real brief, four
    times running. It reads the session's first message now.
  • "Build with Jev" in the app was a dead end. It saved the cut with no session and never
    judged it, so save_as_session had one caller in the repo — the CLI — and the built script was
    filed under the panel's orphans rather than under the conversation about to refine it.
  • script import had drifted from the repair sequence it is meant to mirror, missing
    clamp_beds_to_beats entirely.

GhostReel v0.3.2

Choose a tag to compare

@github-actions github-actions released this 21 Sep 07:27

Windows: GhostReel_*_x64-setup.exe · Linux: .AppImage or .deb · CLI only: ghostreel-cli-*.

GPU acceleration needs an NVIDIA driver 570+ (CUDA 12.8 runtime is bundled). On first start open Models and download the models.


Fixed

  • A clip could play five seconds of "Thank you." A cut came back at 39.9 s against a 40 s
    target — a perfect duration score — with three of its eight clips being acknowledgements, a
    third of the piece. Every existing check passed it: the clips were long enough, they ended on
    sentences, the footage was real. Nothing asked whether the words were worth hearing.
    empty_speech_issues now reports a source-audio clip whose speech is under four words, and the
    prompt's checklist says it before the model drafts. Reported rather than dropped, because
    somebody thanking a neighbour may be the moment and only the model knows; clips under a bed are
    exempt, since nobody hears them.
  • A CLI brain was killed mid-script after 180 seconds. One CliAgentConfig serves two jobs
    with very different clocks — describing a frame takes seconds, writing a script takes minutes,
    and agy needs about nine of them on a 96-video project. The chat now takes the larger of the
    agent's own timeout and script.server_timeout_s, which exists on the server path for exactly
    this reason. A longer setting is the operator's and is kept.

GhostReel v0.3.1

Choose a tag to compare

@github-actions github-actions released this 21 Sep 02:42

Windows: GhostReel_*_x64-setup.exe · Linux: .AppImage or .deb · CLI only: ghostreel-cli-*.

GPU acceleration needs an NVIDIA driver 570+ (CUDA 12.8 runtime is bundled). On first start open Models and download the models.


Fixed

  • A CLI agent could not run at all on Windows. CreateProcess caps a command line at 32767
    characters and fails with os error 206, "The filename or extension is too long" — a message that
    names the binary rather than the argument that is actually too big. The script chat passes the
    whole project's speech in its prompt, 75 KB on a 96-video project, so every turn failed before
    the agent started. A prompt past the platform's limit is now written to a file and the agent is
    pointed at it; claude is granted Read and agy the directory. Unix allows megabytes, so the
    threshold is set high enough there that nothing spills and the path behaves exactly as it did.