extras引擎的额外参数

发布时间:2025-06-24 18:35:56  作者:北方职教升学中心  阅读量:592


这里指定宽度为 768 像素request = json.dumps({ "text_prompts": ( [{"text": prompt, "weight": 1.0}] + [{"text": negprompt, "weight": -1.0} for negprompt in negative_prompts] ), "cfg_scale": 5, "seed": 42, "steps": 60, "style_preset": style_preset, "clip_guidance_preset": clip_guidance_preset, "sampler": sampler, "width": width,})modelId = "stability.stable-diffusion-xl-v1"response = boto3_bedrock.invoke_model(body=request, modelId=modelId)response_body = json.loads(response.get("body").read())print(response_body["result"])base_64_img_str = response_body["artifacts"][0].get("base64")print(f"{base_64_img_str[0:80]}...")os.makedirs("data", exist_ok=True)image_1 = Image.open(io.BytesIO(base64.decodebytes(bytes(base_64_img_str, "utf-8"))))image_1.save("data/image_1.jpg")

推理结果

我们输入的提示词为”a beautiful mountain landscape“,生成一个漂亮的山景图,我们得到生成的图片:

图生图功能:

我们接下来了解Stability模型的图生图推理参数,以Stability AI SDXL 1.0为例,模型参数共分为必要参数和可选参数。seed004294967295初始化噪声设置的种子。 (e.g. photographic, digital-art, cinematic, ...)clip_guidance_preset = "FAST_BLUE" #这是 Clip 引导预设,用于控制图像生成过程中的一些参数和行为。

方案所需基础知识

什么是Amazon Bedrock

Amazon Bedrock 是一项完全托管的服务,通过统一的 API 提供来自 AI21 Labs、samples111生成图像的数量。

今天小李哥就来介绍亚马逊云科技推出的国际前沿人工智能模型平台Amazon Bedrock上的Stability Diffusion模型开发生成式AI图像生成应用!本系列共有3篇,在上篇中我们学习了如何在亚马逊云科技控制台上体验该模型的每个特色功能,如文生图、

必要参数有:

参数描述最低值最高值
text_prompts生成文本提示数组,包含提示及权重02000

可选参数有:

参数描述默认值最低值最高值可选值
weight模型应用于提示的权重1
cfg_scale决定最终图像对提示的描绘程度7035
clip_guidance_preset预设参数FAST_BLUE, FAST_GREEN, NONE, SIMPLE SLOW, SLOWER, SLOWEST
height生成图像的高度1024x1024, 1152x896, 1216x832, 1344x768, 1536x640, 640x1536, 768x1344, 832x1216, 896x1152
width生成图像的宽度1024x1024, 1152x896, 1216x832, 1344x768, 1536x640, 640x1536, 768x1344, 832x1216, 896x1152
sampler扩散过程采样器DDIM, DDPM, K_DPMPP_2M, K_DPMPP_2S_ANCESTRAL, K_DPM_2, K_DPM_2_ANCESTRAL, K_EULER, K_EULER_ANCESTRAL, K_HEUN, K_LMS
samples要生成的图像数量111
seed决定初始噪声设置的种子004294967295
steps生成步骤数,影响采样次数和结果准确度301050
style_preset将图像模型向特定样式引导的样式预设3d-model, analog-film, anime, cinematic, comic-book, digital-art, enhance, fantasy-art, isometric, line-art, low-poly, modeling-compound, neon-punk, origami, photographic, pixel-art, tile-texture

实操代码:

首先我们利用Amazon Bedrock API生成推理图片,确认已安装”boto3“、也欢迎大家继续关注本系列第三篇,通过Stability Difussion模型API调用的方式,开发一个属于自己的图片生成网页应用。 (e.g. FAST_BLUE FAST_GREEN NONE SIMPLE SLOW SLOWER SLOWEST)sampler = "K_DPMPP_2S_ANCESTRAL" # 这是采样器的选择,用于确定在生成图片时使用的采样方法。 

可选值:FAST_BLUE, FAST_GREEN, NONE, SIMPLE, SLOW, SLOWER, SLOWEST。"FAST_GREEN" 是一种预设选项,可能会影响生成速度和结果的某些方面。并利用该图像生成模型API开发生成式AI应用,应用到开发者日常开发工作中的下篇内容。"FAST_GREEN" 是一种预设选项,可能会影响生成速度和结果的某些方面。

Stability AI 模型的应用场景

创意设计:

Stability AI 的生成模型广泛应用于创意设计领域,帮助设计师和美工快速生成高质量的图像、通过简单的文本描述,就可以快速生成符合特定主题或风格的视觉素材,大大提升了设计效率和创意表现力。 (e.g. photographic, digital-art, cinematic, ...)clip_guidance_preset = "FAST_GREEN" #这是 Clip 引导预设,用于控制图像生成过程中的一些参数和行为。Meta、利用AI的图像生成能力,使得小型开发团队也能够制作出富有视觉冲击力的游戏内容。”PIL“和”botocore“等必要依赖,以下为实例代码(具体的代码解释在代码备注中):

import base64import ioimport jsonimport osimport sysimport boto3from PIL import Imageimport botocoredef image_to_base64(img) -> str:    """Convert a PIL Image or local image file path to a base64 string for Amazon Bedrock"""    if isinstance(img, str):        if os.path.isfile(img):            print(f"Reading image from file: {img}")            with open(img, "rb") as f:                return base64.b64encode(f.read()).decode("utf-8")        else:            raise FileNotFoundError(f"File {img} does not exist")    elif isinstance(img, Image.Image):        print("Converting PIL Image to base64 string")        buffer = io.BytesIO()        img.save(buffer, format="jpeg")        return base64.b64encode(buffer.getvalue()).decode("utf-8")    else:        raise ValueError(f"Expected str (filename) or PIL Image. Got {type(img)}")boto3_bedrock = boto3.client('bedrock-runtime')img_path = '../image/data/image_1.jpg'# 打开图片img = Image.open(img_path)init_image_b64 = image_to_base64(img)print(init_image_b64[:80] + "...")change_prompt = "add denser number of trees, extend lake"negative_prompts = [    "poorly rendered",    "poor background details",    "poorly drawn mountains",    "disfigured mountain features",]#负向提示词列表,用于指定不希望在生成的图片中出现的特征style_preset = "cinematic"  #风格预设,用于指定生成图片的风格。使用 Amazon Bedrock,开发者们可以:

轻松地测试、Cohere、

什么是 Stability AI 模型?

Stability AI 是一家致力于开发和提供生成式人工智能模型的公司,其模型被广泛应用于图像生成领域。Anthropic、(e.g. DDIM, DDPM, K_DPMPP_SDE, K_DPMPP_2M, K_DPMPP_2S_ANCESTRAL, K_DPM_2, K_DPM_2_ANCESTRAL, K_EULER, K_EULER_ANCESTRAL, K_HEUN, K_LMS)width = 768 #这是设置生成图片的宽度,单位为像素。可选值:DDIM, DDPM, K_DPMPP_2M, K_DPMPP_2S_ANCESTRAL, K_DPM_2, K_DPM_2_ANCESTRAL, K_EULER, K_EULER_ANCESTRAL, K_HEUN, K_LMS。Stability AI 的模型中最著名的莫非是 Stable Diffusion 生成模型,能够根据用户输入的描述,自动生成高度逼真的图像和文本。可选值:3d-model, analog-film, anime, cinematic, comic-book, digital-art, enhance, fantasy-art, isometric, line-art, low-poly, modeling-compound, neon-punk, origami, photographic, pixel-art, tile-texture。 (e.g. photographic, digital-art, cinematic, ...)clip_guidance_preset = "FAST_BLUE" #这是 Clip 引导预设,用于控制图像生成过程中的一些参数和行为。extras引擎的额外参数。 (e.g. FAST_BLUE FAST_GREEN NONE SIMPLE SLOW SLOWER SLOWEST)sampler = "K_DPMPP_2S_ANCESTRAL" # 这是采样器的选择,用于确定在生成图片时使用的采样方法。

游戏开发:

Stability AI 的图像生成技术也被广泛应用于游戏开发中。

接下来在中篇中我将带大家沉浸式实操通过API调用的方式访问Stability Difussion模型,体验该模型的特色功能。"FAST_GREEN" 是一种预设选项,可能会影响生成速度和结果的某些方面。Stability AI 和 Amazon 等领先 AI 公司的高性能基础模型(FMs),同时提供广泛的功能,让开发者能够在确保安全、欢迎大家关注小李哥的亚马逊云科技AI服务深入调研系列,未来获取更多国际前沿的AWS云开发/云架构方案。sampler扩散过程的采样器。这些模型以其卓越的生成能力和灵活性,在应用开发中管饭应用和认可。(e.g. DDIM, DDPM, K_DPMPP_SDE, K_DPMPP_2M, K_DPMPP_2S_ANCESTRAL, K_DPM_2, K_DPM_2_ANCESTRAL, K_EULER, K_EULER_ANCESTRAL, K_HEUN, K_LMS)width = 768 #这是设置生成图片的宽度,单位为像素。

  • 由于 Amazon Bedrock 是 Serverless 的服务,开发者无需管理任何基础设施,并且可以使用开发者已经熟悉其它的亚马逊云科技服务安全地集成和部署生成式 AI 功能到开发者的应用中。角色设计和道具,节省大量的美术资源,并加速游戏开发。

    本实践包括的内容

    1. 通过Amazon Bedrock API调用的方式体验文生图功能

    2. 通过Amazon Bedrock API调用的方式体验和图像修复功能

    3. 通过Amazon Bedrock API调用的方式体验图生图功能

    功能实践具体步骤

    文生图功能

    1. 首先我们了解Stability模型的文生图推理参数,以Stability AI SDXL 1.0为例,模型参数共分为必要参数和可选参数。

    必要参数

    参数描述最低值最高值
    text_prompts生成文本提示数组,包含提示及权重02000

    可选参数

    参数描述默认值最低值最高值可选值
    weight模型应用于提示的权重1
    cfg_scale决定最终图像对提示的描绘程度7035
    clip_guidance_preset预设参数FAST_BLUE, FAST_GREEN, NONE, SIMPLE SLOW, SLOWER, SLOWEST
    height生成图像的高度1024x1024, 1152x896, 1216x832, 1344x768, 1536x640, 640x1536, 768x1344, 832x1216, 896x1152
    width生成图像的宽度1024x1024, 1152x896, 1216x832, 1344x768, 1536x640, 640x1536, 768x1344, 832x1216, 896x1152
    sampler扩散过程采样器DDIM, DDPM, K_DPMPP_2M, K_DPMPP_2S_ANCESTRAL, K_DPM_2, K_DPM_2_ANCESTRAL, K_EULER, K_EULER_ANCESTRAL, K_HEUN, K_LMS
    samples要生成的图像数量111
    seed决定初始噪声设置的种子004294967295
    steps生成步骤数,影响采样次数和结果准确度301050
    style_preset将图像模型向特定样式引导的样式预设3d-model, analog-film, anime, cinematic, comic-book, digital-art, enhance, fantasy-art, isometric, line-art, low-poly, modeling-compound, neon-punk, origami, photographic, pixel-art, tile-texture
    extras传递给引擎的额外参数

    实操代码

    我们利用Amazon Bedrock API基于现有图片生成图片推理,确认已安装”boto3“、style_preset图像模型特定样式的预设。在这里,选择了“photographic”风格,意味着生成的图片将具有类似摄影照片的效果。在这里,选择了“photographic”风格,意味着生成的图片将具有类似摄影照片的效果。"K_DPMPP_2S_ANCESTRAL" 是一种具体的采样器,不同的采样器可能会对生成的图片质量和多样性产生影响。这里指定宽度为 768 像素request = json.dumps({ "text_prompts": ( [{"text": change_prompt, "weight": 1.0}] + [{"text": negprompt, "weight": -1.0} for negprompt in negative_prompts] ), "cfg_scale": 10, "init_image": init_image_b64, "seed": 321, "start_schedule": 0.6, "steps": 50, "style_preset": style_preset, "clip_guidance_preset": clip_guidance_preset, "sampler": sampler,})modelId = "stability.stable-diffusion-xl-v1"response = boto3_bedrock.invoke_model(body=request, modelId=modelId)response_body = json.loads(response.get("body").read())print(response_body["result"])image_2_b64_str = response_body["artifacts"][0].get("base64")print(f"{image_2_b64_str[0:80]}...")os.makedirs("data", exist_ok=True)image_2 = Image.open(io.BytesIO(base64.decodebytes(bytes(image_2_b64_str, "utf-8"))))image_2.save("data/image_2.jpg")

  •  推理结果

    我们输入的提示词为”add denser number of trees, extend lake”,为现有图片添加一片茂密的树林和一个湖泊,我们得到生成的图片:

    图片编辑功能

    我们接下来了解Stability模型的图片编辑推理参数,主要是利用新生成的图片替换原图片中的蒙版部分,以Stability AI SDXL 1.0为例,模型参数共分为必要参数和可选参数。品牌推广,社交媒体内容创作。"K_DPMPP_2S_ANCESTRAL" 是一种具体的采样器,不同的采样器可能会对生成的图片质量和多样性产生影响。插画和视觉内容,可以用于产品展示、隐私和负责任 AI 的前提下构建生成式 AI 应用。

    必要参数

    参数描述最低值最高值
    text_prompt用于生成的文本提示数组02000
    init_image初始化扩散过程的base64编码图像
    mask_source确定蒙版来源
    mask_image用作init_image中源图像蒙版的base64编码

    可选参数

    参数默认值最低值最高值描述和可选值
    weight1模型应用于提示的权重。图生图、
    clip_guidance_preset模型生成图像流程的预设参数。大家可以通过本博客中的实操项目自己学习AI技能,并应用到日常工作中。

    教育和培训:

    在教育和培训领域,Stability AI 模型能够根据教学需求生成个性化的学习材料和培训教案,帮助教师和培训师提高教学效果,特别是生成式AI相关的主题培训,提升学习者的参与度和学习体验。”PIL“和”botocore“等必要依赖,以下为实例代码(具体的代码解释在代码备注中):

    import base64import ioimport jsonimport osimport sysimport boto3from PIL import Imageimport botocoreboto3_bedrock = boto3.client('bedrock-runtime')prompt = "a beautiful mountain landscape" #提示词negative_prompts = [    "poorly rendered",    "poor background details",    "poorly drawn mountains",    "disfigured mountain features",]#负向提示词列表,用于指定不希望在生成的图片中出现的特征style_preset = "photographic"  #风格预设,用于指定生成图片的风格。图像修复等。
    cfg_scale7035确定最终图像对提示的描绘程度。 (e.g. FAST_BLUE FAST_GREEN NONE SIMPLE SLOW SLOWER SLOWEST)sampler = "K_DPMPP_2S_ANCESTRAL" # 这是采样器的选择,用于确定在生成图片时使用的采样方法。Mistral AI、注意:'extras'参数用于开发中或实验性功能,可能会有变更,应谨慎使用。"K_DPMPP_2S_ANCESTRAL" 是一种具体的采样器,不同的采样器可能会对生成的图片质量和多样性产生影响。(e.g. DDIM, DDPM, K_DPMPP_SDE, K_DPMPP_2M, K_DPMPP_2S_ANCESTRAL, K_DPM_2, K_DPM_2_ANCESTRAL, K_EULER, K_EULER_ANCESTRAL, K_HEUN, K_LMS)width = 768 #这是设置生成图片的宽度,单位为像素。在这里,选择了“photographic”风格,意味着生成的图片将具有类似摄影照片的效果。”PIL“和”botocore“等必要依赖,以下为实例代码(具体的代码解释在代码备注中):

    import base64import ioimport jsonimport osimport sysimport boto3from PIL import Imageimport botocorefrom PIL import ImageOpsdef image_to_base64(img) -> str:    """Convert a PIL Image or local image file path to a base64 string for Amazon Bedrock"""    if isinstance(img, str):        if os.path.isfile(img):            print(f"Reading image from file: {img}")            with open(img, "rb") as f:                return base64.b64encode(f.read()).decode("utf-8")        else:            raise FileNotFoundError(f"File {img} does not exist")    elif isinstance(img, Image.Image):        print("Converting PIL Image to base64 string")        buffer = io.BytesIO()        img.save(buffer, format="jpeg")        return base64.b64encode(buffer.getvalue()).decode("utf-8")    else:        raise ValueError(f"Expected str (filename) or PIL Image. Got {type(img)}")def inpaint_mask(img, box):    """Generates a segmentation mask for inpainting"""    img_size = img.size    assert len(box) == 4  # (left, top, right, bottom)    assert box[0] < box[2]    assert box[1] < box[3]    return ImageOps.expand(        Image.new(            mode = "RGB",            size = (                box[2] - box[0],                box[3] - box[1]            ),            color = 'black'        ),        border=(            box[0],            box[1],            img_size[0] - box[2],            img_size[1] - box[3]        ),        fill='white'    )    img_path = '../image_to_image/data/image_2.jpg'# 打开图片image_2 = Image.open(img_path)img2_size = image_2.sizebox = (        (0),        (img2_size[1] - 900) ,        (img2_size[0]),        img2_size[1] - 700    )# Maskmask = inpaint_mask(    image_2,    box)# Debugmaskboto3_bedrock = boto3.client('bedrock-runtime')inpaint_prompt = "add a helicopter"#添加一架直升机style_preset = "cinematic"  #风格预设,用于指定生成图片的风格。开发者可以利用这些模型快速生成游戏场景、评估开发者的用例在不同基础模型下的表现;

    1. 使用微调和检索增强生成(RAG)等技术定制化开发应用程序;
    2. 构建可以使用开发者的企业系统和数据源自动执行任务的智能 Agents。
    steps301050对图像进行采样的生成步骤数。这里指定宽度为 768 像素request = json.dumps({ "text_prompts":[{"text": inpaint_prompt}], "init_image": image_to_base64(image_2), "mask_source": "MASK_IMAGE_BLACK", "mask_image": image_to_base64(mask), "cfg_scale": 10, "seed": 32123, "style_preset": style_preset,})modelId = "stability.stable-diffusion-xl-v1"response = boto3_bedrock.invoke_model(body=request, modelId=modelId)response_body = json.loads(response.get("body").read())print(response_body["result"])image_3_b64_str = response_body["artifacts"][0].get("base64")os.makedirs("data", exist_ok=True)inpaint = Image.open(io.BytesIO(base64.decodebytes(bytes(image_3_b64_str, "utf-8"))))inpaint.save("data/inpaint.jpg")

    推理结果

    我们输入的提示词为"add a helicopter",为现有图片在指定蒙版涂黑区域(图像底部向上900像素和700像素之间的正中间部分)添加一个直升机图像,我们得到生成的图片:

     

    以上就是在亚马逊云科技控制台中沉浸式体验Amazon Bedrock的Stability AI模型、

    实操代码

    我们利用Amazon Bedrock API进行图像编辑功能,确认已安装”boto3“、