Stable Diffusion 教程:如何将 Stable Diffusion 集成到您现有的项目中

Stable Diffusion 教程:如何将 Stable Diffusion 集成到您现有的项目中

稳定扩散是惊人的!

Stable Diffusion 无疑是市场上最好的文本转图像模型之一。并且是为数不多的开源软件之一。因此,在某些情况下,值得选择它并使您的项目多样化。多亏了 StabilityAI 的 API/SDK,这非常容易。如果您想了解我是如何做到的,请阅读本教程!

计划变更

从计划我们的更改开始是个好主意。在本教程中,我将使用 GPT-3 Streamlit Boilerplate。我希望它不仅能生成文本,还能根据插入的提示生成图片。它会出现在生成的文本下方。

SD/稳定性 API

在这种情况下,它将使用 StabilityAI 的 Python SDK 来访问 Stable Diffusion API。要访问,您需要登录并在您的帐户中生成一个 API 密钥。我们现在不会使用它,保存以备后用。

开始吧!

克隆存储库

首先,我们需要克隆存储库。

git clone https://github.com/nextgrid/streamlit_gpt3_boilerplate

然后进入该目录并创建一个虚拟环境。

cd streamlit_gpt3_boilerplatepython3 -m venv venv

让我们激活虚拟环境。

对于 Windows 用户:

./venv/Scripts/activate

对于 Mac 和 Linux 用户:

source venv/bin/activate

安装所需的依赖项

现在我们需要安装所需的依赖项。

pip install -r requirements.txt

安装新的依赖项

让我们安装额外的依赖 – Stability SDK。

pip install stability-sdk

添加必要的更改

现在我们需要对代码进行一些更改。首先,我们需要添加访问 API 的可能性。让我们导入必要的库。

import ioimport stability_sdk.interfaces.gooseai.generation.generation_pb2 as generationfrom PIL import Imagefrom stability_sdk import client

GeneralModel现在让我们在文件中的类中添加以下方法model.py

def stability_generation(self, inp, api_key):        stability_api = client.StabilityInference(            key=api_key,            verbose=True,  # Print debug messages.            engine="stable-diffusion-512-v2-1",        )        # Create a request.        result = stability_api.generate(            prompt=inp, steps=40, samples=1, sampler=generation.SAMPLER_K_DPMPP_2M        )        for response in result:            for artifact in response.artifacts:                if artifact.type == generation.ARTIFACT_IMAGE:                    img = Image.open(io.BytesIO(artifact.binary))                    # return 1st image                    return img

此方法将根据输入的提示生成图像。它将返回生成图像列表中的第一张图像。

现在让我们来处理我们的仪表板。我们必须添加一个新的文本输入,以允许用户提供他们的 Stability API 密钥。我将在使用 OpenAI API Key 的输入下添加它。我还将使用 OpenaAI Key 重命名变量。

openai_api_key = st.sidebar.text_input("OpenAI API Key", type="password")stability_api_key = st.sidebar.text_input("StabilityAI API Key", type="password")

请记住在您的代码中的任何地方使用 OpenAI Key 更改变量的名称。

此时我们可以添加一个函数来触发照片的生成。

def process_prompt_stability(inp):    img = pred.stability_generation(inp=inp.strip(), api_key=stability_api_key)    return img

我还将有条件地生成应用程序的内容 – 如果同时提供了 OpenAI 和 Stability API 密钥。

此外,在文本生成之后添加照片生成也很重要。

添加这两个东西后,我的代码将如下所示:

if openai_api_key and stability_api_key:        st.title("Write a poem based on these words")        s_example = "Birds, flowers, love, sun"        inp = st.text_area(            "Use the example below or input your own text in English",            value=s_example,            max_chars=150,            height=100,        )        if st.button("Submit Poem"):            with st.spinner(text="In progress"):                report_text = process_prompt(inp)                st.markdown(report_text)                result_img = process_prompt_stability(inp)                if result_img:                    st.image(result_img, caption="Generated Image")

测试

让我们检查一下是否一切正常。我们可以通过运行以下命令来启动我们的应用程序:

streamlit run gpt_app.py

然后我们可以输入我们的 API 密钥并生成诗歌和照片。

Stable Diffusion 教程:如何将 Stable Diffusion 集成到您现有的项目中
Stable Diffusion 教程:如何将 Stable Diffusion 集成到您现有的项目中

结论

Stable Diffusion 教程:如何将 Stable Diffusion 集成到您现有的项目中

如您所见,将 Stable Diffusion 添加到您的项目中并不难,最重要的是了解我们为什么要在我们的项目中使用它并做好计划!

如果您想详细了解如何使用 Stable Diffusion,我们邀请您查看我们在 lablab.ai 上的其他 AI 教程。这些工具很棒而且是开源的,这意味着随着社区不断开发新的工具、模型和解决方案,您肯定会找到适合您项目的工具!

如果您想在现实世界中测试您学到的所有 Stable Diffusion 技能,您可以参加即将举行的 Stable Diffusion AI 黑客马拉松,并在短短 7 天内创建基于 AI 的应用程序原型!也许使用 New Native 的弹弓加速器程序将它推向一个新的水平?

你还在等什么?加入AIHubPro.cn社区,报名参加Stable Diffusion AI Hackathon,用AI的力量改变世界!就这么简单。

感谢您的时间!– AI未来百科 ; 探索AI的边界与未来! 懂您的AI未来站

声明:本站部分文章来源于网络,如有侵犯您的合法权益,请您即时与我们联系,我们将在第一时间处理。如需转载本站文章,请在转载时标明出处并保留原文链接,否则我们将保留追究法律责任的权利。

给TA打赏
共{{data.count}}人
人已打赏
AI教程

AI21 Labs 教程:如何创建文本改进器应用程序

2023-5-4 20:43:16

AI教程

Stable Diffusion 教程:如何使用 Stable Diffusion、Next.js 和 Vercel 构建文本到图像生成器

2023-5-4 20:43:34

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧