Реалізація AI-генерації зображень у мобільному застосунку

TRUETECH займається розробкою, підтримкою та обслуговуванням мобільних додатків iOS, Android, PWA. Маємо великий досвід та експертизу для публікації мобільних додатків до популярних маркетів Google Play, App Store, Amazon, AppGallery та інші.

Розробка та підтримка будь-яких видів мобільних додатків:

Інформаційні та розважальні мобільні програми
Новинки, ігри, довідники, онлайн-каталоги, погодні, фітнес та здоров'я, туристичні, освітні, соціальні мережі та месенджери, квіз, блоги та подкасти, форуми, агрегатори
Мобільні програми електронної комерції
Інтернет-магазини, B2B-додатки, маркетплейси, онлайн-обмінники, кешбек-сервіси, біржі, дропшиппінг-платформи, програми лояльності, доставка їжі та товарів, платіжні системи
Мобільні програми для управління бізнес-процесами
CRM-системи, ERP-системи, управління проектами, інструменти для команди продажів, облік фінансів, управління виробництвом, логістика та доставка, управління персоналом, системи моніторингу даних
Мобільні програми електронних послуг
Дошки оголошень, онлайн-школи, онлайн-кінотеатри, платформи надання електронних послуг, платформи кешбеку, відеохостинги, тематичні портали, платформи онлайн-бронювання та запису, платформи онлайн-торгівлі

Це лише деякі з типів мобільних додатків, з якими ми працюємо, і кожен із них може мати свої специфічні особливості та функціональність, а також бути адаптованим під конкретні потреби та цілі клієнта.

Послуги, які ми пропонуємо
Показано 1 з 1Усі 1735 послуг
Реалізація AI-генерації зображень у мобільному застосунку
Середній
~1-2 тижні
Часті запитання

Наші компетенції:

Етапи розробки

Останні роботи

  • image_mobile-applications_feedme_467_0.webp
    Розробка мобільного додатка для компанії FEEDME
    792
  • image_mobile-applications_xoomer_471_0.webp
    Розробка мобільного додатку для компанії XOOMER
    671
  • image_mobile-applications_rhl_428_0.webp
    Розробка мобільного додатку для компанії RHL
    1097
  • image_mobile-applications_zippy_411_0.webp
    Розробка мобільного додатку для компанії ZIPPY
    969
  • image_mobile-applications_affhome_429_0.webp
    Розробка мобільного додатку для компанії Affhome
    914
  • image_mobile-applications_flavors_409_0.webp
    Розробка мобільного додатку для компанії FLAVORS
    495

Реалізація AI-генерації зображень у мобільному додатку

Генерація зображень через Stable Diffusion, DALL·E 3 або Midjourney API — завдання, в якому вузьке місце не алгоритм, а UX очікування та керування ресурсами. Запит до cloud-моделі займає 5–30 секунд, on-device генерація на мобілі — 10–60 секунд залежно від моделі та пристрою. Весь цей час користувач повинен розуміти, що відбувається.

Cloud-генерація: DALL·E 3 та Stable Diffusion API

OpenAI Images API (POST /v1/images/generations) — найпростіший шлях. Запит повертає URL зображення або base64. Час відповіді — 8–20 секунд для 1024×1024.

struct ImageGenerationRequest: Encodable {
    let model: String          // "dall-e-3"
    let prompt: String
    let n: Int                 // 1 (dall-e-3 не підтримує > 1)
    let size: String           // "1024x1024"
    let quality: String        // "standard" або "hd"
    let responseFormat: String // "url" або "b64_json"

    enum CodingKeys: String, CodingKey {
        case model, prompt, n, size, quality
        case responseFormat = "response_format"
    }
}

Replicate API дає доступ до Stable Diffusion XL, FLUX та інших open-source моделей. Особливість — асинхронна модель: перший запит повертає prediction ID, потім потрібен polling або webhook. На мобільному клієнті polling кожні 2 секунди з exponential backoff при помилках:

suspend fun pollPrediction(predictionId: String): String {
    var delay = 2000L
    repeat(15) {
        delay(delay)
        val result = api.getPrediction(predictionId)
        if (result.status == "succeeded") return result.output.first()
        if (result.status == "failed") throw GenerationException(result.error)
        delay = minOf(delay * 1.5, 8000L).toLong()
    }
    throw TimeoutException("Generation timed out")
}

On-Device генерація через Core ML

Apple ML Research випустила Stable Diffusion для Apple Silicon. На iPhone 15 Pro / M-серії iPad — ~20 секунд на 512×512, 20 кроків. На iPhone 12 — 60–90 секунд. Модель важить 2–6 ГБ залежно від квантизації.

import StableDiffusion

let pipeline = try StableDiffusionPipeline(
    resourcesAt: modelDirectory,
    controlNet: [],
    configuration: .init()
)
pipeline.loadResources()

var config = StableDiffusionPipeline.Configuration(prompt: userPrompt)
config.stepCount = 20
config.guidanceScale = 7.5
config.seed = UInt32.random(in: 0...UInt32.max)

let images = try pipeline.generateImages(configuration: config) { progress in
    DispatchQueue.main.async {
        self.generationProgress = Double(progress.step) / Double(progress.stepCount)
    }
    return true // продовжити генерацію
}

Thermal throttling — реальна проблема. Після 3–4 послідовних генерацій iPhone скидає продуктивність. Рішення: пауза між генераціями, моніторинг ProcessInfo.thermalState, попередження користувача.

На Android on-device Stable Diffusion працює через MediaPipe з LlmInferenceSession або прямо через ONNX Runtime з GPU-делегатом. Підтримка значно гірша, ніж на Apple Silicon — рекомендую cloud-first підхід для Android.

UX під час генерації

Прогрес-бар з реальним значенням (не spinner) — критично для довгих операцій. Stable Diffusion повертає progress.step — використовуйте його. Показуйте проміжні превью (latent-preview) з 5-го кроку — утримує увагу.

Скасування генерації: cloud-запит можна скасувати через URLSessionTask.cancel() або Replicate API POST /predictions/{id}/cancel. On-device — через флаг у callback прогресу.

Збереження в галерею: PHPhotoLibrary.requestAuthorization(for: .addOnly) на iOS. Дозвіл WRITE_EXTERNAL_STORAGE (до Android 9) або MediaStore.Images API. Запитуйте дозвіл тільки при першому збереженні, не при відкритті екрана генерації.

Типові помилки

Порушення content policy — DALL·E 3 відхиляє промпти з насильством, NSFW, контентом знаменитостей. Потрібна валідація промпту перед відправкою (OpenAI Moderation API) та зрозуміле повідомлення про помилку. Не показуйте «Your request was rejected» — поясніть, що саме заборонено.

Пам'ять пристрою: on-device Stable Diffusion потребує 4–6 ГБ RAM у піку. os_proc_available_memory() на iOS показує доступну пам'ять — якщо менше 1 ГБ вільної, краще fallback на cloud.

Процес реалізації

Вибір архітектури (cloud / on-device / hybrid). Інтеграція вибраного API з обробкою async-паттернів (polling / webhook). UX генерації: прогрес, превью, скасування. Зберігання та експорт. Обробка content policy та мережевих помилок. Тестування на різних пристроях — від бюджетних до флагманів.

Орієнтири за часом

Cloud-генерація з базовим UI — 4–6 днів. On-device Stable Diffusion з latent-preview та thermal management — 2–3 тижні.