Python SDK PixInLink
Python-пакет imageshub для формирования URL изображений прямо из кода. Сейчас: конструктор URL. Скоро: HTTP-клиент с async/batch/generate.
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, format | str — URL изображения |
generate_html() | width, height, prompt, alt, lazy, style, seed | str — тег <img> |
Как использовать прямо сейчас
Оглавление статьи с изображением из заголовка
Python-код формирует URL — вы вставляете его в шаблон. Без HTTP-клиента, без ожидания генерации.
from imageshub import ImgesHubih = 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 quoteurl = 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 quoteasync 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_moreBackend-код проекта использует неймспейс
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_moreSDK передаёт параметр
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).

