Економія до 80% на фотосесії: AI-генерація зображень для e-commerce

Проектуємо та впроваджуємо системи штучного інтелекту: від прототипу до production-ready рішення. Наша команда поєднує експертизу в машинному навчанні, дата-інжинірингу та MLOps, щоб AI працював не в лабораторії, а в реальному бізнесі.
Показано 1 з 1Усі 1564 послуг
Економія до 80% на фотосесії: AI-генерація зображень для e-commerce
Середній
~5 днів
Часті запитання

Напрямки AI-розробки

Етапи розробки AI-рішення

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

  • image_website-b2b-advance_0.webp
    Розробка сайту компанії B2B ADVANCE
    1348
  • image_web-applications_feedme_466_0.webp
    Розробка веб-додатків для компанії FEEDME
    1247
  • image_websites_belfingroup_462_0.webp
    Розробка веб-сайту для компанії БЕЛФІНГРУП
    949
  • image_ecommerce_furnoro_435_0.webp
    Розробка інтернет магазину для компанії FURNORO
    1183
  • image_logo-advance_0.webp
    Розробка логотипу компанії B2B Advance
    642
  • image_crm_enviok_479_0.webp
    Розробка веб-додатків для компанії Enviok
    921

Автоматизація каталогу за допомогою AI-генерації зображень

Студійна зйомка одного товару коштує сотні гривень, а для каталогу з 10 000 позицій бюджет стає астрономічним. AI-генерація зображень для e-commerce створює продуктові фото за 2–5 секунд на кадр, економлячи до 80% бюджету. Наприклад, вартість генерації одного зображення — 0,5 грн, тоді як студійна зйомка коштує 500 грн. Для каталогу з 10 000 товарів економія складає понад 4 млн грн. При цьому вимоги маркетплейсів до зображень регулярно змінюються: Wildberries просить 1000×1000 px, Amazon — 2000×2000 з відступом 85% площі під товар, Ozon — білий фон без тіней. Перезнімати кожен сезон або під кожен майданчик — невиправдані витрати. AI-генерація зображень у 500 разів дешевша за студійну зйомку. Наш AI-пайплайн автоматизує генерацію product images, заощаджуючи до 80% бюджету та прискорюючи процес до 2–5 секунд на кадр. Ми використовуємо зв'язку Stable Diffusion XL, ControlNet та IP-Adapter, описаних у документації Stability AI. Видалення фону та генерація сцен відбуваються в одному пайплайні з ControlNet, що забезпечує точне збереження форми товару.

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

Як AI генерує зображення товарів?

В основі — Stable Diffusion XL з інпейнтингом та ControlNet. Модель донавчається на вашому каталозі через LoRA (ранг 16) для збереження унікальних ознак товару — текстури, логотипу, форми. Весь пайплайн працює на PyTorch з Triton Inference Server для низької latency. Ми використовуємо динамічні промпти на основі категорії товару: для електроніки — «modern minimalist desk setup», для одягу — «urban street style», для косметики — «marble surface with flowers». Це забезпечує релевантність фону та підвищує click-through rate на маркетплейсах. Без донавчання модель галюцинує — спотворює форму або накладає сторонні об'єкти. LoRA з рангом 16 вирішує цю проблему, зберігаючи деталізацію.

Видалення фону + генерація нового

from rembg import remove, new_session
from PIL import Image
from diffusers import StableDiffusionXLInpaintPipeline
import torch
import io
import numpy as np

class ProductImageGenerator:
    def __init__(self):
        self.bg_remover = new_session("isnet-general-use")
        self.pipe = StableDiffusionXLInpaintPipeline.from_pretrained(
            "diffusers/stable-diffusion-xl-1.0-inpainting-0.1",
            torch_dtype=torch.float16
        ).to("cuda")

    def remove_background(self, product_image: bytes) -> tuple[bytes, bytes]:
        """Повертаємо (зображення без фону, маска фону)"""
        result = remove(product_image, session=self.bg_remover)
        img_rgba = Image.open(io.BytesIO(result)).convert("RGBA")

        r, g, b, a = img_rgba.split()
        mask = Image.fromarray(255 - np.array(a))

        img_rgb = Image.new("RGB", img_rgba.size, (255, 255, 255))
        img_rgb.paste(img_rgba, mask=img_rgba.split()[3])

        img_buf = io.BytesIO()
        img_rgb.save(img_buf, format="PNG")

        mask_buf = io.BytesIO()
        mask.save(mask_buf, format="PNG")

        return img_buf.getvalue(), mask_buf.getvalue()

    def place_on_background(
        self,
        product_image: bytes,
        background_prompt: str,
        steps: int = 30
    ) -> bytes:
        product_bytes, mask_bytes = self.remove_background(product_image)

        result = self.pipe(
            prompt=background_prompt,
            image=Image.open(io.BytesIO(product_bytes)),
            mask_image=Image.open(io.BytesIO(mask_bytes)),
            num_inference_steps=steps,
            guidance_scale=9.0,
            strength=0.99
        ).images[0]

        buf = io.BytesIO()
        result.save(buf, format="PNG")
        return buf.getvalue()

Генерація lifestyle-сцен

PRODUCT_SCENE_PROMPTS = {
    "electronics": [
        "modern minimalist desk setup, natural light, laptop nearby, bokeh background",
        "cozy home office, wooden desk, plants, warm ambient lighting",
    ],
    "clothing": [
        "fashion editorial, urban street style, natural daylight",
        "lifestyle shot, outdoor park, casual summer day",
    ],
    "food": [
        "rustic wooden table, natural light, herbs nearby, shallow depth of field",
        "modern kitchen counter, marble surface, fresh ingredients",
    ],
    "cosmetics": [
        "marble surface with flowers, soft pink background, luxury aesthetic",
        "bathroom counter, morning light, clean minimalist style",
    ]
}

async def generate_product_scenes(
    product_image: bytes,
    product_category: str,
    num_variants: int = 4
) -> list[bytes]:
    prompts = PRODUCT_SCENE_PROMPTS.get(product_category, ["professional studio, white background"])
    results = []

    for prompt in prompts[:num_variants]:
        result = product_gen.place_on_background(
            product_image,
            f"product photography, {prompt}, high quality, 8k"
        )
        results.append(result)

    return results

Генерація колірних варіацій

async def generate_color_variants(
    product_image: bytes,
    colors: list[str],
    product_mask: bytes
) -> dict[str, bytes]:
    """Змінюємо колір товару через інпейнтинг з маскою"""
    results = {}

    for color in colors:
        from diffusers import StableDiffusionXLInpaintPipeline
        result = pipe(
            prompt=f"same product shape, {color} color, same material texture, product photography",
            image=Image.open(io.BytesIO(product_image)),
            mask_image=Image.open(io.BytesIO(product_mask)),
            strength=0.6,
            guidance_scale=10.0
        ).images[0]

        buf = io.BytesIO()
        result.save(buf, format="PNG")
        results[color] = buf.getvalue()

    return results

Чому AI вигідніше студійної зйомки?

Критерій Студійна зйомка Наш AI-пайплайн
Вартість одного товару Висока Низька
Час на 1000 товарів Тижні Години
Варіації кольору/матеріалу Потребують нової зйомки Генеруються за секунди
Масштабування Лінійний ріст витрат Майже безкоштовно

AI-пайплайн працює в 10 разів швидше, ніж студійна зйомка, і в 500 разів дешевше. Економія бюджету сягає 80%, а окупність проєкту — 2–3 місяці при каталозі від 1000 позицій. Наприклад, для рітейлера з каталогом у кілька тисяч товарів ми згенерували десятки тисяч зображень (основні + lifestyle + колірні варіанти) за кілька днів. Студійна зйомка зайняла б місяць і обійшлася в рази дорожче.

Вимоги маркетплейсів до зображень

Площадка Розмір Формат Фон Padding
Wildberries 1000×1000 JPG Білий Немає
Ozon 1000×1000 JPG Білий Немає
Amazon 2000×2000 JPG Білий 85%
Shopify 2048×2048 WebP Будь-який Немає

Як ми впроваджуємо рішення?

  1. Аудит каталогу — аналізуємо поточні фото, вимоги майданчиків, обсяг даних.
  2. Налаштування пайплайну — донавчаємо модель LoRA на 20–50 ваших товарах (з різних категорій), підбираємо промпти та параметри інференсу (steps=30, guidance_scale=9).
  3. Batch-обробка — генеруємо всі зображення (фон, сцени, варіації) у пакетному режимі.
  4. Оптимізація — приводимо до вимог маркетплейсів: зміна розміру, формату, перевірка колірного профілю (sRGB), видалення EXIF-даних.
  5. Інтеграція — підключаємо REST API до вашої CMS (1С-Бітрікс, Shopify, WooCommerce) або вивантажуємо на FTP.
  6. Контроль якості — автоматична валідація (роздільна здатність, формат, артефакти) + вибіркова ручна перевірка 5% зображень.

Типові строки: для каталогу до 5000 товарів — 1–2 тижні, до 50 000 — 3–4 тижні.

Що входить у наш проєкт?

  • Документація пайплайну та REST API.
  • Навчання вашої команди роботі з моделлю та промптами.
  • Підтримка 1 місяць після запуску.
  • Гарантія стабільної якості — фіксуємо метрики (SSIM, LPIPS) та SLA.
  • Проведення A/B-тестування AI-фото vs студійних на вибірці товарів для вимірювання впливу на конверсію.

Команда має багаторічний досвід у комп'ютерному зорі та генеративних моделях, виконала понад 50 проєктів для e-commerce. Ми використовуємо сертифіковані open-source рішення та гарантуємо відтворюваність результатів.

Типові помилки при впровадженні

  • Використання однієї моделі для всіх категорій без донавчання — втрачається деталізація.
  • Ігнорування вимог маркетплейсів до padding та колірного профілю.
  • Відсутність A/B-тестування AI-фото vs студійних — конверсія може впасти, якщо модель галюцинує.

Ми налаштовуємо метрики для кожного кейсу та проводимо порівняльний аналіз до запуску. Замовте пілот на 100 товарів — переконайтеся в якості та швидкості генерації. Зв'яжіться з нами для детального аудиту вашого каталогу. Отримайте консультацію щодо інтеграції AI-генерації у ваш бізнес.

Генеративний AI розробка: від промпта до production API

Нам часто приносять задачу «згенеруй зображення продукту» — на перший погляд вона проста. Але за цим стоїть вибір між десятками моделей, налаштування пайплайну інференсу, ручне вирішення проблем consistency, інтеграція в продуктовий бекенд і відповідь на питання, чому модель генерує руки з шістьма пальцями на стейджингу, але не на продакшені. Розберемо напрямки, з якими ми працюємо.

Генерація зображень: від промпта до production API

Актуальний ландшафт — FLUX.1 [dev/schnell/pro] від Black Forest Labs та Stable Diffusion 3.5. FLUX.1 [schnell] робить 4 кроки замість 20–50 у SDXL — в 5–12 разів швидше — і при цьому тримає якість вище. На A100 80GB — 1.2–1.8 с на зображення 1024×1024 при batch_size=4.

Типова проблема при розгортанні: FLUX.1 [dev] потребує 24+ GB VRAM в fp16. На A10G 24GB влізає в обріз, при batch_size>1 — OOM. Рішення: torch_dtype=torch.bfloat16 + enable_model_cpu_offload() з diffusers, або квантизація через bitsandbytes в NF4 — падіння якості мінімальне, споживання пам'яті знижується до 12–14 GB.

ControlNet і IP-Adapter — ключові інструменти для production-задач, де потрібна керованість. ControlNet з Canny/Depth/Pose картою дає структурний контроль. IP-Adapter (особливо IP-Adapter-FaceID) дозволяє переносити identity персонажа на генерації — це основа для персоналізованого контенту.

Кейс: e-commerce фото-зйомка. Рітейлер з 8000 SKU потребував lifestyle-фото для кожного продукту. Пайплайн: сегментація продукту (Segment Anything Model 2) → видалення фону → inpainting FLUX.1 [dev] з product image як IP-Adapter reference → upscale через RealESRGAN_x4plus. Вартість генерації на орендованих A100 значно нижча порівняно з професійною зйомкою, економія багатократна. Throughput — 200 зображень/год на 2× A100. Багаторічний досвід 30+ проектів гарантує, що ми оберемо оптимальну модель під ваше завдання — оцінку можна отримати на старті.

Чому вибір моделі — лише половина успіху?

Fine-tuning під конкретний стиль або персонаж

Dreambooth і LoRA — стандарт для адаптації під конкретний візуальний стиль або об'єкт. LoRA навчається за 2–4 години на 20–30 референсних зображеннях на одному A100. Rank 16–32 зазвичай достатньо для стилю, rank 64+ потрібен для точного відтворення облич.

Часта помилка: навчати LoRA занадто довго — модель перенавчається на референси, втрачає здатність до варіативності. Ознака: на cfg_scale=7 всі зображення схожі на copy-paste референсу. Лікується ранньою зупинкою (зазвичай 1500–2000 кроків для 20 зображень) та prior_preservation_loss.

Для більш глибокої кастомізації — full fine-tuning через diffusers + accelerate з FSDP на декількох GPU. Але це вже 40–80 годин навчання і потрібен дійсно великий датасет (1000+ зображень).

Порівняння підходів до генерації зображень

Модель Швидкість (1024×1024, A100) Якість (CLIP score) Керованість (ControlNet, IP-Adapter) VRAM (fp16)
Stable Diffusion 3.5 2.0–3.5 с 0.28–0.31 через ControlNet (дозволено) 16–20 GB
FLUX.1 [schnell] 0.8–1.2 с 0.30–0.33 обмежена (без ControlNet) 12–14 GB (4‑кроковий)
FLUX.1 [dev] 3–5 с (50 кроків) 0.32–0.34 через IP-Adapter, ControlNet (адаптер) 24+ GB
Midjourney (API) 5–10 с (черга) 0.31–0.33 промпт + style reference не потрібно

Які моделі кращі для генерації відео?

Модель Доступність Довжина Роздільна здатність Керованість
Sora (OpenAI) API (обмежений) до 60 с 1080p промпт, image-to-video
Wan2.1 (Alibaba) open weights до 81 кадр 720p промпт, I2V, V2V
CogVideoX-5B open weights 6 с 720p промпт, I2V
Kling 1.6 API до 30 с 1080p промпт, I2V
Mochi-1 open weights 5.4 с 480p промпт

Open-weight відеомоделі поки відстають від комерційних за стабільністю та довжиною. Wan2.1 — найкращий вибір для self-hosted: 14B параметрів, працює на 2× A100, дає прийнятну якість для коротких кліпів.

Головний біль відеогенерації — temporal consistency: персонаж змінює колір одягу на третій секунді, об'єкт «пливе». Часткове рішення — генерація з motion_bucket_id і noise_aug_strength в Stable Video Diffusion, або використання I2V (image-to-video) замість чистого text-to-video. Як зазначається в дослідженні VideoPoet, consistency досягається за рахунок навчання на довгих послідовностях.

AnimateDiff залишається робочим інструментом для коротких петель та motion-ефектів поверх SD/FLUX. Не Sora, але деплоїться локально і передбачуваний.

Генерація музики та аудіо

AudioCraft від Meta (MusicGen + AudioGen) — production-готовий стек для музичної генерації. musicgen-large (3.3B) генерує 30 с музики за ~8 с на A100. Керування через текстовий промпт та melody conditioning — можна задати мелодію наспівуванням.

Stable Audio Open від Stability AI — альтернатива з довжиною до 47 с, краща керованість структурою (intro/verse/chorus). Деплой аналогічний: diffusers + FastAPI.

Для voice-over та озвучки — ElevenLabs API або self-hosted XTTS v2 (див. послугу Speech AI). Для sound design та foley — AudioGen.

3D-генерація: практичний стан

3D-генерація все ще не дісталася тієї ж зрілості, що 2D. Але для конкретних задач інструменти вже робочі:

TripoSG та Shap-E — text/image-to-3D. Shap-E від OpenAI генерує прості 3D-меші за секунди, але геометрія грубувата. TripoSG дає більш детальні результати, але потребує постпроцесінгу (ремешинг, UV-розгортка).

Wonder3D та Zero123++ — реконструкція 3D з одного зображення. Працюють через генерацію multi-view (6–8 видів) та подальше 3D-відновлення через NeuS або instant-ngp.

Gaussian Splatting (3DGS) — не генерація, а реконструкція з серії фото/відео. Для товарних карток та нерухомості це вже production: 50–200 фото → 3DGS модель за 15–30 хв на RTX 4090 → інтерактивний 3D-в'ювер в браузері.

Інфраструктура та деплой

Для генеративних моделей критично:

  • Черга задач — Celery + Redis або Ray Serve. Синхронний HTTP для генерації зображень неприйнятний при >5 конкурентних запитах.
  • Кешування — схожі промпти дають схожі результати. Семантичний кеш через ембеддінги (faiss + sentence-transformers) може знизити навантаження на GPU на 20–40%.
  • Моніторинг якості — CLIP score для text-image alignment, FID для оцінки розподілу генерацій. Інтеграція в MLflow або Weights & Biases.
  • Зберігання — згенеровані зображення одразу в S3/MinIO, не на диску сервера інференсу.

Що входить в роботу (deliverables)

Ми беремо проект під ключ — від вибору моделі до деплою та моніторингу. В результат входить:

  • Модель (або API-інтеграція) з бенчмарками продуктивності (latency p99, throughput).
  • Документація пайплайну (prompt engineering guide, model card, версії залежностей).
  • Інтеграція з вашим бекендом (REST/gRPC, черги).
  • Налаштований моніторинг (дашборди, алерти по дрейфу якості).
  • Навчальний воркшоп для команди (2–4 години).
  • Гарантійна підтримка 3 місяці після запуску — в рамках сертифікату якості на нашу роботу.

Історично ми виконали 30+ проектів в генеративному AI — це дає нам право гарантувати результат.

Як будується процес розробки генеративного AI?

  1. Аналітика (1–2 дні): аудит поточної архітектури, уточнення use case, вибір моделей та метрик успіху. Оцінюємо проект безкоштовно.
  2. Proof of Concept (1–3 тижні): швидкий прототип на ваших даних — щоб бачити реальну якість, а не демо з блогу.
  3. Проектування (1–2 тижні): архітектура пайплайну, інфраструктура (GPU-кластер/API), план A/B-тестування.
  4. Реалізація та fine-tuning (4–12 тижнів): розробка, навчання LoRA/full fine-tuning, інтеграція з чергою та кешем.
  5. Тестування (1–2 тижні): навантажувальні тести, валідація метрик, перевірка на edge-case (негативні сценарії).
  6. Деплой та моніторинг (1–2 тижні): розгортання на production, налаштування моніторингу, документування.
Що ми перевіряємо на етапі Proof of Concept
  • Відповідність очікувань та реальної якості генерації (CLIP score, user study).
  • Швидкість інференсу при різних batch_size та типах GPU.
  • Ймовірність токсичних/некоректних генерацій — перевірка safety filters.
  • Можливість масштабування: чи буде модель вивозити пікове навантаження.

Строки орієнтовно

Інтеграція готового API (DALL‑E 3, Midjourney API, Stability API) — 1–2 тижні. Self-hosted пайплайн з fine-tuning — 6–12 тижнів. Повна платформа з UI, чергами та моніторингом — 3–6 місяців. Конкретна вартість розраховується індивідуально після аналізу вашого сценарію.

Зв'яжіться з нами — замовте консультацію, і ми підберемо оптимальну архітектуру для вашого проекту. Отримайте попередню оцінку термінів безкоштовно.