Генерація зображень через Stable Diffusion, DALL·E 3 або Midjourney API — задача, у якій вузьке місце не алгоритм, а UX очікування та управління ресурсами. Запит до cloud-моделі займає 5–30 секунд, on-device генерація на мобільному — 10–60 секунд залежно від моделі та пристрою. Весь цей час користувач повинен розуміти, що відбувається. Ми реалізували подібні механізми в десятках проектів і знаємо, як уникнути типових проблем: від thermal throttling до content policy блокувань. Для попередньої оцінки проекту зв'яжіться з нами.
AI генерація зображень у мобільному додатку: як інтегрувати?
Cloud-генерація: DALL·E 3 та Stable Diffusion API
OpenAI Images API (POST /v1/images/generations) — найпростіший шлях. Запит повертає URL зображення або base64. Час відповіді — 8–20 секунд для 1024×1024. Вартість: $0.04 за 1 зображення (DALL·E 3) або $0.002 за 1 зображення (Replicate з SDXL), що на 40% дешевше порівняно з іншими провайдерами.
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 ГБ залежно від квантизації. On-device генерація в 2–3 рази повільніша за cloud, але економить до 100% витрат на API.
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 скидає продуктивність через теплове регулювання (thermal throttling). Рішення: пауза між генераціями, моніторинг ProcessInfo.thermalState, попередження користувача.
На Android on-device Stable Diffusion працює через MediaPipe з LlmInferenceSession або напряму через ONNX Runtime з GPU-делегатом. Підтримка значно гірша, ніж на Apple Silicon — рекомендую cloud-first підхід для Android.
Що вибрати: cloud чи on-device генерацію?
| Критерій | Cloud (DALL·E / Replicate) | On-device (Core ML) |
|---|---|---|
| Швидкість | 5–30 секунд | 20–90 секунд (в 2–3 рази повільніше) |
| Якість | 1024×1024, деталізація | 512×512, нижча деталізація |
| Приватність | дані на сервері | локально, приватно |
| Вартість | $0.002–0.04 за генерацію | безкоштовно (CPU/GPU) |
| Офлайн | ні | так |
| Тепловиділення | ні | так, thermal throttling |
UX під час генерації
Прогрес-бар з реальним значенням (не spinner) — критично для довгих операцій. Stable Diffusion повертає progress.step — використовуйте його. Показуйте проміжні прев'ю (latent-preview) починаючи з 5-го кроку — це утримує увагу.
Скасування генерації: cloud-запит можна скасувати через URLSessionTask.cancel() або Replicate API POST /predictions/{id}/cancel. On-device — через флаг shouldContinue в колбеку прогресу.
Збереження в галерею: PHPhotoLibrary.requestAuthorization(for: .addOnly) на iOS. Дозвіл WRITE_EXTERNAL_STORAGE (до Android 9) або MediaStore.Images API. Запитуйте дозвіл тільки в момент першого збереження, не при відкритті екрану генерації.
Керування промптами та уникнення помилок content policy
Content policy violations — DALL·E 3 відхиляє промпти з violence, NSFW, celebrity-контентом. Потрібна валідація промпту до відправки через OpenAI Moderation API та зрозуміле повідомлення про помилку. Не показуйте системне повідомлення «Your request was rejected» — поясніть, що саме не можна.
Пам'ять на пристрої: on-device Stable Diffusion вимагає 4–6 ГБ RAM в піку. os_proc_available_memory() на iOS дає розуміння доступної пам'яті — якщо менше 1 ГБ вільно, краще fallback на cloud.
Порівняння інтеграційних підходів
| Метод | Час інтеграції | Складність | Гнучкість |
|---|---|---|---|
| DALL·E 3 API | 2-3 дні | Низька | Висока якість, але обмеження content policy |
| Replicate API | 3-4 дні | Середня | Широкий вибір моделей, асинхронність |
| On-device Core ML | 1-2 тижні | Висока | Повна приватність, але потребує потужного пристрою |
Процес роботи
Вибір архітектури → Інтеграція API → UX генерації → Обробка помилок → Тестування → Документація. На кожному етапі ми надаємо проміжні результати та погоджуємо рішення з вами. Замовте впровадження під ключ і отримайте готове рішення в обумовлені терміни.
Що входить до роботи
- Документація з інтеграції (специфікація API, схеми даних)
- Доступ до репозиторію з кодом та CI/CD
- Навчання команди замовника (2–3 години)
- Підтримка на етапі деплою в магазини (App Store, Google Play)
- Гарантія 3 місяці на виявлені баги
Орієнтири за термінами
Cloud-генерація з базовим UI — 4–6 днів. On-device Stable Diffusion з latent-preview та thermal management — 2–3 тижні. Точна оцінка залежить від складності вашого проекту — зв'яжіться з нами для розрахунку.
Наша команда має 5+ років досвіду в мобільній розробці та реалізувала більше 50 проектів з AI-генерацією. Гарантуємо якість на всіх етапах — від прототипу до продакшену. Отримайте консультацію вже сьогодні.







