在亚马逊云科技上用Stable Diffusion 3.5 Large生成赛博朋克风图片(下)

news/2025/2/3 7:33:22/
aidu_pl">

背景介绍

在2024年的亚马逊云科技re:Invent大会上提前预告发布的Stable Diffusion 3.5 Large,现在已经在Amazon Bedrock上线了!各位开发者们现在可以使用该模型,根据文本提示词文生图生成高质量的图片,并且支持多种图片风格生成,助力媒体、游戏、广告和零售等行业的开发者们加速概念艺术、视觉特效以及精修产品宣传图的生成创作。

2024年10月,图像生成模型厂商Stability AI发布了Stable Diffusion 3.5 Large,这是Stable Diffusion系列中目前最强大的模型,拥有81亿个参数,值得一提的是该模型也是在Amazon SageMaker HyperPod上进行训练的,该模型可以生成极高的图像质量并具有出色的提示词匹配能力。Stable Diffusion 3.5 Large可增效开发者们在故事插画制作、概念艺术创作以及视觉特效应用的快速原型开发。大家可以快速生成高质量的高达1兆像素图片,适用于媒体营销活动、社交媒体文章插图和广告,既可以节省时间和资源,又能以上场景中的增强图像创意效果。

在本系列的上篇中,我们介绍了在亚马逊云科技控制台中,通过Stable Diffusion 3.5 Large模型生成图片的具体步骤操作,手把手和大家生成了一个赛博朋克风的图片。在本系列的下篇中,我们将通过API调用的方式进行图片生成,并展示Stable Diffusion 3.5 Large模型更多的图片生成场景。

 

如果调用Python SDK API生成图片?

下面小李哥会分享通过两种方式调用Stable Diffusion 3.5 Large生成图片。首先要介绍的是通过aws cli命令行调用图片生成的api - invoke-model。我们接下来会在命令工具中通过一条命令获取生成的图像,并将输出的JSON格式响应以标准格式输出,并使用jq工具提取编码后的图像,最后将其解码并将结果写入img.png文件,直接打开即可获取输出的图像。

以下是 AWS CLI 命令的示例:

$ aws bedrock-runtime invoke-model \--model-id stability.sd3-5-large-v1:0 \--body "{\"prompt\":\"High-energy street scene in a neon-lit Tokyo alley at night, where steam rises from food carts, and colorful neon signs illuminate the rain-slicked pavement.\",\"mode\":\"text-to-image\",\"aspect_ratio\":\"1:1\",\"output_format\":\"jpeg\",\"seed\":0}" \--cli-binary-format raw-in-base64-out \--region us-west-2 \
/dev/stdout | jq -r '.images[0]' | base64 --decode > img.jpg

如果大家希望在生成式AI应用中集成Stable Diffusion 3.5 Large模型,可以使用亚马逊云科技的SDK for Python(Boto3) 。接下来我将分享调用模型生成图片的代码段,使用的模型是Stable Image Ultra 1.1(该模型的底层架构即为Stable Diffusion 3.5 Large)。下面这个代码段会在请求中添加文本到图像的提示词,并调用Amazon Bedrock生成图像,使用的模型ID为“stability.stable-image-ultra-v1:1”。

import base64
import boto3
import json
import osMODEL_ID = "stability.stable-image-ultra-v1:1"bedrock_runtime = boto3.client("bedrock-runtime", region_name="us-west-2")print("Enter a prompt for the text-to-image model:")
prompt = input()body = {"prompt": prompt,"mode": "text-to-image"
}
response = bedrock_runtime.invoke_model(modelId=MODEL_ID, body=json.dumps(body))model_response = json.loads(response["body"].read())base64_image_data = model_response["images"][0]i, output_dir = 1, "output"
if not os.path.exists(output_dir):os.makedirs(output_dir)
while os.path.exists(os.path.join(output_dir, f"img_{i}.png")):i += 1image_data = base64.b64decode(base64_image_data)image_path = os.path.join(output_dir, f"img_{i}.png")
with open(image_path, "wb") as file:file.write(image_data)print(f"The generated image has been saved to {image_path}")

该代码段生成的图像会被存储在本地文件系统的目录中,如果该目录不存在,程序会自动创建一个文件夹目录。为了避免覆盖已有的文件,代码会检查目录中是否存在同名文件,并自动将新生成的图片命名为img_<number>.png 格式,确保文件名称的唯一性。

想要了解更多关于调用Bedrock上的模型生成内容的细节,大家可以访问Amazon Bedrock Invoke API代码示例页面,学习如何使用不同的编程语言来构建不同种类的生成式AI应用。

其他风格/场景图片生成展示

以下是使用 Stable Diffusion 3.5 Large 生成的一些其他场景的示例图片:

提示词1:生成学生正使用Amazon Bedrock的图片

Prompt: Full-body university students working on a tech project with the words Stable Diffusion 3.5 in Amazon Bedrock, cheerful cursive typography font in the foreground.

 

提示词2: 生成三种不同颜色的药剂

Prompt: Photo of three potions: the first potion is blue with the label "MANA", the second potion is red with the label "HEALTH", the third potion is green with the label "POISON". Old apothecary.

提示词3:生成玫瑰花摄影

Prompt: Photography, pink rose flowers in the twilight, glowing, tile houses in the background. 

 

提示词4: 生成旅途冒险的3D卡通画面

Prompt: 3D animation scene of an adventurer traveling the world with his pet dog.

 


http://www.ppmy.cn/news/1568900.html

相关文章

【Java异步编程】基于任务类型创建不同的线程池

文章目录 一. 按照任务类型对线程池进行分类1. IO密集型任务的线程数2. CPU密集型任务的线程数3. 混合型任务的线程数 二. 线程数越多越好吗三. Redis 单线程的高效性 使用线程池的好处主要有以下三点&#xff1a; 降低资源消耗&#xff1a;线程是稀缺资源&#xff0c;如果无限…

flutter-android混合编译,原生接入

关于作者&#xff1a; CSDN内容合伙人、技术专家&#xff0c; 从零开始做日活千万级APP&#xff0c;带领团队单日营收超千万。 专注于分享各领域原创系列文章 &#xff0c;擅长java后端、移动开发、商业化变现、人工智能等&#xff0c;希望大家多多支持。 目录 一、导读二、概览…

JVM的GC详解

获取GC日志方式大抵有两种 第一种就是设定JVM参数在程序启动时查看&#xff0c;具体的命令参数为: -XX:PrintGCDetails # 打印GC日志 -XX:PrintGCTimeStamps # 打印每一次触发GC时发生的时间第二种则是在服务器上监控:使用jstat查看,如下所示&#xff0c;命令格式为jstat -gc…

【deepseek实战】绿色好用,不断网

前言 最佳deepseek火热网络&#xff0c;我也开发一款windows的电脑端&#xff0c;接入了deepseek&#xff0c;基本是复刻了网页端&#xff0c;还加入一些特色功能。 助力国内AI&#xff0c;发出自己的热量 说一下开发过程和内容的使用吧。 目录 一、介绍 二、具体工作 1.1、引…

流浪 Linux: 外置 USB SSD 安装 ArchLinux

注: ArchLinux 系统为滚动更新, 变化很快, 所以本文中的安装方法可能很快就过时了, 仅供参考. 实际安装时建议去阅读官方文档. 最近, 突然 (也没有那么突然) 有了一大堆 PC: 4 个笔记本, 2 个台式主机 (M-ATX 主板), 1 个小主机 (迷你主机). 嗯, 多到用不过来. 但是, 窝又不能…

K8s之Service详解(Detailed Explanation of K8s Service)

K8s之Service详解 1 Service相关概念 1.1 什么是Service&#xff1f; 在 Kubernetes 中&#xff0c;Service 是一种抽象的资源&#xff0c;它提供了稳定的访问接口&#xff0c;将外部或集群内部的流量路由到对应的 Pod 上。Pod 是 Kubernetes 中的基本调度单元&#xff0c;…

C#@符号在string.Format方法中作用

本文详解@符号在string.Format方法中作用。

解决运行npm时报错

在运行一个Vue项目时报错&#xff0c;产生下面问题 D:\node\npm.cmd run dev npm WARN logfile could not be created: Error: EPERM: operation not permitted, open D:\node\node_cache\_logs\2025-01-31T01_01_58_076Z-debug-0.log npm WARN logfile could not be created:…