当前位置: 首页 > news >正文

AIGC实践-使用Amazon Bedrock的SDXL模型进行文生图

一、Bedrock 简介

Amazon BedrockAmazon Web Services (AWS) 提供的一种生成式 AI 服务。通过 Bedrock,用户可以方便地使用多种基础模型(Foundation Models),包括 OpenAIGPTAnthropicClaude 等。这些模型可以用于各种生成式 AI 应用,包括文生图任务。本文将介绍如何使用 Amazon BedrockSDXL模型API 实现文生图。


二、开通Bedrock相应模型的使用权限

访问亚马逊官网,登录账号后,服务菜单里选择 Machine Learning,选择 Amazon Bedrock

在这里插入图片描述

选择 Stable Diffusion

在这里插入图片描述

首次使用需要开通相应模型的使用权限。点击 "请求模型访问权限"

在这里插入图片描述

点击 "启用特定模型"

在这里插入图片描述

勾选 Claude 里的 Claude 3 SonnetClaude 3 HaikuClaudeClaude Instant 四个模型。

在这里插入图片描述

再勾选 Stability Al 里的 SDXL 1.0

在这里插入图片描述

填写 Anthropic 的应用场景详细信息。

在这里插入图片描述

点击提交。

在这里插入图片描述

提交完之后,我们刚刚勾选的五个模型会变成 "正在进行" 状态,需要等待几分钟。

在这里插入图片描述

几分钟后,模型状态正常,变为 "已授予访问权限" 状态。

在这里插入图片描述


三、SDXL模型支持的几种模式

操场里点击图像,选择模型。类别选择 Stability AI,模型选择 SDXL 1.0,推理默认 按需 即可。选择好点击 应用

在这里插入图片描述

我们进入到了图像操场页面,在这里我们可以通过调整配置生成满足不同要求的图片。

在这里插入图片描述
配置解释:

操作内容
模式模型生成新图像(生成)或编辑(编辑)在参考图像中提供的图像
否定提示不希望模型生成的项目或概念,例如卡通或暴力
推理图像上传图像作为图像生成或编辑的参考
响应图像生成图像的输出设置,例如质量、方向、大小和要生成的图像数量
高级配置要传递给模型的推理参数

下面是 SDXL 1.0 模型 支持的几种模式:

1. 文生图

调整配置为:

  • 操作: 生成图像
  • 提示词: a serene beach at sunset
  • 提示强度: 10
  • 生成步骤: 30
  • 种子: 10

点击运行,生成效果如图:

在这里插入图片描述

2. 图生图

点击图片,操作里选择编辑功能。

在这里插入图片描述

可以看到右侧推理图像已经填入我们刚刚生成的图像。将 操作 选择为 生成变体

在这里插入图片描述

调整配置为:

  • 操作: 生成变体
  • 提示词: add vibrant hues to the sky, enhance reflections on the water
  • 负面提示词: dull colors, lack of sunset details, unrealistic sky gradients, poorly rendered reflections
  • 提示强度: 30
  • 生成步骤: 50
  • 种子: 321

点击运行,生成效果如图:

在这里插入图片描述

3. 图像编辑

我们重新生成一个绿色茶园的背景图。

在这里插入图片描述

操作选择 编辑 ,选择需要替换的区域,输入提示词、选择提示强度,生成图片。

比如,我们要增加一只羊。

调整配置为:

  • 操作: 编辑
  • 提示词: add a sheep
  • 提示强度: 10

在这里插入图片描述

通过 Amazon Bedrock Stability AI SDXL 1.0文生图图生图图像编辑 功能,我们可以开启简洁高效的视觉创作之旅,让创意变得触手可及。


四、调用Bedrock里Stability的API

我们使用 Jupyter 来实现 BedrockStability 的API调用。

1. 创建AWS访问密钥

AWS控制台安全凭证 里申请 安全密钥

在这里插入图片描述

保存好我们的 访问密钥

在这里插入图片描述

2. 安装相关环境

创建一个python环境,执行下面命令:

cd ~/environment/
curl 'https://dev-media.amazoncloud.cn/doc/workshop.zip' --output workshop.zip
unzip workshop.zip

在这里插入图片描述

解压完成后,安装需要的包:

pip3 install -r ~/environment/workshop/setup/requirements.txt -U

在这里插入图片描述

配置访问密钥:

aws configure

按提示输入以下信息:

  • AWS Access Key ID
  • AWS Secret Access Key
  • 默认区域名称(如 us-east-1
  • 输出格式(如 json,也可以直接为 None

在这里插入图片描述

3. 编写代码并调用

我们需要给 AWS 传一个 JSON 串,官网示例参数如下:

{"modelId": "stability.stable-diffusion-xl-v1","contentType": "application/json","accept": "application/json","body": "{\"text_prompts\":[{\"text\":\"this is where you place your input text\",\"weight\":1}],\"cfg_scale\":10,\"seed\":0,\"steps\":50,\"width\":512,\"height\":512}"
}

在这里插入图片描述
其中,body 的参数含义如下:

参数含义作用
text_prompts[{ "text": "this is where you place your input text", "weight": 1 }]文本提示- "text": 输入的描述文字,模型将根据这个文字生成图像。
- "weight": 权重,控制模型对文本的关注程度。
cfg_scale10引导强度数值越高,生成的图像越严格按照文本提示进行;数值较低时生成内容更具创造性和自由度。
seed0随机种子控制生成的随机性;相同种子和相同输入生成一致图像,不同种子生成不同结果。
steps50迭代步骤数步骤数越多,生成的图像质量越高,但耗时越长。
width512图像宽度(像素)设置生成图像的横向分辨率。
height512图像高度(像素)设置生成图像的纵向分辨率。

下面我们来编写代码:

选择 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 clientbedrock_model_id = "stability.stable-diffusion-xl-v1"  # set the foundation model
prompt =  "a beautiful mountain landscape"  # the prompt to send to the model
seed = 10body = 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

在这里插入图片描述

调用成功后,我们可以看到, workshop/labs/api/data/ 目录下生成了图片:sd_generated_image.jpg

在这里插入图片描述

4. 调试和优化

① 检查输入提示

生成的图片质量与输入提示(Prompt)的清晰度和详细程度密切相关。建议:

  • 描述尽可能具体,例如 “A detailed painting of a dragon flying over a mountain during sunset”。
  • 包含图片风格关键词,如 “realistic”, “abstract”, “oil painting”。

② 设置参数

根据需求,调整以下参数,可以优化生成结果:

  • 分辨率:通过设置 widthheight 参数调整图像的宽高分辨率(单位:像素)。提高分辨率(如从默认的 512x512 提升到更高值)可以增加图像细节,但可能会延长生成时间。

  • 文本提示和权重:使用 text_prompts 参数提供描述性文字(如场景或风格),并通过 weight 调整对该提示的关注程度。权重值越高,生成图像将越贴近描述。

  • 引导强度:通过 cfg_scale 控制模型对文本提示的遵循程度。较高的值(如 10 或以上)会更严格地匹配输入描述;较低的值可能允许更具创造性的生成。

  • 随机种子:设置 seed 参数固定生成的随机性,确保相同的输入条件下产生一致的图像结果。使用不同的种子值可以生成多样化的结果。

  • 迭代次数:调整 steps 参数来控制图像生成的细化过程。更多的迭代(如从 50 提升到更高)通常会提升图像质量,但可能需要更长时间。


五、总结

Amazon Bedrock 为文生图功能提供了高效且灵活的解决方案,整合了多个顶尖的基础模型(如 Stable Diffusion SDXL 1.0),能够满足从创意设计到生产应用的多样化需求。通过其直观的 API 接口,开发者可以轻松调用模型,快速实现图像生成,并结合参数优化获得高质量的输出。

相关文章:

AIGC实践-使用Amazon Bedrock的SDXL模型进行文生图

一、Bedrock 简介 Amazon Bedrock 是 Amazon Web Services (AWS) 提供的一种生成式 AI 服务。通过 Bedrock,用户可以方便地使用多种基础模型(Foundation Models),包括 OpenAI 的 GPT、Anthropic 的 Claude 等。这些模型可以用于各…...

【源码】Sharding-JDBC源码分析之SQL中分片键路由ShardingSQLRouter的原理

Sharding-JDBC系列 1、Sharding-JDBC分库分表的基本使用 2、Sharding-JDBC分库分表之SpringBoot分片策略 3、Sharding-JDBC分库分表之SpringBoot主从配置 4、SpringBoot集成Sharding-JDBC-5.3.0分库分表 5、SpringBoot集成Sharding-JDBC-5.3.0实现按月动态建表分表 6、【…...

初学 flutter 环境变量配置

一、jdk(jdk11) 1)配置环境变量 新增:JAVA_HOMEC:\Program Files\Java\jdk-11 //你的jdk目录 在path新增:%JAVA_HOME%\bin2)验证是否配置成功(cmd运行命令) java java -version …...

蓝牙 AVRCP 协议详解

前言 随着无线音频设备的普及,蓝牙已经成为智能设备间通信的主流方式之一。除了传输音频流的 A2DP 协议外,AVRCP(Audio/Video Remote Control Profile,音频/视频远程控制协议)为用户提供了对蓝牙音频设备的控制能力&am…...

在 Ubuntu 18.04 上安装 MySQL 5.7和MySQL 8

1.Ubuntu安装MySQL 5.72.Ubuntu安装MySQL 8 在 Ubuntu 18.04 上安装 MySQL 5.7,可以按照以下步骤操作: 1. 更新系统包列表 运行以下命令以确保系统包列表是最新的: sudo apt update2. 检查默认 MySQL 版本 Ubuntu 18.04 默认提供 MySQL 5.…...

第4章 Spring Boot自动配置

自动配置概述 SpringBoot的两大核心 Spring Boot 框架的两大核心特性可以概括为“启动器”(Starter)和“自动配置”(Auto-configuration)。 启动器(Starter): Spring Boot 提供了一系列的 Star…...

显存:存储,GPU:计算;Pipeline Parallelism(管道并行)

目录 显存:存储,GPU:计算 流水线切分策略:(数据并并,多头并行,单头MLP切片) 存储(显存)和计算(GPU)负载不均衡的问题 1,2,3,4,5指的计算任务(数据切分) 大方块代表GPU计算 黄色代表显存 解决办法:重计算和流水线切分策略 重计算策略: 流水线切分策略:…...

费曼路径积分简单示例

费曼路径积分简单示例 费曼路径积分是量子力学中的一种计算方法,它通过对所有可能路径的贡献进行积分,来计算粒子从一个点到另一个点的概率幅。与经典力学不同,经典力学中粒子沿着使作用量最小的路径运动,而在量子力学中&#xf…...

40分钟学 Go 语言高并发:【实战】并发安全的配置管理器(功能扩展)

【实战】并发安全的配置管理器(功能扩展) 一、扩展思考 分布式配置中心 实现配置的集中管理支持多节点配置同步实现配置的版本一致性 配置加密 敏感配置的加密存储配置的安全传输访问权限控制 配置格式支持 支持YAML、TOML等多种格式配置格式自动…...

麒麟安全增强-kysec

DAC: 自主访问控制是linux下默认的接入控制机制,通过对资源读、写、执行操作,保证系统安全 MAC:安全接入控制机制,由操作系统约束的访问控制,默认情况下,MAC不允许任何访问,用户可以自定义策略规则制定允许什么 ,从而避免很多攻击。 MAC强制访问控制常见的实现方式:…...

shell编程(8)

目录 一、until循环 示例 until 和 while 的区别 二、case语句 基本语法 示例 1. 简单的 case 语句 2. 使用通配符 3. 处理多个匹配 case 和 if 的比较 case 语句: if 语句: 三、基本函数 基本函数定义和调用 1. 定义一个简单的函数 2. …...

高级java每日一道面试题-2024年11月24日-JVM篇-说说对象分配规则?

如果有遗漏,评论区告诉我进行补充 面试官: 说说对象分配规则? 我回答: 在Java高级面试中,对象分配规则是一个核心考点,它涉及到JVM的内存管理、对象的创建和初始化等多个方面。以下是对Java对象分配规则的详细解释: 一、内存分配区域 J…...

进程间通信5:信号

引入 我们之前学习了信号量,信号量和信号可不是一个东西,不能混淆。 信号是什么以及一些基础概念 信号是一种让进程给其他进程发送异步消息的方式 信号是随时产生的,无法预测信号可以临时保存下来,之后再处理信号是异步发送的…...

性能测试及调优

一、性能测试介绍 1、什么叫做性能测试? (1)通过某些工具或手段来检测软件的某些指标是否达到了要求,这就是性能测试 (2)指通过自动化的测试工具模拟多种正常、峰值以及异常负载条件来对系统的各项性能指…...

实战基于LangChain和ChatGLM私有化部署聊天机器人

本文主要阐述了如何使用第二代6B模型进行对话训练,以及如何通过微调来提高大模型的性能。文中提到了在8501端口上启动第二代6B模型,并使用极简模板进行请求。与第一代模型相比,第二代6B模型具有更强的对话能力,并且可以通过微调来…...

利用adb工具安装卸载安卓平板(手机)软件

参考链接: 1、ADB 操作命令详解及用法大全 2、全面掌握Android调试工具箱:ADB与实用程序实战 平时使用小米手机没有感觉,miui系统做的确实好。最近买了个水货学习系统平板(主要看重硬件配置,性价比很高,但…...

基于docker进行任意项目灵活发布

引言 不管是java还是python程序等,使用docker发布的优势有以下几点: 易于维护。直接docker命令进行管理,如docker stop、docker start等,快速方便无需各种进程查询关闭。环境隔离。项目代码任何依赖或设置都可以基本独立&#x…...

Datatables:监听行内文本框,进行行内数据修改;计算行总和

一、监听行内文本框,进行行内数据修改 效果 修改数量、单价会自动计算金额(金额数量*单价) 实现 1、增加行的class 2、数据监听、修改数值 "initComplete": function() {// 监听数量和单价输入框的变化$(document).on(input, .…...

对于某些原型或UI软件的个人看法(2024/11)

由于我这几天,一边敲代码,一边进行页面布局设计与编码,发现可能就一个卡片,我都得调很久样式,觉得这样改很累也没效率,页面也不是很美观。所以我想到了ui设计,我可以先进行ui设计,然…...

嵌入式硬件实战提升篇(二)PCB高速板设计 FPGA核心板带DDR3 PCB设计DDR全面解析

引言:设计一款高速板,供读者学习,FPGA核心板,带一颗DDR3内存,FPGA型号:XC6SLX16-2FTG256C。 随着嵌入式硬件技术的快速发展,高速板设计逐渐成为嵌入式系统设计中的核心技术之一。高速板的设计要…...

未来机器人的大脑:如何用神经网络模拟器实现更智能的决策?

编辑:陈萍萍的公主一点人工一点智能 未来机器人的大脑:如何用神经网络模拟器实现更智能的决策?RWM通过双自回归机制有效解决了复合误差、部分可观测性和随机动力学等关键挑战,在不依赖领域特定归纳偏见的条件下实现了卓越的预测准…...

CVPR 2025 MIMO: 支持视觉指代和像素grounding 的医学视觉语言模型

CVPR 2025 | MIMO:支持视觉指代和像素对齐的医学视觉语言模型 论文信息 标题:MIMO: A medical vision language model with visual referring multimodal input and pixel grounding multimodal output作者:Yanyuan Chen, Dexuan Xu, Yu Hu…...

鸿蒙中用HarmonyOS SDK应用服务 HarmonyOS5开发一个医院挂号小程序

一、开发准备 ​​环境搭建​​: 安装DevEco Studio 3.0或更高版本配置HarmonyOS SDK申请开发者账号 ​​项目创建​​: File > New > Create Project > Application (选择"Empty Ability") 二、核心功能实现 1. 医院科室展示 /…...

DIY|Mac 搭建 ESP-IDF 开发环境及编译小智 AI

前一阵子在百度 AI 开发者大会上,看到基于小智 AI DIY 玩具的演示,感觉有点意思,想着自己也来试试。 如果只是想烧录现成的固件,乐鑫官方除了提供了 Windows 版本的 Flash 下载工具 之外,还提供了基于网页版的 ESP LA…...

【服务器压力测试】本地PC电脑作为服务器运行时出现卡顿和资源紧张(Windows/Linux)

要让本地PC电脑作为服务器运行时出现卡顿和资源紧张的情况,可以通过以下几种方式模拟或触发: 1. 增加CPU负载 运行大量计算密集型任务,例如: 使用多线程循环执行复杂计算(如数学运算、加密解密等)。运行图…...

使用 Streamlit 构建支持主流大模型与 Ollama 的轻量级统一平台

🎯 使用 Streamlit 构建支持主流大模型与 Ollama 的轻量级统一平台 📌 项目背景 随着大语言模型(LLM)的广泛应用,开发者常面临多个挑战: 各大模型(OpenAI、Claude、Gemini、Ollama)接口风格不统一;缺乏一个统一平台进行模型调用与测试;本地模型 Ollama 的集成与前…...

Linux 内存管理实战精讲:核心原理与面试常考点全解析

Linux 内存管理实战精讲:核心原理与面试常考点全解析 Linux 内核内存管理是系统设计中最复杂但也最核心的模块之一。它不仅支撑着虚拟内存机制、物理内存分配、进程隔离与资源复用,还直接决定系统运行的性能与稳定性。无论你是嵌入式开发者、内核调试工…...

保姆级【快数学会Android端“动画“】+ 实现补间动画和逐帧动画!!!

目录 补间动画 1.创建资源文件夹 2.设置文件夹类型 3.创建.xml文件 4.样式设计 5.动画设置 6.动画的实现 内容拓展 7.在原基础上继续添加.xml文件 8.xml代码编写 (1)rotate_anim (2)scale_anim (3)translate_anim 9.MainActivity.java代码汇总 10.效果展示 逐帧…...

macOS 终端智能代理检测

🧠 终端智能代理检测:自动判断是否需要设置代理访问 GitHub 在开发中,使用 GitHub 是非常常见的需求。但有时候我们会发现某些命令失败、插件无法更新,例如: fatal: unable to access https://github.com/ohmyzsh/oh…...

鸿蒙HarmonyOS 5军旗小游戏实现指南

1. 项目概述 本军旗小游戏基于鸿蒙HarmonyOS 5开发,采用DevEco Studio实现,包含完整的游戏逻辑和UI界面。 2. 项目结构 /src/main/java/com/example/militarychess/├── MainAbilitySlice.java // 主界面├── GameView.java // 游戏核…...