Інтеграція Kandinsky для генерації зображень з російськомовним текстом

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

Напрямки 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

Інтеграція Kandinsky (Сбер) для генерації зображень

Замовник з e-commerce: потрібно генерувати зображення товарів з російськомовним текстом на банерах. Англійські моделі (SDXL, DALL-E) видають безглузді написи — кирилиця перетворюється на ієрогліфи. Навіть після тонкого донавчання на російських даних західні моделі часто плутають літери або генерують нечитабельний текст. Kandinsky від Сбера вирішує цю проблему нативно: його CLIP-модель навчена на російськомовних текстах, тому промпти на кшталт «червоний валянок з візерунками» обробляються без перекладу. Модель розуміє культурні контексти — від «казки Пушкіна» до «радянської мозаїки». Ми інтегруємо Kandinsky двома способами: через хмарне API Сбера (FusionBrain) або розгортаємо модель на ваших GPU з використанням PyTorch та diffusers. Ви отримуєте суверенітет даних у self-hosted варіанті та економію на GPU-годинах при високих навантаженнях.

Відразу уточню: якщо ваш проєкт орієнтований на російськомовну аудиторію, вибір на користь Kandinsky дає перевагу за швидкістю та якістю. Західні моделі потребують додаткової передобробки промптів — перекладача, адаптації стилів. Kandinsky працює з коробки. При цьому self-hosted версія забезпечує суверенітет даних: зображення не залишають ваш контур, що критично для банків, ритейлу та держсектора.

Чому Kandinsky кращий за західні моделі для російськомовних проєктів?

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

Які варіанти інтеграції Kandinsky існують?

Вибір варіанту залежить від навантаження, вимог до latency та бюджету. Нижче — порівняння ключових параметрів.

Параметр API Сбера Self-hosted (Kandinsky 2.2/3)
Затримка (p99) ~5-10 сек ~1-3 сек (на GPU A100)
Макс. роздільна здатність 1536×1536 1024×1024 (Kandinsky 3)
Вартість Залежить від тарифу Витрати на GPU + електроенергію
Контроль даних Обробка на серверах Сбера Повний контроль, on-premise
Інтеграція 1-2 дні 1-2 тижні
Підтримка рос. промптів Так Так

Kandinsky 2.2: стабільна версія, оптимізована для інференсу. Kandinsky 3: покращена якість, підтримка 1024x1024, але потребує більше VRAM. Рекомендуємо 3 для нових проєктів, якщо дозволяє обладнання.

API Сбера

Використовуємо офіційний API FusionBrain. Нижче — робочий клієнт на Python з асинхронною polling-логікою.

import httpx
import base64
import asyncio

class KandinskyClient:
    def __init__(self, api_key: str, secret_key: str):
        self.api_key = api_key
        self.secret_key = secret_key
        self.base_url = "https://api-key.fusionbrain.ai/key/api/v1"

    async def generate(
        self,
        prompt: str,
        width: int = 1024,
        height: int = 1024,
        num_images: int = 1,
        style: str = "DEFAULT"  # DEFAULT, KANDINSKY, UHD, ANIME, DIGITAL_ART
    ) -> list[bytes]:
        # Отримуємо список моделей
        async with httpx.AsyncClient() as client:
            models_resp = await client.get(
                f"{self.base_url}/models",
                headers={"X-Key": f"Key {self.api_key}", "X-Secret": f"Secret {self.secret_key}"}
            )
            model_id = models_resp.json()[0]["id"]

            # Запускаємо генерацію
            params = {
                "type": "GENERATE",
                "numImages": num_images,
                "width": width,
                "height": height,
                "generateParams": {"query": prompt},
                "style": style
            }

            gen_resp = await client.post(
                f"{self.base_url}/text2image/run",
                headers={"X-Key": f"Key {self.api_key}", "X-Secret": f"Secret {self.secret_key}"},
                data={"model_id": str(model_id), "params": json.dumps(params)}
            )
            uuid = gen_resp.json()["uuid"]

            # Очікуємо результат
            return await self.poll_result(client, uuid)

    async def poll_result(self, client, uuid: str, max_attempts: int = 30) -> list[bytes]:
        headers = {"X-Key": f"Key {self.api_key}", "X-Secret": f"Secret {self.secret_key}"}
        for _ in range(max_attempts):
            await asyncio.sleep(2)
            resp = await client.get(f"{self.base_url}/text2image/status/{uuid}", headers=headers)
            data = resp.json()
            if data["status"] == "DONE":
                return [base64.b64decode(img) for img in data["images"]]
        raise TimeoutError("Generation timeout")

Self-hosted через Hugging Face

Розгортаємо Kandinsky 2.2 на вашому GPU-сервері. Підходить, якщо потрібно генерувати сотні зображень за хвилину і тримати дані всередині периметру. У production використовуємо Triton Inference Server для оптимізації інференсу, vLLM для управління пам'яттю, MLflow для логування метрик.

from diffusers import KandinskyV22Pipeline, KandinskyV22PriorPipeline
import torch

prior = KandinskyV22PriorPipeline.from_pretrained(
    "kandinsky-community/kandinsky-2-2-prior",
    torch_dtype=torch.float16
).to("cuda")

pipeline = KandinskyV22Pipeline.from_pretrained(
    "kandinsky-community/kandinsky-2-2-decoder",
    torch_dtype=torch.float16
).to("cuda")

def generate_kandinsky(prompt: str, negative_prompt: str = "") -> bytes:
    # Prior: текст → ембеддінги
    image_embeds, negative_image_embeds = prior(
        prompt, negative_prompt=negative_prompt
    ).to_tuple()

    # Decoder: ембеддінги → зображення
    image = pipeline(
        image_embeds=image_embeds,
        negative_image_embeds=negative_image_embeds,
        height=768,
        width=768,
        num_inference_steps=25
    ).images[0]

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

Як вибрати між API та self-hosted?

Якщо потрібно швидко протестувати гіпотезу або навантаження невелике — API Сбера запускається за 1-2 дні. Для production з високим обсягом генерацій (500+ зображень на годину) і суворими вимогами до latency обирайте self-hosted. Self-hosted потребує GPU з 16+ GB VRAM (наприклад, NVIDIA A10G або A100). Вартість розгортання розраховується індивідуально, але економія на GPU-годинах при великих обсягах може бути суттєвою порівняно з хмарним API. Не впевнені у виборі? Зв'яжіться з нами, ми допоможемо визначитися.

Процес роботи під ключ

Наші інженери мають досвід впровадження Kandinsky у production — понад 10 успішних проєктів. Інтеграція проходить за стандартним пайплайном:

  1. Аналітика: вивчаємо ваші сценарії (розміри, стилі, навантаження).
  2. Проектування: обираємо варіант (API/self-hosted), проектуємо архітектуру.
  3. Реалізація: пишемо інтеграційний код, адаптуємо параметри генерації.
  4. Тестування: перевіряємо якість на реальних кейсах, вимірюємо latency.
  5. Деплой: розгортаємо у вашу інфраструктуру, налаштовуємо моніторинг.

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

  • Налаштування API або деплой self-hosted моделі.
  • Написання клієнтської бібліотеки на Python.
  • Інтеграція з вашим бекендом (CI/CD, черги, кешування).
  • Документація (OpenAPI, README).
  • Навчання команди (1-2 сесії).
  • Технічна підтримка 1 місяць.

Терміни інтеграції

Етап API Self-hosted
Аналітика + проектування 1 день 2-3 дні
Реалізація + тестування 1 день 5-7 днів
Деплой + документація 1 день 2-3 дні
РАЗОМ 3 дні 10-14 днів

Типові помилки при роботі з Kandinsky

  • Неправильний параметр style: якщо не вказати, модель використовує DEFAULT, який може не підходити для ваших завдань. Для фотореалістичних зображень вкажіть UHD.
  • Великі розміри через API: розмір більше 1536 призводить до помилки 400. Використовуйте клієнтську ресайзелку.
  • Self-hosted: несумісність версій diffusers. Kandinsky 2.2 потребує diffusers >= 0.21.0. Перевірте версію в requirements.txt.
  • Обмеження за кількістю запитів: API має rate limit (за замовчуванням 10 запитів/сек). Налаштуйте чергу або переходьте на self-hosted.

Якщо ви зіткнулися з цими проблемами — зв'яжіться з нами, ми допоможемо їх вирішити.

Ми беремо на себе повний цикл: від вибору моделі до передачі готового сервісу в експлуатацію. У фіналі ви отримуєте робочий endpoint, документацію та навчену команду. Гарантуємо якість генерації — порівнюємо результати з вашими еталонами до підписання акту.

Зв'яжіться з нами — оцінимо проєкт за 1 день. Досвід понад 5 років в інтеграції нейромереж у production. Отримайте консультацію з інтеграції Kandinsky.

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

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