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

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

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

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

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

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

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

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

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

  • 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

Впровадження генерування зображень з штучним інтелектом (DALL-E) в мобільному додатку

DALL-E 3 через OpenAI API — найпростіший постачальник для інтеграції генерування зображень. Один POST-запит, URL у відповіді, завантаження зображення. Складність полягає не в самому API, а в UX: генерування займає 5–15 секунд, і цей час потрібно використати розумно. Плюс prompt engineering, що безпосередньо впливає на якість результату.

API: базова інтеграція

struct DALLERequest: Codable {
    let model: String
    let prompt: String
    let n: Int
    let size: String
    let quality: String
    let style: String
    let responseFormat: String

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

func generate(prompt: String) async throws -> URL {
    let request = DALLERequest(
        model: "dall-e-3",
        prompt: prompt,
        n: 1,
        size: "1024x1024",
        quality: "standard",
        style: "vivid",
        responseFormat: "url"
    )

    var urlRequest = URLRequest(url: URL(string: "https://api.openai.com/v1/images/generations")!)
    urlRequest.httpMethod = "POST"
    urlRequest.setValue("Bearer \(apiKey)", forHTTPHeaderField: "Authorization")
    urlRequest.setValue("application/json", forHTTPHeaderField: "Content-Type")
    urlRequest.httpBody = try JSONEncoder().encode(request)

    let (data, _) = try await URLSession.shared.data(for: urlRequest)
    let response = try JSONDecoder().decode(ImageGenerationResponse.self, from: data)
    return URL(string: response.data[0].url)!
}

Параметри DALL-E 3:

  • size: 1024x1024, 1792x1024 (альбомна орієнтація), 1024x1792 (портретна орієнтація)
  • quality: standard (швидше, дешевше) або hd (детальніше)
  • style: vivid (насичений, контрастний) або natural (фотореалістичний)
  • response_format: url (посилання дійсне 60 хвилин) або b64_json (base64 одразу)

DALL-E 3 не підтримує n > 1 — лише одне зображення за запит.

UX під час генерування

5–15 секунд очікування без зворотного зв'язку — погана UX. Варіанти:

Анімований плейсхолдер — skeleton або анімований градієнт на місці майбутнього зображення. Користувач розуміє, що щось відбувається.

Смуга прогресу з етапами — не можна показати реальний прогрес (API не передає потік), але можна показати анімований псевдопрогрес: «Аналізуємо запит → Генеруємо → Завершуємо». Візуально ефективно.

Попередній перегляд промпту — під час генерування показуємо переробленій промпт від DALL-E. API повертає revised_prompt — фактичний опис, який використала модель. Це цікаво для користувача і заповнює час очікування.

// revised_prompt приходить у відповіді
let revisedPrompt = response.data[0].revisedPrompt
// Показуємо його в UI, поки зображення завантажується
promptLabel.text = revisedPrompt

Кешування та зберігання

Згенеровані зображення необхідно зберігати. URL-адреси з відповіді живуть 60 хвилин — після цього 404. Завантажуй і кешуй одразу після генерування.

// Android: завантаження та збереження через Coil
suspend fun downloadAndCache(imageUrl: String, localKey: String): File {
    val request = ImageRequest.Builder(context)
        .data(imageUrl)
        .diskCacheKey(localKey)
        .build()
    val result = imageLoader.execute(request)
    // Coil автоматично зберігає на диск
    return File(context.cacheDir, "dalle_${localKey}.jpg")
}

Для довгострокового зберігання — зберігай у MediaStore (Android) або Photos (iOS) на запит користувача. Автоматичне збереження без явної дії користувача порушує директиви App Store.

Prompt engineering для мобільного UI

Якість DALL-E 3 істотно залежить від промпту. Для користувацьких додатків:

Обгортка системного промпту — перед відправкою на API додай користувацький текст стандартними інструкціями:

let enhancedPrompt = """
\(userPrompt)

Style: high quality, detailed, professional photography or illustration.
Avoid text, watermarks, blurry elements.
"""

DALL-E 3 сам переписує промпт (revised_prompt), але завдання стилю допомагає уникнути випадкових варіацій.

Політика контенту. DALL-E 3 відхиляє промпти з насильством, оголеністю, реальними людьми за іменами. Відповідь — 400 з code: content_policy_violation. На клієнті — показуй користувачам зрозуміле повідомлення, не технічний код помилки.

Варіації та редагування

DALL-E 2 (не 3) підтримує:

  • /v1/images/variations — варіації існуючого зображення
  • /v1/images/edits — редагування з маскою (inpainting)

DALL-E 3 цих ендпоінтів не має. Якщо потрібне редагування — або DALL-E 2, або Stable Diffusion через Replicate/FAL.

Терміни

Генерування з базовим UI (текстове поле + кнопка + відображення результату) — 2–3 дні. Повноцінна галерея з історією, збереженням, спільним доступом, варіаціями — 8–12 днів.