openjutsu
One-click character swap for videos: an open-source, local Higgsfield Genjutsu alternative built on ComfyUI and MiniMax H3, with FLUX.3 Klein relighting.
Repeat your Google Photos culls on your other copies.
Translation pending
MediaGitHub @mykoladOnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
Repository information has not been collected yet.
No updates detected yet. GitHub releases will appear here.
Repeat your Google Photos culls on your other copies: remove OneDrive photos you've already deleted from Google Photos.
Taken from the repository README
Loading the full README.
Read the full README ↗Repeat your Google Photos culls on your other copies: find and remove OneDrive and Synology Photos copies of photos you've already deleted from Google Photos.
🌐 Website: mykolad.github.io/photo-recull (setup and usage guides, privacy policy, terms of service)
iPhone photos back up to Google Photos, iCloud, and OneDrive or a Synology NAS. Deleting a photo from Google Photos also removes it from iCloud (they sync), but OneDrive and Synology Photos keep their copy forever. Over years, they accumulate thousands of stale duplicates you already curated out of Google Photos. PhotoRecull finds them.
Note: because of a 2025 Google API change, the whole-library read API is gone — you pick the surviving photos manually. See docs/SETUP.md.
Prerequisites: .NET 10 SDK and a Google OAuth
client — see docs/SETUP.md for the one-time Google Cloud setup and
credentials.json.
Caching and the review report are automatic, so the normal flow needs no extra flags:
# 1. Dry run (the default) — pick surviving photos in the browser. Auto-saves the
# pick and opens an HTML report to review. Prints the stage/delete commands.
dotnet run --project src/PhotoRecull.Cli -- --onedrive "<Camera Roll folder>" --from 2026-08 --to 2026-08
# 2. Stage the candidates for review (reuses the cached pick — no re-picking)
dotnet run --project src/PhotoRecull.Cli -- --onedrive "<Camera Roll folder>" --from 2026-08 --to 2026-08 --stage
# 3. Once you're happy with the staged folder, delete it yourself,
# or re-run with --delete (permanent).
For Synology Photos, point at the mobile backup folder on the NAS instead (File Explorer must already be able to open it). Only that month's folders are read:
dotnet run --project src/PhotoRecull.Cli -- --target synology --path "\\nas\home\Photos\MobileBackup\iPhone" --from 2026-08 --to 2026-08
Add --stage "\\nas\home\PhotoRecull staged" to keep the staged photos on the NAS,
outside the Photos folder that Synology Photos shows. See
docs/USAGE.md.
Work one month at a time so the manual pick stays manageable, and prefer
--dry-run/--stage over --delete.
| Folder | Contents |
|---|---|
src/PhotoRecull.Core | Scanning, matching, the Google Photos Picker client, stage/delete, the cleanup library. Shared by every front end. |
src/PhotoRecull.Cli | The command-line app, including the HTML review report |
src/PhotoRecull.App | The Windows app (WinUI 3): setup, the Library, and a full cleanup for OneDrive and Synology Photos (pick, date range, scan, review, stage or delete); targets in Settings |
tests/PhotoRecull.Tests | xUnit tests |
To run the Windows app: dotnet run --project src/PhotoRecull.App. It keeps its settings,
cleanups, picks and Google sign-in in a SQLite database, %LOCALAPPDATA%\PhotoRecull\photorecull.db. See docs/SETUP.md
for giving it a built-in Google client.
dotnet test
The two sample images under tests/PhotoRecull.Tests/TestData/ are neutral stock photos
stamped with only the EXIF the tests need (no location or personal data).
MIT — see LICENSE.