Spaces:
Running
Running
| title: Lama-Cleaner | |
| emoji: 🧹 | |
| colorFrom: indigo | |
| colorTo: gray | |
| sdk: gradio | |
| sdk_version: 6.3.0 | |
| app_file: app.py | |
| pinned: false | |
| license: apache-2.0 | |
| tags: | |
| - image-inpainting | |
| - object-removal | |
| - lama | |
| - mcp-server | |
| short_description: Remove unwanted objects from images with LaMa | |
| # Lama-Cleaner: Image Inpainting | |
| Remove unwanted objects from your images using LaMa (Large Mask Inpainting). | |
| ## Features | |
| - **Object Removal** - Remove any unwanted object, person, or defect from images | |
| - **LaMa Model** - Uses state-of-the-art LaMa inpainting model | |
| - **CPU Inference** - Runs on HuggingFace Spaces free tier | |
| - **CLI Support** - Command-line interface for batch processing | |
| ## Usage | |
| 1. Upload an image | |
| 2. Draw over the area you want to remove (white brush = mask) | |
| 3. Click "Remove Object" | |
| ## Tips | |
| - Draw the mask slightly larger than the object for best results | |
| - LaMa works best for small to medium sized areas | |
| - For complex backgrounds, you may need to adjust the mask | |
| --- | |
| ## API | |
| ### Python Client | |
| ```python | |
| from gradio_client import Client, handle_file | |
| client = Client("Luminia/lama-cleaner") | |
| # Note: ImageEditor data format | |
| result = client.predict( | |
| editor_data={ | |
| "background": handle_file("image.png"), | |
| "layers": [handle_file("mask.png")], | |
| "composite": None | |
| }, | |
| api_name="/inpaint" | |
| ) | |
| print(result) # (output_image, status) | |
| ``` | |
| ### REST API (curl) | |
| ```bash | |
| # Step 1: Submit job | |
| curl -X POST "https://luminia-lama-cleaner.hf.space/gradio_api/call/inpaint" \ | |
| -H "Content-Type: application/json" \ | |
| -d '{"data": [{"background": "...", "layers": [...]}]}' | |
| # Step 2: Get result (SSE stream) | |
| curl "https://luminia-lama-cleaner.hf.space/gradio_api/call/inpaint/{event_id}" | |
| ``` | |
| ### MCP (Model Context Protocol) | |
| This Space supports MCP for AI assistants (Claude Desktop, Cursor, VS Code). | |
| 1. Click **MCP** badge → **Add to MCP tools** | |
| 2. The `inpaint` tool becomes available | |
| **Tool schema:** | |
| ```json | |
| { | |
| "name": "inpaint", | |
| "parameters": { | |
| "editor_data": {"type": "object", "description": "ImageEditor data with background and mask layers"} | |
| }, | |
| "returns": ["image", "string"] | |
| } | |
| ``` | |
| **MCP Config:** | |
| ```json | |
| { | |
| "mcpServers": { | |
| "lama-cleaner": {"url": "https://luminia-lama-cleaner.hf.space/gradio_api/mcp/"} | |
| } | |
| } | |
| ``` | |
| --- | |
| ## CLI Usage | |
| ```bash | |
| # Inpaint with external mask | |
| python app.py inpaint -i image.png -m mask.png -o output.png | |
| ``` | |
| **Mask format:** White (255) = area to inpaint, Black (0) = keep | |
| --- | |
| ## Credits | |
| Based on [LaMa](https://github.com/advimman/lama) by SAIC-Moscow and [lama-cleaner](https://github.com/Sanster/lama-cleaner) by Sanster. | |
| Paper: [Resolution-robust Large Mask Inpainting with Fourier Convolutions](https://arxiv.org/abs/2109.07161) | |