今天是清明小长假第一天,没有外出踏青,在家体验Amazon Bedrock的强大能力。Amazon Bedrock是专门为创新者量身打造的平台,它提供了构建生成式人工智能应用程序所需的一切。
这次我主要尝试的是通过 Amazon Bedrock 里的 Stability AI SDXL 1.0进行AI绘画。其实我最初冲着Claude 3去的,但可惜无法使用,被欺骗了感情!
好在Bedrock没有辜负我。它是一项完全托管的服务,通过单个 API 提供来自 AI21 Labs、Anthropic、Cohere、Meta、Stability AI 和 Amazon TiTan 等领先人工智能公司的高性能基础模型(FM),以及通过安全性、隐私性和负责任的 AI 构建生成式人工智能应用程序所需的一系列广泛功能。
一、登录操作界面
二、体验 Stability AI SDXL 1.0模型
1、 选择Amazon Bedrock Stability AI SDXL 1.0模型
选择左侧菜单栏中,选择操场中的图像功能,
勾选所需要的模型
2、体验Stability AI SDXL 1.0模型
1 文生图
操作 | 内容 |
---|---|
提示词 | a beautiful mountain landscape |
提示强度 | 10 |
生成步骤 | 30 |
种子 | 10 |
2 图生图
点击图片,选择编辑功能,从Edit模式切换至Generate模式,输入提示词、高级配置等
操作 | 内容 |
---|---|
提示词 | add denser number of trees, extend lake210 |
负面提示词 | poorly rendered,poor background details,poorly drawn mountains,disfigured mountain features |
提示强度 | 30 |
生成步骤 | 50 |
种子 | 321 |
3 图像编辑
将模式切换至Edit模式 并选择需要替换的区域. 输入提示词、选择提示强度,生成图片
操作 | 内容 |
---|---|
提示词 | add a bird |
提示强度 | 10 |
三、体验调用Stability AI SDXL 1.0 API
1、使用Amazon Cloud 9
1、打开Amazon Cloud 9 实验环境
打开控制台,搜索Cloud9
选择创建环境
设置环境详细信息
- 设置名称为 bedrock
- 设置实例类型 t3.small
- 平台 Ubuntu Server 22.04 LTS
- 超时 30 分钟
2、打开Amazon Cloud9 IDE中终端
复制以下内容到终端,执行命令,以下载和解压缩代码
cd ~/environment/
curl 'https://csdn-1320873278.cos.ap-nanjing.myqcloud.com/workshop.zip' --output workshop.zip
unzip workshop.zip
安装实验所需的环境依赖项
pip3 install -r ~/environment/workshop/setup/requirements.txt -U
选择 workshop/labs/api/bedrock_api.py 编写代码
import json
import boto3
import base64
import os
from PIL import Image
import iosession = boto3.Session()
bedrock = session.client(service_name='bedrock-runtime') # creates a Bedrock client
bedrock_model_id = "stability.stable-diffusion-xl" # set the foundation model
prompt = "a beautiful mountain landscape" # the prompt to send to the model
seed = 100body = json.dumps({"text_prompts": [{"text": prompt}],"seed": seed,"cfg_scale": 10,"steps": 30,
}) # build the request payload# send the payload to Bedrock
response = bedrock.invoke_model(body=body, modelId=bedrock_model_id, accept='application/json', contentType='application/json')# read the response
response_body = json.loads(response.get('body').read())base64_image_data = response_body.get("artifacts")[0]["base64"]print(f"{base64_image_data[0:80]}...")# Convert base64 image data to an image and save it to a file
image_data = base64.b64decode(base64_image_data)os.makedirs("data", exist_ok=True)image = Image.open(io.BytesIO(image_data))image.save('data/sd_generated_image.jpg')
保存文件,并在命令行处执行代码:
python3 bedrock_api.py