Начало
Быстрый старт
Создадим тестовое видео по шаблону. Тестовый ключ бесплатный, токены не списываются.
Создайте ключ
Войдите по почте и откройте API-ключи. Нажмите «Создать ключ», режим «Тестовый». Ключ начинается с hl_test_ и показывается один раз. Положите его в переменную окружения:
export HAWKLANCE_API_KEY="hl_test_..."Загрузите фото
Файл принадлежит режиму ключа: фото, загруженное тестовым ключом, не увидит боевой.
curl -X POST https://api.hawklance.ai/v1/files \
-H "Authorization: Bearer $HAWKLANCE_API_KEY" \
-F file=@portrait.jpgВ ответе будет id вида file_….
Узнайте, что нужно шаблону
Поле inputs перечисляет, что передать: сколько фото и какие варианты выбора.
curl https://api.hawklance.ai/v1/templates/novyy-obraz \
-H "Authorization: Bearer $HAWKLANCE_API_KEY"Создайте видео
curl -X POST https://api.hawklance.ai/v1/videos \
-H "Authorization: Bearer $HAWKLANCE_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"template": "novyy-obraz",
"inputs": {
"person": [
"file_..."
],
"new_look": [
"file_..."
]
},
"quality": "720p"
}'Ответ приходит сразу, со статусом queued и идентификатором vid_….
Дождитесь результата
Спрашивайте статус раз в 5 секунд. В бою удобнее вебхуки.
import os, time, requests
BASE = "https://api.hawklance.ai/v1"
HEADERS = {"Authorization": f"Bearer {os.environ['HAWKLANCE_API_KEY']}"}
video_id = "vid_..." # из ответа POST /v1/videos
while True:
video = requests.get(f"{BASE}/videos/{video_id}", headers=HEADERS).json()
if video["status"] in ("succeeded", "failed", "canceled"):
break
time.sleep(5)
print(video["output"]["url"] if video["status"] == "succeeded" else video["error"])const BASE = "https://api.hawklance.ai/v1";
const headers = { Authorization: `Bearer ${process.env.HAWKLANCE_API_KEY}` };
const videoId = "vid_..."; // из ответа POST /v1/videos
let video;
do {
await new Promise((r) => setTimeout(r, 5000));
video = await (await fetch(`${BASE}/videos/${videoId}`, { headers })).json();
} while (video.status === "queued" || video.status === "running");
console.log(video.output?.url ?? video.error);Когда статус станет succeeded, в output.url будет ссылка на MP4. Она действует 6 часов; свежую даст новый запрос.
Перейдите на боевой ключ
Пополните баланс в биллинге, создайте ключ в режиме «Боевой» и замените hl_test_ на hl_live_. Код менять не нужно.