亚马逊基岩图像生成MCP服务器
](https://badge.fury.io/py/bedrock-image-mcp-server)   ](https://github.com/kalleeh/bedrock-image-mcp-server/actions)
注: 这是一个由社区维护的分叉 awslats/mcp/基岩图像mcp服务器 具有附加功能和改进。亚马逊网络服务在Apache 2.0许可下的原创作品。
MCP服务器,用于通过Amazon Bedrock使用Amazon Nova Canvas、Stable Diffusion 3.5 Large和Stability AI Image Services生成和编辑图像。
特性
Amazon Nova Canvas(2个工具)
基于文本的图像生成
- 使用以下命令从文本提示中创建图像
generate_image - 可定制的尺寸(320-4096px)、质量选项和负面提示
- 支持在单个请求中生成多个图像(1-5个)
- 可调参数,如cfg_scale(1.1-10.0)和种子代
彩色引导图像生成
- 使用以下命令生成具有特定调色板的图像
generate_image_with_colors - 定义多达10个十六进制颜色值来影响图像风格和情绪
- 与基于文本的生成相同的自定义选项
稳定扩散3.5大(2个工具)
文本到图像生成
- 根据文本提示生成图像
generate_image_sd35 - 支持最多10000个字符的提示(Nova Canvas为1024个字符)
- 9种宽高比选项:16:9、1:1、21:9、2:3、3:2、4:5、5:4、9:16、9:21
- 卓越的快速附着力和细节保护
- 可重复结果的种子支持(0-4294967294)
图像到图像转换
- 使用以下命令转换现有图像
transform_image_sd35 - 强度参数(0.0-1.0)控制变换强度
- 支持文件路径和base64图像输入
- 所有文本到图像的参数均可用
稳定性人工智能高端服务(3个工具)
创意升级
- 使用AI增强功能将图像升级到4K
upscale_creative - 从低分辨率输入(64x64到1MP)到20-40x高档
- 创意参数(0.1-0.5)控制增强级别
- 风格预设支持特定美学
保守的升级
- 升级至4K,同时保留细节
upscale_conservative - 支持高达940万像素的输入
- 对原始图像的改动极小
快速升级
- 快速4倍放大
upscale_fast - 快速处理,提高分辨率
- 支持从32x32到1MP的输入
稳定性AI编辑服务(6个工具)
镶嵌(生成填充)
- 使用AI内容填充屏蔽区域
inpaint_image - 灰度蒙版支持(白色=填充,黑色=保留)
- 用于边缘混合的grow_mask参数(0-20)
外绘
- 通过以下方式将图像扩展到边界之外
outpaint_image - 方向扩展:左、右、上、下(每个0-2000像素)
- 扩展风格的创意参数
搜索和替换
- 查找并替换对象
search_and_replace - 自动物体检测和遮蔽
- 无需手动口罩
搜索和重新着色
- 使用以下命令对特定对象重新着色
search_and_recolor - 在改变颜色的同时保留结构
- 保持图像质量
删除对象
- 使用删除不需要的对象
remove_object - 对删除区域进行上下文感知填充
- 与周围环境无缝融合
删除背景
- 自动背景移除
remove_background - 返回具有透明度的PNG
- 处理复杂对象(头发、透明对象)
稳定性人工智能控制服务(4个工具)
从草图到图像
- 使用将草图转换为详细图像
sketch_to_image - 控制强度参数(0.0-1.0)
- 在添加细节的同时保留草图结构
结构控制
- 使用以下命令从结构指南生成图像
structure_control - 遵循边缘图和结构指导
- 遵守水平的控制强度
风格指南
- 将参考图像样式与匹配
style_guide - 风格匹配的保真度参数(0.0-1.0)
- 接受内容描述提示
风格迁移
- 通过以下方式在图像之间转换样式
style_transfer - 细粒度控制:合成_保真度、风格_强度、变化_强度
- 需要init_image(内容)和style_image(样式引用)
遮罩创建实用程序(3个工具)
以编程方式创建掩码以供使用 inpaint_image 和 remove_object 工具。蒙版是灰度图像,其中白色像素表示要填充/删除的区域,黑色像素表示要保留的区域。
矩形口罩
- 使用以下命令创建矩形遮罩
create_rectangular_mask - 可配置的位置(x,y)和尺寸(宽度、高度)
- 可选羽毛(0-50像素)用于软边
- 非常适合标志、窗户、矩形物体
椭圆形口罩
- 使用创建椭圆/圆形遮罩
create_ellipse_mask - 可配置的中心点和半径
- 可选羽毛,边缘柔软
- 非常适合面部、球体、轮子、有机形状
全口罩
- 使用以下方法创建全白色蒙版
create_full_mask - 覆盖整个图像
- 可用于测试和完整图像替换
工作空间集成
- 所有图像都保存到用户指定的工作区目录中,并自动创建文件夹
- 支持多种输出格式(PNG、JPEG、WebP)
- 唯一的文件名生成或自定义命名
AWS身份验证
- 使用AWS配置文件安全访问Amazon Bedrock服务
- 支持所有提供基岩模型的AWS区域
先决条件
- 安装
uv从 星体 或 - 使用以下命令安装Python
uv python install 3.10 - 设置AWS凭据以访问Amazon Bedrock
- 您需要一个启用了Amazon Bedrock的AWS帐户 - 使用配置AWS凭据 aws configure 或环境变量 - 确保您的IAM角色/用户具有所需的权限(请参阅 AWS IAM权限 在......下面
安装
| 光标 | VS代码 |
|---|
在MCP客户端配置中配置MCP服务器(例如,对于Amazon Q Developer CLI,编辑 ~/.aws/amazonq/mcp.json):
{
"mcpServers": {
"bedrock-image-mcp-server": {
"command": "uvx",
"args": ["bedrock-image-mcp-server@latest"],
"env": {
"AWS_PROFILE": "your-aws-profile",
"AWS_REGION": "us-east-1",
"FASTMCP_LOG_LEVEL": "ERROR"
},
"disabled": false,
"autoApprove": []
}
}
}Windows安装
对于Windows用户,MCP服务器配置格式略有不同:
{
"mcpServers": {
"bedrock-image-mcp-server": {
"disabled": false,
"timeout": 60,
"type": "stdio",
"command": "uv",
"args": [
"tool",
"run",
"--from",
"bedrock-image-mcp-server@latest",
"bedrock-image-mcp-server.exe"
],
"env": {
"FASTMCP_LOG_LEVEL": "ERROR",
"AWS_PROFILE": "your-aws-profile",
"AWS_REGION": "us-east-1"
}
}
}
}或docker成功后 docker build -t bedrock-image-mcp-server .:
# fictitious `.env` file with AWS temporary credentials
AWS_ACCESS_KEY_ID=ASIAIOSFODNN7EXAMPLE
AWS_SECRET_ACCESS_KEY=wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY
AWS_SESSION_TOKEN=AQoEXAMPLEH4aoAH0gNCAPy...truncated...zrkuWJOgQs8IZZaIv2BXIa2R4Olgk {
"mcpServers": {
"bedrock-image-mcp-server": {
"command": "docker",
"args": [
"run",
"--rm",
"--interactive",
"--env",
"AWS_REGION=us-east-1",
"--env",
"FASTMCP_LOG_LEVEL=ERROR",
"--env-file",
"/full/path/to/file/above/.env",
"bedrock-image-mcp-server:latest"
],
"env": {},
"disabled": false,
"autoApprove": []
}
}
}注意:您的凭据需要从主机刷新
通过Smithery安装
通过以下方式自动安装适用于Claude Desktop的Amazon Bedrock Image MCP服务器 史密瑟里:
npx -y @smithery/cli install bedrock-image-mcp-server --client claudeAWS身份验证
MCP服务器使用中指定的AWS配置文件 AWS_PROFILE 环境变量。如果未提供,则默认为AWS配置文件中的“默认”配置文件。
"env": {
"AWS_PROFILE": "your-aws-profile",
"AWS_REGION": "us-east-1"
}确保AWS配置文件具有访问Amazon Bedrock和映像生成模型的权限。MCP服务器使用指定的配置文件创建boto3会话,以向AWS服务进行身份验证。您的AWS IAM凭据保留在您的本地计算机上,严格用于使用Amazon Bedrock模型API。
使用示例
亚马逊Nova画布
基本文本到图像
# Generate a simple image
generate_image(
prompt="A serene mountain landscape at sunset",
width=1024,
height=1024
)颜色引导生成
# Generate with specific color palette
generate_image_with_colors(
prompt="A modern living room interior",
colors=["#2C3E50", "#ECF0F1", "#E74C3C"],
width=1280,
height=720
)稳定扩散3.5大
带有长提示的文本到图像
# SD3.5 supports up to 10,000 character prompts
generate_image_sd35(
prompt="A detailed cyberpunk cityscape at night with neon signs, flying cars, holographic advertisements, rain-slicked streets reflecting colorful lights, towering skyscrapers with intricate architectural details, bustling crowds of people with futuristic fashion, street vendors with glowing food stalls, and a massive digital billboard displaying animated content",
aspect_ratio="16:9",
negative_prompt="blurry, low quality, distorted",
seed=42
)图像到图像转换
# Transform an existing image
transform_image_sd35(
prompt="Transform into a watercolor painting style",
image="/path/to/image.jpg",
strength=0.7,
aspect_ratio="1:1"
)稳定AI高端服务
创意升级
# Upscale with AI enhancement
upscale_creative(
image="/path/to/low_res_image.jpg",
prompt="A professional portrait photograph",
creativity=0.3,
style_preset="photographic"
)保守派升级
# Upscale preserving original details
upscale_conservative(
image="/path/to/image.jpg",
prompt="Product photography"
)快速升级
# Quick 4x upscale
upscale_fast(
image="/path/to/image.jpg"
)稳定性AI编辑服务
修复
# Fill masked region
inpaint_image(
image="/path/to/image.jpg",
mask="/path/to/mask.png",
prompt="A red sports car",
grow_mask=5
)外绘
# Extend image boundaries
outpaint_image(
image="/path/to/image.jpg",
prompt="Continue the landscape",
left=500,
right=500,
creativity=0.5
)搜索和替换
# Replace objects without manual masking
search_and_replace(
image="/path/to/image.jpg",
search_prompt="old wooden chair",
prompt="modern leather armchair"
)搜索和重新着色
# Recolor specific objects
search_and_recolor(
image="/path/to/image.jpg",
select_prompt="the car",
prompt="bright red color"
)删除对象
# Remove unwanted objects
remove_object(
image="/path/to/image.jpg",
mask="/path/to/object_mask.png"
)删除背景
# Automatic background removal
remove_background(
image="/path/to/image.jpg"
)稳定AI控制服务
从草图到图像
# Convert sketch to detailed image
sketch_to_image(
sketch="/path/to/sketch.jpg",
prompt="A realistic portrait of a person",
control_strength=0.7
)结构控制
# Generate from structural guide
structure_control(
control_image="/path/to/edge_map.jpg",
prompt="A modern building facade",
control_strength=0.8
)风格指南
# Match reference style
style_guide(
reference_image="/path/to/style_ref.jpg",
prompt="A mountain landscape",
fidelity=0.5
)风格迁移
# Transfer style with fine control
style_transfer(
init_image="/path/to/content.jpg",
style_image="/path/to/style.jpg",
prompt="Apply artistic style",
composition_fidelity=0.9,
style_strength=1.0,
change_strength=0.9
)AWS IAM权限
您的AWS IAM用户或角色需要以下权限才能使用此MCP服务器:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"bedrock:InvokeModel"
],
"Resource": [
"arn:aws:bedrock:*::foundation-model/amazon.nova-canvas-v1:0",
"arn:aws:bedrock:*::foundation-model/stability.sd3-5-large-v1:0",
"arn:aws:bedrock:*::foundation-model/us.stability.stable-creative-upscale-v1:0",
"arn:aws:bedrock:*::foundation-model/us.stability.stable-conservative-upscale-v1:0",
"arn:aws:bedrock:*::foundation-model/us.stability.stable-fast-upscale-v1:0",
"arn:aws:bedrock:*::foundation-model/us.stability.stable-image-inpaint-v1:0",
"arn:aws:bedrock:*::foundation-model/us.stability.stable-outpaint-v1:0",
"arn:aws:bedrock:*::foundation-model/us.stability.stable-image-search-replace-v1:0",
"arn:aws:bedrock:*::foundation-model/us.stability.stable-image-search-recolor-v1:0",
"arn:aws:bedrock:*::foundation-model/us.stability.stable-image-erase-object-v1:0",
"arn:aws:bedrock:*::foundation-model/us.stability.stable-image-remove-background-v1:0",
"arn:aws:bedrock:*::foundation-model/us.stability.stable-image-control-sketch-v1:0",
"arn:aws:bedrock:*::foundation-model/us.stability.stable-image-control-structure-v1:0",
"arn:aws:bedrock:*::foundation-model/us.stability.stable-image-style-guide-v1:0",
"arn:aws:bedrock:*::foundation-model/us.stability.stable-style-transfer-v1:0"
]
}
]
}支持的AWS区域
以下AWS区域使用此服务器使用的图像生成模型支持Amazon Bedrock:
亚马逊Nova画布
- us-east-1(美国东部-北弗吉尼亚州)
- us-west-2(美国西部-俄勒冈州)
- eu-west-1(欧洲-爱尔兰)
- ap-southeast-1(亚太-新加坡)
- 亚太-东北-1(亚太-东京)
稳定扩散3.5大
- us-east-1(美国东部-北弗吉尼亚州)
- us-west-2(美国西部-俄勒冈州)
- eu-west-1(欧洲-爱尔兰)
- eu-central-1(欧洲-法兰克福)
- ap-southeast-1(亚太-新加坡)
- 亚太-东北-1(亚太-东京)
稳定AI图像服务
- us-east-1(美国东部-北弗吉尼亚州)
- us-west-2(美国西部-俄勒冈州)
- eu-west-1(欧洲-爱尔兰)
- eu-central-1(欧洲-法兰克福)
- ap-southeast-1(亚太-新加坡)
- 亚太-东北-1(亚太-东京)
备注:型号可用性可能会发生变化。检查 AWS基岩文档 获取最新信息。
故障排除
常见问题
“找不到模型”或“拒绝访问”错误
问题:您收到错误,表明模型不可用或您没有访问权限。
解决方案:
- 验证您的AWS区域是否支持您尝试使用的模型(请参阅 支持的AWS区域)
- 确保您已在AWS Bedrock控制台中请求模型访问:
- 转到AWS基岩控制台→ 模型访问 - 请求访问要使用的模型 - 等待批准(对于大多数型号通常是即时的)
- 验证您的IAM权限是否包括
bedrock:InvokeModel对于特定型号的ARN
“图像尺寸无效”错误
问题:图像生成失败,出现维度验证错误。
解决方案:
- Nova画布:确保尺寸在320-4096像素之间,并能被16整除
- SD3.5:使用支持的纵横比之一(16:9、1:1、21:9、2:3、3:2、4:5、5:4、9:16、9:21)
- 高端服务:检查输入图像大小限制:
- 创意/快速:64x64到1MP - 保守党:64x64至9.4MP
“内容过滤”响应
问题:您生成的图像被内容过滤阻止。
解决方案:
- 查看提示中潜在的敏感内容
- 使用否定提示排除有问题的元素
- 调整你的提示,使其更具体,不那么含糊
- 尝试不同的种子值
遮罩验证错误(镶嵌/删除对象)
问题:在修复或物体移除过程中,遮罩图像被拒绝。
解决方案:
- 确保蒙版为灰度(不是RGB或RGBA)
- 验证掩模尺寸是否与输入图像完全匹配
- 使用白色(255)表示要填充/删除的区域,使用黑色(0)表示要保留的区域
- 将掩码保存为PNG或JPEG格式
“图像太大”警告(放大)
问题:警告输入图像太大,无法进行创造性放大。
解决方案:
- 使用
upscale_conservative适用于更大的图像(高达9.4MP) - 在创意升级之前,将输入图像的大小调整到1MP以下
- 使用
upscale_fast无尺寸限制,可快速放大4倍
未找到AWS凭据
问题:服务器无法启动,出现AWS凭据错误。
解决方案:
- 跑
aws configure设置您的凭据 - 集
AWS_PROFILE环境变量到您的配置文件名称 - 验证凭据文件是否存在于
~/.aws/credentials - 对于临时凭据,请确保
AWS_SESSION_TOKEN也已设置
图像生成速度慢
问题:生成图像的时间比预期的要长。
解决方案:
- 这是正常的-AI图像生成可能需要10-60秒,具体取决于:
- 模型复杂性(SD3.5和升级速度较慢) - 图像分辨率 - AWS区域延迟
- 使用
upscale_fast而不是创造性地扩大规模以获得更快的结果 - 考虑使用更近的AWS区域
- 对于Nova Canvas,减少
number_of_images参数
文件路径问题
问题:找不到图像或将其保存到意外位置。
解决方案:
- 对输入图像使用绝对文件路径
- 指定
workspace_dir控制输出位置的参数 - 检查输出目录是否具有写入权限
- 验证输入图像文件是否存在并且可读
获取帮助
如果您遇到此处未涵盖的问题:
发展
运行测试
# Install dependencies
uv sync --dev
# Run all tests
pytest
# Run with coverage
pytest --cov=awslabs --cov-report=html
# Run specific test file
pytest tests/test_server.py代码质量
# Format code
ruff format .
# Lint code
ruff check .
# Type check
pyright许可证
此项目根据Apache许可证2.0获得许可-请参阅 许可证 文件以获取详细信息。
贡献
欢迎投稿!请看 贡献 作为指导方针。
