modelslab-image-editing

Edit and enhance images using ModelsLab's Image Editing API. Features background removal, super resolution upscaling, outpainting, object removal, and AI-powered editing tools.

Safety Notice

This listing is imported from skills.sh public index metadata. Review upstream SKILL.md and repository scripts before running.

Copy this and send it to your AI assistant to learn

Install skill "modelslab-image-editing" with this command: npx skills add modelslab/skills/modelslab-skills-modelslab-image-editing

ModelsLab Image Editing

Professional image editing tools powered by AI including background removal, upscaling, outpainting, and object manipulation.

When to Use This Skill

  • Remove backgrounds from images
  • Upscale images (2x, 4x super resolution)
  • Extend images beyond their borders (outpainting)
  • Remove unwanted objects from images
  • Create professional product photos
  • Enhance image quality
  • Edit images with AI assistance

Available Endpoints

Background Removal

POST https://modelslab.com/api/v6/image_editing/removebg

Super Resolution (Upscaling)

POST https://modelslab.com/api/v6/image_editing/super_resolution

Outpainting

POST https://modelslab.com/api/v6/image_editing/outpainting

Object Removal

POST https://modelslab.com/api/v6/image_editing/object_removal

Mask Creator

POST https://modelslab.com/api/v6/image_editing/create_mask

Qwen Image Edit (AI Editing)

POST https://modelslab.com/api/v6/image_editing/qwen_edit

Background Removal

import requests

def remove_background(image_url, api_key):
    """Remove background from an image.

    Args:
        image_url: URL of the image
        api_key: Your ModelsLab API key

    Returns:
        URL of image with transparent background
    """
    response = requests.post(
        "https://modelslab.com/api/v6/image_editing/removebg",
        json={
            "key": api_key,
            "image": image_url
        }
    )

    data = response.json()

    if data["status"] == "success":
        return data["output"][0]
    else:
        raise Exception(f"Error: {data.get('message', 'Unknown error')}")

# Usage
result = remove_background(
    "https://example.com/product-photo.jpg",
    "your_api_key"
)
print(f"Image without background: {result}")

Super Resolution (Upscaling)

def upscale_image(image_url, api_key, scale=4):
    """Upscale an image to higher resolution.

    Args:
        image_url: URL of the image to upscale
        scale: Upscale factor (2 or 4)

    Returns:
        URL of upscaled high-resolution image
    """
    response = requests.post(
        "https://modelslab.com/api/v6/image_editing/super_resolution",
        json={
            "key": api_key,
            "image": image_url,
            "scale": scale  # 2x or 4x
        }
    )

    data = response.json()

    if data["status"] == "success":
        return data["output"][0]
    else:
        raise Exception(data.get("message"))

# Upscale to 4x resolution
hd_image = upscale_image(
    "https://example.com/low-res.jpg",
    "your_api_key",
    scale=4
)
print(f"HD image: {hd_image}")

Outpainting (Extend Images)

def extend_image(image_url, prompt, api_key, width=1024, height=768):
    """Extend an image beyond its original boundaries.

    Args:
        image_url: Original image URL
        prompt: Description of how to extend the image
        width: New width (larger than original)
        height: New height (larger than original)
    """
    response = requests.post(
        "https://modelslab.com/api/v6/image_editing/outpainting",
        json={
            "key": api_key,
            "image": image_url,
            "prompt": prompt,
            "width": width,
            "height": height,
            "num_inference_steps": 30,
            "guidance_scale": 7.5
        }
    )

    data = response.json()

    if data["status"] == "success":
        return data["output"][0]
    elif data["status"] == "processing":
        return poll_result(data["id"], api_key)

# Extend a landscape image
extended = extend_image(
    "https://example.com/landscape.jpg",
    "Continue the mountain landscape with more peaks and valleys",
    "your_api_key",
    width=1024,
    height=768
)

Object Removal

def remove_object(image_url, object_name, api_key):
    """Remove a specific object from an image.

    Args:
        image_url: URL of the image
        object_name: Name of object to remove (e.g., "person", "car", "sign")
    """
    response = requests.post(
        "https://modelslab.com/api/v6/image_editing/object_removal",
        json={
            "key": api_key,
            "image": image_url,
            "object_name": object_name
        }
    )

    data = response.json()

    if data["status"] == "success":
        return data["output"][0]
    elif data["status"] == "processing":
        return poll_result(data["id"], api_key)

# Remove person from photo
cleaned = remove_object(
    "https://example.com/photo.jpg",
    "person in background",
    "your_api_key"
)

AI-Powered Image Editing (Qwen)

def edit_image_with_ai(image_url, edit_instruction, api_key):
    """Edit image using AI instructions.

    Args:
        image_url: URL of the image to edit
        edit_instruction: Natural language editing instruction
    """
    response = requests.post(
        "https://modelslab.com/api/v6/image_editing/qwen_edit",
        json={
            "key": api_key,
            "image": image_url,
            "prompt": edit_instruction,
            "negative_prompt": "low quality, distorted",
            "num_inference_steps": 30,
            "guidance_scale": 7.5
        }
    )

    data = response.json()

    if data["status"] == "success":
        return data["output"][0]
    elif data["status"] == "processing":
        return poll_result(data["id"], api_key)

# AI-powered editing
edited = edit_image_with_ai(
    "https://example.com/portrait.jpg",
    "Make the background more blurred and add warm sunset lighting",
    "your_api_key"
)

Create Mask

def create_object_mask(image_url, object_description, api_key):
    """Create a mask for a specific object in an image.

    Args:
        image_url: URL of the image
        object_description: What to mask (e.g., "person", "car", "background")

    Returns:
        URL of mask image (white = selected, black = not selected)
    """
    response = requests.post(
        "https://modelslab.com/api/v6/image_editing/create_mask",
        json={
            "key": api_key,
            "image": image_url,
            "object": object_description
        }
    )

    data = response.json()

    if data["status"] == "success":
        return data["output"][0]

# Create mask for person
mask_url = create_object_mask(
    "https://example.com/group-photo.jpg",
    "person in red shirt",
    "your_api_key"
)

Polling Helper

import time

def poll_result(request_id, api_key, timeout=300):
    """Poll for async editing results."""
    start_time = time.time()

    while time.time() - start_time < timeout:
        fetch = requests.post(
            f"https://modelslab.com/api/v6/image_editing/fetch/{request_id}",
            json={"key": api_key}
        )
        result = fetch.json()

        if result["status"] == "success":
            return result["output"][0]
        elif result["status"] == "failed":
            raise Exception(result.get("message", "Failed"))

        time.sleep(5)

    raise Exception("Timeout")

Common Workflows

E-commerce Product Photos

def prepare_product_image(image_url, api_key):
    """Complete product photo workflow."""

    # Step 1: Remove background
    no_bg = remove_background(image_url, api_key)
    print(f"Background removed: {no_bg}")

    # Step 2: Upscale to high resolution
    hd_image = upscale_image(no_bg, api_key, scale=4)
    print(f"Upscaled: {hd_image}")

    return hd_image

product_image = prepare_product_image(
    "https://example.com/product.jpg",
    "your_api_key"
)

Photo Cleanup

def cleanup_photo(image_url, unwanted_objects, api_key):
    """Remove multiple unwanted objects from photo."""

    cleaned_image = image_url

    for obj in unwanted_objects:
        cleaned_image = remove_object(cleaned_image, obj, api_key)
        print(f"Removed: {obj}")

    # Upscale final result
    final = upscale_image(cleaned_image, api_key, scale=2)

    return final

result = cleanup_photo(
    "https://example.com/vacation.jpg",
    ["power lines", "trash can", "stranger in background"],
    "your_api_key"
)

Extend and Enhance

def extend_and_enhance(image_url, extension_prompt, api_key):
    """Extend image and upscale result."""

    # Extend the image
    extended = extend_image(
        image_url,
        extension_prompt,
        api_key,
        width=1920,
        height=1080
    )

    # Upscale for maximum quality
    final = upscale_image(extended, api_key, scale=2)

    return final

Best Practices

1. Background Removal

  • Works best with clear subject separation
  • Good lighting in original image helps
  • High-quality input = better output

2. Super Resolution

  • Use 2x for moderate upscaling
  • Use 4x for maximum quality boost
  • Don't upscale already high-res images
  • Best results with clear, focused images

3. Outpainting

  • Be specific in extension prompts
  • Match style of original image
  • Consider composition when extending
  • Test different sizes

4. Object Removal

  • Be specific about object location
  • Works best with simple backgrounds
  • May need multiple passes for complex scenes

5. Use Webhooks for Batch Operations

# Process many images
for image in image_list:
    response = requests.post(
        endpoint,
        json={
            "key": api_key,
            "image": image,
            "webhook": "https://yourserver.com/callback",
            "track_id": f"img_{image_id}"
        }
    )

Common Use Cases

Professional Headshots

# Remove background and upscale
headshot = remove_background(original, api_key)
hd_headshot = upscale_image(headshot, api_key, scale=4)

Real Estate Photos

# Remove unwanted items
clean_room = remove_object(
    room_photo,
    "personal items and clutter",
    api_key
)

# Extend to show more space
wider_view = extend_image(
    clean_room,
    "Continue the modern living room with more furniture",
    api_key,
    width=1920,
    height=1080
)

Social Media Graphics

# Upscale for quality
high_res = upscale_image(graphic, api_key, scale=2)

# Extend to different aspect ratios
instagram_square = extend_image(
    high_res,
    "Extend background",
    api_key,
    width=1080,
    height=1080
)

Error Handling

try:
    result = remove_background(image_url, api_key)
    print(f"Success: {result}")
except Exception as e:
    print(f"Editing failed: {e}")
    # Log error, retry, or notify user

Resources

Related Skills

  • modelslab-image-generation - Generate images to edit
  • modelslab-webhooks - Handle async operations
  • modelslab-sdk-usage - Use official SDKs

Source Transparency

This detail page is rendered from real SKILL.md content. Trust labels are metadata-based hints, not a safety guarantee.

Related Skills

Related by shared tags or category signals.

General

modelslab-interior-design

No summary provided by upstream source.

Repository SourceNeeds Review
General

modelslab-3d-generation

No summary provided by upstream source.

Repository SourceNeeds Review
General

modelslab-video-generation

No summary provided by upstream source.

Repository SourceNeeds Review
General

modelslab-deepfake

No summary provided by upstream source.

Repository SourceNeeds Review