Skip to content

Commit 1f3dc38

Browse files
committed
feat: QNN hires, gallery selection save, progress notifications, custom models scan
- QNN Hires.Fix only for square resolutions (512→768/1024, 768→1024) - Add save selected images to device gallery + dialog copy - Add low-importance progress notification channel to avoid heads-up popups - Remove donate button from settings - Update localization (en/ru/uk/tr/zh) and release notes - Improve custom local model scanning/selection + prompt persistence - Update release workflow to prepare QNN libs
1 parent 3e55659 commit 1f3dc38

46 files changed

Lines changed: 979 additions & 113 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.github/workflows/release.yml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,9 @@ jobs:
2929
- name: Grant execute permissions for gradlew
3030
run: chmod +x ./gradlew
3131

32+
- name: Prepare QNN libraries
33+
run: ./scripts/prepare_qnn_libs.sh
34+
3235
- name: Decode Keystore
3336
env:
3437
KEYSTORE_BASE64: ${{ secrets.KEYSTORE_BASE64 }}

RELEASE_NOTES_0.7.0.md

Lines changed: 26 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,29 @@ Image generation on Snapdragon devices using NPU and GPU.
3333
- GPU (OpenCL/Adreno) — general-purpose graphics processor
3434
- CPU — central processor (fallback option)
3535

36+
**Modes:**
37+
- Text-to-Image, Image-to-Image
38+
39+
**Resolution support:**
40+
- NPU (HTP): 512×512 to 1024×1024
41+
- CPU/GPU: 256×256 to 512×512
42+
43+
**Hires.Fix (NPU only):**
44+
- Generate at 512×512 or 768×768, upscale to larger square resolution, refine with img2img pass
45+
- Only square resolutions support Hires.Fix (512×512 → 768/1024, 768×768 → 1024)
46+
- Configurable target resolution, steps, and denoising strength
47+
48+
---
49+
50+
### Local Diffusion Enhancements
51+
52+
Improved support for all local backends (ONNX, MediaPipe, QNN):
53+
54+
- **Custom models scanning** — automatic detection of user-provided models from custom directories
55+
- **Strict model validation** — each backend validates model structure before loading
56+
- **Prompt persistence** — last used prompt is saved and restored per backend
57+
- **Model selection in generation UI** — switch between models directly from the generation screen
58+
3659
---
3760

3861
### ADetailer and Hires.Fix for A1111/Forge
@@ -56,6 +79,7 @@ Image generation on Snapdragon devices using NPU and GPU.
5679
### Gallery
5780
- Model name displayed in image details
5881
- Optimized swipe navigation between images
82+
- Save selected images to device gallery (in selection mode)
5983

6084
### Log Export
6185
- Log file export function for diagnostics
@@ -98,7 +122,7 @@ Image generation on Snapdragon devices using NPU and GPU.
98122
- Material → 1.13.0
99123
- RxJava → 3.1.12
100124
- Apache String Utils → 3.20.0
101-
- MediaPipe → 0.10.26.1
125+
- MediaPipe → 0.10.21
102126
- Serialization → 1.9.0
103127
- Turbine → 1.2.1
104128
- Appcompat → 1.7.1
@@ -121,4 +145,4 @@ Image generation on Snapdragon devices using NPU and GPU.
121145
- Light status bar works correctly
122146
- Localization files updated (RU, TR, UK, ZH)
123147
- Added module tests for Fal.AI and Forge, updated existing tests
124-
148+
- Removed donate button from settings
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
package dev.minios.pdaiv1.core.common.model
2+
3+
import java.io.Serializable
4+
5+
data class Octagonal<out A, out B, out C, out D, out E, out F, out G, out H>(
6+
val first: A,
7+
val second: B,
8+
val third: C,
9+
val fourth: D,
10+
val fifth: E,
11+
val sixth: F,
12+
val seventh: G,
13+
val eighth: H,
14+
) : Serializable {
15+
16+
override fun toString(): String = "($first, $second, $third, $fourth, $fifth, $sixth, $seventh, $eighth)"
17+
}

core/localization/src/main/res/values-ru/strings.xml

Lines changed: 13 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -33,8 +33,8 @@
3333
<string name="splash_status_launching">Запуск приложения!</string>
3434

3535
<string name="local_no_img2img_support_title">Не доступно</string>
36-
<string name="local_no_img2img_support_sub_title">Режим «Изображение в изображении» (img2img) недоступен при использовании локальных ресурсов телефона для создания изображений.</string>
37-
<string name="local_no_img2img_support_sub_title_2">Вы можете перейти к генерации на основе сервера в настройках, чтобы использовать этот режим.</string>
36+
<string name="local_no_img2img_support_sub_title">Режим «Изображение в изображении» (img2img) не поддерживается бэкендами ONNX и MediaPipe.</string>
37+
<string name="local_no_img2img_support_sub_title_2">Вы можете переключиться на QNN, серверную генерацию или другой провайдер в настройках конфигурации.</string>
3838

3939
<string name="dalle_no_img2img_support_sub_title">Режим «Изображение в изображении» (img2img) пока не поддерживается DALL·E.</string>
4040
<string name="dalle_no_img2img_support_sub_title_2">Вы можете перейти к генерации на основе другого сервера в настройках, чтобы использовать этот режим.</string>
@@ -45,6 +45,7 @@
4545
<string name="action_select">Выбрать</string>
4646
<string name="action_connect">Подключиться</string>
4747
<string name="action_setup">Настроить</string>
48+
<string name="action_start">Запустить</string>
4849
<string name="action_share_prompt">Поделиться запросом</string>
4950
<string name="action_send_to_txt2img">Использовать в txt2img</string>
5051
<string name="action_send_to_img2img">Использовать в img2img</string>
@@ -163,6 +164,13 @@
163164

164165
<string name="hint_qnn_sub_title">Эта конфигурация использует Qualcomm QNN SDK с ускорением NPU (HTP) и MNN backend для быстрой генерации Stable Diffusion на устройстве. Требуется Snapdragon 8 Gen 1 или новее.</string>
165166

167+
<string name="hint_qnn_hires">Hires. Fix (NPU)</string>
168+
<string name="hint_qnn_hires_enabled">Включить Hires. Fix</string>
169+
<string name="hint_qnn_hires_target">Целевое разрешение</string>
170+
<string name="hint_qnn_hires_steps">Шаги: %1$s (0 = как в первом проходе)</string>
171+
<string name="hint_qnn_hires_denoising">Шумоподавление: %1$s</string>
172+
<string name="hint_qnn_hires_description">Увеличить и улучшить детали через img2img</string>
173+
166174
<string name="drawer_web_ui">Веб</string>
167175

168176
<string name="home_tab_txt_to_img">Txt2Img</string>
@@ -175,6 +183,7 @@
175183
<string name="gallery_tab_info">Подробности</string>
176184
<string name="gallery_save_success">Изображение сохранено в галерею</string>
177185
<string name="gallery_save_all_success">Все изображения сохранены в галерею</string>
186+
<string name="gallery_save_selection_success">Выбранные изображения сохранены в галерею</string>
178187

179188
<string name="title_text_to_image">Текст в Картинку</string>
180189
<string name="title_image_to_image">Картинка в Картинку</string>
@@ -268,6 +277,7 @@
268277
<string name="interaction_export_sub_title_selection">Эта функция экспортирует выбранные изображения галереи в архив *.zip. Желаете продолжить?</string>
269278
<string name="interaction_save_to_gallery_title">Сохранить в галерею устройства</string>
270279
<string name="interaction_save_to_gallery_sub_title">Это сохранит все изображения в галерею вашего устройства. Процесс может занять некоторое время, если у вас много изображений. Желаете продолжить?</string>
280+
<string name="interaction_save_to_gallery_sub_title_selection">Это сохранит выбранные изображения в галерею вашего устройства. Желаете продолжить?</string>
271281
<string name="interaction_cache_sub_title">Это приведет к сбросу настроек программы и удалению всех созданных изображений. Вы хотите продолжить?</string>
272282

273283
<string name="interaction_warning_title">Предупреждение</string>
@@ -396,7 +406,7 @@
396406
<string name="on_boarding_page_form_title">Расширенные функции\n[Stable Diffusion].</string>
397407
<string name="on_boarding_page_local_title">[Офлайн] генерация\nLocal Diffusion.</string>
398408
<string name="on_boarding_page_ui_title">Настройте приложение,\nсделайте его [своим]!</string>
399-
<string name="on_boarding_page_provider_title">[Свобода] выбора\nпровайедра генерации.</string>
409+
<string name="on_boarding_page_provider_title">[Свобода] выбора\nпровайдера генерации.</string>
400410

401411
<string name="report_title">Пожаловаться</string>
402412
<string name="report_submit">Отправить жалобу</string>

core/localization/src/main/res/values-tr/strings.xml

Lines changed: 17 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -31,8 +31,8 @@
3131
<string name="splash_status_launching">Uygulama Başlatılıyor!</string>
3232

3333
<string name="local_no_img2img_support_title">Müsait değil</string>
34-
<string name="local_no_img2img_support_sub_title">Görüntü oluşturmak için yerel telefon kaynaklarınızı kullanıyorsanız, Görüntüden Görüntüye modu kullanılamaz.</string>
35-
<string name="local_no_img2img_support_sub_title_2">Image to Image modunu kullanmak için Yapılandırma ayarlarında sunucu tabanlı oluşturmaya geçebilirsiniz.</string>
34+
<string name="local_no_img2img_support_sub_title">Görüntüden Görüntüye modu ONNX ve MediaPipe arka uçları tarafından desteklenmiyor.</string>
35+
<string name="local_no_img2img_support_sub_title_2">QNN, sunucu tabanlı oluşturma veya başka bir sağlayıcıya geçiş yaparak bu modu kullanabilirsiniz.</string>
3636

3737
<string name="dalle_no_img2img_support_sub_title">Görüntüden Görüntüye modu henüz DALL·E tarafından desteklenmiyor.</string>
3838
<string name="dalle_no_img2img_support_sub_title_2">Görüntüden Görüntüye modunu kullanmak için Yapılandırma ayarlarında herhangi bir başka sunucu tabanlı nesle geçebilirsiniz.</string>
@@ -43,6 +43,7 @@
4343
<string name="action_select">Seç</string>
4444
<string name="action_connect">Bağlan</string>
4545
<string name="action_setup">Kurmak</string>
46+
<string name="action_start">Başlat</string>
4647
<string name="action_share_prompt">İstemi paylaş</string>
4748
<string name="action_send_to_txt2img">txt2img\'de kullanın</string>
4849
<string name="action_send_to_img2img">img2img\'de kullanın</string>
@@ -161,6 +162,13 @@
161162

162163
<string name="hint_qnn_sub_title">Bu yapılandırma, cihaz üzerinde hızlı Stable Diffusion üretimi için NPU hızlandırması (HTP) ve MNN arka ucu ile Qualcomm QNN SDK kullanır. Snapdragon 8 Gen 1 veya daha yenisi gerektirir.</string>
163164

165+
<string name="hint_qnn_hires">Hires. Fix (NPU)</string>
166+
<string name="hint_qnn_hires_enabled">Hires. Fix\'i etkinleştir</string>
167+
<string name="hint_qnn_hires_target">Hedef çözünürlük</string>
168+
<string name="hint_qnn_hires_steps">Adımlar: %1$s (0 = aynı)</string>
169+
<string name="hint_qnn_hires_denoising">Gürültü Azaltma: %1$s</string>
170+
<string name="hint_qnn_hires_description">Büyüt ve img2img ile iyileştir</string>
171+
164172
<string name="drawer_web_ui">Web arayüzü</string>
165173

166174
<string name="home_tab_txt_to_img">Txt2Img</string>
@@ -207,7 +215,11 @@
207215
<string name="gallery_menu_selected">Seçili resimler: %1$s</string>
208216
<string name="gallery_menu_delete_all">Tümünü sil</string>
209217
<string name="gallery_menu_export_all">Tümünü dışa aktar</string>
218+
<string name="gallery_menu_save_all">Tümünü cihaza kaydet</string>
210219
<string name="gallery_menu_selection_mode">Seçim modu</string>
220+
<string name="gallery_save_success">Resim galeriye kaydedildi</string>
221+
<string name="gallery_save_all_success">Tüm resimler galeriye kaydedildi</string>
222+
<string name="gallery_save_selection_success">Seçili resimler galeriye kaydedildi</string>
211223

212224
<string name="settings_header_server">AI ayarları</string>
213225
<string name="settings_header_app">Uygulama ayarları</string>
@@ -261,6 +273,9 @@
261273
<string name="interaction_export_title">Galeriyi Dışa Aktar</string>
262274
<string name="interaction_export_sub_title">Bu işlem bütün galerideki resimleri tek bir .zip arşivi dosyası olarak dışa aktaracaktır. Galerinizin boyutuna göre bu işlem uzun bir zaman alabailir. Devam etmek istiyor musunuz?</string>
263275
<string name="interaction_export_sub_title_selection">Bu, seçili galeri resimlerini *.zip arşivi olarak dışa aktaracaktır. Devam etmek istiyor musunuz?</string>
276+
<string name="interaction_save_to_gallery_title">Cihaz Galerisine Kaydet</string>
277+
<string name="interaction_save_to_gallery_sub_title">Bu, tüm resimleri cihazınızın galerisine kaydedecektir. Çok sayıda resminiz varsa bu işlem biraz zaman alabilir. Devam etmek istiyor musunuz?</string>
278+
<string name="interaction_save_to_gallery_sub_title_selection">Bu, seçili resimleri cihazınızın galerisine kaydedecektir. Devam etmek istiyor musunuz?</string>
264279
<string name="interaction_cache_sub_title">Bu işlem bütün uygulama ayarlarını ve oluşturulan resimleri silecektir. Devam etmek istiyor musunuz?</string>
265280

266281
<string name="interaction_warning_title">Uyarı</string>

core/localization/src/main/res/values-uk/strings.xml

Lines changed: 17 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -31,8 +31,8 @@
3131
<string name="splash_status_launching">Запускаємо додаток!</string>
3232

3333
<string name="local_no_img2img_support_title">Не доступно</string>
34-
<string name="local_no_img2img_support_sub_title">Режим «Зображення в зображення» (img2img) недоступний, якщо ви використовуєте локальні ресурси телефону для створення зображень.</string>
35-
<string name="local_no_img2img_support_sub_title_2">Ви можете перейти до генерації на основі сервера в налаштуваннях, щоб використовувати цей режим.</string>
34+
<string name="local_no_img2img_support_sub_title">Режим «Зображення в зображення» (img2img) не підтримується бекендами ONNX та MediaPipe.</string>
35+
<string name="local_no_img2img_support_sub_title_2">Ви можете переключитися на QNN, серверну генерацію або інший провайдер у налаштуваннях конфігурації.</string>
3636

3737
<string name="dalle_no_img2img_support_sub_title">Режим «Зображення в зображення» (img2img) поки не підтримується DALL·E.</string>
3838
<string name="dalle_no_img2img_support_sub_title_2">Ви можете перейти до генерації на основі будь-якого іншого сервера в налаштуваннях, щоб використовувати цей режим.</string>
@@ -43,6 +43,7 @@
4343
<string name="action_select">Обрати</string>
4444
<string name="action_connect">Підключитися</string>
4545
<string name="action_setup">Налаштувати</string>
46+
<string name="action_start">Запустити</string>
4647
<string name="action_share_prompt">Поділитися запитом</string>
4748
<string name="action_send_to_txt2img">Відправити в txt2img</string>
4849
<string name="action_send_to_img2img">Відправити в img2img</string>
@@ -161,6 +162,13 @@
161162

162163
<string name="hint_qnn_sub_title">Ця конфігурація використовує Qualcomm QNN SDK з прискоренням NPU (HTP) та MNN backend для швидкої генерації Stable Diffusion на пристрої. Потрібен Snapdragon 8 Gen 1 або новіший.</string>
163164

165+
<string name="hint_qnn_hires">Hires. Fix (NPU)</string>
166+
<string name="hint_qnn_hires_enabled">Увімкнути Hires. Fix</string>
167+
<string name="hint_qnn_hires_target">Цільова роздільна здатність</string>
168+
<string name="hint_qnn_hires_steps">Кроки: %1$s (0 = як у першому проході)</string>
169+
<string name="hint_qnn_hires_denoising">Шумозаглушення: %1$s</string>
170+
<string name="hint_qnn_hires_description">Збільшити та покращити деталі через img2img</string>
171+
164172
<string name="drawer_web_ui">Веб</string>
165173

166174
<string name="home_tab_txt_to_img">Txt2Img</string>
@@ -207,7 +215,11 @@
207215
<string name="gallery_menu_selected">Обрано: %1$s</string>
208216
<string name="gallery_menu_delete_all">Видалити все</string>
209217
<string name="gallery_menu_export_all">Експортувати все</string>
218+
<string name="gallery_menu_save_all">Зберегти все на пристрій</string>
210219
<string name="gallery_menu_selection_mode">Режим вибору</string>
220+
<string name="gallery_save_success">Зображення збережено в галерею</string>
221+
<string name="gallery_save_all_success">Всі зображення збережено в галерею</string>
222+
<string name="gallery_save_selection_success">Обрані зображення збережено в галерею</string>
211223

212224
<string name="settings_header_server">Параметри AI</string>
213225
<string name="settings_header_app">Налаштування</string>
@@ -261,6 +273,9 @@
261273
<string name="interaction_export_title">Експорт галереї</string>
262274
<string name="interaction_export_sub_title">Ця функція експортує всі зображення галереї у архів *.zip. Цей процес може тривати довго, якщо у вас багато зображень. Бажаєте продовжити?</string>
263275
<string name="interaction_export_sub_title_selection">Ця функція експортує обрані зображення галереї у архів *.zip. Бажаєте продовжити?</string>
276+
<string name="interaction_save_to_gallery_title">Зберегти до галереї пристрою</string>
277+
<string name="interaction_save_to_gallery_sub_title">Це збереже всі зображення до галереї вашого пристрою. Цей процес може зайняти деякий час, якщо у вас багато зображень. Бажаєте продовжити?</string>
278+
<string name="interaction_save_to_gallery_sub_title_selection">Це збереже обрані зображення до галереї вашого пристрою. Бажаєте продовжити?</string>
264279
<string name="interaction_cache_sub_title">Це призведе до скидання налаштувань програми та видалення всіх створених зображень. Ви бажаєте продовжити?</string>
265280

266281
<string name="interaction_warning_title">Попередження</string>

0 commit comments

Comments
 (0)