Geliştirici API'leri hâlâ beta aşamasındadır ve her an değişebilir. Şu an için kişisel test ve denemelere daha uygundur ve üretim ortamında kullanılması henüz önerilmez.
Playground
Hedef videoda izlenen bir yüzü referans fotoğraftaki bir yüzle değiştirir. Algılama, yüz noktası takibi ve sonuç ayrıştırma otomatik olarak gerçekleştirilir.
POST /api/v1/video-face-swap/submit → /queryAPI erişimi yalnızca abonelere açıktır. Abonelik kredileriniz web sitesi ile API arasında ortaktır.
Planları görüntüleDeğiştirilecek izlenen hedef yüzün sıfır tabanlı dizini.
Referans fotoğraftan kullanılacak algılanmış yüzün sıfır tabanlı dizini.
#!/usr/bin/env bash
set -euo pipefail
SUBMIT_RESPONSE="$(curl --fail-with-body --silent --show-error -X POST "https://vidmage.ai/api/v1/video-face-swap/submit" \
-H "Authorization: Bearer ${VIDMAGE_API_KEY}" \
-H "Content-Type: application/json" \
--data-raw '{
"targetVideoUrl": "https://vidmage.ai/assets/models/hailuo-ai-video-generator/skincare-ad.mp4",
"referenceFaceImageUrl": "https://vidmage.ai/assets/images/samples/smiling-man-sweater.webp"
}')"
TASK_ID="$(printf '%s' "$SUBMIT_RESPONSE" | jq -er '.["taskId"]')"
while true; do
QUERY_RESPONSE="$(curl --fail-with-body --silent --show-error -X POST "https://vidmage.ai/api/v1/video-face-swap/query" \
-H "Authorization: Bearer ${VIDMAGE_API_KEY}" \
-H "Content-Type: application/json" \
--data-raw "{\"taskId\":\"${TASK_ID}\"}")"
STATUS="$(printf '%s' "$QUERY_RESPONSE" | jq -r '(.status // .data.status // "") | ascii_downcase')"
case "$STATUS" in
success|succeeded|completed)
printf '%s' "$QUERY_RESPONSE" | jq -r '(.result // .["videoUrl"] // .data["videoUrl"] // empty)'
break
;;
failed|error)
printf '%s' "$QUERY_RESPONSE" | jq -r '(.message // .error // .data.error // "Task failed")' >&2
exit 1
;;
esac
sleep 5
done