Реалізація 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-Асистент-Стиліст у мобільних застосунках

AI-стиліст у мобільному застосунку працює з двома завданнями: аналіз власного гардеробу (що я маю, що поєднується) та рекомендація нових речей за перевагами. Обидва вимагають роботи з зображеннями—це відрізняє стиліста від більшості інших AI-асистентів, де достатньо тексту.

Інвентаризація гардеробу: Vision API для одягу

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

  • Тип речі (сорочка, джинси, сукня, пальто...)
  • Колір та паттерн
  • Стиль (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 з мініатюрними зображеннями та 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».

Цветовая совместимость

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

// 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
    }
}

Застосуйте цей фільтр перед запитами LLM: якщо модель пропонує несумісну пару, повертайте альтернативи.

AR-примерка

Функція примерки—високий пріоритет для fashion-застосунків. Варіанти реалізації:

Overlay на фото: користувач завантажує фото, одяг накладається зверху. На iOS використовуйте CoreML із сегментацією тіла (DeepLab v3+), потім CoreImage композитинг. Якість середня.

Сервіс віртуальної примерки: Kiri Engine, Fashn AI, Replicate's IDM-VTON—cloud API. Значно краща якість, але 5–15 секунд на генерацію. Для мобільного: асинхронний запит з push-сповіщенням про готовність.

func startTryOn(userPhoto: UIImage, clothingImage: UIImage) async throws -> String {
    // Повертає jobId, результат приходить через webhook/polling
    let jobId = try await tryOnAPI.submitJob(person: userPhoto, garment: clothingImage)
    return jobId
}

func pollTryOnResult(jobId: String) async throws -> UIImage {
    for _ in 0..<30 {  // максимум 30 спроб x 2 сек = 60 сек
        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
}

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

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