mcp-image-seededit


Namemcp-image-seededit JSON
Version 0.4.0 PyPI version JSON
download
home_pageNone
SummaryMCP服务器,提供火山引擎SeedEdit 3.0图像指令编辑和人物写真生成功能
upload_time2025-08-13 11:13:29
maintainerNone
docs_urlNone
authorNone
requires_python>=3.10
licenseNone
keywords ai image-editing mcp model-context-protocol portrait-generation seededit volcengine
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # MCP Image SeedEdit Server

[![PyPI version](https://badge.fury.io/py/mcp-image-seededit.svg)](https://badge.fury.io/py/mcp-image-seededit)
[![Python 3.10+](https://img.shields.io/badge/python-3.10+-blue.svg)](https://www.python.org/downloads/)
[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)

一个基于火山引擎视觉能力的MCP服务器,提供图像指令编辑和人物写真生成功能。

## 功能特性

### 🎨 图像指令编辑 (SeedEdit 3.0)
- **智能编辑**:通过自然语言描述直接修改图像内容
- **多样化操作**:支持添加/删除物体、修改风格、颜色调整等
- **高质量输出**:基于火山引擎先进的图像生成技术
- **批量处理**:支持同时处理多张图像

### 📸 人物写真生成
- **人脸保持**:基于单人真人照片,保持面部特征高度相似
- **风格多样**:支持古风、欧美、日系、商务等多种写真风格
- **参数可控**:支持高清处理、美颜效果、匀肤等参数调节
- **场景丰富**:适用于社交、营销、娱乐等多种场景

## 安装

```bash
pip install mcp-image-seededit
```

## 快速开始

### 1. 获取API密钥

前往[火山引擎控制台](https://console.volcengine.com/)获取您的API密钥:
- `VOLC_ACCESS_KEY`:访问密钥
- `VOLC_SECRET_KEY`:秘密密钥

### 2. 配置MCP服务器

在您的MCP配置文件中添加:

```json
{
  "mcpServers": {
    "mcp-image-seededit": {
      "command": "python",
      "args": ["-m", "mcp_image_seededit"],
      "env": {
        "VOLC_ACCESS_KEY": "your_volc_access_key_here",
        "VOLC_SECRET_KEY": "your_volc_secret_key_here"
      }
    }
  }
}
```

### 3. 使用工具

#### 图像编辑示例

```json
{
  "tool": "image_edit",
  "arguments": {
    "image_urls": ["https://example.com/image.jpg"],
    "prompt": "添加一只可爱的小猫",
    "scale": 0.7
  }
}
```

#### 人物写真示例

```json
{
  "tool": "portrait_generation",
  "arguments": {
    "image_urls": ["https://example.com/portrait.jpg"],
    "prompt": "古风写真,汉服,梅花背景",
    "width": 1024,
    "height": 1024
  }
}
```

## 工具详解

### image_edit

图像指令编辑工具,支持通过文本描述修改图像内容。

**参数:**
- `image_urls` (list[str]):图像URL列表,支持本地路径或网络URL
- `prompt` (str):编辑指令,建议长度 ≤ 120字符
- `seed` (int):随机种子,默认-1(随机)
- `scale` (float):文本描述影响程度,范围[0, 1],默认0.5

**编辑指令示例:**
- 添加物体:`"添加一道彩虹"`
- 删除物体:`"删除背景中的建筑物"`
- 修改风格:`"改成油画风格"`
- 颜色调整:`"把衣服改成红色"`
- 背景替换:`"背景换成海滩"`

### portrait_generation

人物写真生成工具,基于真人照片生成多样化写真。

**参数:**
- `image_urls` (list[str]):单人真人图片URL列表
- `prompt` (str):写真风格描述
- `width/height` (int):生成图像尺寸,范围[512, 2048]
- `gpen` (float):高清处理效果,范围[0, 1],默认0.4
- `skin` (float):美颜效果,范围[0, 1],默认0.3
- `skin_unifi` (float):匀肤效果,范围[0, 1],默认0.0
- `gen_mode` (str):生成模式,可选 "auto"、"creative"、"reference"、"reference_char"
- `seed` (int):随机种子

**风格示例:**
- 古风写真:`"古典中国风,汉服,竹林背景"`
- 商务形象:`"专业商务照,西装,办公室背景"`
- 时尚大片:`"时尚杂志风格,都市背景"`

## 本地路径支持

服务器支持本地图片路径,会自动上传到临时服务器:

```json
{
  "image_urls": ["/path/to/local/image.jpg"]
}
```

支持格式:PNG, JPG, JPEG, WEBP, GIF, BMP, TIFF

## 开发

### 从源码安装

```bash
git clone https://github.com/yourusername/mcp-image-seededit
cd mcp-image-seededit
pip install -e ".[dev]"
```

### 运行测试

```bash
pytest
```

### 代码格式化

```bash
black src/
isort src/
```

## 许可证

MIT License - 详见 [LICENSE](LICENSE) 文件

## 贡献

欢迎提交Issue和Pull Request!

## 更新日志

### v0.3.0
- 添加本地路径支持和自动上传功能
- 优化错误处理和日志输出
- 修复SOCKS代理兼容性问题
- 完善文档和使用示例

### v0.2.0
- 添加人物写真生成功能
- 改进图像处理流程
- 增强参数验证

### v0.1.0
- 初始版本
- 基础图像编辑功能
            

Raw data

            {
    "_id": null,
    "home_page": null,
    "name": "mcp-image-seededit",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.10",
    "maintainer_email": "fengjinchao <your-email@example.com>",
    "keywords": "ai, image-editing, mcp, model-context-protocol, portrait-generation, seededit, volcengine",
    "author": null,
    "author_email": "fengjinchao <your-email@example.com>",
    "download_url": "https://files.pythonhosted.org/packages/e3/da/38d2d43c5ff32ada852b28671b97ab7108a0c8779f773109d6738e85d9dd/mcp_image_seededit-0.4.0.tar.gz",
    "platform": null,
    "description": "# MCP Image SeedEdit Server\n\n[![PyPI version](https://badge.fury.io/py/mcp-image-seededit.svg)](https://badge.fury.io/py/mcp-image-seededit)\n[![Python 3.10+](https://img.shields.io/badge/python-3.10+-blue.svg)](https://www.python.org/downloads/)\n[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)\n\n\u4e00\u4e2a\u57fa\u4e8e\u706b\u5c71\u5f15\u64ce\u89c6\u89c9\u80fd\u529b\u7684MCP\u670d\u52a1\u5668\uff0c\u63d0\u4f9b\u56fe\u50cf\u6307\u4ee4\u7f16\u8f91\u548c\u4eba\u7269\u5199\u771f\u751f\u6210\u529f\u80fd\u3002\n\n## \u529f\u80fd\u7279\u6027\n\n### \ud83c\udfa8 \u56fe\u50cf\u6307\u4ee4\u7f16\u8f91 (SeedEdit 3.0)\n- **\u667a\u80fd\u7f16\u8f91**\uff1a\u901a\u8fc7\u81ea\u7136\u8bed\u8a00\u63cf\u8ff0\u76f4\u63a5\u4fee\u6539\u56fe\u50cf\u5185\u5bb9\n- **\u591a\u6837\u5316\u64cd\u4f5c**\uff1a\u652f\u6301\u6dfb\u52a0/\u5220\u9664\u7269\u4f53\u3001\u4fee\u6539\u98ce\u683c\u3001\u989c\u8272\u8c03\u6574\u7b49\n- **\u9ad8\u8d28\u91cf\u8f93\u51fa**\uff1a\u57fa\u4e8e\u706b\u5c71\u5f15\u64ce\u5148\u8fdb\u7684\u56fe\u50cf\u751f\u6210\u6280\u672f\n- **\u6279\u91cf\u5904\u7406**\uff1a\u652f\u6301\u540c\u65f6\u5904\u7406\u591a\u5f20\u56fe\u50cf\n\n### \ud83d\udcf8 \u4eba\u7269\u5199\u771f\u751f\u6210\n- **\u4eba\u8138\u4fdd\u6301**\uff1a\u57fa\u4e8e\u5355\u4eba\u771f\u4eba\u7167\u7247\uff0c\u4fdd\u6301\u9762\u90e8\u7279\u5f81\u9ad8\u5ea6\u76f8\u4f3c\n- **\u98ce\u683c\u591a\u6837**\uff1a\u652f\u6301\u53e4\u98ce\u3001\u6b27\u7f8e\u3001\u65e5\u7cfb\u3001\u5546\u52a1\u7b49\u591a\u79cd\u5199\u771f\u98ce\u683c\n- **\u53c2\u6570\u53ef\u63a7**\uff1a\u652f\u6301\u9ad8\u6e05\u5904\u7406\u3001\u7f8e\u989c\u6548\u679c\u3001\u5300\u80a4\u7b49\u53c2\u6570\u8c03\u8282\n- **\u573a\u666f\u4e30\u5bcc**\uff1a\u9002\u7528\u4e8e\u793e\u4ea4\u3001\u8425\u9500\u3001\u5a31\u4e50\u7b49\u591a\u79cd\u573a\u666f\n\n## \u5b89\u88c5\n\n```bash\npip install mcp-image-seededit\n```\n\n## \u5feb\u901f\u5f00\u59cb\n\n### 1. \u83b7\u53d6API\u5bc6\u94a5\n\n\u524d\u5f80[\u706b\u5c71\u5f15\u64ce\u63a7\u5236\u53f0](https://console.volcengine.com/)\u83b7\u53d6\u60a8\u7684API\u5bc6\u94a5\uff1a\n- `VOLC_ACCESS_KEY`\uff1a\u8bbf\u95ee\u5bc6\u94a5\n- `VOLC_SECRET_KEY`\uff1a\u79d8\u5bc6\u5bc6\u94a5\n\n### 2. \u914d\u7f6eMCP\u670d\u52a1\u5668\n\n\u5728\u60a8\u7684MCP\u914d\u7f6e\u6587\u4ef6\u4e2d\u6dfb\u52a0\uff1a\n\n```json\n{\n  \"mcpServers\": {\n    \"mcp-image-seededit\": {\n      \"command\": \"python\",\n      \"args\": [\"-m\", \"mcp_image_seededit\"],\n      \"env\": {\n        \"VOLC_ACCESS_KEY\": \"your_volc_access_key_here\",\n        \"VOLC_SECRET_KEY\": \"your_volc_secret_key_here\"\n      }\n    }\n  }\n}\n```\n\n### 3. \u4f7f\u7528\u5de5\u5177\n\n#### \u56fe\u50cf\u7f16\u8f91\u793a\u4f8b\n\n```json\n{\n  \"tool\": \"image_edit\",\n  \"arguments\": {\n    \"image_urls\": [\"https://example.com/image.jpg\"],\n    \"prompt\": \"\u6dfb\u52a0\u4e00\u53ea\u53ef\u7231\u7684\u5c0f\u732b\",\n    \"scale\": 0.7\n  }\n}\n```\n\n#### \u4eba\u7269\u5199\u771f\u793a\u4f8b\n\n```json\n{\n  \"tool\": \"portrait_generation\",\n  \"arguments\": {\n    \"image_urls\": [\"https://example.com/portrait.jpg\"],\n    \"prompt\": \"\u53e4\u98ce\u5199\u771f\uff0c\u6c49\u670d\uff0c\u6885\u82b1\u80cc\u666f\",\n    \"width\": 1024,\n    \"height\": 1024\n  }\n}\n```\n\n## \u5de5\u5177\u8be6\u89e3\n\n### image_edit\n\n\u56fe\u50cf\u6307\u4ee4\u7f16\u8f91\u5de5\u5177\uff0c\u652f\u6301\u901a\u8fc7\u6587\u672c\u63cf\u8ff0\u4fee\u6539\u56fe\u50cf\u5185\u5bb9\u3002\n\n**\u53c2\u6570\uff1a**\n- `image_urls` (list[str])\uff1a\u56fe\u50cfURL\u5217\u8868\uff0c\u652f\u6301\u672c\u5730\u8def\u5f84\u6216\u7f51\u7edcURL\n- `prompt` (str)\uff1a\u7f16\u8f91\u6307\u4ee4\uff0c\u5efa\u8bae\u957f\u5ea6 \u2264 120\u5b57\u7b26\n- `seed` (int)\uff1a\u968f\u673a\u79cd\u5b50\uff0c\u9ed8\u8ba4-1\uff08\u968f\u673a\uff09\n- `scale` (float)\uff1a\u6587\u672c\u63cf\u8ff0\u5f71\u54cd\u7a0b\u5ea6\uff0c\u8303\u56f4[0, 1]\uff0c\u9ed8\u8ba40.5\n\n**\u7f16\u8f91\u6307\u4ee4\u793a\u4f8b\uff1a**\n- \u6dfb\u52a0\u7269\u4f53\uff1a`\"\u6dfb\u52a0\u4e00\u9053\u5f69\u8679\"`\n- \u5220\u9664\u7269\u4f53\uff1a`\"\u5220\u9664\u80cc\u666f\u4e2d\u7684\u5efa\u7b51\u7269\"`\n- \u4fee\u6539\u98ce\u683c\uff1a`\"\u6539\u6210\u6cb9\u753b\u98ce\u683c\"`\n- \u989c\u8272\u8c03\u6574\uff1a`\"\u628a\u8863\u670d\u6539\u6210\u7ea2\u8272\"`\n- \u80cc\u666f\u66ff\u6362\uff1a`\"\u80cc\u666f\u6362\u6210\u6d77\u6ee9\"`\n\n### portrait_generation\n\n\u4eba\u7269\u5199\u771f\u751f\u6210\u5de5\u5177\uff0c\u57fa\u4e8e\u771f\u4eba\u7167\u7247\u751f\u6210\u591a\u6837\u5316\u5199\u771f\u3002\n\n**\u53c2\u6570\uff1a**\n- `image_urls` (list[str])\uff1a\u5355\u4eba\u771f\u4eba\u56fe\u7247URL\u5217\u8868\n- `prompt` (str)\uff1a\u5199\u771f\u98ce\u683c\u63cf\u8ff0\n- `width/height` (int)\uff1a\u751f\u6210\u56fe\u50cf\u5c3a\u5bf8\uff0c\u8303\u56f4[512, 2048]\n- `gpen` (float)\uff1a\u9ad8\u6e05\u5904\u7406\u6548\u679c\uff0c\u8303\u56f4[0, 1]\uff0c\u9ed8\u8ba40.4\n- `skin` (float)\uff1a\u7f8e\u989c\u6548\u679c\uff0c\u8303\u56f4[0, 1]\uff0c\u9ed8\u8ba40.3\n- `skin_unifi` (float)\uff1a\u5300\u80a4\u6548\u679c\uff0c\u8303\u56f4[0, 1]\uff0c\u9ed8\u8ba40.0\n- `gen_mode` (str)\uff1a\u751f\u6210\u6a21\u5f0f\uff0c\u53ef\u9009 \"auto\"\u3001\"creative\"\u3001\"reference\"\u3001\"reference_char\"\n- `seed` (int)\uff1a\u968f\u673a\u79cd\u5b50\n\n**\u98ce\u683c\u793a\u4f8b\uff1a**\n- \u53e4\u98ce\u5199\u771f\uff1a`\"\u53e4\u5178\u4e2d\u56fd\u98ce\uff0c\u6c49\u670d\uff0c\u7af9\u6797\u80cc\u666f\"`\n- \u5546\u52a1\u5f62\u8c61\uff1a`\"\u4e13\u4e1a\u5546\u52a1\u7167\uff0c\u897f\u88c5\uff0c\u529e\u516c\u5ba4\u80cc\u666f\"`\n- \u65f6\u5c1a\u5927\u7247\uff1a`\"\u65f6\u5c1a\u6742\u5fd7\u98ce\u683c\uff0c\u90fd\u5e02\u80cc\u666f\"`\n\n## \u672c\u5730\u8def\u5f84\u652f\u6301\n\n\u670d\u52a1\u5668\u652f\u6301\u672c\u5730\u56fe\u7247\u8def\u5f84\uff0c\u4f1a\u81ea\u52a8\u4e0a\u4f20\u5230\u4e34\u65f6\u670d\u52a1\u5668\uff1a\n\n```json\n{\n  \"image_urls\": [\"/path/to/local/image.jpg\"]\n}\n```\n\n\u652f\u6301\u683c\u5f0f\uff1aPNG, JPG, JPEG, WEBP, GIF, BMP, TIFF\n\n## \u5f00\u53d1\n\n### \u4ece\u6e90\u7801\u5b89\u88c5\n\n```bash\ngit clone https://github.com/yourusername/mcp-image-seededit\ncd mcp-image-seededit\npip install -e \".[dev]\"\n```\n\n### \u8fd0\u884c\u6d4b\u8bd5\n\n```bash\npytest\n```\n\n### \u4ee3\u7801\u683c\u5f0f\u5316\n\n```bash\nblack src/\nisort src/\n```\n\n## \u8bb8\u53ef\u8bc1\n\nMIT License - \u8be6\u89c1 [LICENSE](LICENSE) \u6587\u4ef6\n\n## \u8d21\u732e\n\n\u6b22\u8fce\u63d0\u4ea4Issue\u548cPull Request\uff01\n\n## \u66f4\u65b0\u65e5\u5fd7\n\n### v0.3.0\n- \u6dfb\u52a0\u672c\u5730\u8def\u5f84\u652f\u6301\u548c\u81ea\u52a8\u4e0a\u4f20\u529f\u80fd\n- \u4f18\u5316\u9519\u8bef\u5904\u7406\u548c\u65e5\u5fd7\u8f93\u51fa\n- \u4fee\u590dSOCKS\u4ee3\u7406\u517c\u5bb9\u6027\u95ee\u9898\n- \u5b8c\u5584\u6587\u6863\u548c\u4f7f\u7528\u793a\u4f8b\n\n### v0.2.0\n- \u6dfb\u52a0\u4eba\u7269\u5199\u771f\u751f\u6210\u529f\u80fd\n- \u6539\u8fdb\u56fe\u50cf\u5904\u7406\u6d41\u7a0b\n- \u589e\u5f3a\u53c2\u6570\u9a8c\u8bc1\n\n### v0.1.0\n- \u521d\u59cb\u7248\u672c\n- \u57fa\u7840\u56fe\u50cf\u7f16\u8f91\u529f\u80fd",
    "bugtrack_url": null,
    "license": null,
    "summary": "MCP\u670d\u52a1\u5668\uff0c\u63d0\u4f9b\u706b\u5c71\u5f15\u64ceSeedEdit 3.0\u56fe\u50cf\u6307\u4ee4\u7f16\u8f91\u548c\u4eba\u7269\u5199\u771f\u751f\u6210\u529f\u80fd",
    "version": "0.4.0",
    "project_urls": {
        "Bug Tracker": "https://github.com/yourusername/mcp-image-seededit/issues",
        "Documentation": "https://github.com/yourusername/mcp-image-seededit#readme",
        "Homepage": "https://github.com/yourusername/mcp-image-seededit",
        "Repository": "https://github.com/yourusername/mcp-image-seededit"
    },
    "split_keywords": [
        "ai",
        " image-editing",
        " mcp",
        " model-context-protocol",
        " portrait-generation",
        " seededit",
        " volcengine"
    ],
    "urls": [
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "d9d66835e4e3dea373d863e55c84744247fdb0c18573524995eb88514e5df636",
                "md5": "8e98d43fff196044b67278367f066695",
                "sha256": "3831c51e8e7cb5234b03aeadcc74ba37b3c8e2b939d098750921e733f69ddfd7"
            },
            "downloads": -1,
            "filename": "mcp_image_seededit-0.4.0-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "8e98d43fff196044b67278367f066695",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.10",
            "size": 10856,
            "upload_time": "2025-08-13T11:13:27",
            "upload_time_iso_8601": "2025-08-13T11:13:27.819549Z",
            "url": "https://files.pythonhosted.org/packages/d9/d6/6835e4e3dea373d863e55c84744247fdb0c18573524995eb88514e5df636/mcp_image_seededit-0.4.0-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "e3da38d2d43c5ff32ada852b28671b97ab7108a0c8779f773109d6738e85d9dd",
                "md5": "ef4e05f9431b35c5fd9aff66e06bcd59",
                "sha256": "c45f4991ec473523e612c28d75d31bd69b99a7bf0a3129052749c3d3f091a20c"
            },
            "downloads": -1,
            "filename": "mcp_image_seededit-0.4.0.tar.gz",
            "has_sig": false,
            "md5_digest": "ef4e05f9431b35c5fd9aff66e06bcd59",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.10",
            "size": 9782,
            "upload_time": "2025-08-13T11:13:29",
            "upload_time_iso_8601": "2025-08-13T11:13:29.457503Z",
            "url": "https://files.pythonhosted.org/packages/e3/da/38d2d43c5ff32ada852b28671b97ab7108a0c8779f773109d6738e85d9dd/mcp_image_seededit-0.4.0.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2025-08-13 11:13:29",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "yourusername",
    "github_project": "mcp-image-seededit",
    "github_not_found": true,
    "lcname": "mcp-image-seededit"
}
        
Elapsed time: 0.96965s