Organize your photos. Dial in a look. Retouch the details. Export at full quality.
π Download the latest portable build π
Grab the .zip, extract it anywhere, and double-click UltraPhotoEffects.exe.
That's it. No installer. No Microsoft Store. No runtime to download first. The Windows App SDK runtime ships inside the zip, so the build is fully standalone and runs on a clean Windows 10/11 machine straight away.
Your photos never leave your computer. Ultra Photo Effects is unpackaged and entirely offline β no account, no telemetry, no network calls, no "cloud AI". Every pixel is processed locally.
The preset cards in the right-hand panel aren't static images. Each one is rendered by the app's own pixel engine, on your photo, as you hover through them.
- Import photos into a dedicated local library with a thumbnail grid
- Search by name, multi-select, select-all / clear-selection in one action
- Originals are stored losslessly and never overwritten β edited previews are cached separately
- Per-photo "Edited" badge so you always know what's been touched
- 12 built-in analog-film presets (Analog, Chromatic, Moody, Legacy), each with a live preview rendered from your image
- Fine-grained manual control: exposure, contrast, saturation, temperature, tint, highlights, shadows, clarity, vignette, and film grain
- Preset strength slider β dial any look from subtle to full
- Straighten, flip, 90Β° rotation, and non-destructive crop
- Zoom, pan, fit-to-screen, and a press-and-hold before/after comparison
- A healing brush that removes distractions and blends patches of texture
- Edable mask rasters, anchored in original pixel coordinates so masks stay aligned after geometry changes
- Multi-level, feathered blending so retouched areas don't look smudged
- Select many photos, apply one look to all of them
- Clear per-photo progress and selection status
- Consistent results across an entire shoot
- JPEG or PNG, configurable quality
- Optional long-side resizing (great for web and email)
- Explicit output folder and filename control
- Full-resolution render, with fast low-res previews while you work
- A considered dark editorial workspace, with a light mode toggle
- Custom-drawn title bar, clean typography, generous spacing
- Full keyboard control β most actions have a shortcut
Ultra Photo Effects separates what a photo looks like from how it's drawn:
PhotoItem βββΆ EditRecipe βββΆ PhotoRenderer βββΆ RawImage βββΆ ExportService
β β
β βββ ImageEngine (tone, geometry, resampling)
β βββ HealEngine (masked local removal)
β
βββ Models/Preset (PresetLibrary)
| Layer | Responsibility |
|---|---|
| Models | EditRecipe holds the complete, serializable description of an edit β preset, adjustments, geometry, and heal masks. PhotoItem is a library entry. Nothing here touches pixels. |
| ImageEngine | The pixel math. Tone curves, a geometry map (straighten β rotate β crop), and high-quality resampling. Pure functions, no I/O. |
| HealEngine | Masked, feathered content-aware removal that samples surrounding texture. |
| PhotoRenderer | Composes geometry, healing, and tone into a single render. Supports two paths: a fast low-res preview and a full-size final render. |
| LibraryService | Import, thumbnail generation, and persistence to library.json (Newtonsoft.Json). |
| ExportService | Final encode to JPEG/PNG with quality and long-side scaling. |
| Views | WinUI 3 pages: LibraryPage, EditorPage, BatchPage. |
Your original file is never modified. Editing produces an EditRecipe β
a small, JSON-serializable description. You can always go back, change the
recipe, or discard it entirely and get your untouched original back.
Interactive editing renders a downscaled preview so sliders stay responsive under the cursor. The full-resolution render happens once, on export. The two paths share the same engine, so what you see is what you get.
| Language | C# 12 |
| Framework | .NET 8 (net8.0-windows10.0.19041.0) |
| UI | WinUI 3 / Windows App SDK 2.4.0 |
| Runtime | Windows App SDK, self-contained (bundled with the app) |
| Packaging | None β pure unpackaged, WindowsPackageType=None |
| Serialization | Newtonsoft.Json |
| Interop | Win32 (window icon, DPI) via DllImport |
| Min. OS | Windows 10 1809 (17763) Β· Windows 11 recommended |
| License | MIT |
No native image libraries, no GPU shader pipeline, no cloud services. The image pipeline is plain C# over raw pixel buffers β which is exactly why it runs identically on every machine, and why the whole app is one self-contained zip.
- Windows 10 version 1809 (17763) or later
- .NET SDK 8.0
- Optional: Visual Studio 2022 17.10+ with the WinUI application development workload
# restore
dotnet restore "UltraPhotoEffects.csproj"
# build
dotnet build "UltraPhotoEffects.csproj" -p:Platform=x64
# run
dotnet run --project "UltraPhotoEffects.csproj" -p:Platform=x64dotnet publish "UltraPhotoEffects.csproj" -c Release -p:Platform=x64 -o publish_outThis produces a standalone folder. Zip it and ship it β no installer required.
β οΈ Verifypublish_out\resources.priexists before you ship. A self-contained unpackaged publish can silently drop the app PRI, and without it the published.exethrowsXamlParseExceptionand exits0xC000027Bimmediately β while Debug runs fine. TheCopyAppPriToPublishtarget in the.csprojhandles this; the CI release workflow asserts the file is present.
%LOCALAPPDATA%\UltraPhotoEffects\
βββ photos\<id>\original.png lossless originals
βββ photos\<id>\masks\ healing mask rasters
βββ thumbs\ cached thumbnails
βββ library.json library index
βββ logs\ session logs
The app ships with an end-to-end pipeline test. Set VSCOAI_SELFTEST=1 before
launching and it exercises import β render β heal β export β persistence, then
writes a report to %LOCALAPPDATA%\UltraPhotoEffects\selftest\selftest_result.txt.
$env:VSCOAI_SELFTEST = "1"
.\publish_out\UltraPhotoEffects.exeNote: the self-test assumes it is the only photo in the library. If you already have photos imported, its final "library json roundtrip" assertion will report a count mismatch. That is a limitation of the test's assumption, not a bug in the app β every other assertion still runs and passes.
| Shortcut | Action |
|---|---|
Ctrl + I |
Import photos |
Ctrl + E |
Export selected photos |
Delete |
Delete selected photos |
Esc |
Exit select mode |
| Shortcut | Action |
|---|---|
1 |
Presets tool |
2 |
Adjustments tool |
3 |
Remove (healing) tool |
4 |
Crop tool |
B |
Hold to compare against the original |
Ctrl + Z |
Undo |
Ctrl + Y / Ctrl + Shift + Z |
Redo |
Ctrl + S |
Save the edit |
Ctrl + E |
Export this photo |
Ctrl + 0 |
Fit to screen |
Ctrl + 1 |
Zoom to 100% |
Ctrl + + / Ctrl + - |
Zoom in / out |
Esc |
Back to the library |
| Shortcut | Action |
|---|---|
Ctrl + E |
Export the batch |
Esc |
Back to the library |
Planned and wanted. Pull requests welcome β see CONTRIBUTING.md.
- More presets β a larger analog-film library, plus a B&W module
- Curves and HSL β per-channel tone curves and hue/sat/lightness panels
- Layers and masks β non-destructive layer stack with mask brushing
- RAW import β read camera RAW formats via
Windows.Graphics.Imaging - Clone / patch tool β manual brush-based cloning alongside healing
- AI background removal β run fully locally, no cloud calls
- Side-by-side compare β a proper split view for before/after
- Copy/paste adjustments β move a look between photos
- Lens corrections β automatic chromatic aberration and vignetting fix
- HDR merge β combine bracketed exposures
- Command palette β fuzzy-search any action by name
- Multi-language UI β localization scaffolding
- ARM64 and x86 releases β CI currently publishes x64
- Settings page β persist export defaults and workspace preferences
- Dark/light theme persistence β remember the choice across launches
Contributions are very welcome β issues, ideas, bug reports, and pull requests.
- π Found a bug? Open an issue with steps to reproduce.
- π‘ Got an idea? Tell us about the workflow you have in mind.
- π§ Want to contribute code? Fork it, branch off
main, and open a PR. - π¬ Just want to talk? Start a Discussion.
New to the codebase? Start with CONTRIBUTING.md β it has the
project layout, build commands, and the handful of gotchas worth knowing before
you touch the project file.
Released under the MIT License. Use it, fork it, ship it.
Made with care on Windows. No accounts. No tracking. Just photos.

