drag diffusion中的gradio代码逐行解析

2023-11-18

gradio库是一个用于创建简单web应用程序的库,允许用户通过浏览器和程序进行交互。

1.gr.Blocks(),使用with创建,在with中创建的任何组件都会自动添加到应用程序中,组件按创建顺序垂直显示在应用中。Blocks()模块用于组件在页面中的位置,处理复杂的数据流(输出可以作为其他函数的输入),基于用户交互更新组件的属性/可见性。

with gr.Blocks() as demo:

    pass

        使用with语句创建了名为demo的上下文管理器。这个上下文管理器中创建了名为Blocks()的对象,该对象的内部包含GUI组件。

2.gr.grow()下的元素全部水平显示。行布局:将组件水平排列在一行中。

with gr.Row():

    gr.Markdown("""# Official Implementation of [DragDiffusion](https://arxiv.org/abs/2306.14435)""")

即以下部分:gr.Markdown()这里面可以放Markdown格式的内容,或gr.HTML()这个就是常见的HTML内容了。

 

3.gr.Tab()标签页,用于创建多个标签页,使界面更有组织、易于导航。

with gr.Tab(label="Editing Real Image"):
    pass

4.gr.state(),创建了3个gradio状态对象mask、selected_points、original_image,用于存储mask、point和原始输入图像的。它的参数None、[]、None分别是每一个对象的初始值。

mask = gr.State(value=None) # store mask
selected_points = gr.State([]) # store points
original_image = gr.State(value=None) # store original input image

5.gr.Column()列布局,将组件垂直排列在一列中。

gr.Image()用于处理图像输入和输出。

gr.Button(按钮)用于创建按钮,用户可以点击按钮执行特定的操作。

with gr.Column():
    gr.Markdown("""<p style="text-align: center; font-size: 20px">Draw Mask</p>""")
    canvas = gr.Image(type="numpy", tool="sketch", label="Draw Mask",show_label=True, height=LENGTH, width=LENGTH) # for mask painting
    train_lora_button = gr.Button("Train LoRA")
with gr.Column():
    gr.Markdown("""<p style="text-align: center; font-size: 20px">Click Points</p>""")
    input_image = gr.Image(type="numpy", label="Click Points",
    show_label=True, height=LENGTH, width=LENGTH) # for points clicking
    undo_button = gr.Button("Undo point")
with gr.Column():
    gr.Markdown("""<p style="text-align: center; font-size: 20px">Editing Results</p>""")
    output_image = gr.Image(type="numpy", label="Editing Results",show_label=True, height=LENGTH, width=LENGTH)
    with gr.Row():
        run_button = gr.Button("Run")
        clear_all_button = gr.Button("Clear All")

分别对应一个小块

6.gr.Textbox()文本框用于接收和显示文本输入和输出。

# general parameters
with gr.Row():
    prompt = gr.Textbox(label="Prompt")
    lora_path = gr.Textbox(value="./lora_tmp", label="LoRA path")
    lora_status_bar = gr.Textbox(label="display LoRA training status")

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

drag diffusion中的gradio代码逐行解析 的相关文章

随机推荐

  • 1. 模型的代码生成 - 代码生成方法

    文章目录 1 模型的代码生成 代码生成方法 1 1 模型的解算器solver设置 1 2 生成的系统目标文件设置 1 3 其它生成代码的设置 1 3 1 硬件平台设置 1 3 2 Optimization页面的设置 1 3 3 Report
  • js如何获取当前时间、前几个月或后几个月时间

    获取当前的时间 格式为 YYYY MM DD function getNowTime var year nowDate getFullYear var month nowDate getMonth 1 lt 10 0 nowDate get
  • 安装scikit-learn的详细过程

    1 打开命令终端 检查Python和pip的版本 scikit learn支持的Python版本是3 6及以上 pip版本最低为9 0 1 2 升级pip版本 可选 使用命令 pip install user upgrade pip 升级p
  • MySQL substr函数使用详解

    作者主页 士别三日wyx 作者简介 CSDN top100 阿里云博客专家 华为云享专家 网络安全领域优质创作者 专栏简介 此文章已录入专栏 MySQL数据库快速入门 substr函数 一 作用 二 语法 三 使用 1 截取字符串 2 截取
  • (数据科学学习手札52)pandas中的ExcelWriter和ExcelFile

    一 简介 pandas中的ExcelFile 和ExcelWriter 是pandas中对excel表格文件进行读写相关操作非常方便快捷的类 尤其是在对含有多个sheet的excel文件进行操控时非常方便 本文就将针对这两个类的使用方法展开
  • TP框架修改后台路径方法

    直接映射 admin 后台修改路径为 myadmin888 文章来源 外星人来地球 欢迎关注 有问题一起学习欢迎留言 评论 转载于 https www cnblogs com lovebing p 11579639 html
  • 青蛙过河 蓝桥杯 2097

    问题描述 小青蛙住在一条河边 它想到河对岸的学校去学习 小青蛙打算经过河里 的石头跳到对岸 河里的石头排成了一条直线 小青蛙每次跳跃必须落在一块石头或者岸上 不过 每块石头有一个高度 每次小青蛙从一块石头起跳 这块石头的高度就 会下降 1
  • 自动驾驶:轨迹预测综述

    自动驾驶 轨迹预测综述 轨迹预测的定义 轨迹预测的分类 基于物理的方法 Physics based 基于机器学习的方法 Classic Machine Learning based 基于深度学习的方法 Deep Learning based
  • Java全栈面试题(三)--Redis

    对Redis的理解 Redis是一款开源的高性能键值对存储系统 支持多种数据类型 如字符串 哈希 列表 集合 有序集合等 主要用于缓存 消息队列 排行榜 计数器等场景 能够提供快速读写 高并发 持久化等功能 Redis是单线程的 通过采用多
  • java -jar后台启动的四种方式

    Linux系统启动java项目四种方法 1 用java jar xxx jar 点击回车就会启动成功 但是当退出或者关闭远程工具就会把进程关闭 以上就是启动的项目Java jar xxx jar 但是点击过Ctl c或者把此窗口关闭 就会杀
  • 【Linux】shell命令与文件权限

    目录 前言 shell命令以及运行原理 Linux权限的概念 1 文件访问者的分类 人 2 文件类型和访问权限 事物属性 3 文件权限值的表示方法 4 文件访问权限的相关设置方法 4 1 chmod指令 4 2 chown指令 4 3 ch
  • 计算机应届博士生的一点求职经验——华为篇

    一点也许有用的求职经验与感悟 前言 机考 技术面试 主管面试 HR面试 性格测试 思考与选择 前言 华为的应届生申请可以填写2个志愿 一共有五道考核 机考 必做 2轮技术面试 部门主管面试 HR 面试和性格测试 本文会对这几个方面分别展开
  • 解决neo4j导入数据时报错:neo4j already contains data, cannot do import here报错

    完整报错如下 java lang IllegalStateException neo4j already contains data cannot do import here at org neo4j internal batchimpo
  • Android Webview 部分图片显示不出来问题

    最近发现在华为Mate 10 上面我们app的内置webview会有部分图片不展示 直接就图裂了 经过绕了一大圈后才解决了问题 其实问题原因很简单 但是分析过程不顺利 拿出来分享下 希望可以帮助大家少走弯路 简单说下这个问题的背景 1 我们
  • Geoffrey Hinton、姚期智、张钹、Sam Altman等专家共话AI安全与对齐丨2023智源大会议程公开...

    6月9日 2023北京智源大会 将邀请AI领域的探索者 实践者 以及关心智能科学的每个人 共同拉开未来舞台的帷幕 你准备好了吗 与会知名嘉宾包括 图灵奖得主Yann LeCun OpenAI创始人Sam Altman 图灵奖得主Geoffr
  • stata如何看某个命令的options?即逗号后面可以加上哪些命令

    以codebook这一命令为例 在命令窗口输入 help codebook 则会出现以下内容
  • mysql text多少字节_mysql里面text能存多大的数据

    展开全部 最多可以存储65535字节来数据 源 在mysql中 文本文件bai存储从0到65 535字节 du64KB 的字节 因此 mysql中的文zhi本最多可以dao存储65 535字节 文本文件有四种类型 tinytext Text
  • 05_numpy学习笔记(下):大作业

    大作业回顾 1 导入鸢尾属植物数据集 保持文本不变 知识点 输入和输出 如何导入存在数字和文本的数据集 numpy loadtxt 2 求出鸢尾属植物萼片长度的平均值 中位数和标准差 第1列 sepallength 知识点 统计相关 如何计
  • vue3组件之间通信(三)——爷孙组件传递属性和方法

    文章目录 1 setup函数传递属性和方法 attrs 1 代码 2 主要代码和详细讲解 3 注意点 2 script setup 语法糖传递属性和方法 1 代码 2 主要代码和详细讲解 3 注意点 前言 爷孙组件使用prop一层一层传值和
  • drag diffusion中的gradio代码逐行解析

    gradio库是一个用于创建简单web应用程序的库 允许用户通过浏览器和程序进行交互 1 gr Blocks 使用with创建 在with中创建的任何组件都会自动添加到应用程序中 组件按创建顺序垂直显示在应用中 Blocks 模块用于组件在