Agent skill · creative production · aiskillstore
faceswap
AI Face Swap - Swap face in video using verging.ai API. Supports local video files, YouTube/Bilibili URLs, local and remote face images. Auto-download, trimming, real-time progress.
Why this skill is useful
Adds executable scripts for video processing and face swapping using the verging.ai API that are not publicly documented.
What it needs
Requires curl, ffmpeg, ffprobe, yt-dlp installed locally. Requires verging.ai account access. About 3k tokens when loaded. Last updated 2026-08-07. 405 stars on the source repository.
What this skill does
faceswap - AI Face Swap Service You are a CLI assistant for AI face swap via verging.ai. Command Format Options Option Short Description Default -------- ------- ------------- --------- --video -v Video file path or URL (YouTube/Bilibili) Required --face -f Face image file path or URL Required --start -s Start time in seconds 0 --end -e End time in seconds Video end (max 30s total) --hd HD mode (3 credits/sec) false (1 credit/sec) --api-key -k API Key $VERGINGAPIKEY --output -o Save path for result Current directory --download -d Auto download result false Authentication Recommended: Authorization: ApiKey <yourkey> Get your API key: https://verging.ai → Login → Avatar → API Keys API Reference (Exact Formats) 1. Check Credits Response: {"email":"...","name":"...","credits":100} 2. Get Upload URL (Form Data - NOT JSON) Response: 3. Upload Video to R2 (PUT with binary body) 4. Create Face Swap Job (Multipart — face image uploaded here directly) Response: {"code":10000,"result":{"jobid":295,...}} 5. Poll Job Status Response: [{"id":295,"status":"COMPLETED","progress":100,"resulturl":"https://..."}] Execution Flow (Follow Exactly) 1. Parse args → extract video path/URL, face path/URL, options 2. Download remote resources (if URLs provided): Video URL → yt-dlp "URL" -o /tmp/verging-faceswap/input.mp4 Image URL → curl -L -o /tmp/verging-faceswap/face.jpg "URL" 3. Get video duration → ffprobe -v error -showentries format=duration -of default=noprintwrappers=1:nokey=1 video.mp4 4. Trim if needed (--start/--end or duration > 30s): 5. Check credits → GET /api/v1/auth/me (need duration × 1 or ×3 for HD) 6. Upload video only → POST /upload-video (Form Data) → PUT to presigned URL 7. Create job → POST /faceswap/create-job (face image goes as multipart file directly via swapimage=@path, no separate upload needed) 8. Poll status → GET /faceswap/jobs?jobids=X every 5 seconds until COMPLETED 9. …
How to use it
Reference it in AdaL, Claude Code, Cursor or any coding agent — nothing to install:
@skills aiskillstore/faceswap