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

Наша компанія займається розробкою, підтримкою та обслуговуванням сайтів будь-якої складності. Від простих односторінкових сайтів до масштабних кластерних систем, побудованих на мікро сервісах. Досвід розробників підтверджено сертифікатами від вендорів.
Розробка та обслуговування будь-яких видів сайтів:
Інформаційні сайти або веб-програми
Сайти візитки, landing page, корпоративні сайти, онлайн каталоги, квіз, промо-сайти, блоги, ресурси новин, інформаційні портали, форуми, агрегатори
Сайти або веб-програми електронної комерції
Інтернет-магазини, B2B-портали, маркетплейси, онлайн-обмінники, кешбек-сайти, біржі, дропшиппінг-платформи, парсери товарів
Веб-програми для управління бізнес-процесами
CRM-системи, ERP-системи, корпоративні портали, системи управління виробництвом, парсери інформації
Сайти або веб-програми електронних послуг
Дошки оголошень, онлайн-школи, онлайн-кінотеатри, конструктори сайтів, портали надання електронних послуг, відеохостинги, тематичні портали

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

Пропоновані послуги
Показано 1 з 1 послугУсі 2065 послуг
Реалізація автоматичної генерації зображень для соцмереж з карток товарів
Середня
~3-5 робочих днів
Часті питання
Наші компетенції:
Етапи розробки
Останні роботи
  • image_website-b2b-advance_0.png
    Розробка сайту компанії B2B ADVANCE
    1262
  • image_web-applications_feedme_466_0.webp
    Розробка веб-додатків для компанії FEEDME
    1171
  • image_websites_belfingroup_462_0.webp
    Розробка веб-сайту для компанії БЕЛФІНГРУП
    874
  • image_ecommerce_furnoro_435_0.webp
    Розробка інтернет магазину для компанії FURNORO
    1094
  • image_crm_enviok_479_0.webp
    Розробка веб-додатків для компанії Enviok
    831
  • image_bitrix-bitrix-24-1c_fixper_448_0.png
    Розробка веб-сайту для компанії ФІКСПЕР
    851

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

Ручне створення графіки для кожного товару під кожну соцмережу — дорого та повільно. Автоматизація: беремо дані з карточки товару (фото, назва, ціна, бренд) та генеруємо готовий баннер у потрібних форматах — для Telegram, VK, Instagram, Stories.

Два підходи до генерації

Шаблонний підхід (швидко, передбачувано) — накладаємо дані товару на заранее підготовлені дизайн-шаблони. Використовуємо Pillow (Python) або Sharp (Node.js).

AI-генерація (творчо, варіативно) — генеруємо фон або все зображення через Stable Diffusion, Midjourney API, DALL-E з подальшим накладанням тексту.

Для більшості магазинів підходить перший варіант — шаблонний підхід дає брендований результат без несподіванок.

Реалізація на Pillow

from PIL import Image, ImageDraw, ImageFont
import httpx
from io import BytesIO

class ProductBannerGenerator:
    TEMPLATES = {
        'feed':    (1080, 1080),   # Instagram/VK пост
        'story':   (1080, 1920),   # Instagram/VK Stories
        'telegram': (1280, 640),   # Telegram превью
    }

    def generate(self, product: dict, format: str = 'feed') -> bytes:
        width, height = self.TEMPLATES[format]

        # Створюємо холст
        canvas = Image.new('RGB', (width, height), color='#FFFFFF')
        draw   = ImageDraw.Draw(canvas)

        # Завантажуємо та розміщуємо фото товару
        if product.get('image_url'):
            product_img = self._load_image(product['image_url'])
            product_img = self._fit_image(product_img, (width, int(height * 0.65)))
            canvas.paste(product_img, (0, 0))

        # Градієнтна підложка під текст
        gradient = self._create_gradient((width, int(height * 0.4)), '#000000', alpha_start=0, alpha_end=180)
        canvas.paste(gradient, (0, int(height * 0.6)), mask=gradient)

        # Шрифти
        font_title = ImageFont.truetype('fonts/Inter-Bold.ttf', size=52)
        font_price = ImageFont.truetype('fonts/Inter-ExtraBold.ttf', size=72)
        font_small = ImageFont.truetype('fonts/Inter-Regular.ttf', size=36)

        # Текст
        y_offset = int(height * 0.68)
        draw.text((60, y_offset), product['name'], font=font_title, fill='white')
        draw.text((60, y_offset + 70), f"{product['price']:,.0f} ₽", font=font_price, fill='#FFD700')

        # Логотип бренду
        logo = Image.open('assets/logo.png').resize((200, 60))
        canvas.paste(logo, (width - 220, 20), mask=logo)

        # Конвертація в bytes
        output = BytesIO()
        canvas.save(output, 'JPEG', quality=90)
        return output.getvalue()

    def _load_image(self, url: str) -> Image.Image:
        resp = httpx.get(url, timeout=15)
        return Image.open(BytesIO(resp.content)).convert('RGBA')

Генерація через Replicate API (Stable Diffusion)

import replicate

def generate_ai_background(product_name: str, category: str) -> str:
    output = replicate.run(
        "stability-ai/stable-diffusion:db21e45d3f7023abc2a46ee38a23973f6dce16bb082a930b0c49861f96d1e5bf",
        input={
            "prompt": f"minimalist product photography background for {category}, "
                      f"clean white studio, soft shadows, high-end commercial photo",
            "negative_prompt": "text, watermark, ugly, blurry",
            "width": 1080,
            "height": 1080,
        }
    )
    return output[0]  # URL сгенерованого зображення

Формати та розміри

Платформа Пост Stories
Instagram 1080×1080, 1080×1350 1080×1920
VK 1080×1080 1080×1920
Telegram канал 1280×640

Система генерує всі варіанти одним вызовом.

Строки виконання

Генератор баннерів на шаблонах з 3–5 форматів: 4–6 робочих днів. З AI-генерацією фону через Replicate: +2–3 дня.