De ontwikkelaars-API's bevinden zich nog in de bètafase en kunnen op elk moment wijzigen. Op dit moment zijn ze vooral geschikt voor persoonlijke tests en experimenten en worden ze nog niet aanbevolen voor productiegebruik.
Playground
Vervang één gedetecteerd gezicht in een doelfoto door een gezicht uit een referentiefoto. Gezichtsdetectie en uitsnijden gebeuren automatisch.
POST /api/v1/face-swap/submit → /queryAPI-toegang is alleen beschikbaar voor abonnees. Je abonnementscredits worden gedeeld door de website en de API.
Abonnementen bekijkenOp nul gebaseerde index van het te vervangen doelgezicht.
Op nul gebaseerde index van het gedetecteerde gezicht uit de referentiefoto.
#!/usr/bin/env bash
set -euo pipefail
SUBMIT_RESPONSE="$(curl --fail-with-body --silent --show-error -X POST "https://vidmage.ai/api/v1/face-swap/submit" \
-H "Authorization: Bearer ${VIDMAGE_API_KEY}" \
-H "Content-Type: application/json" \
--data-raw '{
"targetImageUrl": "https://vidmage.ai/assets/images/samples/blue-eyed-woman-sunlight.webp",
"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/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 // .["imageUrl"] // .data["imageUrl"] // empty)'
break
;;
failed|error)
printf '%s' "$QUERY_RESPONSE" | jq -r '(.message // .error // .data.error // "Task failed")' >&2
exit 1
;;
esac
sleep 5
done