Agent Skills

object-removal

Remove unwanted objects, people, text, and imperfections from photos using each::sense AI. Clean up images with intelligent inpainting that seamlessly fills removed areas.

Install

npx skills add https://github.com/eachlabs/skills --skill object-removal
SKILL.md

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

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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:

# 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.

# 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

Related skills

ai-image-generationgenmedia-labs713KGenerate and edit images on RunComfy via the `runcomfy` CLI — a smart router across the full image-model catalog: FLUX 2 (Klein 9B/4B, Pro, Dev, Flash, Turbo, Max), Google Nano Banana 2 / Pro, OpenAI GPT Image 2, ByteDance Seedream 5 / 4-5 / 4-0 and Dreamina 4-0, Alibaba Qwen Image and Z-Image Turbo, Wan 2-7. Covers both text-to-image (t2i) and image-to-image / edit (i2i) endpoints — the skill picks the right model for the user's actual intent (typography precision, photoreal portraits, sub-secoai-image-generation101-skills547KGenerate AI images with GPT-Image-2, FLUX, Gemini, Grok, Seedream, Reve and 50+ models via inference.sh CLI. Models: GPT-Image-2, FLUX Dev LoRA, FLUX.2 Klein LoRA, Gemini 3 Pro Image, Grok Imagine, Seedream 4.5, Reve, ImagineArt. Capabilities: text-to-image, image-to-image, inpainting, LoRA, image editing, upscaling, text rendering. Use for: AI art, product mockups, concept art, social media graphics, marketing visuals, illustrations. Triggers: flux, image generation, ai image, text to image, stnano-banana-2prime-skills424KGenerate images with Google Nano Banana 2 (Gemini-family flash-tier text-to-image) on RunComfy — bundled with the model's documented prompting patterns so the skill gets sharper output than naive prompting against the same model. Documents Nano Banana 2's strengths (rapid iteration, in-image typography rendering, predictable framing, optional web-grounded context), the resolution-tier pricing, the safety-tolerance dial, and when to route to Nano Banana Pro / GPT Image 2 / Flux 2 / Seedream insteimage-editprime-skills424KEdit images on RunComfy — this skill is a smart router that matches the user's intent to the right edit model in the RunComfy catalog. Picks Nano Banana Edit (batch up to 20, identity-preserving default), OpenAI GPT Image 2 Edit (multilingual in-image text rewrite, multi-ref composition, layout precision), Flux Kontext Pro (single-ref high-fidelity local edit), or Z-Image Turbo Inpaint (mask-driven precise region edit). Bundles each model's documented prompting patterns so the skill gets sharper

Search skills and MCP servers

Fuzzy search across 23,137 skills and servers