Install to Claude Code
npx -y skills add https://github.com/eachlabs/skills --skill object-removalDescription
object removal
SKILL.md
---
name: object-removal
description: Remove unwanted objects, people, text, and imperfections from photos using each::sense AI. Clean up images with intelligent inpainting that seamlessly fills removed areas.
metadata:
author: eachlabs
version: "2.0"
---
# Object Removal & Inpainting
Remove unwanted elements from photos using each::sense. This skill intelligently removes objects, people, text, watermarks, and imperfections while seamlessly filling the removed areas with contextually appropriate content.
## Features
- **Object Removal**: Remove unwanted items from any photo
- **Person Removal**: Remove people from backgrounds cleanly
- **Text/Watermark Removal**: Clean up images with unwanted text overlays
- **Blemish Removal**: Remove skin imperfections and photo artifacts
- **Wire/Line Removal**: Clean up power lines, cables, and wires
- **Logo Removal**: Remove branding and logos from images
- **Shadow Removal**: Eliminate unwanted shadows
- **Background Cleanup**: Remove distracting background elements
## Quick Start
```bash
curl -X POST https://eachsense-agent.core.eachlabs.run/v1/chat/completions \
-H "Content-Type: application/json" \
-H "X-API-Key: $EACHLABS_API_KEY" \
-H "Accept: text/event-stream" \
-d '{
"messages": [{"role": "user", "content": "Remove the person standing on the left side of this photo"}],
"model": "eachsense/beta",
"stream": true,
"image_urls": ["https://example.com/beach-photo.jpg"],
"mode": "max"
}'
```
## Use Case Examples
### 1. Remove Person from Photo
Remove an unwanted person from a group photo or scenic shot.
```bash
curl -X POST https://eachsense-agent.core.eachlabs.run/v1/chat/completions \
-H "Content-Type: application/json" \
-H "X-API-Key: $EACHLABS_API_KEY" \
-H "Accept: text/event-stream" \
-d '{
"messages": [{"role": "user", "content": "Remove the person in the red shirt from this beach photo. Fill the area naturally with the ocean and sand background."}],
"model": "eachsense/beta",
"stream": true,
"image_urls": ["https://example.com/beach-group.jpg"],
"mode": "max"
}'
```
### 2. Remove Unwanted Object
Clean up photos by removing distracting objects.
```bash
curl -X POST https://eachsense-agent.core.eachlabs.run/v1/chat/completions \
-H "Content-Type: application/json" \
-H "X-API-Key: $EACHLABS_API_KEY" \
-H "Accept: text/event-stream" \
-d '{
"messages": [{"role": "user", "content": "Remove the trash can and bench from the right side of this park landscape photo. Make it look like a clean natural scene."}],
"model": "eachsense/beta",
"stream": true,
"image_urls": ["https://example.com/park-landscape.jpg"],
"mode": "max"
}'
```
### 3. Remove Text/Watermark
Clean up images with unwanted text overlays or watermarks.
```bash
curl -X POST https://eachsense-agent.core.eachlabs.run/v1/chat/completions \
-H "Content-Type: application/json" \
-H "X-API-Key: $EACHLABS_API_KEY" \
-H "Accept: text/event-stream" \
-d '{
"messages": [{"role": "user", "content": "Remove the watermark from the bottom right corner of this image. Restore the original background seamlessly."}],
"model": "eachsense/beta",
"stream": true,
"image_urls": ["https://example.com/watermarked-image.jpg"],
"mode": "max"
}'
```
### 4. Remove Blemish/Imperfection
Clean up skin imperfections or photo artifacts.
```bash
curl -X POST https://eachsense-agent.core.eachlabs.run/v1/chat/completions \
-H "Content-Type: application/json" \
-H "X-API-Key: $EACHLABS_API_KEY" \
-H "Accept: text/event-stream" \
-d '{
"messages": [{"role": "user", "content": "Remove the skin blemishes and acne marks from this portrait photo. Keep the skin looking natural and maintain the original skin texture."}],
"model": "eachsense/beta",
"stream": true,
"image_urls": ["https://example.com/portrait.jpg"],
"mode": "max"
}'
```
### 5. Remove Power Lines/Wires
Clean up landscape and architectural photos by removing distracting wires.
```bash
curl -X POST https://eachsense-agent.core.eachlabs.run/v1/chat/completions \
-H "Content-Type: application/json" \
-H "X-API-Key: $EACHLABS_API_KEY" \
-H "Accept: text/event-stream" \
-d '{
"messages": [{"role": "user", "content": "Remove all the power lines and electrical wires from this sunset cityscape photo. Make the sky look clean and unobstructed."}],
"model": "eachsense/beta",
"stream": true,
"image_urls": ["https://example.com/cityscape-wires.jpg"],
"mode": "max"
}'
```
### 6. Remove Tourists from Landmark Photo
Get that perfect empty landmark shot by removing crowds.
```bash
curl -X POST https://eachsense-agent.core.eachlabs.run/v1/chat/completions \
-H "Content-Type: application/json" \
-H "X-API-Key: $EACHLABS_API_KEY" \
-H "Accept: text/event-stream" \
-d '{
"messages": [{"role": "user", "content": "Remove all the tourists and people from this Eiffel Tower photo. I want it to look like an empty plaza with just the monument."}],
"model": "eachsense/beta",
"stream": true,
"image_urls": ["https://example.com/eiffel-tower-crowded.jpg"],
"mode": "max"
}'
```
### 7. Remove Ex from Photo
Salvage memories by removing someone from personal photos.
```bash
curl -X POST https://eachsense-agent.core.eachlabs.run/v1/chat/completions \
-H "Content-Type: application/json" \
-H "X-API-Key: $EACHLABS_API_KEY" \
-H "Accept: text/event-stream" \
-d '{
"messages": [{"role": "user", "content": "Remove the person on the right side of this vacation photo. Fill in with the background scenery naturally so it looks like a solo travel photo."}],
"model": "eachsense/beta",
"stream": true,
"image_urls": ["https://example.com/vacation-couple.jpg"],
"mode": "max"
}'
```
### 8. Remove Logo/Branding
Clean up product photos or images with unwanted branding.
```bash
curl -X POST https://eachsense-agent.core.eachlabs.run/v1/chat/completions \
-H "Content-Type: application/json" \
-H "X-API-Key: $EACHLABS_API_KEY" \
-H "Accept: text/event-stream" \
-d '{
"messages": [{"role": "user", "content": "Remove the brand logo from the t-shirt in this photo. Replace it with plain fabric that matches the shirt color and texture."}],
"model": "eachsense/beta",
"stream": true,
"image_urls": ["https://example.com/branded-shirt.jpg"],
"mode": "max"
}'
```
### 9. Clean Up Product Photo
Remove distracting elements from e-commerce product shots.
```bash
curl -X POST https://eachsense-agent.core.eachlabs.run/v1/chat/completions \
-H "Content-Type: application/json" \
-H "X-API-Key: $EACHLABS_API_KEY" \
-H "Accept: text/event-stream" \
-d '{
"messages": [{"role": "user", "content": "Clean up this product photo by removing the price tag, dust spots, and the reflection of the photographer in the surface. Make it look professional and ready for e-commerce."}],
"model": "eachsense/beta",
"stream": true,
"image_urls": ["https://example.com/product-raw.jpg"],
"mode": "max"
}'
```
### 10. Remove Shadow
Eliminate unwanted shadows from photos.
```bash
curl -X POST https://eachsense-agent.core.eachlabs.run/v1/chat/completions \
-H "Content-Type: application/json" \
-H "X-API-Key: $EACHLABS_API_KEY" \
-H "Accept: text/event-stream" \
-d '{
"messages": [{"role": "user", "content": "Remove the harsh shadow cast by the photographer on the ground in this outdoor portrait. Make the lighting look natural and even."}],
"model": "eachsense/beta",
"stream": true,
"image_urls": ["https://example.com/portrait-shadow.jpg"],
"mode": "max"
}'
```
## Multi-Turn Object Removal
Use `session_id` for iterative removal and refinement:
```bash
# First removal
curl -X POST https://eachsense-agent.core.eachlabs.run/v1/chat/completions \
-H "Content-Type: application/json" \
-H "X-API-Key: $EACHLABS_API_KEY" \
-H "Accept: text/event-stream" \
-d '{
"messages": [{"role": "user", "content": "Remove the car parked on the left side of this street photo"}],
"model": "eachsense/beta",
"stream": true,
"image_urls": ["https://example.com/street-scene.jpg"],
"session_id": "cleanup-project-001"
}'
# Second removal (same session)
curl -X POST https://eachsense-agent.core.eachlabs.run/v1/chat/completions \
-H "Content-Type: application/json" \
-H "X-API-Key: $EACHLABS_API_KEY" \
-H "Accept: text/event-stream" \
-d '{
"messages": [{"role": "user", "content": "Now also remove the garbage bins near the building entrance"}],
"model": "eachsense/beta",
"stream": true,
"session_id": "cleanup-project-001"
}'
# Refinement (same session)
curl -X POST https://eachsense-agent.core.eachlabs.run/v1/chat/completions \
-H "Content-Type: application/json" \
-H "X-API-Key: $EACHLABS_API_KEY" \
-H "Accept: text/event-stream" \
-d '{
"messages": [{"role": "user", "content": "The area where the car was removed looks a bit blurry. Can you improve the texture to match the surrounding pavement better?"}],
"model": "eachsense/beta",
"stream": true,
"session_id": "cleanup-project-001"
}'
```
## Prompt Tips for Object Removal
When requesting object removal, include these details in your prompt:
1. **What to remove**: Be specific about the object(s) to remove
2. **Location**: Describe where the object is in the image (left, right, center, background)
3. **Fill guidance**: Describe what should replace the removed area
4. **Context preservation**: Mention if certain elements should be kept intact
### Example Prompt Structure
```
"Remove [object description] from [location in image].
Fill the area with [expected background/content].
Keep [elements to preserve] intact."
```
### Good Prompt Examples
- "Remove the person in the blue jacket standing near the fountain on the left side"
- "Remove all text and watermarks from the image, restore the original background"
- "Remove the car and fill with matching grass and pathway"
### Prompts to Avoid
- "Clean up this photo" (too vague)
- "Remove stuff" (not specific)
- "Make it better" (unclear objective)
## Mode Selection
| Mode | Best For | Speed | Quality |
|------|----------|-------|---------|
| `max` | Final deliverables, complex removals, professional work | Slower | Highest |
| `eco` | Quick previews, simple removals, bulk processing | Faster | Good |
**Recommendation**: Use `max` mode for complex removals (people, large objects) and `eco` for simple cleanups (small blemishes, dust spots).
## Best Practices
### For Best Results
- **High-resolution source**: Use the highest quality source image available
- **Clear descriptions**: Be specific about what to remove and where it is
- **Simple backgrounds**: Objects in front of simple, repetitive backgrounds are easier to remove cleanly
- **Multiple passes**: For complex scenes, use multi-turn removal to address one element at a time
### Challenging Scenarios
- **Complex backgrounds**: Objects in front of detailed, unique backgrounds may require manual refinement
- **Large objects**: Removing very large objects (more than 30% of image) may produce less realistic results
- **Reflections**: Objects with reflections may need separate removal requests for the object and its reflection
- **Shadows**: Remember to request shadow removal if the object casts a visible shadow
## Error Handling
| Error | Cause | Solution |
|-------|-------|----------|
| `Failed to create prediction: HTTP 422` | Insufficient balance | Top up at eachlabs.ai |
| Content policy violation | Prohibited content | Review content guidelines |
| Timeout | Complex generation | Set client timeout to minimum 10 minutes |
| Poor removal quality | Vague prompt | Be more specific about location and fill content |
## Client Timeout Configuration
Object removal operations can take time, especially for complex scenes. Configure your HTTP client with a minimum **10 minute timeout** to avoid premature disconnections.
```bash
# Example with extended timeout
curl --max-time 600 -X POST https://eachsense-agent.core.eachlabs.run/v1/chat/completions \
-H "Content-Type: application/json" \
-H "X-API-Key: $EACHLABS_API_KEY" \
-H "Accept: text/event-stream" \
-d '{
"messages": [{"role": "user", "content": "Remove all people from this crowded plaza photo"}],
"model": "eachsense/beta",
"stream": true,
"image_urls": ["https://example.com/crowded-plaza.jpg"],
"mode": "max"
}'
```
## Related Skills
- `each-sense` - Core API documentation
- `image-edit` - General image editing capabilities
- `background-removal` - Remove and replace backgrounds
