Gradio从入门到精通(6)---接口类Blocks


前言

Blocks 可以让组件布局更加灵活,在不适用Blocks的情况下,组件的布局是默认的垂直布局。通过gr.Row , gr.Column等控制组件的布局

Blocks 是 Gradio 的低级 API,它允许您创建比 Interfaces 更多的自定义 Web 应用程序和演示(但仍然完全使用 Python)。

与 Interface 类相比,Blocks 提供了更大的灵活性和控制:(1) 组件的布局 (2) 触发函数执行的事件 (3) 数据流(例如,输入可以触发输出,从而触发下一级输出)。Blocks 还提供了将相关演示组合在一起的方法,例如使用选项卡。

Blocks 的基本用法如下:创建一个 Blocks 对象,然后将其用作上下文(使用 “with” 语句),然后在 Blocks 上下文中定义布局、组件或事件。最后,调用 launch() 方法启动演示。

一、Blocks布局方式

行布局(Row):用于水平排列组件。
列布局(Column):用于垂直排列组件。
标签页(Tab):允许你将界面分割成多个标签页,每个标签页包含独立的组件和布局。

二、方法

launch方法

gradio.Blocks.launch(···)

功能描述
launch()方法的主要功能是启动一个本地服务器,使得用户可以在Web浏览器中查看和交互Gradio应用程序。它提供了多种部署方式,包括本地部署、通过HuggingFace托管、FastAPI挂载以及Gradio-lite浏览器集成。

常用参数

参数名类型描述默认值
shareBoolean是否生成公共访问地址。当设置为True时,Gradio将提供一个外网URL以便访问应用。False
authTuple/Function设置登录验证。可以是一个包含用户名和密码的元组,或者是一个自定义的验证函数。
inlineBoolean是否将Gradio应用嵌入到当前页面的iframe中,而不是在新窗口或标签页中打开。False
inbrowserBoolean是否在新浏览器标签页中打开Gradio应用。如果为True,则点击启动按钮将在新标签页中打开应用。False
debugBoolean是否启用调试模式。在调试模式下,将提供更多错误信息,特别是在Jupyter环境中运行时。False
favicon_pathString (文件路径)设置网页图标的路径。允许你自定义浏览器标签页上显示的图标。
show_apiBoolean是否在Gradio应用的底部显示API帮助文档。这有助于开发者了解可用的API端点。False
ssl_verifyBoolean是否在请求外部资源时验证SSL证书。设置为False可以绕过自签名证书的验证错误,但请注意安全风险。True

示例代码

import gradio as gr
def reverse(text):
    return text[::-1]
with gr.Blocks() as demo:
    with gr.Row():
        button = gr.Button(value="Reverse")
        button.click(reverse, gr.Textbox(), gr.Textbox())

demo.launch(share=False, auth=("123", "123"))

在这里插入图片描述

可以看到使用gr.Row函数将button的和输入框放到了一行,如果使用该函数,则默认是垂直布局

import gradio as gr
def reverse(text):
    return text[::-1]
with gr.Blocks() as demo:
	button = gr.Button(value="Reverse")
    button.click(reverse, gr.Textbox(), gr.Textbox())

demo.launch(share=False, auth=("123", "123"))

在这里插入图片描述

queue方法

gradio.Blocks.queue(···)

功能描述
launch()方法的主要功能是通过启用队列,您可以控制用户何时知道自己在队列中的位置,并设置允许的最大事件数限制。

示例代码

with gr.Blocks() as demo:
    button = gr.Button(label="Generate Image")
    button.click(fn=image_generator, inputs=gr.Textbox(), outputs=gr.Image())
demo.queue(max_size=10)
demo.launch()

load方法

gradio.Blocks.load(block, ···)

功能描述
此侦听器在浏览器中最初加载 Blocks 时触发。

unload方法

gradio.Blocks.unload(fn, ···)

功能描述
当用户关闭或刷新选项卡以结束用户会话时,将触发此侦听器。它对于在应用程序关闭时清理资源很有用。

示例代码

import gradio as gr
with gr.Blocks() as demo:
    gr.Markdown("# When you close the tab, hello will be printed to the console")
    demo.unload(lambda: print("hello"))
demo.launch()

总结

Blocks的灵活性意味着你可以创建几乎任何类型的Web界面,但这也需要一定的学习和实践才能熟练掌握。

### Stable Diffusion WebUI入门教程 #### 一、下载与安装 为了开始使用Stable Diffusion WebUI (AUTOMATIC1111),需先完成软件的下载和安装过程。该工具不仅支持常见的NVIDIA GPU,还能够在Intel CPU以及集成/独立GPU上运行,这得益于Intel分发的OpenVINO工具包的支持[^2]。 #### 二、初步探索界面布局 启动程序后,用户会面对一个直观而复杂的图形化界面。此界面专为满足高级用户的图像生成需求所设计,提供了一系列强大且灵活的功能选项。对于初学者而言,建议按照官方提供的详细使用指南逐步学习各个部分的操作方式[^1]。 #### 三、创建第一个项目 当环境搭建完毕之后,就可以尝试创建自己的首个作品了。此时应该参照具体的实例来练习不同参数下的效果变化,从而加深对各项设定的理解程度。例如,在处理非首次生成的情况下启用色彩校正功能可以帮助改善颜色表现力,防止出现过度褪色的情况[^4]。 #### 四、深入挖掘特性 随着技能水平逐渐提高,可以进一步探究更多进阶特性和优化策略。比如调整采样器类型、迭代次数等核心参数;利用LoRA模型扩展创造力边界;或是借助第三方插件实现个性化定制等功能。这些都将有助于提升最终产出的质量并开拓新的创作可能性。 ```python # Python脚本用于自动化某些任务或批量处理图片 import gradio as gd from modules import script_callbacks, shared def custom_function(image_input): # 自定义逻辑... pass script_callbacks.on_after_component(custom_function) ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

叶与花语

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值