Отправьте портрет и стиль; ИИ преобразует его в аниме, масляную живопись, 3D и другие стили, возвращая стилизованное изображение.
Аутентификация и запрос
X-Api-Key: YOUR_API_KEY. Создавайте и управляйте ключами на странице аккаунта.
| Параметр | Тип | Обязательный | Описание |
|---|---|---|---|
image_file
|
file | обязательный | Фото портрета — рекомендуется чёткое лицо |
style
|
string | обязательный | ID пресета стиля (полный список через GET /v1/styles) |
prompt
|
string | необязательный | Произвольное описание стиля, переопределяет пресет стиля |
Примеры кода
Выберите язык и скопируйте — работает сразу.1curl -X POST "https://api.pixmiller.com/v1/portrait-style" \2 -H "X-Api-Key: YOUR_API_KEY" \3 -F "[email protected]" \4 -F "style=anime"
1import requests23resp = requests.post(4 "https://api.pixmiller.com/v1/portrait-style",5 headers={"X-Api-Key": "YOUR_API_KEY"},6 files={"image_file": open("portrait.jpg", "rb")},7 data={"style": "anime"},8)9print(resp.json()["url"])
1import fs from "node:fs";23const form = new FormData();4form.append("image_file", new Blob([fs.readFileSync("portrait.jpg")]), "portrait.jpg");5form.append("style", "anime");6const resp = await fetch("https://api.pixmiller.com/v1/portrait-style", {7 method: "POST",8 headers: { "X-Api-Key": "YOUR_API_KEY" },9 body: form,10});11console.log((await resp.json()).url);
Ответ
1{2 "url": "https://cdn.pixmiller.com/result/8Kd2pQ.png"3}
url
Временный URL обработанного изображения (исходное изображение автоматически удаляется через 3 дня).
Ошибки
Ошибки возвращают соответствующий код статуса и JSON-тело в формате {"errors":{"code":"…","message":"…"}}.
validation error
Отсутствует или неверный image_file, файл слишком большой, или конфликтующие источники изображений.
authentication_failed
Заголовок X-Api-Key отсутствует или неверен.
not_enough_credit
Запрошен size=full, но на аккаунте не осталось HD-кредитов.
invalid_image
Изображение не удалось обработать — слишком маленькое, неподдерживаемый формат или ошибка декодирования.
throttled
Превышен лимит запросов. Снизьте частоту и повторите после заголовка Retry-After.