Skip to content

Feature/plugin long running filter support and ux - #250

Open
clang88 wants to merge 9 commits into
photobooth-app:mainfrom
clang88:feature/plugin-longRunningFilter-support-and-ux
Open

clang88 wants to merge 9 commits into
photobooth-app:mainfrom
clang88:feature/plugin-longRunningFilter-support-and-ux

Conversation

@clang88

@clang88 clang88 commented Sep 22, 2026 •

Copy link
Copy Markdown

feat: rainbow loading effect and smooth fade transitions for filter processing

To make the wait for AI (or other long running) filters more enjoyable, this PR introduces two UX improvements:

Rainbow loading indicator

A rainbow-colored border animates around the image while a long-running filter (e.g. AI filters) is being processed. This only activates when a plugin identifies itself as long-running via the new mp_long_running_filter hook — it does not affect existing regular filter plugins. For long-running actions in the gallery, a translucent overlay "Filter is processing..." is shown and the top progress bar is hidden to keep the experience clean.
This relies on the new jobmodels added in photobooth-app PR:

  • latest_caputre_id to display the original capture of the image during the effect
  • is_long_running_filter from photobooth-app PR to determine if it is indeed a long running filter.

Smooth fade transitions

To avoid filtered images snapping abruptly into place, a 1-second cross-fade transition is applied when presenting processed results. The fade is also used when updating gallery items after a filter is applied, but instead of reverting back to the original image, it shortly fades to black before showing new image.

Related: photobooth-app PR support long-running filter hook and export metadata to frontend - photobooth-app/photobooth-app#781

AI used to create this Pull Request?

Yes — this PR was written with assistance of AI but screened and tested by myself.

- Add isApplyingLongRunningFilter state tracking in gallery viewer
- Display captured image with 'Filter is processing...' overlay during long-running processing
- Implement 500ms cross-fade transition into final filtered image
- Update state store and API DTOs for long-running filter metadata
- Add i18n translations for 'Filter is processing...'
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