通过Amazon Bedrock上的Stability AI模型开发生成式AI应用(上篇)
快来用人工智能生成图像开发生成式AI图像应用!今天小李哥就来介绍亚马逊云科技推出的国际前沿人工智能模型平台Amazon Bedrock上的Stability Diffusion模型。接下来我将带大家沉浸式实操Stability Difussion模型,带大家手把手体验该模型的每个特色功能,如文生图、图生图、图像修复等。
本文章共分为上、下两篇,上篇将介绍利用亚马逊云科技控制台和API调用的方式使用Stability Difussion模型生成图片,下篇我们将进行代码实操,用该模型开发生成式AI网页应用(如下图)。大家可以通过本博客中的项目步骤提升AI技能,并应用到日常工作中。
方案所需基础知识
什么是Amazon Bedrock
Amazon Bedrock 是一项完全托管的服务,通过统一的 API 提供来自 AI21 Labs、Anthropic、Cohere、Meta、Mistral AI、Stability AI 和 Amazon 等领先 AI 公司的高性能基础模型(FMs),同时提供广泛的功能,让开发者能够在确保安全、隐私和负责任 AI 的前提下构建生成式 AI 应用。使用 Amazon Bedrock,开发者们可以:
- 轻松地测试、评估开发者的用例在不同基础模型下的表现;
- 使用微调和检索增强生成(RAG)等技术定制化开发应用程序;
- 构建可以使用开发者的企业系统和数据源自动执行任务的智能 Agents。
由于 Amazon Bedrock 是 Serverless 的服务,开发者无需管理任何基础设施,并且可以使用开发者已经熟悉其它的亚马逊云科技服务安全地集成和部署生成式 AI 功能到开发者的应用中。
什么是 Stability AI 模型?
Stability AI 是一家致力于开发和提供生成式人工智能模型的公司,其模型被广泛应用于图像生成领域。Stability AI 的模型中最著名的莫非是 Stable Diffusion 生成模型,能够根据用户输入的描述,自动生成高度逼真的图像和文本。这些模型以其卓越的生成能力和灵活性,在应用开发中管饭应用和认可。
Stability AI 模型的应用场景
创意设计:
Stability AI 的生成模型广泛应用于创意设计领域,帮助设计师和美工快速生成高质量的图像、插画和视觉内容,可以用于产品展示、品牌推广,社交媒体内容创作。通过简单的文本描述,就可以快速生成符合特定主题或风格的视觉素材,大大提升了设计效率和创意表现力。
游戏开发:
Stability AI 的图像生成技术也被广泛应用于游戏开发中。开发者可以利用这些模型快速生成游戏场景、角色设计和道具,节省大量的美术资源,并加速游戏开发。利用AI的图像生成能力,使得小型开发团队也能够制作出富有视觉冲击力的游戏内容。
教育和培训:
在教育和培训领域,Stability AI 模型能够根据教学需求生成个性化的学习材料和培训教案,帮助教师和培训师提高教学效果,特别是生成式AI相关的主题培训,提升学习者的参与度和学习体验。
本实践包括的内容
1. 通过亚马逊云科技控制台沉浸式体验Stability AI文生图功能
2. 在云端IDE Cloud9中利用Python代码API调用Stability AI生成图片
功能实践具体步骤
1. 我们打开亚马逊云科技控制台,进入Amazon Bedrock服务。
2. 选择左侧菜单栏中,选择操场中的图像功能,
3. 勾选所需要的模型"Stability AI SDXL 1.0"
4. 接下来我们利用该模型生成图片,我们输入生成要求:”a beautiful mountain landscape“(漂亮的山景图)。并配置提示强度、生成步骤、随机性种子等参数。
5. 我们点击生成的图片,选择编辑功能体验图生图功能。
6. 我们添加如下图生图提示内容”add denser number of trees, extend lake“,添加一篇树林和湖泊。同时添加负面提示词,说明模型生成中不希望出现的内容。
7. 点击运行,我们利用初始图片生成了新的图片。
8. 最后我们点击右上角的Edit,将模式切换到图片编辑模型。同时我们下拉一个方框,选中需要编辑的区域,输入提示词”add a bird“(生成一只鸟),点击Run开始编辑。可以看到模型在指定区域生成了一只鸟
如何通过API调用方式调用Stability AI模型?
我们可以通过如下python代码和Boto3 SDK通过API调用方式使用Stability AI模型生成图片。
import json
import boto3
import base64
import os
from PIL import Image
import io
session = boto3.Session()
bedrock = session.client(service_name='bedrock-runtime') # creates a Bedrock client
bedrock_model_id = "stability.stable-diffusion-xl-v1" # set the foundation model
prompt = "a beautiful mountain landscape" # the prompt to send to the model
seed = 100
body = 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')
生成图片示例如下:
以上就是在亚马逊云科技控制台中沉浸式体验Amazon Bedrock的Stability AI模型、并利用该图像生成模型开发生成式AI应用的上篇内容。欢迎大家关注小李哥的亚马逊云科技AI服务深入调研系列,我们将在下篇内容中继续了解如何利用API调用的方式,利用该模型进行文生图、图生图以及图像修复功能并开发生成式AI应用,未来获取更多国际前沿的AWS云开发/云架构方案。