Skip to content

Luma's first week in open beta

Luma's first week in open beta

Luma's desktop app went into open beta on September 25. In the week since, it has been deployed to Cloudflare 56 times. Most of those deploys went into one problem. The recipes Luma writes can only be as precise as its idea of what each camera can actually be set to, and for three of the four brands that idea was thinner than it should have been.

Recipes that match the camera's own menus

A recipe is only useful if every value in it is one you can dial into your camera. Last week the settings schemas for Sony, Canon and Nikon still described a generic picture profile, so a recipe could ask for a setting your body doesn't have, or skip one it does. This week each brand got rebuilt against the manufacturer's own menu, one at a time.

Sony recipes now use the twelve Creative Looks under Sony's own names, like FL (Film) and SH (Soft Highkey), including FL2 and FL3. Those two only exist on the α7 V, α7R VI, and the α1 II and α9 III on firmware 4.00, so Luma only offers them there. The adjustments are the ones Creative Look actually has: Contrast, Highlights, Shadows and Saturation from −9 to +9, Fade, Sharpness and Clarity from 0 to 9, and Sharpness Range from 1 to 5. The old "Color depth" field is gone, since no Creative Look has it. On the BW and SE looks, Saturation and the white balance shift are hidden because they do nothing there. Luma now knows 15 Sony bodies instead of 8. The α7 III and α7R IV no longer get AI recipes, because they use the older Creative Style system, but they stay in the gear catalog and the firmware data.

Canon's Monochrome Picture Style now offers Filter effect (Yellow, Orange, Red, Green) and Toning effect (Sepia, Blue, Purple, Green) in place of Saturation and Color tone, which Monochrome doesn't use. Sharpness gained its Fineness and Threshold sub-settings, each 1 to 5, and there's a Clarity setting from −4 to +4 on every body except the EOS R, RP and R100. The R6 Mark III, R6 V and R50 V also get Canon's fourteen Color filters, from StoryTeal&Orange to ClearAmber. A filter replaces the Picture Style on those cameras, so choosing one hides the style's own adjustments. The Canon catalog went from 8 bodies to 16, and the EOS R5 is marked discontinued.

Nikon Picture Controls now step in quarters, the way the camera does it. Sharpening runs from −3 to +9, Mid-range sharpening from −5 to +5, Clarity ±5, Contrast, Saturation and Hue ±3, and Brightness ±1.5. Monochrome has its filter effects and ten toning options, and Flat Monochrome, Deep Tone Monochrome and Rich Tone Portrait are offered on the newer bodies that have them. Nikon also went from 8 bodies to 16.

Fujifilm was already the most complete, and it still got the most new controls. There's one list of 20 film simulations, now including Reala Ace, Nostalgic Neg and Eterna Bleach Bypass. Recipe Studio gained Color Chrome Effect, Color Chrome FX Blue, exposure compensation (±2 in thirds), Clarity (−5 to +5), Monochromatic Color for Acros and Monochrome (±18 on each axis) and D Range Priority. Recipes also respect the ISO floor that dynamic range sets. DR200 needs ISO 320 or above and DR400 needs 640, except on the X-T5, X-H2, X100VI and X-T50, where those floors are 250 and 500. Before this, a recipe could ask for DR400 at ISO 200, which the camera simply won't let you do. Luma knows 21 Fujifilm bodies for recipes now, up from 15, and the catalog no longer lists a "GFX100R" that Fujifilm never made. It's the GFX100RF.

Canon and Nikon are still labelled as in development. The schemas are now close to the real menus, but I'd like to see more daily recipes for both run through actual cameras before I drop the label.

Favorite recipes

You can now favorite the daily recipe. The star sits on the daily recipe card on Home, and favorites show up on the Favorites page beside bookmarked articles, filtered by brand. A favorite is a saved copy of that day's recipe, separate from your Recipe Library, because a past daily recipe can't be fetched again once the day has moved on. You can keep up to 100.

Fixes you'd have noticed

Saves were going to the wrong brand. Every recipe saved on desktop was being filed as Fujifilm, whatever brand it was for. That's fixed, and saves now keep their brand.

Coming back to the app after a long time away could show sample news, a placeholder recipe or a "Sign in to…" prompt for a moment, because requests went out before the expired session had been refreshed. Requests now wait for the fresh token, and the startup check tries a refresh before deciding you've been signed out. Two open tabs no longer sign each other out, either.

Switching accounts in the same browser used to carry the previous account's brands, streak and draft into the new one. Desktop now clears them when the account changes.

A favorite or bookmark added on your phone could vanish when you then saved something from a desktop tab that had been open for hours. That tab held an old copy of the list, the server rejected its write as stale, and the app quietly took the server's copy, dropping the new entry while the screen still showed it saved. Favorites and bookmarks are now re-read right before every write and whenever the app comes back to the foreground. The cost is that a favorite or bookmark tapped while offline is refused with a message instead of being queued.

When you're offline, the app now says "Couldn't reach the server — check your connection and try again." instead of passing on a raw network error. And if you reload just after I've deployed, a stale code chunk now triggers a quiet reload instead of the error screen.

"AI generations" are now called AI credits everywhere, since each AI tool costs between 1 and 3 of them, and the credit count in the header updates the moment you spend one. While renaming it I found that the Pro Plus trial promised "Unlimited AI generations". That was never true, and the line now says "More AI credits".

Privacy and the plumbing

Luma now removes GPS location data from the images you upload to community posts, your avatar, recipes and the Journal.

Luma also records a handful of product milestones itself: sign-up, first saved recipe, seeing the upgrade screen, starting checkout and paying. They're stored in Luma's own database with no analytics vendor involved, and nothing is recorded if you've switched Analytics off in Settings. The privacy page has a new "Product milestones" section that lists exactly what's kept.

At the end of the beta post I said crash reports from Turkey never reached me, because Turkish ISPs block Sentry's ingest hosts. Desktop error reports now go through lumaphoto.app itself, and the first one to arrive that way came from Turkey. You no longer need to email me for me to see a crash, though I'd still like to hear about it.

The database is now also exported off Cloudflare every week, and each export is restored into a scratch database and checked before it's kept. The privacy page says how long deleted data can survive in those copies, which is 60 days at most.

The day after the beta opened, a few more things changed. New accounts now confirm their email address, sign-in and account emails carry Luma's branding, uploaded files moved to storage in Western Europe, and the notifications bell became a real inbox. The app's first load dropped from 153 KB to 112 KB gzipped. The lighter AI jobs, like photo tagging and Photo Spots, moved to Claude Haiku, which makes them faster.

What's next

The Android app moved from 1.0.11 to 1.0.30 this week and carries everything above, but it still isn't in a store. I've started on the Play Store paperwork. The firmware tracker in the desktop app is still Fujifilm-only, even though the scrapers behind it now cover Sony, Canon and Nikon bodies too. I'll open it to those brands once I trust their data as much as Fujifilm's.


Luma is a CraftedPxl project. Try the beta at lumaphoto.app, read more on the Luma project page, or get in touch.


About the Author

CraftedPxl is a digital playground exploring the intersection of design, code, and photography.