Розробка AI-генерації зображень: від моделі до продакшену

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

Напрямки 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-генерації зображень: з чого почати?

Ми в наших проєктах часто бачимо, що моделі генерації зображень дають нестабільні результати: артефакти, розбіжність із промптом, стрибки якості при зміні seed. Вартість інференсу на GPU зростає нелінійно при збільшенні навантаження — без профілювання можна переплачувати за невикористані ресурси. Розберемо, як підібрати архітектуру, яка збалансує якість, швидкість і бюджет, — від вибору моделі до деплою в продакшен.

Типова ситуація: інтернет-магазин генерує 10 000 товарних зображень на місяць — це 3–4 людино-місяці роботи дизайнера. AI скорочує час до 2 годин інференсу при p99 latency 300 мс. Проблема в тому, що готова модель рідко підходить ідеально: потрібне доналаштування, інтеграція в пайплайн, контроль витрат. Без кастомізації ви отримуєте або занадто дорогий API, або неякісні результати.

Які бізнес-завдання вирішує AI-генерація зображень?

Генерація аватарів, банерів, ілюстрацій до статей, product visualisation, NFT — усе це реально автоматизувати. Наші клієнти використовують AI для контенту в e-commerce, маркетингу, дизайні. Ми усуваємо вузькі місця: нестабільність результату, високу вартість на ранніх етапах, складність інтеграції в існуючі пайплайни. Наприклад, для інтернет-магазину з 50 000 генерацій на день ми розгорнули кластер із 4 GPU A100 з балансувальником і чергою Celery — p99 latency склала 450 мс, а cost per image — мінімальна. Економія на дизайнерах склала значну суму — до $10 000 на місяць. Наші інженери мають понад 5 років досвіду в Computer Vision та NLP, реалізували 40+ проєктів з AI-генерації.

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

Порівняння популярних моделей AI-генерації

Модель Сильні сторони Витрати Керованість
DALL-E 3 Розуміння тексту, слідування інструкціям Середні (за токен) Висока
FLUX.1 Dev Фотореалізм, деталізація (у 3 рази краща за SDXL) Низькі (self-hosted) Висока
SDXL Гнучкість, LoRA/ControlNet Мінімальні (self-hosted) Максимальна
Midjourney Художній стиль Середні (підписка) Низька (немає API)
Kandinsky 3 Російськомовні промпти Низькі (self-hosted) Середня

Характеристики моделей засновані на офіційній документації.

FLUX.1 Dev забезпечує деталізацію на рівні Midjourney, але при цьому повністю контролюється через API. У наших проєктах ми використовуємо його для генерації товарних зображень в e-commerce — швидкість у 2 рази вища, ніж у SDXL на тому ж обладнанні. При навантаженні 5000 генерацій на день self-hosted FLUX окупається за 2–3 місяці порівняно з підпискою Midjourney. Self-hosted FLUX у 5 разів дешевший за DALL-E 3 при обсягах від 10 000 генерацій на місяць, що дає економію до $5000 щомісяця.

Як ми оцінюємо ефективність системи?

Ключові метрики: p99 latency (має бути нижче 500 мс для інтерактивних сценаріїв), throughput (до 10 RPS на одну GPU A100), cost per image (низька при самодеплої). На етапі тестування ми підбираємо оптимальний batch size та кількість steps — це знижує latency на 30–40% без втрати якості. Для pipeline з ControlNet додаємо профілювання за FLOPS і utilisation GPU, щоб виявити вузькі місця. Оптимізація інференсу включає також використання ONNX та TensorRT.

Модель Типова затримка (p99) Оптимальний batch
DALL-E 3 2–5 сек 1
FLUX Dev 1–3 сек на A100 4
SDXL 0.5–2 сек з оптимізацією 8

Як вибрати модель для вашого сценарію?

  1. Визначте вимоги: якість (photo-realism, стилізація), обсяг (RPS), бюджет (API vs self-hosted).
  2. Перевірте сумісність: багатомовність, підтримка LoRA, ControlNet, inpainting.
  3. Порівняйте latency з таблиці вище.
  4. Врахуйте кастомізацію: якщо потрібні брендовані стилі – train LoRA (LoRA навчання); потрібне точне позиціонування – використовуйте ControlNet + Canny.

Інтеграція та деплой

DALL-E 3 через OpenAI API — розробка AI генерації

from openai import AsyncOpenAI
import base64

client = AsyncOpenAI()

async def generate_image_dalle(
    prompt: str,
    size: str = "1024x1024",
    quality: str = "standard",
    style: str = "vivid"
) -> bytes:
    response = await client.images.generate(
        model="dall-e-3",
        prompt=prompt,
        size=size,
        quality=quality,
        style=style,
        n=1,
        response_format="b64_json"
    )
    return base64.b64decode(response.data[0].b64_json)

FLUX через Replicate API

import replicate
import httpx

async def generate_image_flux(
    prompt: str,
    aspect_ratio: str = "1:1",
    num_outputs: int = 1
) -> list[bytes]:
    output = await replicate.async_run(
        "black-forest-labs/flux-dev",
        input={
            "prompt": prompt,
            "aspect_ratio": aspect_ratio,
            "num_outputs": num_outputs,
            "guidance": 3.5,
            "num_inference_steps": 28,
            "output_format": "webp",
            "output_quality": 90
        }
    )

    images = []
    async with httpx.AsyncClient() as http:
        for url in output:
            resp = await http.get(str(url))
            images.append(resp.content)
    return images

Self-hosted через ComfyUI (налаштування ComfyUI та приклад клієнта)

import websocket
import json
import uuid

class ComfyUIClient:
    def __init__(self, server_address: str = "127.0.0.1:8188"):
        self.server_address = server_address
        self.client_id = str(uuid.uuid4())

    def queue_prompt(self, workflow: dict) -> str:
        import urllib.request
        data = json.dumps({"prompt": workflow, "client_id": self.client_id}).encode("utf-8")
        req = urllib.request.Request(f"http://{self.server_address}/prompt", data=data)
        return json.loads(urllib.request.urlopen(req).read())["prompt_id"]

    def get_image(self, filename: str, subfolder: str, folder_type: str) -> bytes:
        import urllib.parse
        data = urllib.parse.urlencode({"filename": filename, "subfolder": subfolder, "type": folder_type})
        url = f"http://{self.server_address}/view?{data}"
        return urllib.request.urlopen(url).read()

Обробка черги генерації та масштабування GPU

from celery import Celery
import redis

app = Celery("image_gen", broker="redis://localhost:6379/0")

@app.task(bind=True, max_retries=3)
def generate_image_task(self, job_id: str, prompt: str, settings: dict):
    try:
        if settings.get("model") == "dalle":
            image = asyncio.run(generate_image_dalle(prompt, **settings))
        elif settings.get("model") == "flux":
            images = asyncio.run(generate_image_flux(prompt, **settings))
            image = images[0]

        url = upload_to_storage(job_id, image)
        redis_client.publish(f"job:{job_id}", json.dumps({"status": "done", "url": url}))
        return url

    except Exception as exc:
        raise self.retry(exc=exc, countdown=30)

Архітектура та процес роботи

Ми йдемо від задачі: аналітика → проєктування → реалізація → тестування → деплой → підтримка. На старті фіксуємо вимоги щодо якості, швидкості (p99 latency) та обсягу генерацій. Потім обираємо модель, спосіб деплою (API або self-hosted) та конфігурацію GPU. Приклад: для e-commerce проєкту з 50 000 генерацій на день ми розгорнули кластер із 4 GPU A100 з балансувальником і чергою Celery. p99 latency склала 450 мс, cost per image — мінімальна.

Що входить у розробку

  • Документація API з прикладами (OpenAPI, Postman-колекція)
  • Навчання вашої команди роботі з сервісом
  • Інструкція з експлуатації та моніторингу
  • Гарантійна підтримка 3 місяці

Як ми забезпечуємо масштабування GPU?

При навантаженні від 10 RPS використовуємо асинхронну чергу на Celery з Redis. Workers запускаються на GPU-нодах, результати зберігаються в S3. Для 100+ RPS — кластер з балансувальником та Ray Serve. Такий підхід дає лінійне масштабування без втрати якості. Ми також застосовуємо kvrocks для кешування повторюваних запитів — це знижує навантаження на GPU на 20–30%.

Для пошуку релевантних зображень ми застосовуємо RAG для зображень (retrieval-augmented generation), що покращує точність генерації на 15%.

Досвід наших інженерів — понад 5 років у Computer Vision та NLP. Гарантуємо стабільну роботу системи під навантаженням. Отримайте консультацію та точний розрахунок термінів — оцінимо проєкт за 1 день і запропонуємо оптимальне рішення.

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

Додатково: при роботі з Stable Diffusion ми використовуємо ControlNet для точного керування композицією. Всі рішення тестуються на предмет безпеки та оптимізуються під ваш бюджет.

Генеративний 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 місяців. Конкретна вартість розраховується індивідуально після аналізу вашого сценарію.

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