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

零基础快速搭建AI绘画网站!用Gradio玩转Stable Diffusion

借助Gradio,简单几行Python代码即可快速搭建一个专属的AI绘画网站,轻松部署Stable Diffusion文生图应用,gradio自带的组件已经相当美化了,前端基础也省了!

好像大神的Stable Diffusion WebUI项目也是用的Gradio搭建的,功能很丰富,好处是啥都有,坏处是不够简洁,而且效能上也有影响,至少我这里测试的Python跑SD文生图要比WebUI快许多(diffusers库也是很大一部分原因)

环境准备

  1. 首先你的要有 Python 环境,
  2. 然后本地可以借助 diffusers 库跑起来SD模型,
  3. 后续即可使用 Gradio 来快速搭建 WebUI
# 安装SD模型依赖(前面SD跑起来的,这些都有了,可跳过)
# pip install diffusers transformers torch accelerate# 安装gradio依赖
pip install gradio

核心代码

如何本地部署,那你肯定已经把SD模型下载到本地了吧,我这里的模型路径使用的即是本地相对路径,根据你的项目环境修改路径和模型名称

模型加载视需要,能 cuda 就不用 cpu

作为简单实例,生图参数这里只传入了提示词,后续你可以根据需要定制,如:负向提示词、推理步数、图片宽高值等

跑起来后,会在终端中看到提示使用浏览器打开 http://127.0.0.1:7860 即可访问你的WebUI啦!简单 高效!

输入提示词,点击 Submit 尽情玩耍吧!

import gradio as gr
from diffusers import StableDiffusionPipeline
import torch# 加载Stable Diffusion模型
model_id = "./models/dreamshaper8-lcm"
model = StableDiffusionPipeline.from_pretrained(model_id, torch_dtype=torch.float32)
model.to("cpu")def generate_image(prompt):return model(prompt, num_inference_steps=20).images[0]# 创建Gradio界面
interface = gr.Interface(fn=generate_image, # 执行函数inputs=gr.Textbox(label="输入提示词"), # 输入组件outputs=gr.Image(label="生成结果"), # 输出组件title="AI绘画",flagging_mode="never" # 禁用默认的 Flag 按钮
)interface.launch()

添加参数控制

为防止小伙伴使用默认参数生图迷路,这里给出个参考,视需要增删参数值

# 添加参数控制
inputs = [gr.Textbox(label="提示词"),gr.Slider(1, 50, value=20, label="生成步数"),gr.Slider(512, 1024, value=512, step=64, label="图像尺寸")
]# 修改生图代码
def generate(prompt, steps, size):return model(prompt, num_inference_steps=steps, height=size, width=size).images[0]

在这里插入图片描述

相关文章:

  • Langchain入门介绍
  • Spring @Transactional 自调用问题深度解析
  • C语言----函数栈帧讲解
  • 抖音IP属地跟无线网有关系吗?一文解析
  • 【智慧城市】新中地GIS开发实训:基于 Vue 框架的武汉智慧旅游系统
  • http协议详解附带c/c++服务器和客户端源码
  • 在统信UOS/麒麟Kylin OS中创建网页桌面快捷方式
  • 反序列化漏洞1
  • python pymysql如何保证数据库更新成功
  • 12.thinkphp验证
  • 隧道调频广播覆盖的实现路径:隧道无线广播技术赋能行车安全升级,隧道汽车广播收音系统助力隧道安全管理升级
  • 海量信息处理分析有效决策
  • 控件和QWidget核心属性
  • Android——Activity与Fragment通信
  • SpringBoot 常用注解大全
  • 智能分析网关摄像机实时接入分析平台,如何开启周界防护智能新时代?
  • Allegro23.1新功能之将差分过孔替换成via structure操作指导
  • ArkTS中的空安全:全面解析与实践
  • 使用浏览器的Clipboard API实现前端复制copy功能
  • django.db.utils.OperationalError: (1050, “Table ‘你的表名‘ already exists“)
  • 银川市长信箱被指乱回复:问诗词大会、答工程欠款,官方称工作失误
  • 第二十届华表奖提名名单公布,张译、王一博、马丽、郭帆等入围
  • 持续更新丨伊朗港口爆炸事件已致561人受伤
  • 广州多条BRT相关线路将停运,全市BRT客运量较高峰时大幅下降
  • 美称中美贸易谈判仍在进行中,外交部:美方不要混淆视听
  • 沈阳市委常委马原出任阜新市委副书记、市政府党组书记