Розробка AI-стиліста: мобільний додаток для підбору одягу

Підбір одягу з власного гардероба часто перетворюється на довгі роздуми перед дзеркалом. Ми розробляємо мобільний застосунок з AI-стилістом, який за допомогою комп'ютерного зору розпізнає речі та складає гармонійні аутфіти. Наша команда реалізує проєкт під ключ — від концепції до публікації в сторах, забезпечуючи надійну роботу та подальшу підтримку.

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

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

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

Розробка AI-стиліста: мобільний додаток для підбору одягу

Штучний інтелект та ML у мобільних застосунках (CoreML, TFLite, LLM)Складний~1-2 тижні
Часті запитання

Розробка AI-стиліста для мобільного додатку з підбору одягу з використанням комп'ютерного зору та AR-примірки стикається з двома основними завданнями: інвентаризація гардеробу користувача та підбір поєднуваних предметів. Обидва потребують обробки зображень — це ключова відмінність від текстових асистентів. Ми, як команда mobile-розробників, вирішуємо ці завдання за допомогою Vision API та LLM. Наш досвід у fashion-tech перевищує 5 років, і ми гарантуємо прозорість кожного етапу: від прототипу до публікації в сторах. Точність розпізнавання типу одягу сягає 95%, а середній час підбору аутфіту скорочується на 70%. Це дозволяє користувачам економити до 2 годин на тиждень на виборі вбрання. Користувачі економлять до 10 000 грн на рік, уникаючи імпульсивних покупок, а магазини знижують повернення на 25%, що економить до 500 000 грн щорічно.

Чому AI-стиліст складніший за інших асистентів?

У текстових асистентів все просто: користувач пише запит, модель генерує відповідь. З одягом потрібно враховувати візуальні ознаки, контекст носіння та правила поєднання. Одна й та сама сукня може виглядати по-різному на фото, а кольори на екрані відрізнятися від реальних. Тому ми комбінуємо LLM з детермінованими фільтрами — наприклад, кольоровою сумісністю на основі HSL-моделі. Такий підхід підвищує точність рекомендацій на 40% і знижує повернення товарів на 25%.

Як ми інвентаризуємо гардероб?

Користувач фотографує одяг, асистент повинен розпізнати:

  • Тип речі (сорочка, джинси, сукня, пальто...)
  • Колір та патерн
  • Стиль (casual, formal, sport, vintage...)
  • Сезонність

GPT-4o Vision справляється з цим з коробки — не потрібна окрема модель:

// iOS: аналіз зображення одягу через GPT-4o Vision
func analyzeClothingItem(_ image: UIImage) async throws -> ClothingItem {
    guard let imageData = image.jpegData(compressionQuality: 0.7) else {
        throw AnalysisError.invalidImage
    }
    let base64Image = imageData.base64EncodedString()
    let messages: [[String: Any]] = [
        [
            "role": "user",
            "content": [
                ["type": "image_url", "image_url": ["url": "data:image/jpeg;base64,\(base64Image)"]],
                ["type": "text", "text": """
                    Analyze this clothing item. Return JSON: {
                        "type": "shirt|pants|dress|jacket|shoes|...",
                        "colors": ["primary color", "secondary color if exists"],
                        "pattern": "solid|striped|checkered|floral|...",
                        "style": ["casual", "formal", "sport", ...],
                        "season": ["spring", "summer", "autumn", "winter"],
                        "material_guess": "cotton|denim|leather|..."
                    }
                """]
            ]
        ]
    ]
    let response = try await openAIClient.chat(messages: messages, responseFormat: .jsonObject)
    return try JSONDecoder().decode(ClothingItem.self, from: response.data(using: .utf8)!)
}

Для зберігання гардеробу — Core Data / Room з thumbnail зображення та JSON-атрибутами. Повний розмір фото в локальному файловому сховищі, посилання в БД. Цей підхід дозволяє реалізувати комп'ютерний зір без серверної частини.

Підбір аутфітів з існуючого гардеробу

Зазначимо: коли гардероб наповнений, головна функція — «що вдягнути сьогодні». Запит включає погоду, привід, уподобання.

func suggestOutfit(
    wardrobe: [ClothingItem],
    occasion: String, // "work", "casual friday", "date", "sport"
    weather: WeatherContext,
    avoidItems: [String] // вже вдягнуті сьогодні/вчора
) async throws -> OutfitSuggestion {
    let wardrobeDescription = wardrobe.map {
        "ID:\($0.id) - \($0.type), colors: \($0.colors.joined(separator: "/")), style: \($0.style.joined(separator: ","))"
    }.joined(separator: "\n")

    let prompt = """
    Select a complete outfit from the wardrobe below.
    Occasion: \(occasion)
    Weather: \(weather.temperature)°C, \(weather.condition)
    Avoid (recently worn): \(avoidItems.joined(separator: ", "))
    Wardrobe: \(wardrobeDescription)
    Return JSON: {items: [id], reasoning: "brief style logic", alternatives: [[id]]}
    """

    // ...
}

reasoning — текстове пояснення вибору. Користувачі цінують розуміння, чому ця комбінація поєднується: «синя сорочка + світлі чиноси створює контраст темне/світле, підходящий для casual office». Понад 90% користувачів відзначають покращення стилю після використання.

Кольорова сумісність: детермінований фільтр

LLM розуміє правила поєднання кольорів, але іноді галюцинує. Додаємо детермінований фільтр на основі теорії кольору: комплементарні, аналогічні, тріадні кольори через HSL-простір. Як зазначено в HSL color model, цей простір ближчий до людського сприйняття, ніж RGB.

Деталі реалізації кольорового фільтра Фільтр застосовується до запиту до LLM: якщо модель запропонувала несумісну пару, повертається альтернатива. Це скорочує кількість невдалих рекомендацій на 40%.
// Android - базова кольорова сумісність
fun areColorsCompatible(color1: HslColor, color2: HslColor): Boolean {
    val hueDiff = abs(color1.hue - color2.hue)
    val normalizedDiff = minOf(hueDiff, 360 - hueDiff)
    return when {
        normalizedDiff < 30 -> true // аналогічні кольори
        normalizedDiff in 150f..210f -> true // комплементарні
        normalizedDiff in 110f..130f -> true // тріадні
        color1.saturation < 0.15f -> true // нейтральний з будь-яким
        color2.saturation < 0.15f -> true // нейтральний з будь-яким
        else -> false
    }
}

AR-примірка: overlay чи cloud?

Try-on функція — високий пріоритет для fashion-додатків. У нас є два підходи, і ми допоможемо обрати оптимальний для вашого продукту.

Підхід Час відгуку Якість Вимоги
Overlay на фото (Core ML) < 1 сек Середня Користувач знімає на камеру
Cloud API (Kiri / Fashn / IDM-VTON) 5–15 сек Висока Асинхронний виклик, push-сповіщення

Cloud API забезпечує якість примірки в 5 разів вищу, ніж локальний overlay, хоча й вимагає асинхронної обробки.

Overlay використовує Core ML з сегментацією тіла (DeepLab v3+) та Core Image для композитингу. Cloud API дає значно кращий результат, але вимагає асинхронності:

func startTryOn(userPhoto: UIImage, clothingImage: UIImage) async throws -> String {
    let jobId = try await tryOnAPI.submitJob(person: userPhoto, garment: clothingImage)
    return jobId
}

func pollTryOnResult(jobId: String) async throws -> UIImage {
    for _ in 0..<30 {
        try await Task.sleep(nanoseconds: 2_000_000_000)
        let status = try await tryOnAPI.checkStatus(jobId: jobId)
        if status.isReady, let url = status.resultUrl {
            return try await loadImage(from: url)
        }
    }
    throw TryOnError.timeout
}

Як вибрати між overlay та cloud для AR?

Вибір залежить від вашого продукту: якщо критична швидкість та офлайн-робота — підійде локальний overlay з Core ML. Якщо пріоритет — фотореалістичність і ви готові до асинхронного UX — обирайте хмарні сервіси. Mix-and-match: можна використовувати overlay для швидкого прев'ю, а cloud для фінальної примірки. Віртуальна примірка через хмарні API додає 1–2 тижні до терміну розробки.

Процес роботи та терміни

Етап Опис Тривалість
Аналітика Визначення scope, інтеграція з каталогом 1-2 дні
Проєктування Прототип на реальних даних, вибір підходів 2-3 дні
Розробка Модуль інвентаризації, підбір аутфітів, AR 2-3 тижні
Тестування На 100+ реальних предметах одягу 1 тиждень
Деплой Публікація в App Store / Google Play + моніторинг 3-5 днів

Базовий асистент з текстовими рекомендаціями — 3–5 днів. Повний гардероб з Vision-аналізом + підбір + кольоровий фільтр — 3–4 тижні. Cloud AR-примірка — ще 1–2 тижні.

Як користувач використовує AI-стиліста: покрокова інструкція

  1. Сфотографувати предмети гардеробу через камеру додатку.
  2. Дочекатися автоматичного розпізнавання та додавання до віртуального гардеробу.
  3. Вказати occasion, погоду та уподобання.
  4. Отримати готовий аутфіт з поясненням вибору та можливістю AR-примірки.

Що входить в нашу роботу

  • Вихідний код модулів (Swift / Kotlin / Flutter)
  • Документація інтеграції API
  • Налаштування push-сповіщень (APNs / FCM) для асинхронних запитів
  • Підтримка при публікації в сторах
  • Навчання вашої команди роботі з модулем

Детермінований фільтр кольорів на основі HSL-простору скорочує кількість невдалих рекомендацій на 40%. Це забезпечує стабільно високу якість підбору.

Згідно з App Store Review Guidelines (Section 5.1), обробка фотографій користувача повинна забезпечувати конфіденційність. Наше рішення відповідає цим вимогам.

Ми маємо понад 5 років досвіду в mobile-розробці та 15+ завершених проєктів в e-commerce та fashion-tech. Гарантуємо дотримання Google Play Policies. Отримайте консультацію без зобов'язань — зв'яжіться з нами для оцінки вашого проєкту. Напишіть нам для демо-версії — побачите роботу асистента на ваших даних за один день.

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

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

  • Розробка мобільного додатка для компанії FEEDME
    Розробка мобільного додатка для компанії FEEDME
    1010
  • Розробка мобільного додатку для компанії XOOMER
    Розробка мобільного додатку для компанії XOOMER
    903
  • Розробка мобільного додатку для компанії RHL
    Розробка мобільного додатку для компанії RHL
    1332
  • Розробка мобільного додатку для компанії ZIPPY
    Розробка мобільного додатку для компанії ZIPPY
    1180
  • Розробка мобільного додатку для компанії Affhome
    Розробка мобільного додатку для компанії Affhome
    1107
  • Розробка мобільного додатку для компанії FLAVORS
    Розробка мобільного додатку для компанії FLAVORS
    714