Интеграции / Python SDK

Python SDK PixInLink

Python-пакет imageshub для формирования URL изображений прямо из кода. Сейчас: конструктор URL. Скоро: HTTP-клиент с async/batch/generate.

Python REPL v0.1.0 (Alpha)
from imageshub import ImgesHub
ih = ImgesHub(domain="pixinlink.ru")
url = ih.generate_url(width=1200, height=630, prompt="офис-разработчиков", seed=42)
# -> "https://pixinlink.ru/1200x630/офис-разработчиков?seed=42"

TL;DR

Сейчас: пакет imageshub, версия 0.1.0 (Alpha), Python 3.9+. Два метода: generate_url() для построения URL и generate_html() для готового тега <img>. Без зависимостей, без HTTP-клиента — только правильное формирование ссылок из параметров.
Скоро (Roadmap): методы generate() (синхронная генерация с ожиданием ответа), generate_batch() (пакетная обработка), AsyncPixInLink (async/await), CLI, утилиты для seed и размеров.
Прямо сейчас: вставляйте сформированный URL в <img src> или HTTP-запрос вашего фреймворка — PixInLink примет его на catch-all endpoint без SDK.

Что уже работает (v0.1.0 Alpha)

generate_url()

Формирует URL изображения из параметров. Валидирует width/height, кодирует prompt. Поддерживает seed и style.

url = ih.generate_url(
    width=800, height=400,
    prompt="офис",
    style="illustration",
    seed=42
)
# -> ...800x400/офис?style=illustration&seed=42

generate_html()

Возвращает готовый тег <img>. Можно сразу вставить в HTML-шаблон или Markdown.

tag = ih.generate_html(
    width=1200, height=630,
    prompt="тирамису",
    alt="Тирамису",
    lazy=True
)
# -> <img src="...">
МетодПараметрыВозвращает
generate_url()width, height, prompt, style, seed, formatstr — URL изображения
generate_html()width, height, prompt, alt, lazy, style, seedstr — тег <img>

Как использовать прямо сейчас

Оглавление статьи с изображением из заголовка

Python-код формирует URL — вы вставляете его в шаблон. Без HTTP-клиента, без ожидания генерации.

from imageshub import ImgesHub

ih = ImgesHub(domain=pixinlink.ru)

def og_image_for_article(title: str, post_id: int) -> str: return ih.generate_url( width=1200, height=630, prompt=title.replace(" “, ”-"), seed=post_id )

# Использование в шаблоне Jinja2/Django # <meta property=“og:image” content=“{{ og_image_url }}”>

Вставка в Markdown (Hugo, Jekyll, Pelican)

Формируете URL или готовый тег через SDK и вставляете в контент.

# Генерация Markdown-вставки для статического сайта
img_tag = ih.generate_html(
width=800, height=400,
prompt=“архитектура-микросервисов”,
alt=“Архитектура микросервисов”,
lazy=True
)
# Вставьте img_tag в .md или .html файл

Генерация без SDK — прямо сейчас

SDK формирует URL, но вы можете обойтись и без него. Catch-all endpoint pixinlink.ru/800x400/промпт принимает запросы от любого HTTP-клиента. Работает с httpx, requests, aiohttp или curl.

Синхронный (requests)

import requests
from urllib.parse import quote

url = f"https://pixinlink.ru/800x400/{quote(‘офис’)}?seed=42" resp = requests.get(url, allow_redirects=True) # resp.content — байты WebP-изображения

Асинхронный (httpx)

import httpx
from urllib.parse import quote

async def get_image(prompt): url = f"https://pixinlink.ru/800x400/{quote(prompt)}" async with httpx.AsyncClient(timeout=60) as client: resp = await client.get(url) return resp.content

Roadmap: что будет в следующих версиях

ВерсияФункционалОписание
0.1.0 generate_url() + generate_html() ✅ Уже доступно. Формирование URL и HTML-тегов.
0.2.0 generate() — синхронная генерация HTTP-клиент, отправляет запрос к catch-all endpoint, ожидает изображение. Таймаут 60 сек, retry при ошибках.
0.3.0 generate_batch() — пакетная генерация Список промптов → список URL. Автоматический rate-limit (50/min). Идеально для массовой подготовки контента.
0.4.0 AsyncPixInLink — async/await Асинхронный клиент на httpx. Полная совместимость с FastAPI, Django async, asyncio-скриптами.
0.5.0 CLI и утилиты Командная строка: imageshub --width 800 --height 400 "промпт". Утилиты: seed_from_string(), ImageSize presets (OG_IMAGE, SQUARE, STORY).
1.0.0 Pillow extra + стабильный релиз Опциональная зависимость Pillow для локального сохранения. Полная документация, стабильный API, обратная совместимость.

💡 Хотите ускорить roadmap? Пишите в @pixinlinksupport — какие методы нужны в первую очередь. SDK с открытым исходным кодом: github.com/pixinlink/imageshub.

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

  • Нужен ли SDK для работы с PixInLink?

    expand_more

    Нет. Catch-all endpoint принимает прямые GET-запросы. SDK удобнее для кодогенерации URL, но не обязателен. Любой HTTP-клиент (requests, httpx, curl) работает напрямую: https://pixinlink.ru/800x400/промпт.

  • Почему пакет называется imageshub, а не pixinlink?

    expand_more

    Backend-код проекта использует неймспейс imageshub. SDK следует этому соглашению. В будущем возможно переименование в pixinlink при достижении стабильной версии 1.0.0.

  • SDK умеет скачивать изображения на диск?

    expand_more

    Пока нет. Сейчас SDK только формирует URL. Для скачивания используйте requests/httpx напрямую (см. примеры выше). Метод generate() с сохранением появится в версии 0.2.0.

  • Поддерживается ли асинхронность (async/await)?

    expand_more

    В текущей версии (0.1.0) — нет. Методы generate_url() и generate_html() формируют URL синхронно (это не требует async). Async-клиент (AsyncImgesHub) запланирован в версии 0.4.0.

  • Какие стили поддерживает SDK?

    expand_more

    SDK передаёт параметр style в URL как есть. Доступные стили: default, illustration, 3d, anime, photographic, minimal, dark. Неизвестные значения падают на default на стороне GigaChat.

  • Нужен ли API-ключ для SDK?

    expand_more

    В текущей версии SDK не работает с API-ключами — он только формирует URL. Аутентификация для catch-all endpoint идёт через Referer (привязка домена). API-ключ формата imgeshub_... используется в REST API (POST /api/v1/images/generate).