Repository navigation
Releases
Chromis 1.4.3
Hotfix: in 1.4.2, Remove object's AI did not work on most phones.
Fixed
- Remove object said its AI "isn't available on this device" on ARM phones with fp16 arithmetic - nearly every phone since 2018. The MobileSAM encoder (fp16) would not create its session: ONNX Runtime 1.28 fuses the model's
Erfarithmetic into an fp16com.microsoft.Geluand then has no fp16 kernel for it (ORT_NOT_IMPLEMENTED). Every session now disablesGeluFusionL1;GeluFusionL2. The x86 emulator never takes that path, which is why the device tests passed.
Verified
On a Xiaomi 15 Ultra (Snapdragon 8 Elite): MobileSAM fails before the fix and runs after it (2.7 s, mask within 1% of the object); U²-Net and MI-GAN pass. The emulator still passes. A unit test now pins the disabled optimizers and their ; separator.
Notes
- Version 1.4.3, versionCode 11. Built with Flutter 3.44.9.
- The Play "What's new" is 1.4.2's with the fixes line widened, since most users are still on 1.3.0 -
whatsnew-1.4.3.txt. - Details:
docs/release/1.4.3.md.
Full changes: v1.4.2...v1.4.3
🤖 Generated with Claude Code
Chromis 1.4.2
No change inside the app. This is the build that goes to Google Play, and the first one uploaded by the release workflow.
Changed
- README brought up to date: what the app is, the on-device models and their licences, ads and the Pro purchase, privacy, licensing, development, releasing and the website. It had still described the milestone plan, the wrong Go Pro product id, test ad ids and an interstitial on export.
- Publishing a GitHub release now uploads it to Google Play (production track), with the "What's new" taken from
docs/release/whatsnew-<version>.txt, never from this text.
Notes
- Version 1.4.2, versionCode 10. Built with Flutter 3.44.9.
- Play had received up to 1.3.0 only, so users move from 1.3.0 to 1.4.2: the Play "What's new" covers the 1.4.0 features and the 1.3.1 fixes -
whatsnew-1.4.2.txt. 1.4.1 does not need to be uploaded. - Details:
docs/release/1.4.2.md.
Full changes: v1.4.1...v1.4.2
🤖 Generated with Claude Code
Chromis 1.4.1
A licensing patch on top of 1.4.0 - and the build to upload in its place. Nothing new to use.
Changed
- The font picker offers a phone font only if the font's own file declares the SIL Open Font License or the Apache License 2.0. 1.4.0 listed every Latin font Android names, which on a Pixel or a Samsung phone includes the maker's own faces (Google Sans, the One UI fonts). The app never copied those files, but they are licensed for the maker's software, not for pictures made in another app. Stock Android is unaffected: all of its fonts are OFL or Apache and all are still offered.
Licence audit
Done on the 1.4.0 files after it was tagged. All 18 bundled font families declare OFL 1.1 or Apache 2.0 in their own files, are byte-identical to google/fonts (so no Reserved Font Name is in play), and ship their licence text in the app's licence page. A test now fails the build if a bundled font ever lacks a registered licence.
Notes
- Version 1.4.1, versionCode 9. Build with Flutter 3.44.9.
- Upload 1.4.1 instead of 1.4.0: the Play "What's new" is 1.4.0's unchanged -
docs/release/whatsnew-1.4.1.txt. See 1.4.0's release for everything new since 1.3.1. - Details:
docs/release/1.4.1.md.
Full changes: v1.4.0...v1.4.1
🤖 Generated with Claude Code
Chromis 1.4.0
A feature release: resize the whole image, choose how Fill in works, and pick from far more caption fonts - including the ones already on your phone.
New
- Resize image. The size button in the editor's top bar now has two tabs. Canvas changes the canvas around the layers, as before; Image scales the whole picture - 25-200% shortcuts or a custom size, width and height linked - and resamples every photo with the method you pick: Nearest neighbour, Bilinear, Bicubic or Lanczos. One undo step. Text and bubbles are redrawn rather than resampled, so they stay sharp. The photo import cap rises from 2048 to 4096 px.
- Fill in: Best quality or Low memory. Remove object's Fill in can now be told how to work: Best quality (MI-GAN, the most detail, more memory) or Low memory (content-aware fill alone, quick on any phone). The first fill asks, with a recommendation based on the phone's RAM. #68
- More fonts, and a simpler picker. 17 bundled caption fonts instead of 5 - Comic Neue, Kalam, Patrick Hand, Caveat Brush, Mali, Titan One, Bungee, Anton, Lobster, Shrikhand, Press Start 2P and Special Elite are new, every one covering the full alphabet of all six app languages - plus the fonts already installed on the phone. The Text and Bubble panels show one font field that opens a searchable list (In the app / Your fonts / On this device), with font import at the end.
- Resizing says when it hits a limit. A pinch at a layer's smallest or largest size shows a badge on the canvas and gives one light haptic tick; a typed canvas size past 8192 px says why Apply is off; the Bubble panel says when the caption already fills the bubble.
Notes
- Version 1.4.0, versionCode 8. Build with Flutter 3.44.9, the version CI pins.
- A font imported before this release whose name is now a bundled font (e.g. Lobster) or the UI font (Manrope) is renamed on first launch - "Lobster" becomes "Lobster 2" - so the two stay separate fonts.
- Play "What's new" text in all six languages:
docs/release/whatsnew-1.4.0.txt. - Verified on the API 37 emulator: the full BDD suite, a new on-device font test, and the new UI by hand. Not verified on a device: the AI tools on a 4096 px photo, and device fonts on OEM builds (Samsung, Xiaomi). Details in
docs/release/1.4.0.md. - The store screenshots still show the old font strip in the bubble panel and need a new capture session.
Full changes: v1.3.1...v1.4.0
🤖 Generated with Claude Code
Chromis 1.3.1
A bug-fix release: one fix for each crash or ANR cluster Google Play reported against 1.3.0. Nothing new to use.
Fixes
- The app no longer closes when you open Remove object on Snapdragon 8 Gen 5 / 8 Elite Gen 5 phones (Galaxy S26, razr fold, OnePlus 15). ONNX Runtime's KleidiAI kernels executed SME2 instructions on CPUs that only have SME.
flutter_onnxruntime1.8.2 → 1.9.0 (ONNX Runtime 1.28), and KleidiAI is turned off in every session. #64 - Leaving the app with Back no longer crashes on Mali GPUs. Back on the home screen used to finish the activity and tear the Flutter engine down while the ad banner was still drawing. It now moves the app to the background instead. CI builds on Flutter 3.44.9. #65
- The AI tools give their memory back when they finish. ONNX Runtime's memory arena kept 1.1 GB after two fills, which on a 2 GB phone starves the whole device. Saving to the gallery also moved off the main thread. #66
- The home-screen banner no longer renders behind the editor. Each frame of an ad's WebView makes the main thread wait for the ad's renderer process, with no timeout. The banner is now detached while another screen covers Home, and the same ad is re-attached on return. #67
Notes
- Version 1.3.1, versionCode 7. Build with Flutter 3.44.9, the version CI pins.
- Play "What's new" text in all six languages:
docs/release/whatsnew-1.3.1.txt. - None of the four could be reproduced on an affected device, so each was verified on an emulator as far as one can go.
docs/release/1.3.1.mdlists the Android vitals clusters that should go quiet.
Full changes: 96c6da6...v1.3.1