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

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

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

Часті запитання

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

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

Інтеграція 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.