agentleFS
awesome-genmediaawesome-genmedia/skills/image-editing/SKILL.md

image-editing

Skill36 starsChanged 7 months agoMITView on GitHub

Edit existing images with natural language using each::sense AI. Modify colors, add or remove objects, change styles, inpaint regions, outpaint to extend canvas, retouch photos, and apply creative effects. Supports up to 4 reference images. Use for: photo retouching, object removal, style transfer, inpainting, outpainting, color correction, creative edits. Triggers: edit image, modify image, change image, image editing, photo edit, retouch, inpaint, outpaint, remove object, add object, style transfer, color grade image

  • Reads credentials
  • Sends data out

We split this skill into the rules it gives an agent

4 rules. 0 are common, 4 are distinctive, and 0 are very specific to this project.

  • 0

    Common

    Most of the 5 edited versions we read keep these.

  • 4

    Distinctive

    This author's own choices. Worth a look.

  • 0

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  1. Distinctive:

    Always mention what should remain unchanged to prevent unintended modifications:

    line 105
  2. Distinctive:

    Use spatial language to target specific regions:

    line 113
  3. Distinctive:

    Use multi-turn messages to apply sequential edits:

    line 122
  4. Distinctive:

    Forgetting to anchor: Always mention what should stay the same to avoid unwanted edits.

    line 234

“Common” is measured: kept by at least 6 in 10 of the 5 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

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

  • Image Generation — Generate new images from scratch
  • Background Removal — Dedicated background removal
  • Face Swap — Swap faces between photos
  • Image Upscaling — Enhance resolution after editing

Documentation

Download now (ZIP)

Does it work?

Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.

Reviews can't be read right now.

Your trail

Files you open will collect here, so you can find them again.

Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.

Now do this for your own.

Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.