Gradio库的Gallery模块介绍与select方法详解

news2024/9/30 14:39:13

❤️觉得内容不错的话,欢迎点赞收藏加关注😊😊😊,后续会继续输入更多优质内容❤️

👉有问题欢迎大家加关注私戳或者评论(包括但不限于NLP算法相关,linux学习相关,读研读博相关......)👈

博主原文链接:https://www.yourmetaverse.cn/nlp/381/

请添加图片描述

(封面图由文心一格生成)

Gradio库的Gallery模块介绍与select方法详解

Gradio是一个用于构建交互式界面的Python库,能够帮助开发者快速创建Web界面来展示模型、输入数据并查看结果。Gradio的Gallery模块是其中一个组件,用于展示一个可以滚动浏览的图片列表。

使用Gallery模块时,它的输入是一个列表,列表中的元素可以是numpy数组、PIL图像、字符串,或者是(image, caption)元组。这些图片将会被展示在界面上。

下面是一个使用Gallery模块的示例:

# This demo needs to be run from the repo folder.
# python demo/fake_gan/run.py
import random

import gradio as gr


def fake_gan():
    images = [
        (random.choice(
            [
                "https://images.unsplash.com/photo-1507003211169-0a1dd7228f2d?ixlib=rb-1.2.1&ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&auto=format&fit=crop&w=387&q=80",
                "https://images.unsplash.com/photo-1554151228-14d9def656e4?ixlib=rb-1.2.1&ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&auto=format&fit=crop&w=386&q=80",
                "https://images.unsplash.com/photo-1542909168-82c3e7fdca5c?ixlib=rb-1.2.1&ixid=MnwxMjA3fDB8MHxzZWFyY2h8MXx8aHVtYW4lMjBmYWNlfGVufDB8fDB8fA%3D%3D&w=1000&q=80",
                "https://images.unsplash.com/photo-1546456073-92b9f0a8d413?ixlib=rb-1.2.1&ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&auto=format&fit=crop&w=387&q=80",
                "https://images.unsplash.com/photo-1601412436009-d964bd02edbc?ixlib=rb-1.2.1&ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&auto=format&fit=crop&w=464&q=80",
            ]
        ), f"label {i}" if i != 0 else "label" * 50)
        for i in range(3)
    ]
    return images


with gr.Blocks() as demo:
    with gr.Column(variant="panel"):
        with gr.Row(variant="compact"):
            text = gr.Textbox(
                label="Enter your prompt",
                show_label=False,
                max_lines=1,
                placeholder="Enter your prompt",
            ).style(
                container=False,
            )
            btn = gr.Button("Generate image").style(full_width=False)

        gallery = gr.Gallery(
            label="Generated images", show_label=False, elem_id="gallery"
        ).style(columns=[2], rows=[2], object_fit="contain", height="auto")

    btn.click(fake_gan, None, gallery)

if __name__ == "__main__":
    demo.launch()

上面的示例展示了如何使用Gallery模块来显示一个生成的图像列表。通过点击"Generate image"按钮,会调用fake_gan函数生成一些随机的图像,并在界面上展示出来。

除了展示图像,Gallery模块还提供了一个select方法,用于监听用户在图像列表中选择图片的事件。通过select方法,可以注册一个函数,当用户选择了某张图片时,该函数将会被调用。函数的参数可以包含gradio.SelectData类型的事件数据,其中包括被选择的图像的标题和索引。

下面是select方法的使用示例:

gallery.select(my_function, inputs=[text_box], outputs=[result_text])

上述示例中,通过select方法将一个名为my_function的函数注册为事件处理函数。当用户在Gallery模块中选择了一张图片时,my_function函数将会被调用,并将text_box组件的输入作为参数,将result_text组件作为输出。

以上就是Gradio库的Gallery模块的介绍以及select方法的详解。Gradio的Gallery模块可以方便地展示图片列表,并与其他组件进行交互,使得界面更加丰富和用户友好。

参数详解

下面是Gallery模块的参数表格和select方法的参数表格:

Gallery模块参数:

参数名数据类型默认值描述
valuelistNone默认情况下显示在图库中的图像列表。如果是可调用对象,当应用程序加载时,该函数将被调用以设置组件的初始值。
labelstrNone在界面中显示的组件名称。
everyfloatNone如果value是可调用对象,在客户端连接打开时每隔指定的秒数运行该函数。否则没有影响。队列必须启用。
show_labelboolTrue如果为True,将显示标签。
containerboolTrue如果为True,将组件放置在容器中,提供额外的边框填充。
scaleintNone相对于同一行中相邻组件的宽度比例。例如,如果组件A的scale=2,组件B的scale=1,则A的宽度将是B的两倍。应为整数。
min_widthint160最小像素宽度,如果屏幕空间不足以满足此值,则会换行。如果某个比例值导致该组件比min_width更窄,则首先将尊重min_width参数。
visibleboolTrue如果为False,将隐藏组件。
elem_idstrNone可选字符串,用作此组件在HTML DOM中的id。可用于定位CSS样式。
elem_classeslist[str]None可选字符串列表,用作此组件在HTML DOM中的类。可用于定位CSS样式。
columnsint, tuple2每个六个标准屏幕尺寸(<576px,<768px,<992px,<1200px,<1400px,>1400px)中应显示的图像数量。如果给出少于6个,则最后一个将用于所有后续断点。
rowsint, tupleNone图像网格中的行数,对于每个六个标准屏幕尺寸(<576px,<768px,<992px,<1200px,<1400px,>1400px)中的行数。如果给出少于6个,则最后一个将用于所有后续断点。
heightstrNone图库的高度。
previewboolNone如果为True,将以预览模式显示图库,显示所有图像的缩略图,并允许用户单击缩略图以查看完整大小的图像。
object_fitstrNone图库中缩略图图像的CSS object-fit属性。可以是"contain",“cover”,“fill”,“none"或"scale-down”。
allow_previewboolTrue如果为True,单击图库中的图像将放大显示。默认为True。

select方法参数:

参数名数据类型默认值描述
fnCallable, NoneRequired要包装为界面的函数。通常是机器学习模型的预测函数。函数的每个参数对应一个输入组件,函数应该返回单个值或一个值的元组,元组中的每个元素对应一个输出组件。
inputsComponent, listNone用作输入的Gradio组件列表。如果函数不接受输入,则应该是一个空列表。
outputsComponent, listNone用作输出的Gradio组件列表。如果函数没有返回输出,则应该是一个空列表。
api_namestr, NoneNone定义此参数可在API文档中公开该端点。
status_trackerNoneNone
scroll_to_outputboolFalse如果为True,完成后将滚动到输出组件。
show_progressstr“full”如果为True,将在等待时显示进度动画。
queuebool, NoneNone如果为True,则将请求放入队列,如果启用了队列。如果为False,则不会将此事件放入队列,即使启用了队列。如果为None,则使用Gradio应用程序的队列设置。
batchboolFalse如果为True,则函数应该处理一批输入,这意味着它应该接受每个参数的输入值列表。列表应具有相等的长度(并且最长为max_batch_size)。然后,函数必须返回一个元组的列表(即使只有1个输出组件),元组中的每个列表对应一个输出组件。
max_batch_sizeint4如果从队列中调用此函数,则最多可一起批处理的输入数。仅当batch=True时才相关。
preprocessboolTrue如果为False,则在运行“fn”之前不会运行组件数据的预处理(例如,如果使用Image组件以base64字符串的形式传递)。
postprocessboolTrue如果为False,则在将’fn’的输出返回给浏览器之前不会运行组件数据的后处理。
cancelsdict, list, NoneNone要在触发此侦听器时取消的其他事件的列表。例如,设置cancels = [click_event]将取消click_event,其中click_event是另一个组件的.click方法的返回值。尚未运行的函数(或正在迭代的生成器)将被取消,但当前正在运行的函数将被允许完成。
everyfloat, NoneNone在客户端连接打开时每隔指定的秒数运行此事件。以秒为单位解释。队列必须启用。

❤️觉得内容不错的话,欢迎点赞收藏加关注😊😊😊,后续会继续输入更多优质内容❤️

👉有问题欢迎大家加关注私戳或者评论(包括但不限于NLP算法相关,linux学习相关,读研读博相关......)👈

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/711160.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Flask boostrap实现图片视频上传下载展示

Flask boostrap实现图片视频上传下载展示 1、展示效果2、前端代码3、后端代码 1、展示效果 项目目录结构 2、前端代码 html <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>Title</title>&l…

Go 程序是怎样跑起来的

Go 程序是怎样跑起来的 引入 我们从一个 helloworld 的例子开始 package mainimport "fmt"func main() {fmt.Println("hello world") }用 vim 要打开&#xff0c;输入命令&#xff1a; :%!xxd下面是输出 00000000:7061 636b 6167 6520 6d61 696e 0a0a…

tomcat概述,优化,多实例部署

目录 一、概述 二、三个容器 1、Web 容器&#xff1a; 2、Servlet 容器&#xff1a; 3、JSP 容器&#xff1a; 三、Tomcat 功能组件结构 四、优化 1、启动速度优化 2、配置参数优化 五、多实例部署 一、概述 Tomcat 是 Java 语言开发的&#xff0c;Tomcat 服务器是一…

ubuntu下安装docker遇到的问题

如果你还没有安装虚拟机&#xff0c;推荐一篇关于安装Ubuntu的详细教程&#xff1a; VMware虚拟机安装Ubuntu20.04详细图文教程https://blog.csdn.net/weixin_41805734/article/details/120698714首先&#xff0c;安装docker的前提是虚拟机能够联网&#xff0c;如果能看到右上…

官方文档中docker安装php插件xdebug

docker安装php插件 直接上代码常见问题如果查看系统类型如何查看xdebug合适的版本安装异常提示Cannot find autoconf. Please check your autoconf installation and the$PHP_AUTOCONF environment variable. Then, rerun this script.configure: error: in /tmp/pear/temp/pea…

Zookeeper 分布式锁

优质博文&#xff1a;IT-BLOG-CN 一、简介 随着公司业务的发展&#xff0c;单机应用已经无法支撑现有的用户量&#xff0c;之前采用synchronized和Lock锁已经无法满足分布式系统的要求。我们应用程序目前都会运行120台&#xff0c;节假日会扩容至240台&#xff0c;属于多JVM环…

领域事件驱动(二)聚合与聚合根的了解

上一章对值对象以及实体进行了一些简单的讲解&#xff1a; 聚合 聚合&#xff1a;我们把一些关联性极强、生命周期一致的实体、值对象放到一个聚合里。 聚合有一个聚合根和上下文边界&#xff0c;这个边界根据业务单一职责和高内聚原则&#xff0c;定义了聚合内部应该包含哪…

U-Boot移植 - 2_环境搭建和u-boot烧录启动

文章目录 1. 编译环境搭建1.1 交叉编译器下载1.2 交叉编译器安装 2. 编译原厂uboot3. 烧录开发板3.1 烧录到SD卡3.2 启动开发板 1. 编译环境搭建 1.1 交叉编译器下载 嵌入式Linux开发&#xff0c;程序编译通常在电脑端的Linux&#xff08;如虚拟机中的Ubuntu)下进行编译&…

阿里云ECS部署

nginx 安装nginx # 查看dnf版本 dnf --version# 查找是否是否安装 dnf search nginx# 安装nginx dnf install nginx# 启动nginx systemctl start nginx# 查看nginx运行状态 systemctl status nginx# 相当于开机自启&#xff08;重启服务器&#xff0c;nginx自动启动&#xff…

GoLand下载、安装

一、Goland下载 官方最新版本下载地址&#xff1a; Download GoLand: A Go IDE with extended support for JavaScript, TypeScript, and databases 其他版本下载&#xff1a; Other Versions - GoLand 二、安装过程 1.下载好goland-2021.1.1安装包后&#xff0c;双击运行安装包…

【ARIMA-WOA-CNN-LSTM】合差分自回归移动平均方法-鲸鱼优化-卷积神经网络-长短期记忆神经网络研究(Python代码实现)

&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密&#xff0c;逻辑清晰&#xff0c;为了方便读者。 ⛳️座右铭&a…

Redis主从复制模式4

哨兵模式 有个哨兵一直在巡逻&#xff0c;突然发现。老大挂了&#xff0c;小弟们会自动投票&#xff0c;从众小弟中选出新的老大。即自动版的谋权篡位。我们把这个过程称为哨兵模式 设置哨兵模式语法格式&#xff1a; sentinel monitor 被监控主机名/IP Redis服务端口 票数 关闭…

AutoCV第十一课:DL基础

目录 DL基础前言1. BP训练mnist2. 权重初始化理论分析总结 DL基础 前言 手写AI推出的全新保姆级从零手写自动驾驶CV课程&#xff0c;链接。记录下个人学习笔记&#xff0c;仅供自己参考。 本次课程我们来了解下 BP 反向传播和学习权重初始化相关知识 课程大纲可看下面的思维导…

java新特性stream

stream Java 8 是一个非常成功的版本&#xff0c;这个版本新增的Stream&#xff0c;配合同版本出现的 Lambda &#xff0c;给我们操作集合&#xff08;Collection&#xff09;提供了极大的便利。 Stream将要处理的元素集合看作一种流&#xff0c;在流的过程中&#xff0c;借助…

PMP常用英文术语缩写总结(文字版+表格版+图片版)

PMP常用英文术语缩写总结&#xff08;文字版表格版图片版&#xff09; 文字版 PMBOK Project Management Body of Knowledge 项目管理知识体系 PMI Project Management Institute 项目管理协会 PMO Project Management Office 项目管理办公室 PMIS Project Management Inf…

Spring Boot 中的服务注册是什么,原理,如何使用

Spring Boot 中的服务注册是什么&#xff0c;原理&#xff0c;如何使用 Spring Boot 是一个非常流行的 Java 后端框架&#xff0c;它提供了许多便捷的功能和工具&#xff0c;使得开发者可以更加高效地开发微服务应用。其中&#xff0c;服务注册是 Spring Boot 微服务架构中非常…

代码源 线段树模板

线段树1 思路&#xff1a; 我们需要维护的东西是序列的最小值和最小值个数 这道题没有修改操作&#xff0c;因此不考虑修改 然后考虑Pushup 最小值很简单&#xff0c;直接取min 最小值个数怎么维护呢&#xff1f;考虑这个区间需要维护的值如何从左右两个区间获得 如果左右…

四.流程控制语句

1、条件语句 Go 编程语言中 if 条件语句的语法如下&#xff1a; 1、基本形式 if 布尔表达式 { /* 在布尔表达式为 true 时执行 */ } If 在布尔表达式为 true 时&#xff0c;其后紧跟的语句块执行&#xff0c;如果false 则不执行。 package main import "fmt" fu…

Spring MVC是什么?详解它的组件、请求流程及注解

作者&#xff1a;Insist-- 个人主页&#xff1a;insist--个人主页 作者会持续更新网络知识和python基础知识&#xff0c;期待你的关注 前言 本文将讲解Spring MVC是什么&#xff0c;它的优缺点与九大组件&#xff0c;以及它的请求流程与常用的注解。 目录 一、Spring MVC是什…