AI-стилізація фото в мобільному застосунку: реалізація

Чому on-device AI-стилізація вигідніша за серверну? Ми реалізуємо інтеграцію AI-стилізації фотографій у мобільні застосунки. Основна біль клієнтів — Neural Style Transfer (NST) на мобілці не має гальмувати. Модель VGG-19 важить 500+ MB, а обробка кадру 512×512 на iPhone 12 без прискорення займає

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

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

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

Послуги, які ми пропонуємо
Показано 1 з 1Усі 1734 послуг
AI-стилізація фото в мобільному застосунку: реалізація
Середній
~3-5 днів

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

Часті запитання

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

  • image_mobile-applications_feedme_467_0.webp
    Розробка мобільного додатка для компанії FEEDME
    896
  • image_mobile-applications_xoomer_471_0.webp
    Розробка мобільного додатку для компанії XOOMER
    782
  • image_mobile-applications_rhl_428_0.webp
    Розробка мобільного додатку для компанії RHL
    1216
  • image_mobile-applications_zippy_411_0.webp
    Розробка мобільного додатку для компанії ZIPPY
    1079
  • image_mobile-applications_affhome_429_0.webp
    Розробка мобільного додатку для компанії Affhome
    1003
  • image_mobile-applications_flavors_409_0.webp
    Розробка мобільного додатку для компанії FLAVORS
    597

Чому on-device AI-стилізація вигідніша за серверну?

Ми реалізуємо інтеграцію AI-стилізації фотографій у мобільні застосунки. Основна біль клієнтів — Neural Style Transfer (NST) на мобілці не має гальмувати. Модель VGG-19 важить 500+ MB, а обробка кадру 512×512 на iPhone 12 без прискорення займає 3–4 секунди. Користувач таке не пробачить. Наш досвід показує: правильний вибір архітектури — запорука успіху. On-device інференс у 10 разів швидший за серверний, що критично для UX.

Серверний шлях (через Replicate, Stability AI або власний бекенд на PyTorch) простий у реалізації, але затримка від 3 до 15 секунд. On-device через CoreML або TFLite — складніше, але дає миттєвий preview. Нижче — порівняння підходів.

Параметр Серверна обробка On-device (CoreML/TFLite)
Час інференсу (512×512) 3–15 с (залежить від мережі) 80–120 мс (Neural Engine)
Розмір моделі Не обмежений 6–8 MB (після квантизації)
Обробка відео Не застосовно До 15 fps live preview
Якість Максимальне (будь-яка модель) Хороше (Fast NST backbone)
Залежність від інтернету Так Ні

На практиці ми рекомендуємо гібрид: on-device для швидкого прев’ю (256×256), сервер — для фінального експорту в 4K. Це знижує витрати на серверну інфраструктуру на 30%. Вибір архітектури — ключовий етап. Отримайте консультацію наших інженерів.

Як підготувати модель для мобільного деплою?

Стандартний PyTorch-чекпоінт не можна скормити Core ML Tools напряму. Ланцюжок перетворень:

  1. Навчаємо або беремо готовий Fast NST у PyTorch (torchvision.models або кастомний).
  2. torch.onnx.export → ONNX граф.
  3. coremltools.convert(onnx_model, compute_precision=ct.precision.FLOAT16).mlpackage.
  4. Тестуємо на симуляторі через MLModel.prediction(from:).

Квантизація FLOAT16 дає дворазове зменшення розміру без помітної втрати якості. INT8 — ще агресивніше, але артефакти на текстурах стають помітними. Для Android: tf.lite.TFLiteConverter.from_keras_model().tflite з посттренувальною квантизацією.

Інтеграція в iOS

import CoreML import Vision class StyleTransferProcessor { private let model: VNCoreMLModel init() throws { let mlModel = try FastNST(configuration: MLModelConfiguration()).model model = try VNCoreMLModel(for: mlModel) } func process(image: CGImage, completion: @escaping (CGImage?) -> Void) { let request = VNCoreMLRequest(model: model) { req, _ in guard let obs = req.results?.first as? VNPixelBufferObservation else { completion(nil); return } let ciImage = CIImage(cvPixelBuffer: obs.pixelBuffer) completion(CIContext().createCGImage(ciImage, from: ciImage.extent)) } request.imageCropAndScaleOption = .scaleFill try? VNImageRequestHandler(cgImage: image).perform([request]) } } 

Metal Performance Shaders задіюються автоматично через Neural Engine — не потрібно писати шейдери вручну.

Як керувати пам’яттю та батареєю?

Найчастіша помилка — тримати модель завантаженою постійно. На пристроях з 3 GB RAM (iPhone SE 2, бюджетні Android) це провокує jetsam-кілл. Правило: MLModel ініціалізується ліниво, при першому зверненні, і вивантажується після 10 хвилин неактивності. Гарантія стабільності — наше зобов’язання.

Батарея: NST навантажує Neural Engine. Для live preview обмежуємо частоту до 10–15 fps через CADisplayLink з preferredFramesPerSecond. Повний 30 fps на iPhone 14 Pro реальний, але розрядка прискорюється на 30%. Досвід показує, що користувачі віддають перевагу балансу.

Що робити з великими роздільностями?

CoreML моделі приймають фіксований input shape. Якщо модель навчена на 512×512, а користувач завантажив 48 MP фото (8064×6048) — потрібно downscale перед інференсом і upscale результату. Простий UIImage resize втрачає деталі. Ми використовуємо Guided Upsample через MPSImageBilinearScale або Real-ESRGAN для апскейлу до 4K. Це додає крок обробки, але фінальна якість гідна.

Порівняння моделей для on-device NST

Модель Backbone Розмір Якість Затримка (512×512)
Fast NST (MobileNet) MobileNetV2 6 MB Хороше 80 мс
AdaIN VGG-16 50 MB Відмінне 200 мс

Fast NST з MobileNet — оптимальний вибір для мобільних пристроїв.

Серверний шлях через Replicate

Якщо on-device не підходить, Replicate API дає доступ до NST моделей. Запит:

POST https://api.replicate.com/v1/predictions Authorization: Token <key> { "version": "<model_version_hash>", "input": { "content_image": "<base64_or_url>", "style_image": "<base64_or_url>", "output_image_size": 1024 } } 

Polling статусу кожні 2 секунди. Результат за 8–20 секунд. Ключ зберігаємо на backend-proxy — на клієнті його бути не повинно.

Що входить у роботу?

  • Аналітика та прототип: вибір архітектури (on-device / сервер / гібрид), підбір моделі, оцінка продуктивності.
  • Підготовка моделі: навчання / дистиляція, квантизація, конвертація в CoreML / TFLite.
  • Інтеграція в застосунок: SwiftUI / Jetpack Compose, live preview, обробка жестів, збереження.
  • Серверна частина (за необхідності): бекенд на FastAPI, інтеграція Replicate, кешування.
  • Тестування: на реальних пристроях (iPhone SE 2, 12, 14 Pro, Pixel 6, Samsung S22) з вимірюванням fps та енергоспоживання.
  • Документація та навчання: передача вихідних кодів, CI/CD, інструкція для команди замовника.

Строки та вартість

On-device інтеграція готової моделі — 3–5 днів. Повний цикл з підбором моделі, квантизацією, live preview та серверним експортом — 2–4 тижні. Вартість розраховується індивідуально після уточнення вимог. Наші сертифікати та 5+ років досвіду в мобільній розробці — гарантія результату. Реалізуємо фічу під ключ. Зв’яжіться з нами для оцінки вашого проекту.

Neural Style Transfer — основна концепція.