{"id":"13e9a8ba-2a24-46b7-b4ed-d143b83ac168","slug":"imgflux","kind":"mcp","name":"imgFlux","summary":"ImgFlux — High-performance image forge service.","owner":"cloud-media-forge","repoUrl":"https://github.com/cloud-media-forge/imgFlux","license":"GPL-3.0","licenseTier":"strong-copyleft","trust":"community","stars":7,"match":null,"fewStars":false,"format":"mcp","createdAt":"2025-09-28T09:03:29.000Z","addedAt":"2026-10-21T15:59:08.989Z","logoUrl":"https://avatars.githubusercontent.com/u/3078244?u=5608e9f8360d270d9793987e9ff98ee27a031eca&v=4","linkOnly":false,"collection":null,"skillPath":null,"categories":["design-media"],"tags":["avif","cdn","gif","graphicsmagick","image-generation","image-manipulation","image-recognition","imagemagick"],"runtime":"binary","local":true,"cloudCapable":false,"cloudCapability":"unknown","cloudReadyOnPlatform":false,"needsApiKey":false,"reviewed":false,"syncedAt":"2026-10-28T00:47:08.556Z","sample":false,"url":"https://conduits.dev/tools/imgflux","language":"Java","transports":["stdio"],"install":{},"requirements":{"env":[],"upstreamMayCharge":false},"tools":null,"readme":"# ImgFlux\n\n[![License: GPL 3.0](https://img.shields.io/badge/License-GPL%203.0-yellow.svg)](https://fsf.org/)\n[![Java Version](https://img.shields.io/badge/Java-17-orange.svg)](https://openjdk.org/projects/jdk/17/)\n[![Spring Boot](https://img.shields.io/badge/Spring%20Boot-3.5.x-brightgreen.svg)](https://spring.io/projects/spring-boot)\n[![Build Status](https://img.shields.io/github/actions/workflow/status/cloud-media-forge/imgFlux/ci.yml?branch=main)](https://github.com/cloud-media-forge/imgFlux/actions)\n\n[English](README.md) | [中文](doc/README.zh-CN.md)\n\n**ImgFlux** - High-performance image processing framework that processes 10,000 images/minute with GPU acceleration and\nGraphicsMagick. Open-source alternative to remove.bg for bulk background removal.\n\n## Architecture\n\nThe upload flow and thumbnail download flow are separated. Object storage is the only shared component between the two\nflows.\n\n![ImgFlux Architecture](doc/assets/architecture-en.svg.png)\n\n\n## Features\n\n- 🚀 **Image Upload API** - Support multiple image formats\n- 📥 **Image Thumbnail & Resize API** - On-demand image size reduce & cropping\n- 🎨 **Image Management Admin UI** - Visual management interface\n- ⚡ **GraphicsMagick-based Processing** - High-performance image processing\n- 🗄️ **Multiple Storage Backends** - MinIO, AWS S3, Alibaba Cloud OSS\n- 🔧 **Configurable Storage Switching** - Flexible storage strategy\n- 🔐 **JWT Authentication** - Secure API access control\n- 🐳 **Docker Support** - Containerized deployment\n\n## Feature Highlights\n\n| Feature               | This Project          |\n|-----------------------|-----------------------|\n| Multi-storage backend | ✅ MinIO/S3/OSS        | \n| Image scaling         | ✅ GraphicsMagick      | \n| Management UI         | ✅ Built-in Admin UI   | \n| Modular design        | ✅ Independent modules | \n| Docker support        | ✅ Ready to use        | \n| JWT auth              | ✅ Built-in            |\n| MCP Server (AI)       | ✅ Spring AI MCP       |\n\n## Image Processing\n### Thumbnail Examples\n\n| Features                              | Original Image | After Operation                                                                                    |\n|---------------------------------------|----------------|----------------------------------------------------------------------------------------------------|\n| **Resize**                            | ![Original](imgFlux-engine/src/test/resources/translate/src/C2-1BIG.jpg) | ![Resized 200x127](imgFlux-engine/src/test/resources/translate/C2-1BIG-resize-result.jpg)          |\n| **Trim**                              | ![Original](imgFlux-engine/src/test/resources/translate/src/C2-1BIG.jpg) | ![Trimmed](imgFlux-engine/src/test/resources/translate/C2-1BIG-trim-result.jpg)                    |\n| **Extent**                            | ![Original](imgFlux-engine/src/test/resources/translate/src/C2-1BIG.jpg) | ![Extended 550x350](imgFlux-engine/src/test/resources/translate/C2-1BIG-extent-result.jpg)         |\n| **Quality**                           | ![Original](imgFlux-engine/src/test/resources/translate/src/C2-1BIG.jpg) | ![Quality 5](imgFlux-engine/src/test/resources/translate/C2-1BIG-quality-result.jpg)               |\n| **Text Translation** (Korean→English) | ![Original](imgFlux-engine/src/test/resources/translate/src/C2-1BIG.jpg) | ![Translated to English](imgFlux-engine/src/test/resources/translate/C2-1BIG-en-result.jpg)        |\n| **Text Translation** (Korean→Chinese) | ![Original](imgFlux-engine/src/test/resources/translate/src/C2-1BIG.jpg) | ![Translated to Chinese](imgFlux-engine/src/test/resources/translate/output/C2-1BIG-zh-CN-result.jpg) |\n## Image Flux Roadmap\n\nWe're planning to add AI-powered image processing features. See [Wiki](../../wiki) for details:\n\n| Feature                | Description                                | Status         |\n|------------------------|--------------------------------------------|----------------|\n| Background removal     | Remove image backgrounds automatically     | ✅ Support      |\n| Resize                 | Resize image size without lose quality     | ✅ Support      |\n| Trim white background edge | Make image main subject look bigger        | ✅ Support      |\n| Image  translation     | Translate text in screenshots              | ✅ Support     |\n| OCR enhancement        | Enhance images for better text recognition | 📋 Planned     |\n| Image upscale          | Upscale images with AI                     | 🚧 In Progress |\n| Image deduplication    | Detect and remove duplicate images         | 📋 Planned     |\n| Watermark removal      | Remove watermarks from images              | 📋 Planned     |\n| Face anonymization     | Blur or anonymize faces in images          | 📋 Planned     |\n| PDF/image cleanup      | Clean up scanned documents                 | 📋 Planned     |\n\n| Comic/manga enhancement    | Enhance manga and comic images             | 📋 Planned     |\n\n## Performance Benchmarks\n\n| Tool            | Speed             | Memory  | GPU Support |\n|-----------------|-------------------|---------|-------------|\n| **ImgFlux**     | **1,200 img/min** | **2GB** | ✅ Yes       |\n| OpenCV          | 300 img/min       | 5GB     | ❌ No        |\n| Pillow (Python) | 150 img/min       | 3GB     | ❌ No        |\n| ImageMagick     | 400 img/min       | 4GB     | ❌ No        |\n\n**Key Performance Advantages:**\n\n- 5x faster than OpenCV for batch image processing\n- Java acceleration with optimized memory management\n- GPU pipeline support for parallel processing\n- Batch processing with memory optimization\n\n\n## Free Alternative to Paid SaaS\n\nImgFlux provides open-source alternatives to popular paid image processing services:\n\n- **remove.bg alternative** - Bulk background removal without subscription fees\n- **Canva features alternative** - Automated image resizing and formatting\n- **Photoshop automation alternative** - Batch image processing and optimization\n\n## Use Cases\n\n- **E-commerce** - Bulk product image optimization and resizing\n- **OCR preprocessing** - Image enhancement for better text recognition\n- **Social media moderation** - Automated image content filtering\n- **Medical imaging** - Secure medical image storage and processing\n- **Manga cleanup** - Comic and manga image enhancement\n- **Content management** - Digital asset management for media companies\n\n## MCP Server (AI Agent Integration)\n\nThe `imgFlux-mcp-server` module exposes ImgFlux's image processing capabilities as [MCP (Model Context Protocol)](https://modelcontextprotocol.io/) tools, enabling AI agents like Claude Desktop, Cursor, and other MCP-compatible clients to process images through natural language.\n\n### MCP Server Feature Highlights\n\n| Feature | Description |\n|---------|-------------|\n| **6 Image Tools** | `resizeImage`, `trimImage`, `convertImageFormat`, `translateImageText`, `processImage`, `getImageInfo` |\n| **Natural Language Driven** | AI agents call tools based on user intent — no API knowledge required |\n| **GraphicsMagick + Java2D Fallback** | Full performance with GM; pure Java fallback when GM is unavailable |\n| **SSE Transport** | HTTP-based Server-Sent Events transport for broad client compatibility |\n| **Spring AI MCP** | Built on [Spring AI MCP Server](https://docs.spring.io/spring-ai/reference/api/mcp.html) for standards-compliant integration |\n| **Combined Operations** | `processImage` tool chains resize + trim + format + translation in one call |\n\n### Available MCP Tools\n\n| Tool | Description |\n|------|-------------|\n| `resizeImage` | Resize image to specified dimensions with quality control and format conversion |\n| `trimImage` | Remove white/blank borders from images |\n| `convertImageFormat` | Convert between JPG, PNG, WEBP, GIF formats |\n| `translateImageText` | OCR-based text detection and translation on images (8 languages) |\n| `processImage` | Combined operations: resize + trim + extent + format + translation |\n| `getImageInfo` | Read image metadata: dimensions, format, file size |\n\n### Integration Steps\n\n#### 1. Build and Start the MCP Server\n\n```bash\n# Build from project root\nmvn clean install -pl imgFlux-mcp-server -am\n\n# Start the MCP server (default port: 8088)\nmvn spring-boot:run -pl imgFlux-mcp-server\n```\n\nThe server starts at `http://localhost:8088` with SSE transport enabled.\n\n#### 2. Configure Your AI Client\n\n**Claude Desktop** — Add to `claude_desktop_config.json`:\n\n```json\n{\n  \"mcpServers\": {\n    \"imgflux\": {\n      \"url\": \"http://localhost:8088/sse\"\n    }\n  }\n}\n```\n\n**Cursor** — Add to `.cursor/mcp.json` in your project root:\n\n```json\n{\n  \"mcpServers\": {\n    \"imgflux\": {\n      \"url\": \"http://localhost:8088/sse\"\n    }\n  }\n}\n```\n\n**Other MCP Clients** — Point your client's SSE transport to `http://localhost:8088/sse`.\n\n#### 3. Verify the Connection\n\nOnce connected, ask your AI assistant:\n- \"What image processing tools are available?\"\n- \"Resize `/path/to/image.png` to 800x600\"\n- \"Remove the white borders from `/path/to/photo.jpg`\"\n\n### Usage Examples\n\n#### Example 1: Resize an Image via Natural Language\n\n**You:** \"Resize `/photos/banner.png` to 1200x400 and save it as `/photos/banner-small.png`\"\n\n**AI** calls `resizeImage` with:\n```json\n{\n  \"inputPath\": \"/photos/banner.png\",\n  \"outputPath\": \"/photos/banner-small.png\",\n  \"width\": 1200,\n  \"height\": 400,\n  \"quality\": 80,\n  \"format\": \"PNG\"\n}\n```\n\n**Result:** `Image resized to 1200x400 and saved to /photos/banner-small.png (245760 bytes)`\n\n#### Example 2: Batch Workflow — Trim + Resize + Convert\n\n**You:** \"Clean up `/product/photo.jpg` — remove white borders, resize to 500x500, and convert to WEBP at `/product/photo.webp`\"\n\n**AI** calls `processImage` with:\n```json\n{\n  \"inputPath\": \"/product/photo.jpg\",\n  \"outputPath\": \"/product/photo.webp\",\n  \"width\": 500,\n  \"height\": 500,\n  \"quality\": 85,\n  \"format\": \"WEBP\",\n  \"trim\": true,\n  \"extent\": false,\n  \"srcLang\": \"\",\n  \"toLang\": \"\"\n}\n```\n\n**Result:** `Image processed: resized 500x500 trimmed converted to WEBP -> /product/photo.webp (38400 bytes)`\n\n#### Example 3: Translate Text on an Image\n\n**You:** \"Translate the Korean text on `/screenshots/app-ui.png` to English and save to `/screenshots/app-ui-en.png`\"\n\n**AI** calls `translateImageText` with:\n```json\n{\n  \"inputPath\": \"/screenshots/app-ui.png\",\n  \"outputPath\": \"/screenshots/app-ui-en.png\",\n  \"srcLang\": \"ko\",\n  \"toLang\": \"en\"\n}\n```\n\n#### Example 4: Get Image Info\n\n**You:** \"What's the size and format of `/assets/logo.png`?\"\n\n**AI** calls `getImageInfo` and responds:\n\n> \"The image is 1024x768 pixels, PNG format, 245.3 KB.\"\n\n## Project Structure\n\n```\nimgFlux/\n├── imgFlux-engine/             # Image processing library\n├── imgFlux-upload-api/         # Image upload REST API module\n├── imgFlux-download-api/       # Image download and resize module\n├── imgFlux-admin-ui/           # Admin UI module\n├── imgFlux-mcp-server/         # MCP server for AI agent integration\n```\n\n## Quick Start\n\n### Docker Compose (Recommended)\n\n```bash\ngit clone \ncd imgFlux\ndocker-compose up -d -f docker-compose-develop.yml\n# Access: http://localhost:8080\n```\n\n### Manual Start\n\n```bash\nmvn clean install\nmvn spring-boot:run -pl imgFlux-upload-api\nmvn spring-boot:run -pl imgFlux-download-api\nmvn spring-boot:run -pl imgFlux-admin-ui\nmvn spring-boot:run -pl imgFlux-mcp-server    # MCP server on port 8088\n```\n\n## Upload and Generate Thumbnail\n\n### Upload an image:\n\n```bash\ncurl http://localhost:8080/api/v1/upload/xxxx/xx.png\n```\n\nThe response path is:\n\n```text\nxxxx/xx.png\n```\n\nUse the returned `path` to generate a thumbnail:\n\n### Create a thumbnail\n**Thumbnail URL structure**\n```\n  http://${yourDomain}/api/v1/thumbnail/resize/${resizeParam}/${url}\n```\n**Parameters**\n\n- mode: `local` or `remote`\n- resizeParam: format [width]x[height]q[qulity][ex][trim], example : 300x300q80trim\n- url: image URL\n    - local: image key in object storage\n    - remote: image URL, example: https://brand.github.com/_next/static/media/logo-03.cc5e5332.png\n\n**Local mode (image stored in object storage):**\n```bash\npath=xxxx/xx.png.webp\ncurl http://localhost:8080/api/v1/thumbnail/resize/local/240x240q90trim/${path}\n// it will return an image with size=240x240, quality=90, convert format from png to webp \n```\n\n**Remote mode (image from remote URL):**\n```bash\ncurl \"http://localhost:8080/api/v1/thumbnail/resize/remote/240x240q90trim/https://brand.github.com/_next/static/media/logo-03.cc5e5332.png\"\n// it will download the image from the remote URL and process it\n```\n\n**Alternative endpoint with query parameters:**\n```bash\n# Local mode\ncurl \"http://localhost:8080/api/v1/thumbnail/forge/local/folder/image.png?width=240&height=240&quality=90&format=webp\"\n\n# Remote mode\ncurl \"http://localhost:8080/api/v1/thumbnail/forge/remote/https://brand.github.com/_next/static/media/logo-03.cc5e5332.png?width=240&height=240&quality=90&format=webp\"\n```\n### Online Demo\n| <div style=\"width:150px\">Features</div>           | <div style=\"width:150px\">url</div>                                                          | <div style=\"width:200px\">preview</div>                                                                |\n|-------------------|---------------------------------------------------------------------------------------------|-------------------------------------------------------------------------------------------------------|\n| **original**      | https://brand.github.com/_next/static/media/logo-03.cc5e5332.png                            | ![origin](https://brand.github.com/_next/static/media/logo-03.cc5e5332.png)                           |\n| **Resize 200x200** | http://thumbnail.rnh-inc.com/api/v1/thumbnail/resize/remote/200x200/https://brand.github.com/_next/static/media/logo-03.cc5e5332.png | ![Resized](doc/assets/logo-03.cc5e5332-500x500.png)                                                   |\n| **Trim**          | http://thumbnail.rnh-inc.com/api/v1/thumbnail/resize/remote/200x200trim/https://brand.github.com/_next/static/media/logo-03.cc5e5332.png | ![Trimmed](doc/assets/logo-03.cc5e5332-trim.png)                                                      |\n| **Extent**        | http://thumbnail.rnh-inc.com/api/v1/thumbnail/resize/remote/200x200ex/https://brand.github.com/_next/static/media/logo-03.cc5e5332.png | ![Extended](doc/assets/logo-03.cc5e5332-ex.png)                                                       |\n| **Quality 5%**    | http://thumbnail.rnh-inc.com/api/v1/thumbnail/resize/remote/200x200q5/https://brand.github.com/_next/static/media/logo-03.cc5e5332.png | ![Quality 5](doc/assets/logo-03.cc5e5332-q5.png)                                                      |\n| **Convert format** | http://thumbnail.rnh-inc.com/api/v1/thumbnail/resize/remote/200x200q80/https://brand.github.com/_next/static/media/logo-03.cc5e5332.png.webp | ![Conver to WEBP format](doc/assets/logo-03.cc5e5332-q5.webp)                                         |\n| **Text Translation** (Korean→English) | not available in Demo                                                                       | ![Translated to English](imgFlux-engine/src/test/resources/translate/C2-1BIG-en-result.jpg)           |\n| **Text Translation** (Korean→Chinese) | not available in Demo                                                                       | ![Translated to Chinese](imgFlux-engine/src/test/resources/translate/output/C2-1BIG-zh-CN-result.jpg) |\n\n\n## Tech Stack\n\n- **Spring Boot 3.3** - Application framework\n- **Java 17** - Programming language\n- **GraphicsMagick** - Image processing engine\n- **MinIO / AWS S3 / Alibaba Cloud OSS** - Object storage\n- **JWT** - Authentication & authorization\n- **H2 Database** - Embedded database\n- **Thymeleaf** - Template engine\n## Development\n\n> Any company which access and use this product is welcome to register at the [address](https://github.com/cloud-media-forge/imgFlux/issues/1), only for product promotion purpose.\n\nWelcome everyone’s attention and use, imgFlux will also embrace changes, sustainable development.\n\n## Contributing\n\nContributions are welcome! Please see [CONTRIBUTING.md](doc/CONTRIBUTING.md) for details.\n\n## License\n\nThis project is licensed under the [GPL License](LICENSE).\n\n## Contact\n\n- Issue reporting: [GitHub Issues](https://github.com/cloud-media-forge/imgFlux/issues)\n"}