零基础快速搭建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
python 复制代码
# 安装SD模型依赖(前面SD跑起来的,这些都有了,可跳过)
# pip install diffusers transformers torch accelerate

# 安装gradio依赖
pip install gradio

核心代码

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

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

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

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

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

python 复制代码
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()

添加参数控制

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

python 复制代码
# 添加参数控制
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]
相关推荐
万粉变现经纪人2 小时前
如何解决 pip install 安装报错 ModuleNotFoundError: No module named ‘tokenizers’ 问题
python·selenium·测试工具·scrapy·beautifulsoup·fastapi·pip
编程武士4 小时前
从50ms到30ms:YOLOv10部署中图像预处理的性能优化实践
人工智能·python·yolo·性能优化
我的xiaodoujiao4 小时前
Windows系统Web UI自动化测试学习系列2--环境搭建--Python-PyCharm-Selenium
开发语言·python·测试工具
傻啦嘿哟6 小时前
Python SQLite模块:轻量级数据库的实战指南
数据库·python·sqlite
Q_Q5110082857 小时前
python+django/flask+uniapp基于微信小程序的瑜伽体验课预约系统
spring boot·python·django·flask·uni-app·node.js·php
XueminXu7 小时前
Python读取MongoDB的JSON字典和列表对象转为字符串
python·mongodb·json·pymongo·mongoclient·isinstance·json.dumps
techdashen7 小时前
12分钟讲解Python核心理念
开发语言·python
jie*7 小时前
小杰机器学习(nine)——支持向量机
人工智能·python·机器学习·支持向量机·回归·聚类·sklearn
闭着眼睛学算法7 小时前
【华为OD机考正在更新】2025年双机位A卷真题【完全原创题解 | 详细考点分类 | 不断更新题目 | 六种主流语言Py+Java+Cpp+C+Js+Go】
java·c语言·javascript·c++·python·算法·华为od
郝学胜-神的一滴7 小时前
谨慎地迭代函数所收到的参数 (Effective Python 第31条)
开发语言·python·程序人生·软件工程