关于 modelslab-image-editing
modelslab-image-editing 是通过 API 请求调用 ModelsLab 图像编辑端点的技能,涵盖背景和物体移除、放大、扩图、创建蒙版及指令式编辑。
主要功能
- 01移除图像背景
- 02将图像放大 2 倍或 4 倍
- 03通过扩图延伸图像边缘
- 04移除指定物体
- 05创建物体蒙版
- 06使用 Qwen 指令编辑图像
适用场景
- 01移除背景并放大商品照片
- 02清理房地产照片中的多余物体
- 03扩展图形以适配不同宽高比
- 04提升头像分辨率
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ modelslab/ skills --skill modelslab-image-editing安装后在 Claude Code 中输入/modelslab-image-editing确认已加载。
详细介绍
ModelsLab 图像编辑
由 AI 驱动的专业图像编辑工具,包括背景移除、放大、扩图和对象处理。
何时使用此技能
- 移除图像背景
- 放大图像(2x、4x 超分辨率)
- 将图像扩展到边界之外(扩图)
- 移除图像中不需要的对象
- 创建专业的产品照片
- 提升图像质量
- 使用 AI 辅助编辑图像
可用端点
背景移除
POST https://modelslab.com/api/v6/image_editing/removebg
超分辨率(放大)
POST https://modelslab.com/api/v6/image_editing/super_resolution
扩图
POST https://modelslab.com/api/v6/image_editing/outpainting
对象移除
POST https://modelslab.com/api/v6/image_editing/object_removal
蒙版创建器
POST https://modelslab.com/api/v6/image_editing/create_mask
Qwen 图像编辑(AI 编辑)
POST https://modelslab.com/api/v6/image_editing/qwen_edit
背景移除
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}")
超分辨率(放大)
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}")
扩图(扩展图像)
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
)
对象移除
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 驱动的图像编辑(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"
)
创建蒙版
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"
)
轮询辅助工具
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")
常见工作流
电商产品照片
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"
)
照片清理
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"
)
扩展和增强
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
最佳实践
1. 背景移除
- 主体与背景分离清晰时效果最佳
- 原始图像光线充足会有所帮助
- 输入质量越高,输出效果越好
2. 超分辨率
- 适度放大时使用 2x
- 需要最大程度提升质量时使用 4x
- 不要放大分辨率已经很高的图像
- 清晰、对焦准确的图像效果最佳
3. 扩图
- 在扩展提示词中提供具体描述
- 与原始图像风格保持一致
- 扩展时考虑构图
- 测试不同尺寸
4. 对象移除
- 明确说明对象的位置
- 简单背景下效果最佳
- 复杂场景可能需要多次处理
5. 使用 Webhook 执行批量操作
# 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}"
}
)
常见用例
专业头像照
# Remove background and upscale
headshot = remove_background(original, api_key)
hd_headshot = upscale_image(headshot, api_key, scale=4)
房地产照片
# 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
)
社交媒体图形
# 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
)
错误处理
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
资源
- API 文档:https://docs.modelslab.com/image-editing/overview
- 背景移除:https://docs.modelslab.com/image-editing/removebg-createmask
- 超分辨率:https://docs.modelslab.com/image-editing/super-resolution
- 获取 API 密钥:https://modelslab.com/dashboard
相关技能
modelslab-image-generation- 生成要编辑的图像modelslab-webhooks- 处理异步操作modelslab-sdk-usage- 使用官方 SDK
评论
支持 Markdown