Возможности / Как работает ИИ-генерация

Как работает ИИ-генерация в PixInLink

Разбор реального пайплайна: GigaChat, синхронная генерация, Redis-кеш, WebP-оптимизация

Когда вы вставляете pixinlink.ru/800x400/офис-программисты в img src, происходит следующее: API принимает URL → проверяет Redis-кеш → если изображения нет — генерирует синхронно через GigaChat → оптимизирует WebP → сохраняет в Redis-кеш. Первый запрос: 10–30 секунд. Все последующие: менее 100 мс.

TL;DR

URL → проверка Redis-кеша →
  • Кеш есть (cache hit): изображение отдаётся мгновенно, квота не тратится
  • Кеша нет (cache miss): синхронная генерация через GigaChat
    → оптимизация WebP → запись в Redis-кеш → возврат
Первый запрос = 10–30 секунд (генерация GigaChat).
Все повторные = менее 100 мс (Redis-кеш).
Инфраструктура: Yandex Cloud + SberCloud, 152-ФЗ, Россия.

Ключевые понятия

GigaChat

Российская нейросеть от Сбера для генерации изображений по текстовому описанию. Вызывается синхронно через HTTP API. Хостинг: SberCloud, Россия (152-ФЗ).

Синхронная генерация

Когда изображения нет в кеше, запрос ожидает ответа от GigaChat напрямую — без очередей и отложенной обработки. Это простой и надёжный подход: один HTTP-запрос → один ответ.

Redis-кеш

Сгенерированное изображение (base64) сохраняется в Redis. При повторном запросе того же URL изображение отдаётся из кеша мгновенно — без вызова GigaChat и без расхода квоты.

Cache miss / Cache hit

Cache miss: изображения нет в Redis → синхронная генерация через GigaChat (10–30 сек). Cache hit: изображение найдено в Redis → отдаётся мгновенно (<100 мс), квота не расходуется.

Transliteration

Кириллический промпт побуквенно преобразуется в латиницу: «офис» → «ofis». Простая и быстрая операция без внешних API — выполняется в prompt.py перед отправкой в GigaChat.

WebP-оптимизация

После генерации изображение сжимается в WebP (quality=85). Типичный размер: ~50 KB вместо ~300 KB PNG — в 6 раз меньше. Быстрее загрузка, лучше PageSpeed.

Диффузионная модель

Класс нейросетей, обученных генерировать изображения из случайного шума под управлением текста. GigaChat не хранит готовые фото — он создаёт их заново каждый раз. Аналогия: не библиотека, а художник, который рисует по описанию.

Водяной знак

Для пользователей без регистрации на изображение накладывается текст «Made with PixInLink.com» через PIL ImageDraw. Вшивается в пиксели — нельзя убрать через CSS или DevTools. На платных тарифах водяной знак отсутствует.

Как работает «магия»?

Вы вставляете URL в HTML, а браузер получает уникальное изображение. Откуда оно берётся? Это не стоковое фото. Это не шаблон из базы данных. Это генерация искусственным интеллектом — специально для вашего запроса, в реальном времени.

Если вы впервые запрашиваете изображение, нейросеть GigaChat рисует его синхронно — вы получите ответ через 10–30 секунд. Это холодный старт. После генерации изображение сохраняется в Redis-кеш — все последующие запросы отдаются мгновенно (<100 мс).

Почему это важно: запросы о «медленности» и «стоковости» — самые частые у новых пользователей. Эта страница отвечает на оба: медленность — это первый запрос к нейросети, уникальность — это диффузионная модель, а не база фотографий.

Как PixInLink генерирует изображения из URL?

PixInLink принимает URL вида pixinlink.ru/800x400/офис-разработчиков, проверяет Redis-кеш. Если изображение уже генерировалось — возвращает его мгновенно (<100 мс), квота не тратится. Если нет — промпт проходит побуквенную транслитерацию и отправляется в GigaChat (Сбер). Результат оптимизируется в WebP (quality=85, ~50 KB), сохраняется в Redis-кеш и возвращается браузеру. Первый запрос: 10–30 секунд. Повторные: менее 100 мс.

Пайплайн: что происходит при запросе

1

Браузер → API

0–5 мс

Браузер отправляет GET-запрос. API на FastAPI принимает и парсит URL.

GET /800x400/офис-программисты?style=realistic&seed=42

Валидация: width/height в допустимых пределах, prompt не пустой.

2

Проверка Redis-кеша

1–3 мс

✅ Cache HIT: изображение найдено в Redis → мгновенный возврат (<100 мс). Квота не тратится.

🔴 Cache MISS: изображения нет → переходим к шагу 3.

3

Transliteration — подготовка промпта

<1 мс

Кириллический промпт побуквенно заменяется на латиницу: «офис разработчиков» → «ofis razrabotchikov». Простая функция в prompt.py без внешних API.

Это всё, что нужно GigaChat для понимания русского промпта — нейросеть обучена на русскоязычных данных и корректно интерпретирует транслитерацию.

4

Генерация через GigaChat

8–25 сек

GigaChat — российская нейросеть от Сбера

Генерация изображений по текстовому промпту через HTTP API. Запрос отправляется синхронно — API ожидает ответа и возвращает его браузеру. Хостинг: SberCloud (Россия, 152-ФЗ).

💡 Fallback: при таймауте или ошибке GigaChat запрос повторяется автоматически. Если и это не помогло — возвращается ошибка.

5

Постобработка: WebP + водяной знак

0.3–0.5 сек
  1. Decode: base64 ответ GigaChat → PIL Image
  2. Resize: точное кадрирование до запрошенных width×height
  3. Watermark (только анонимы): текст «Made with PixInLink.com» накладывается через PIL ImageDraw. Вшивается в пиксели — нельзя убрать через CSS
  4. WebP: сжатие quality=85, метод 6 → ~50 KB вместо ~300 KB PNG
  5. Очистка метаданных: все EXIF/IPTC удаляются
6

Сохранение в Redis-кеш и возврат

1–3 мс

Готовое изображение сохраняется в Redis-кеш для мгновенной отдачи при повторных запросах. HTTP-ответ возвращается браузеру с заголовками кеширования.

Ключ кеша формируется из размеров и наличия водяного знака: gen:800x400. Квота списывается однократно при первой генерации. Все повторные запросы того же URL идут из кеша — без расхода квоты.

Почему первый запрос медленный, а повторный мгновенный?

🎂 Аналогия: кондитерская

Представьте, что вы заказываете торт в кондитерской. Первый раз — кондитер печёт его специально для вас (10–30 минут). Но умный кондитер знает: если кто-то закажет такой же — он уже есть в витрине. Следующий покупатель получит его мгновенно. PixInLink работает так же: первая генерация — приготовление, все последующие — готовое изображение в Redis-кеше.

ПараметрCache MISSCache HIT
Время ответа10–30 секунд<100 мс
Что происходитГенерация GigaChatВыдача из Redis-кеша
Расход квотыДа, 1 генерацияНет
Когда происходитПервый запросВсе повторные

💡 500 генераций на Starter — это 500 уникальных URL. Один и тот же URL можно запрашивать любое количество раз — квота тратится 1 раз при первой генерации.

Гарантия уникальности: это не стоковые фото

Каждое изображение — новая нейросетевая генерация. GigaChat — диффузионная модель: она не хранит готовые фотографии, а создаёт изображения из случайного шума, управляемого текстовым описанием.

МифФакт
❌ PixInLink берёт фото из стоков✅ Генерация через GigaChat (диффузионная нейросеть)
❌ Изображения совпадут у разных пользователей✅ seed=random → каждый раз разные
❌ Нарушаются авторские права✅ GigaChat обучен на лицензионных данных Сбера
❌ Изображение изменится со временем✅ Redis-кеш хранит стабильную копию
❌ Первый медленный запрос — это баг✅ Синхронная генерация: нейросеть рисует впервые для этого промпта

Инфраструктура: всё в России

Вся инфраструктура PixInLink размещена на территории РФ в соответствии с 152-ФЗ. Данные не передаются за рубеж.

КомпонентПровайдерЛокация
API GatewayYandex CloudМосква / Ярославль
Redis (кеш изображений)Yandex Managed RedisРоссия
PostgreSQLYandex Managed PostgreSQLРоссия
AI-модельGigaChat (Сбер)SberCloud, Россия

Надёжность: при таймауте или ошибке GigaChat запрос повторяется. Базовая обработка ошибок с retry — без сложной fallback-архитектуры, просто и надёжно.

Seed: воспроизводимые изображения для og:image

Seed — это «рецепт» изображения. Добавьте &seed=42 в URL — и PixInLink всегда сгенерирует одно и то же изображение для одного промпта. Без seed — каждый раз разное. С seed — всегда одинаковое.

Как это работает в GigaChat

Параметр &seed={число} задаёт начальное значение для генератора случайных чисел. Представьте, что генерация изображения — это бросок кубиков. &seed — это «запись» того, как именно кубики упали.

Воспроизводимость: один и тот же промпт + один и тот же seed = всегда идентичное изображение. Можно вернуться к результату в любой момент.

Контролируемые вариации: если нравится композиция, но хотите изменить деталь — оставьте тот же seed и поменяйте часть промпта. GigaChat сохранит общую структуру, изменив только указанный аспект.

Для og:image стабильность критична: если сегодня у статьи один og:image, а завтра другой — соцсети покажут старую версию из своего кеша. Решение: зафиксируй seed.

Без seed

pixinlink.ru/1200x630/кот

Random seed каждый раз → разные изображения. Подходит для декоративных элементов.

С фиксированным seed

pixinlink.ru/1200x630/кот?seed=42

Стабильный результат. Идеально для og:image и заголовков статей.

Seed из slug (паттерн)

slug = "kak-pit-kofe"
seed = crc32(slug) % 2147483647

CRC32 slug → детерминированное число. Каждый slug = уникальное, но стабильное изображение.

Частые вопросы

  • Почему первое изображение генерируется медленнее?

    expand_more

    Cache miss — нейросеть GigaChat синхронно рисует изображение для этого запроса. Обычно 10–30 секунд. Все повторные запросы отдаются из Redis-кеша мгновенно (<100 мс), квота не расходуется.

  • Расходуется ли квота при повторном запросе?

    expand_more

    Нет. Cache hit не расходует квоту. 500 генераций на Starter — это 500 уникальных URL. Один URL можно запрашивать любое количество раз — квота тратится 1 раз при первой генерации.

  • Что такое GigaChat и почему именно он?

    expand_more

    GigaChat — российская нейросеть от Сбера для генерации изображений. Обучена на русскоязычных данных, лучше понимает кириллические промпты. Хостится в России (152-ФЗ). Вызывается через HTTP API синхронно.

  • Где хранятся сгенерированные изображения?

    expand_more

    В Redis-кеше. При повторном запросе того же URL изображение отдаётся из кеша мгновенно. Срок хранения в кеше ограничен TTL Redis. При очистке кеша следующее обращение вызовет новую генерацию.

  • Могут ли два пользователя получить одинаковое изображение?

    expand_more

    При одинаковом prompt + seed — да, Redis-кеш отдаст тот же результат. Изображение уникально создано для этого промпта. Хотите гарантированную уникальность — не указывайте seed (random каждый раз).

  • Как обрабатываются запрещённые промпты?

    expand_more

    GigaChat имеет встроенный content policy filter. Запросы с недопустимым контентом отклоняются. PixInLink дополнительно проверяет на уровне API Gateway.

  • Можно ли использовать изображения коммерчески?

    expand_more

    Да, на платных тарифах (без watermark) — полные коммерческие права. На Free (с watermark) — личное использование с указанием PixInLink. Подробнее: pixinlink.ru/terms.

  • Сколько изображений доступно бесплатно?

    expand_more

    12 изображений бесплатно — без регистрации и кредитной карты. С водяным знаком. Для коммерческого использования без водяного знака — тариф Starter (490 ₽/мес, 500 генераций).