UI-Diffuser——使用生成式扩散模型的UI原型设计算法解析

概述。

移动UI是影响参与度的一个重要因素,例如用户对应用的熟悉程度和使用的便利性。如果你有一个类似的应用程序,你可能会选择一个具有现代、好看的设计的应用程序,而不是一个旧的设计。然而,要从头开始研究什么样的UI最适合应用开发,需要花费大量的时间和精力。

因此,为了支持UI设计,本文提出了UI-Diffuser,它应用了最近得到显著发展的生成性人工智能(稳定扩散),来自动生成UI原型。

UI-Diffuser "通过简单地输入简单的文本提示和UI组件来为你生成UI设计,如果你使用过ChatGPT,你可能已经意识到,自2022年以来,一个生成性的人工智能会为你生成几个候选方案。你会发现,让它们被创造出来,然后修改它们要比从头开始想办法要容易得多,也容易得多。

这篇文章描述了这个UI-Diffuser是如何工作的,以及它的作用。

UI-Diffuser

UI-Diffuser "的概述如下图所示,它包括两个步骤:在第一步,你输入一个UI组件(文本、图标、按钮或图片),Stable Diffusion从UI组件中生成一个合理的布局。在下一步,StableDiffusion通过将第一步生成的布局与文本提示(“一个应用程序中的搜索引擎”)相结合,生成UI设计。

第一步,生成布局,使用一种叫做 "LayoutDM "的方法。这是由CyberAgent在2023年提出的(arXiv,博客)。基于指定的组合,一个结构化的用户界面布局被生成,考虑到各种因素,如类别、大小、位置和组件之间的关系等等。对于第二步,用户界面设计的生成,已经提出了以下架构:文本编码器(CLIP)、图像信息创建器(UNet)、图像解码器(VAE)和控制网。

一旦输入LayoputDM生成的布局和文本提示,就会生成UI设计的图像。首先,文本提示被文本编码器(CLIP)转换为标记嵌入,然后图像信息创建器(UNet)根据标记嵌入生成图像 嵌入,最后由图像解码器(VAE)生成用户界面设计的图像。图像解码器(VAE)生成用户界面设计的图像。为了支持额外的输入条件,如布局,控制网被整合到UNet中:由LayoputDM生成的布局被输入到这个UNet整合的控制网中。

UI-Diffuser 的作用

下表显示了一个由’UI-Diffuser’生成的UI设计样本:第一列’组件和描述’显示了输入到’UI-Diffuser’的UI组件和文本提示;第二列’生成的第三行,‘生成的UI’,是最终UI设计的样本:输入UI组件和文本提示,在短短的几秒钟内,UI设计就会在短短几秒钟内生成。

乍一看,由’UI-Diffuser’生成的UI设计似乎是高质量的,但仔细观察就会发现,有些UI组件被遗漏了,有些则设计得有些糟糕。例如,在上表第5行的 "生成的UI "中,"广告 "组件被忽略了。这个样本表明, 由’UI-Diffuser’创建的UI设计更适合作为一个可以为UI设计师提供创意和灵感的工具,而不是作为一个功能齐全的UI原型设计工具 。

总结

本文提出了UI-Diffuser,它可以自动生成带有UI组件和简单文本提示的UI设计图像。演示显示了它的实用性,尽管目前很难用这个工具完全取代UI设计,但它已经显示了作为一个原型设计工具的潜力,可以为UI设计师提供想法和灵感。然而,该工具确实显示了一些问题,例如输入的UI组件没有被包括在生成的图像中,以及设计质量差,因此需要进一步改进。

研究小组打算对UI-Diffuser进行全面的评估,首先建立一个改进的基准,然后调查三个关键因素:生成的UI的可设计性、与UI组件的兼容性以及与文本描述的兼容性。

此外,为了加强UI-Diffuser,他们计划在"开发具有高质量屏幕截图描述的数据集"、"从生成的UI图像中剪切组件 "和 "从生成的UI中生成代码 "方面开展工作。例如,关于 “从生成的用户界面图像中剪切组件”,生成的用户界面图像作为用户界面设计的想法是有用的,但通常不能被编辑或直接重复使用。

为了克服这一限制,他们还在考虑一种方法,根据生成的布局图像中的绝对位置来修剪生成的用户界面图像的每个组件。例如,由于UI组件可能会相互重叠,修剪上面的组件可能会导致下面的组件出现空白,他们正在考虑在这种情况下用下面组件的颜色来填补空白的方法。

至于"从生成的UI生成代码",公司也在考虑一个功能,即允许从生成的UI设计中生成与设计相对应的代码:UI-Diffuser生成的布局图像包含组件的类别、尺寸和位置,这样就可以生成相应的代码可以被生成。

现有的设计工具,如Figma,也有搜索设计和检查已创建的设计的代码的能力,但这是一个令人惊讶的耗时和困难的任务。如果用生成性人工智能实现自动化,就有可能更灵活地生成各种设计,而且是用更直观和自然的语言。在未来,预计任何人都能更容易地创建UI设计原型,使应用开发更加高效。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

解决RTC内核驱动的问题bm8563

常用pcf-8563 , 国产平替BM8563(驱动管脚一致); 实时时钟是很常用的一个外设,通过实时时钟我们就可以知道年、月、日和时间等信息。 因此在需要记录时间的场合就需要实时时钟,可以使用专用的实时时钟芯片来完成此功能 RTC 设备驱动是一个标准…

wmware启动ubuntu18.04,提示虚拟机使用中

背景和原因 搭建虚拟机环境时,处理问题,忘记虚拟机关机,直接关机,导致虚拟机不能使用,提示使用中 解决 ,在关掉虚拟机的情况下,删除虚拟机下的以下文件 总结 每次关电脑前记得先关掉虚拟机&…

【跟马少平老师学AI】-【神经网络是怎么实现的】(七-3)词向量应用举例

一句话归纳:用TextCNN实现文本情感分类。 1)TextCNN: 文本的卷积核是一维的。 2)文本卷积运算:

【目标检测】DEtection TRansformer (DETR)

一、前言 论文: End-to-End Object Detection with Transformers 作者: Facebook AI 代码: DEtection TRansformer (DETR) 特点: 无proposal(R-CNN系列)、无anchor(YOLO系列)、无NM…

淘宝新店铺一般多久开始有单

淘宝新店铺一般多久开始有单 淘宝推广可以使用3an推客。3an推客(CPS模式)给商家提供的营销工具,由商家自主设置佣金比例,激励推广者去帮助商家推广商品链接,按最终有效交易金额支付佣金,不成交不扣费。是商…

DRF版本组件源码分析

DRF版本组件源码分析 在restful规范中要去,后端的API中需要体现版本。 3.6.1 GET参数传递版本 from rest_framework.versioning import QueryParameterVersioning单视图应用 多视图应用 # settings.pyREST_FRAMEWORK {"VERSION_PARAM": "versi…

[C++][数据结构]二叉搜索树:介绍和实现

二叉搜索树 概念 二叉搜索树又称二叉排序树,它是一棵空树,或者是具有以下性质的二叉树: 若它的左子树不为空,则左子树上所有节点的值都小于根节点的值若它的右子树不为空,则右子树上所有节点的值都大于根节点的值它的左右子树也…

【数据结构】这样学习串的朴素模式匹配算法,简直不要太容易……

串的朴素模式匹配算法 导读一、串的模式匹配1.1 模式匹配是什么?1.2 为什么要有模式匹配算法? 二、朴素模式匹配算法2.1 算法底层逻辑2.2 算法实现2.2.1 过程解析2.2.2 思路分析2.2.3 思路总结2.2.4 代码编写数据类型函数的三要素函数主体 2.2.5 代码测试…

ThreeJS:项目搭建

介绍如何基于Vite、Vue、React构建ThreeJS项目。 Vite项目 1. 初始化项目,命令:npm init vitelatest, 2. 安装依赖,命令:npm install, 3. 启动项目,命令:npm run dev。 4. 样式初始…

06 - metastore服务、hive服务启动脚本以及相关使用技巧

目录 1、metastore服务 1.1、metastore运行模式 1.2、metastore部署 1.3、测试 2、编写Hive服务启动脚本 3、Hive使用技巧 3.1、Hive常用交互命令 3.2、Hive参数配置方式 3.3、Hive常见属性配置 1、metastore服务 Hive的metastore服务的作用是为Hive CLI或者Hiveserv…

【面试经典 150 | Kadane】环形子数组的最大和

文章目录 写在前面Tag题目来源解题思路方法一:求最大非空子数组和最小子数组和 写在最后 写在前面 本专栏专注于分析与讲解【面试经典150】算法,两到三天更新一篇文章,欢迎催更…… 专栏内容以分析题目为主,并附带一些对于本题涉及…

【Java基础】Maven安装与配置

1. 前言 Maven是一个基于 Java 的项目管理工具,因此最基本的要求是在计算机上安装 JDK。 Maven 对系统要求如下表: 2. Java环境设置 在 Java 官方网站 下载并安装 JDK 7.0 及以上版本,如果您不了解 JDK 的安装和配置,请参考&…

数组删除元素

数组删除元素 1.利用新的数组 将原数组arr的元素,复制到新数组newArr中,复制过程中将要删除的元素,选择不复制 public class Test01{public static void main(String [] args){String [] arr {"zhangsan","lisi","…

计算机毕业设计hadoop+hive+hbase学情分析 在线教育大数据 课程推荐系统 机器学习 深度学习 人工智能 大数据毕业设计 知识图谱 大数据毕业设计

毕 业 设 计(论 文)开 题 报 告 1.结合毕业设计(论文)课题情况,根据所查阅的文献资料,每人撰写不少于1000字的文献综述: 一、研究背景和意义 “互联网”和大数据带来了网络教育的蓬…

计算机网络chapter2——应用层

文章目录 第2章 应用层章节引出—— 2.1应用层协议原理2.1.1 网络应用程序体系结构(1)客户-服务器体系结构(2)对等(P2P)体系结构2.1.2 进程通信1.客户和服务器进程2.进程与计算机网络之间的接口3. 进程寻址 2.1.3 可供应用程序使用…

dns服务器是什么,dns服务器工具如何选?

“http”“.com”这些我们都不陌生,这就是我们平时所输入的网址的前后缀,其实他们都是某台服务器的主机名依靠DNS服务器转化的。有时我们会遇到网络访问慢或者网址打不开的情况,一般都是网速问题。但如果只有你访问慢,而其他人正常…

图像处理1,灰度,data,for循环批处理图片,图片属性查看,图片单通道查看,椒盐噪声的生成,滤波处理,图像分割

图像处理1 灰度处理data库的使用for循环批处理图像对图像属性的查看图片类型图片尺寸图片宽度图像高度通道数总像素个数最大像素值最小像素值,像素平均值图像点像素值 for循环分别显示图像rgb通道椒盐噪声的生成中值滤波处理高斯模糊处理图像切割 灰度处理 from sk…

JavaScript百炼成仙自学笔记——2

一、循环遍历&#xff1a; 方式一 for(var i0;i<10;i){console.log(i); }方式二 var i 0; while(i < 100){console.log(i);i; }细看代码就是 先定义变量i&#xff0c;再执行{}中的代码&#xff0c;最后改循环变量的值 二、遍历 什么事遍历&#xff1f; 什么时候会用…

【系统架构师】-选择题(十)

1、某计算机系统页面大小为2K&#xff0c;进程P1的页面变换表如下图所示&#xff0c;若P1要访问数据的逻辑地址为十六进制1B1AH&#xff0c;那么该逻辑地址经过变换后&#xff0c;其对应的物理地址应为十六进制 &#xff08;231AH&#xff09; 。 四位换一位 逻辑地址1B1AH对应…

一文理解前端如何调用后端(java)方法

阅读完文章大约需要3~5分钟 文章目录 一、什么是后端方法路径&#xff1f;二、ajax、axios调用后端方法总结 一、什么是后端方法路径&#xff1f; 这里针对的是 java 后端项目中在 controller 文件夹中的类文件&#xff0c;这类文件的后缀一般都会带有 controller&#xff0c…