文生图——python调用stable diffusionAPI生成有趣的图像

这篇具有很好参考价值的文章主要介绍了文生图——python调用stable diffusionAPI生成有趣的图像。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

本文将介绍如何使用Python调用Stable Diffusion API进行图像生成,实现文生图的功能。通过详细的步骤说明和示例代码,读者将能够轻松掌握这一技术,并运用它生成独特而富有创意的图像作品。无论你是编程爱好者还是设计师,都能从中获得启发和乐趣。

stable diffusion本地的部署方法可参考文章:文生图——stable diffusion生成有趣的动漫图像

part1:文生图概念及API简介

在数字艺术和创意设计的交汇点上,文生图(Text-to-Image)技术正以其独特的魅力吸引着无数创作者。这项技术允许用户通过输入文字描述,生成与之相对应的图像,从而打破了传统图像创作的界限,为艺术家和设计师们提供了全新的创作手段。

文生图技术的核心在于深度学习和自然语言处理。通过训练大量的图像和文字数据,模型能够理解文字与图像之间的关联,进而根据文字描述生成相应的图像。这种技术的出现,不仅降低了图像创作的门槛,还极大地丰富了图像创作的可能性和多样性。

在众多文生图技术中,Stable Diffusion以其出色的图像生成质量和稳定的性能脱颖而出。Stable Diffusion是一个基于扩散模型的文本到图像生成系统,它能够根据用户提供的文本提示,生成高质量、高分辨率的图像。而Stable Diffusion API则是这一强大功能的桥梁,它允许开发者通过编程方式调用Stable Diffusion模型,实现自定义的图像生成任务。

Stable Diffusion API的设计简洁而高效,用户只需通过API接口发送包含文本描述的请求,即可获得与之对应的图像输出。这种即插即用的方式,不仅方便了开发者的集成和应用,还大大降低了技术门槛,使得更多创作者能够轻松体验到文生图的魅力。

要获得stable Diffusion API 首先,我们进入stable diffusion官网:Stable Diffusion 3 — Stability AI

文生图开源api,创意AI小分享,stable diffusion

进入Stability AI Developer Platform 文生图开源api,创意AI小分享,stable diffusion,如左图,点击Platform API即可。进入网页后,我们首先登录自己的SD账号,点击账号,即可看到下方画面:文生图开源api,创意AI小分享,stable diffusion

使用个人的API Keys,即可调用API进行创作了。在Billing界面,可以看到自己的API调用余额,调用不同的模型消耗不同文生图开源api,创意AI小分享,stable diffusion

 使用不同模型消耗的Credits可以通过Stability AI - Developer Platform查看。文生图开源api,创意AI小分享,stable diffusion

part2:python调用stable diffusionAPI进行绘图

我们可以通过以下代码实现文生图的API调用:

import base64
import os
import requests

engine_id = "stable-diffusion-v1-6"
api_host = os.getenv('API_HOST', 'https://api.stability.ai')
api_key = "skxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxWdIc"

if api_key is None:
    raise Exception("Missing Stability API key.")

response = requests.post(
    f"{api_host}/v1/generation/{engine_id}/text-to-image",
    headers={
        "Content-Type": "application/json",
        "Accept": "application/json",
        "Authorization": f"Bearer {api_key}"
    },
    json={
        "text_prompts": [
            {
                "text": "A lighthouse on a cliff"
            }
        ],
        "cfg_scale": 7,
        "height": 1024,
        "width": 1024,
        "samples": 1,
        "steps": 30,
    },
)

if response.status_code != 200:
    raise Exception("Non-200 response: " + str(response.text))

data = response.json()

for i, image in enumerate(data["artifacts"]):
    with open(f"out/v1_txt2img_{i}.png", "wb") as f:
        f.write(base64.b64decode(image["base64"]))

这段代码来源并修改于stable diffusion官方文档Stability AI - Developer Platform,下面,我们对代码进行一些解释:

  • engine_id代表你使用的文生图模型,用户可以根据需要选择不同的模型;
  • api_key为用户的API key,这地方直接将自己的API key复制过来就好;
  • json={ "text_prompts": [{ "text": "A lighthouse on a cliff" } ], "cfg_scale": 7, "height": 1024, "width": 1024, "samples": 1, "steps": 30, }中,我们可以对图片的输出内容进行设置, "text_prompts"即为提示词,如文中为“悬崖上的灯塔”,后边为对图片的参数设置。

 在运行上述代码前,首先在与上述python文件同目录下创建一个out文件夹,这样代码会将图片输出到out文件夹当中。

接下来,让我们实操一下上述代码吧!

part3:代码实操

首先,我们先获取一些优秀的提示词:

文生图开源api,创意AI小分享,stable diffusion

接着我们将这些提示词整理好放入代码中,如下方代码所示: 

import base64
import os
import requests

engine_id = "stable-diffusion-v1-6"
api_host = os.getenv('API_HOST', 'https://api.stability.ai')
api_key = "skxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxIc"

if api_key is None:
    raise Exception("Missing Stability API key.")

response = requests.post(
    f"{api_host}/v1/generation/{engine_id}/text-to-image",
    headers={
        "Content-Type": "application/json",
        "Accept": "application/json",
        "Authorization": f"Bearer {api_key}"
    },
    json={
        "text_prompts": [
            {
                "text": "Sunset Glow,Anime Kids,Adorable Features,Bright Eyes,Cheerful Expressions,Colorful Backpacks,School Uniforms,Chibi Style,Golden Hour,Warm Light,Long Shadows,Rustling Trees,Birds Flying,Distant Houses,Country Road,Walking Home,Chattering Friends,Laughing Faces,Innocent Joy,Youthful Energy"
            }
        ],
        "cfg_scale": 7,
        "height": 1024,
        "width": 1024,
        "samples": 1,
        "steps": 30,
    },
)

if response.status_code != 200:
    raise Exception("Non-200 response: " + str(response.text))

data = response.json()

for i, image in enumerate(data["artifacts"]):
    with open(f"out/v1_txt2img_{i}.png", "wb") as f:
        f.write(base64.b64decode(image["base64"]))

运行后,在out文件夹中即可获得所需要的图片:

文生图开源api,创意AI小分享,stable diffusion

 可以看到,图像整体风格没有太大问题,但是图片细节还是不太妙,读者可以尝试多生成几次,找到满意的图像。

Stable Diffusion模型原理简介

Stable Diffusion是一种基于扩散过程的生成模型,由多个关键组件和原理构成,以下是对其原理的详细分段介绍:

一、扩散过程

Stable Diffusion的核心思想是通过扩散过程来实现图像生成和图像修复。扩散过程是一种物理现象,描述了粒子随时间的随机运动。在Stable Diffusion中,扩散过程被应用于图像数据,通过向图像像素添加随机噪声并迭代地去除这些噪声,逐渐使图像从无序状态过渡到有序状态,最终生成符合目标分布的图像。

二、变分自编码器(VAE)

为了有效地处理图像数据,Stable Diffusion引入了变分自编码器(VAE)。VAE是一种生成模型,它能够将图像编码成一个隐变量向量,并通过解码器将其还原成图像。在编码过程中,VAE学习到数据分布的特征,从而能够生成与原始数据相似的图像。通过VAE,Stable Diffusion实现了对图像的高效压缩和编码,为后续的扩散过程提供了便利。

三、可逆网络

在Stable Diffusion中,可逆网络发挥着关键作用。可逆网络是一种特殊的神经网络结构,它允许数据在正向和反向过程中进行无损变换。在Stable Diffusion中,可逆网络被用于实现扩散过程的反向操作,即将扩散后的噪声数据还原成原始图像。通过可逆网络,模型能够在不损失信息的情况下对数据进行变换和处理,从而保证了生成图像的质量和准确性。

四、稳定性控制

Stable Diffusion通过控制扩散过程的时间步长来实现对生成图像稳定性的控制。时间步长决定了扩散过程中每一步的噪声添加量和去除量。较小的时间步长可以使扩散过程更加平稳,生成的图像更加稳定,但也会增加计算成本和生成时间。相反,较大的时间步长可以加速扩散过程,但可能会导致生成的图像出现不稳定或质量下降的情况。因此,在Stable Diffusion中需要权衡生成图像的稳定性和计算效率之间的关系。

五、条件机制与文本引导

Stable Diffusion还引入了条件机制来实现文本引导的图像生成功能。通过结合CLIP文本编码器和交叉注意力机制,模型能够根据用户提供的文本描述来调整生成图像的内容和风格。这使得Stable Diffusion能够灵活地应对不同的生成需求并提供个性化的图像生成服务。

以上是利用python调用stable diffusionAPI进行图像生成的方法, stable diffusion本地的部署方法可参考文章:文生图——stable diffusion生成有趣的动漫图像文章来源地址https://www.toymoban.com/news/detail-860029.html

到了这里,关于文生图——python调用stable diffusionAPI生成有趣的图像的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Diffusion扩散模型学习2——Stable Diffusion结构解析-以文本生成图像(文生图,txt2img)为例

    用了很久的Stable Diffusion,但从来没有好好解析过它内部的结构,写个博客记录一下,嘿嘿。 https://github.com/bubbliiiing/stable-diffusion 喜欢的可以点个star噢。 Stable Diffusion是比较新的一个扩散模型,翻译过来是稳定扩散,虽然名字叫稳定扩散,但实际上换个seed生成的结果就完全不

    2024年02月15日
    浏览(67)
  • 【腾讯云HAI域探秘】搭建一个永不宕机的本地SD文本生成图像应用--喂饭级高性能应用HAI部署stable diffusion webui 一键文生图

    本次有幸受邀作为新品先锋体验官参加了【 腾讯云HAI域探秘 】活动,沉浸式体验高性能应用服务HAI产品 + Stable Diffusion WebUI部署。 腾讯云高性能应用服务(Hyper Application Inventor, HAI),是一款面向AI、科学计算的GPU应用服务产品,为开发者量身打造的澎湃算力平台。基于腾讯云

    2024年02月06日
    浏览(60)
  • AnimateDiff论文解读-基于Stable Diffusion文生图模型生成动画

    论文: 《AnimateDiff: Animate Your Personalized Text-to-Image Diffusion Models without Specific Tuning》 github: https://github.com/guoyww/animatediff/ 随着文生图模型Stable Diffusion及个性化finetune方法:DreamBooth、LoRA发展,人们可以用较低成本生成自己所需的高质量图像,这导致对于图像动画的需求越来越多

    2024年02月14日
    浏览(39)
  • Stable-diffusion-WebUI 的API调用(内含文生图和图生图实例)

    在之前尝试使用Diffusers库来进行stable-diffusion的接口调用以及各种插件功能实现,但发现diffusers库中各复杂功能的添加较为麻烦,而且难以实现对采样器的添加,safetensors格式模型的读取。在官网上找到了webui有专门的api接口,能够极大方便我们进行类似webui界面的api调用。 d

    2024年01月17日
    浏览(60)
  • stable diffusion webui 文生图(txt2img)api接口调用(使用C#)

    本次将跟读者讲一下如何通过C#请求sd webui api 【txt2img】接口,如果读者觉得文章有用,请给【点个赞】吧,有问题可以评论区提问。 启动webui时,需加上【–api】 命令以保证api接口可以被调用。如果需要设置密码,可以通过【–api-auth 账号:密码】和【–gradio-auth 账号:密码】

    2024年02月09日
    浏览(57)
  • AI文生图:从零到逼真-掌握技巧,让你的AI图像生成更出色 Part I

    根据调查数据,超过90%的用户在使用AI文生图工具时,都期望能够生成高度逼真的图像。 经过深入的测试和验证,我们决定撰写一系列文章,向您展示提示词技巧以及相关的命令参数。通过这些技巧,您将能够轻松地利用AI工具,制作出令人惊叹的逼真图像。 在接下来的五期

    2024年02月22日
    浏览(50)
  • Stable Diffusion 图像生成测试

    最近图像多模态生成模型特别火,简单尝试了下。 项目地址:GitHub - CompVis/stable-diffusion: A latent text-to-image diffusion model 由于本地GPU比较弱鸡,使用了Google的colab进行了简单尝试,colab地址: https://colab.research.google.com/github/huggingface/notebooks/blob/main/diffusers/stable_diffusion.ipynb 被效果

    2024年02月16日
    浏览(46)
  • 使用Gradio搭建Stable Diffusion模型生成图像:简单快捷的图像生成体验

    目录 0 开发环境 1 介绍 1.1 Gradio简介 1.2 Stable Diffusion模型简介 2 使用Gradio搭建基本界面 2.1 安装依赖库 2.2 加载预训练模型 2.3 解析返回的数据 2.4 构建图像字幕应用程序 3 实现Stable Diffusion图像生成 3.1 Stable Diffusion模型解析 3.2 将SD模型集成到Gradio应用中 3.2.1 本地加载 3.2.1.1 安

    2024年02月13日
    浏览(50)
  • 傻瓜式安装stable diffusion图像生成软件

    目录 1、打开:https://colab.research.google.com/ 2、复制一下代码: 3、粘贴到下方,按运行按钮。  4、打开安装好的软件。上框复制以下代码: 5、下框复制以下代码: 6、如下图设置及操作: 按“+代码”按钮。 !pip install --upgrade fastapi==0.90.1!git clone https://github.com/AUTOMATIC1 - Pasteb

    2024年02月13日
    浏览(47)
  • Stable Diffusion - Stable Diffusion WebUI 图像生成工具的环境配置

    欢迎关注我的CSDN:https://spike.blog.csdn.net/ 本文地址:https://spike.blog.csdn.net/article/details/131528224 Stable Diffusion WebUI 是一款基于深度学习的图像生成工具,根据用户的输入文本或图像,生成高质量的新图像,特点如下: 支持多种图像生成任务,如人脸生成、风格迁移、图像修复、

    2024年02月16日
    浏览(68)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包