Gradio是一个开源库,用于仅使用Python构建易于使用且易于共享的应用程序。它特别适用于机器学习项目,旨在使测试、共享和展示模型简单直观。
Gradio的安装非常简单,直接使用pip即可安装:
pip install gradio
import gradio as gr
def greet(name):
return "Hello " + name + "!"
demo = gr.Interface(fn=greet, inputs="text", outputs="text")
demo.launch()
引入gradio库,以gr名称使用。创建一个名为greet的函数,实现传入name,输出Hello + 你的名字的功能。创建使用gr的Interface创建一个实例,传入三个参数fn是方法名称,输入是文本控件、输出也是文本控件,将该实例赋值购给demo。调用demo.launch()方法即可将我们的函数转化为前端应用。
运行结果
import gradio as gr
def greet(name):
return "Hello " + name + "!"
demo = gr.Interface(fn=greet, inputs=gr.Textbox(lines=2, placeholder="在这里填写你的名字"), outputs="text")
demo.launch()
在构建Interface实例时,我们使用Textbox的类替换字符串,可以通过组件属性对输入框进行定制。在这里我们将输入框调节成为两行,并添加默认的文字提示。
输入控件占用两行,带有提示语
import gradio as gr
def greet(name, is_morning, temperature):
salutation = "早上好" if is_morning else "晚上好"
greeting = f"{salutation} {name}, 今天的温度是 {temperature} (华氏度)"
celsius = (temperature - 32) * 5 / 9
return greeting, round(celsius, 2)
demo = gr.Interface(
fn=greet,
inputs=["text", "checkbox", gr.Slider(0, 100)],
outputs=["text", "number"],
)
demo.launch()
当有多个输入与输出时,Interface的输入输出参数传入控件列表,注意保证控件类型与我们需要包装的函数类型一致。
三个不同类型输入,两个输出
import numpy as np
import gradio as gr
def sepia(input_img):
sepia_filter = np.array([
[0.393, 0.769, 0.189],
[0.349, 0.686, 0.168],
[0.272, 0.534, 0.131]
])
sepia_img = input_img.dot(sepia_filter.T)
sepia_img /= sepia_img.max()
return sepia_img
demo = gr.Interface(sepia, gr.Image(), "image")
demo.launch()
输入一张图像,对其进行灰褐色变换,然后输出图像,图像控件的定义既可以使用gr.Image(),也可以使用"image"字符串。
以图象为输入输出,Stable Diffusion的以图绘图就是这种样式
扫码关注腾讯云开发者
领取腾讯云代金券
Copyright © 2013 - 2025 Tencent Cloud. All Rights Reserved. 腾讯云 版权所有
深圳市腾讯计算机系统有限公司 ICP备案/许可证号:粤B2-20090059 深公网安备号 44030502008569
腾讯云计算(北京)有限责任公司 京ICP证150476号 | 京ICP备11018762号 | 京公网安备号11010802020287
Copyright © 2013 - 2025 Tencent Cloud.
All Rights Reserved. 腾讯云 版权所有