mcpField
I
image-editing

image-editing

github.com/awesome-genmediaCreative & media4439 installsUpdated 32w ago
Repository

About image-editing

image-editing is a skill for modifying existing images with natural-language instructions through each::sense, which selects an editing model for the request. It covers edits such as object changes, style and color adjustments, inpainting, and canvas extension, with support for reference images and sequential edits.

Key features

  1. 01Edits images from text instructions
  2. 02Removes or adds objects
  3. 03Transfers style and adjusts color
  4. 04Supports inpainting and outpainting
  5. 05Accepts reference images and sequential edits

Use cases

  1. 01Removing unwanted elements from a photo
  2. 02Applying a style or color treatment
  3. 03Replacing objects or extending a canvas

Install

Copy the command and run it in a terminal.

$npx skills add https://github.com/awesome-genmedia/skills --skill image-editing

After installing, type/image-editingin Claude Code to confirm it loaded.

Details

From the project README

Image Editing

Edit existing images with natural language instructions using each::sense — the intelligent AI agent that automatically selects the best model for your request.

Quick Start

Requires an each::labs API key. Get one at eachlabs.ai.

Using curl
curl -X POST https://eachsense-agent.core.eachlabs.run/v1/chat/completions \
  -H "Content-Type: application/json" \
  -H "X-API-Key: $EACHLABS_API_KEY" \
  -d '{
    "messages": [{"role": "user", "content": [
              {"type": "text", "text": "Change the sky to a dramatic orange and purple sunset. Keep the foreground untouched."},
              {"type": "image_url", "image_url": {"url": "https://example.com/landscape-photo.jpg"}}
            ]
          }
    ],
    "stream": false
  }'
Using Python (OpenAI SDK)
from openai import OpenAI

client = OpenAI(
    api_key="YOUR_EACHLABS_API_KEY",
    base_url="https://eachsense-agent.core.eachlabs.run/v1"
)

response = client.chat.completions.create(
    model="eachsense/beta",
    messages=[{"role": "user", "content": "Change the sky to a dramatic orange and purple sunset. Keep the foreground untouched."}],
    # Images are included in the message content array above
)

print(response.choices[0].message.content)
With Reference Image
curl -X POST https://eachsense-agent.core.eachlabs.run/v1/chat/completions \
  -H "Content-Type: application/json" \
  -H "X-API-Key: $EACHLABS_API_KEY" \
  -d '{
    "messages": [{"role": "user", "content": [
              {"type": "text", "text": "Apply the color grading and mood from the reference image to the target photo"},
              {"type": "image_url", "image_url": {"url": "https://example.com/target-photo.jpg"}},
              {"type": "image_url", "image_url": {"url": "https://example.com/style-reference.jpg"}}
            ]
          }
    ],
    "stream": false
  }'

Images are sent inside messages using the OpenAI multimodal content format. Maximum 4 images per request.

Streaming

Set "stream": true for real-time SSE responses, or "stream": false for complete result in a single response. Streaming is useful for showing progress in UIs; non-streaming is simpler for scripts and automation.

Available Models

ModelCapabilityBest For
flux-2-editNatural language image editingGeneral edits, style changes, object modification
flux-fill-proInpainting and outpaintingFilling masked areas, extending canvas
eachlabs-bg-remover-v1Background removalSubject isolation, transparent backgrounds
topaz-upscale-imageResolution enhancementUpscaling after edits, detail recovery
kling-face-swapFace replacementSwapping faces between images

each::sense automatically selects the right editing model based on your instruction. Describe what you want changed in plain English.

Editing Capabilities

CategoryWhat You Can DoExample Instruction
Object RemovalRemove unwanted elements"Remove the person standing in the background"
Object AdditionAdd new elements"Add a golden retriever sitting next to the bench"
Style TransferChange artistic style"Convert this photo to a Studio Ghibli illustration"
Color GradingAdjust colors and mood"Apply a warm, vintage film look with orange tones"
InpaintingFill or replace regions"Replace the old car with a modern Tesla"
OutpaintingExtend the canvas"Extend this image to the left to show more of the beach"
RetouchingClean up imperfections"Smooth skin blemishes and brighten the eyes"
Season ChangeAlter time/season"Change the scene from summer to a snowy winter"
LightingModify lighting conditions"Change the lighting to golden hour with long shadows"

Prompt Tips

Be Specific About What to Keep

Always mention what should remain unchanged to prevent unintended modifications:

"Change the wall color to teal blue. Keep the furniture, people, and floor exactly as they are."
Reference Specific Areas

Use spatial language to target specific regions:

"In the top-right corner, add a flock of birds flying in V-formation"
"Replace the object on the left side of the table with a vase of sunflowers"
Chain Edits with Conversation

Use multi-turn messages to apply sequential edits:

{
  "messages": [
    {"role": "user", "content": "Remove the car from the driveway"},
    {"role": "assistant", "content": "..."},
    {"role": "user", "content": [
              {"type": "text", "text": "Now change the house color to light blue"},
              {"type": "image_url", "image_url": {"url": "https://example.com/house.jpg"}},
              {"type": "image_url", "image_url": {"url": "https://example.com/landscape-with-powerlines.jpg"}}
            ]
          }
    ],
    "stream": false
  }'
Style Transfer
curl -X POST https://eachsense-agent.core.eachlabs.run/v1/chat/completions \
  -H "Content-Type: application/json" \
  -H "X-API-Key: $EACHLABS_API_KEY" \
  -d '{
    "messages": [{"role": "user", "content": [
              {"type": "text", "text": "Transform this city street photo into a Van Gogh Starry Night style painting. Keep the composition and building shapes, but apply swirling brushstrokes and vibrant blues and yellows."},
              {"type": "image_url", "image_url": {"url": "https://example.com/city-street.jpg"}}
            ]
          }
    ],
    "stream": false
  }'
Inpainting (Object Replacement)
curl -X POST https://eachsense-agent.core.eachlabs.run/v1/chat/completions \
  -H "Content-Type: application/json" \
  -H "X-API-Key: $EACHLABS_API_KEY" \
  -d '{
    "messages": [{"role": "user", "content": [
              {"type": "text", "text": "Replace the wooden dining table with a sleek modern glass table. Keep the chairs, plates, and everything else on the table exactly the same."},
              {"type": "image_url", "image_url": {"url": "https://example.com/dining-room.jpg"}}
            ]
          }
    ],
    "stream": false
  }'
Outpainting (Canvas Extension)
curl -X POST https://eachsense-agent.core.eachlabs.run/v1/chat/completions \
  -H "Content-Type: application/json" \
  -H "X-API-Key: $EACHLABS_API_KEY" \
  -d '{
    "messages": [{"role": "user", "content": [
              {"type": "text", "text": "Extend this portrait photo into a full 16:9 landscape by expanding the background on both sides. Continue the indoor environment naturally with consistent lighting and style."},
              {"type": "image_url", "image_url": {"url": "https://example.com/portrait-crop.jpg"}}
            ]
          }
    ],
    "stream": false
  }'
Color and Mood Change
curl -X POST https://eachsense-agent.core.eachlabs.run/v1/chat/completions \
  -H "Content-Type: application/json" \
  -H "X-API-Key: $EACHLABS_API_KEY" \
  -d '{
    "messages": [{"role": "user", "content": [
              {"type": "text", "text": "Convert this daytime photo to a moody nighttime scene. Add soft neon reflections on wet pavement, streetlight glow, and a slight blue color grade. Keep all buildings and structures intact."},
              {"type": "image_url", "image_url": {"url": "https://example.com/daytime-street.jpg"}}
            ]
          }
    ],
    "stream": false
  }'

Batch Editing Workflow

# Apply the same edit across multiple product photos
IMAGES=(
  "https://example.com/product-1.jpg"
  "https://example.com/product-2.jpg"
  "https://example.com/product-3.jpg"
)

for IMG in "${IMAGES[@]}"; do
  curl -X POST https://eachsense-agent.core.eachlabs.run/v1/chat/completions \
    -H "Content-Type: application/json" \
    -H "X-API-Key: $EACHLABS_API_KEY" \
    -d "{
      \"messages\": [{\"role\": \"user\", \"content\": \"Remove the background and replace with a clean white studio backdrop. Add a soft drop shadow beneath the product.\"}],
      \"image_urls\": [\"$IMG\"],
      \"stream\": false
    }"
  echo "---"
done

Common Pitfalls

  • Too vague: "Make it better" gives unpredictable results. Say exactly what to change.
  • Forgetting to anchor: Always mention what should stay the same to avoid unwanted edits.
  • Conflicting instructions: "Remove the car and make the car red" contradicts itself.
  • Expecting pixel-perfect masks: Describe regions with natural language; the model interprets areas contextually.
  • Over-editing in one pass: Complex multi-step edits work better as sequential conversation turns.

Related Skills

Documentation

Comments

Markdown supported