npx skills add smithery/eachlabs --skill eachlabs-face-swap
eachlabs/skills
eachlabs-face-swap
Swap faces between images using EachLabs AI. Use when the user wants to replace or swap faces in photos.
Installation
$
npx skills add eachlabs/skills --skill eachlabs-face-swap
Also in this package
Other skills from eachlabs/skills · top by installs.
npx skills add eachlabs/skills
More details
Agent compatibility
Declared targets from SKILL.md / docs. Unmarked agents are not listed — the skill may still install via the CLI.
Claude Code
Not declared
Cursor
Not declared
Codex
Not declared
GitHub Copilot
Not declared
Windsurf
Not declared
Gemini CLI
Not declared
Cline
Not declared
OpenCode
Not declared
Also listed on
Alternate registries and mirrors of this skill.
Repository health
Stars
33
License
MIT
Default branch
main
Open issues
1
Status
Active
Skill metadata
Parsed from SKILL.md frontmatter.
Version1.0
More metadata
- author
- eachlabs
- version
- 1.0
Package contents
Files included with this skill beyond the listing page.
-
skill md
SKILL.md3,515 B -
docs
SUMMARY.md130 B
History
- First seen on skills.sh
- First recorded snapshot · 292 installs
SKILL.md
EachLabs Face Swap
Swap faces between images and videos using the EachLabs Predictions API.
Authentication
Header: X-API-Key: <your-api-key>
Set the EACHLABSAPIKEY environment variable. Get your key at eachlabs.ai.
Available Models
| Model | Slug | Best For |
|---|---|---|
| AI Face Swap V1 | aifaceswap-face-swap |
Image face swap |
| Eachlabs Face Swap | each-faceswap-v1 |
Image face swap |
| Face Swap (legacy) | face-swap-new |
Image face swap |
| Faceswap Video | faceswap-video |
Video face swap |
Examples
Image Face Swap with AI Face Swap V1
curl -X POST https://api.eachlabs.ai/v1/prediction \
-H "Content-Type: application/json" \
-H "X-API-Key: $EACHLABS_API_KEY" \
-d '{
"model": "aifaceswap-face-swap",
"version": "0.0.1",
"input": {
"target_image": "https://example.com/target-photo.jpg",
"swap_image": "https://example.com/source-face.jpg"
}
}'
Image Face Swap with Eachlabs
curl -X POST https://api.eachlabs.ai/v1/prediction \
-H "Content-Type: application/json" \
-H "X-API-Key: $EACHLABS_API_KEY" \
-d '{
"model": "each-faceswap-v1",
"version": "0.0.1",
"input": {
"target_image": "https://example.com/target-photo.jpg",
"swap_image": "https://example.com/source-face.jpg"
}
}'
Video Face Swap
curl -X POST https://api.eachlabs.ai/v1/prediction \
-H "Content-Type: application/json" \
-H "X-API-Key: $EACHLABS_API_KEY" \
-d '{
"model": "faceswap-video",
"version": "0.0.1",
"input": {
"target_video": "https://example.com/target-video.mp4",
"swap_image": "https://example.com/source-face.jpg"
}
}'
Alternative: Using GPT Image v1.5 Edit
For prompt-based face replacement:
curl -X POST https://api.eachlabs.ai/v1/prediction \
-H "Content-Type: application/json" \
-H "X-API-Key: $EACHLABS_API_KEY" \
-d '{
"model": "gpt-image-v1-5-edit",
"version": "0.0.1",
"input": {
"prompt": "Replace the face in image 1 with the face from image 2. Keep the same pose, lighting, and expression. Maintain natural skin tone and seamless blending.",
"image_urls": [
"https://example.com/target-photo.jpg",
"https://example.com/source-face.jpg"
],
"quality": "high"
}
}'
Prediction Flow
- Check model
GET https://api.eachlabs.ai/v1/model?slug=<slug>— validates the model exists and returns therequest_schemawith exact input parameters. Always do this before creating a prediction to ensure correct inputs. - POST
https://api.eachlabs.ai/v1/predictionwith model slug, version"0.0.1", and input matching the schema - Poll
GET https://api.eachlabs.ai/v1/prediction/{id}until status is"success"or"failed" - Extract the output image URL from the response
Tips for Best Results
- Use high-quality source images with clear, well-lit faces
- The source face image should be a clear frontal or near-frontal portrait
- Matching lighting conditions between source and target produces more natural results
- Specify "seamless blending" and "natural skin tone" in prompts
- For the target image, faces should be clearly visible and not heavily occluded