Repository navigation
Releases: scsonic/libQwenImage21
Release list
v0.4.0
Full Changelog: v0.3.0...v0.4.0
v0.3.0
v0.2.2
First release built and published entirely by CI (.github/workflows/build.yml), triggered by this tag. Verified
end to end: uninstalled the app, installed this exact APK, pushed the models, and generated an image on it.
Changes since v0.2
- Consistent debug signing. All builds — local and CI — now sign with a debug key checked into the repo
instead of each machine's own~/.android/debug.keystore. Without this, the CI-built APK couldn't update a
locally-built install (INSTALL_FAILED_UPDATE_INCOMPATIBLE) and vice versa. push_models.sh:adb pushintoAndroid/data/<pkg>failed outright on a locked-down test device
("remote fchown failed", no file left behind); pushes now go throughadb shell cat >instead, and the
script chmods the directories/files so the app can actually read what's pushed. Also follows symlinks, so a
text_encoder/shared with another model isn't silently skipped.- README trimmed and given a top-of-file link to the Chinese section.
- CI: builds the demo APK and
qwenimage21AAR on every push and PR; av*tag build also attaches both here,
named<artifact>-<tag>-<commit>.{apk,aar}.
Full Changelog: v0.2.1...v0.2.2
v0.2.1
Superseded by v0.2.2 — this build's debug
signature doesn't match v0.2.2 or later (fixed by a checked-in shared debug keystore), so upgrading over it needs
an uninstall first.
v0.2 — image editing on GPU, size tiers, English UI
Superseded by v0.2.2 — its signature also differs from v0.2.2, so upgrading over it needs an uninstall first.
Needs the current models from evankuo/Qwen-Image-2.1-MNN — dit.mnn and dit.mnn.weight were re-exported on 2026-09-24. v0.1 does not work with the new files, and this release does not work with the old ones. Re-download both, or tap Download models in the app: it checks every file already on the phone against the repo's checksums (the new dit.mnn.weight has exactly the old size, so size alone would not catch it) and fetches only the ones that changed.
Changes
- Image editing works on the GPU at every size. The DiT K/V cache is now one tensor per layer. As a single tensor, a Standard-size edit needed ~1 GB in one buffer, which is more than Adreno's 1 GiB limit, and every step read garbage.
- Fixed the edit colours. The input image reached the VAE and the vision tower with red and blue swapped, which turned skin teal in the output.
- Sizes: 7 aspect ratios × 3 pixel budgets (Standard ~512², Fast ~384², Tiny ~320²). The app shows the exact output size, and edit mode takes a size too.
- Out-of-memory handling: each stage checks free memory first and shows a retryable Out of memory dialog. If Android still kills the app, the next launch says which stage and settings it was running. The VAE estimate is now fitted to phone measurements.
- Prompt history, English UI, new README samples (all generated on a Snapdragon 8 Gen 2).
Measured on a Snapdragon 8 Gen 2, 20 steps
| total | |
|---|---|
| Text to image 448×576 (Standard) | 451 s |
| Text to image 512×288 (Fast) | 289 s |
| Text to image 320×320 (Tiny) | 217 s |
| Image edit → 352×448 (Fast) | 348 s |
| Image edit → 448×576 (Standard) | 556 s |
Assets: demo APK (debug-signed, arm64) and the qwenimage21 AAR. Built from c3cceea (MNN 1965a263).
v0.1 — first working port
Superseded by v0.2. The models on Hugging Face were re-exported on 2026-09-24 and no longer load with this APK/AAR.
First working Qwen-Image-2.1 text-to-image on Android (MNN, int4, OpenCL).
QwenImage21-demo-v0.1.apk: demo app (arm64). Download the models in the app (~10 GB) or push them withscripts/push_models.sh.qwenimage21-v0.1.aar: Android library.- Models: https://huggingface.co/evankuo/Qwen-Image-2.1-MNN
Tested on Snapdragon 8 Gen 2 / 16 GB: 512×512, ~19.7 s per step, ~490 s for 20 steps. See README for limitations.