image_utilities_mcp / src /utils /image_helpers.py
ItzRoBeerT's picture
Remove image background
2ccc1a1
raw
history blame
1.7 kB
import requests
from typing import Optional, Dict, Any
import os
import rembg
async def remove_background_from_url(
image_url: str,
output_path: str,
model_name: str = "u2net"
) -> Dict[str, Any]:
"""
Remove background from an image downloaded from a URL.
Args:
image_url: URL of the image to process
output_path: Path where to save the processed image
model_name: Background removal model to use
Returns:
Dictionary with result information
"""
try:
# Download image from URL
response = requests.get(image_url, timeout=30)
response.raise_for_status()
# Remove background
session = rembg.new_session(model_name=model_name)
output_data = rembg.remove(response.content, session=session)
# Save the result
with open(output_path, 'wb') as output_file:
output_file.write(output_data)
output_size = os.path.getsize(output_path)
return {
"success": True,
"message": f"Background removed from URL image using {model_name} model",
"source_url": image_url,
"output_path": output_path,
"output_size_bytes": output_size,
"model_used": model_name
}
except requests.RequestException as e:
return {
"success": False,
"error": f"Failed to download image: {str(e)}",
"output_path": None
}
except Exception as e:
return {
"success": False,
"error": f"Failed to process image: {str(e)}",
"output_path": None
}