动手学Avalonia:基于硅基流动构建一个文生图应用(一)
文生图
文生图,全称“文字生成图像”(Text-to-Image),是一种AI技术,能够根据给定的文本描述生成相应的图像。这种技术利用深度学习模型,如生成对抗网络(GANs)或变换器(Transformers),来理解和解析文本中的语义信息,并将其转化为视觉表现。文生图可以用于创意设计、图像编辑、虚拟现实、游戏开发等多个领域,为用户提供了从文字到图像的创造性转换工具。例如,用户可以输入“一只蓝色的猫坐在月球上”,AI将尝试生成符合描述的图像。
Stable Diffusion
Stable Diffusion 是一种潜在的文本到图像扩散模型。得益于 Stability AI 慷慨的计算资源捐赠以及 LAION 的支持,我们得以使用 LAION-5B 数据库的一个子集中的 512x512 图像来训练一个潜在扩散模型。与 Google 的 Imagen 类似,此模型使用一个冻结的 CLIP ViT-L/14 文本编码器来根据文本提示对模型进行条件设定。该模型拥有 8.6 亿参数的 UNet 和 1.23 亿参数的文本编码器,相对轻量,只需要至少 10GB VRAM 的 GPU 即可运行。详情请参阅以下部分和模型卡片。
简而言之,Stable Diffusion 是一个由 Stability AI 和 LAION 支持的项目,使用 LAION-5B 数据库中的图像训练而成。它借鉴了 Google Imagen 的设计理念,使用 CLIP ViT-L/14 文本编码器处理文本提示,具有相对较小的模型大小,使得它在普通 GPU 上即可运行。
Stable Diffusion 3 Medium 是目前 Stable Diffusion 3 系列中最新、最先进的文本到图像 AI 模型,包含 20 亿个参数。它擅长照片级真实感,处理复杂的提示并生成清晰的文本。
stable-diffusion-3-medium模型开源地址:https://huggingface.co/stabilityai/stable-diffusion-3-medium
硅基流动
由于我目前硬件资源不行无法本地运行stable-diffusion-3-medium,但又想试试文生图模型,因此现阶段可以采用调用api的方式来使用。硅基流动平台目前提供了stable-diffusion-3的调用接口,并且限时免费,因为选择调用硅基流动提供的api。
Avalonia
基于Avalonia可以使用C#+Xaml构建跨平台应用。
本项目或许不具备太大的实用价值,权且当做学习Avalonia的一个练手项目。
项目架构:
在使用Avalonia的模板创建项目之后,更改项目为.net8,并升级一下包,这样可能会避免一些报错。
由于发现不支持中文提示词,因此还是使用SemanticKerenl基于LLM将中文提示词翻译为英文提示词,然后根据英文提示词绘图。
观察一下桌面端的依赖项,桌面端引用了核心项目,使用的包是Avalonia.Desktop。
桌面端实现效果如下所示:
观察一下Android端的依赖项,Android端也引用了核心项目,使用的包是Avalonnia.Android与Xamarin.AndroidX.Core.SplashScreen。
Android端调试可以选择模拟器与物理机。
避坑
选择物理机调试时要打开开发者模式,打开USB调试,最重要的是要允许通过USB安装,我之前没有设置这个,就会遇到一个被用户取消的错误提示。
Android端不知道为什么SenmanticKernel对提示模板不起作用如下所示:
现在只能自己写英文提示词绘图。
Android端的实现效果如下:
以上就是动手学Avalonia:基于硅基流动构建一个文生图应用(一)的内容,希望对使用C#构建跨平台应用感兴趣的小伙伴有所帮助。
动手学Avalonia:基于硅基流动构建一个文生图应用(一)的更多相关文章
- .NET 跨平台应用开发动手教程 |用 Uno Platform 构建一个 Kanban-style Todo App
作者:Steven Giesel 翻译:Alan Wang 校对:李卫涵 – 微软 MVP 排版:Rani Sun 有什么比参考包含分步说明和代码示例的动手教程更好的学习新技术的方式呢?当你完成或 f ...
- 基于 vue2 + vuex 构建一个具有 45 个页面的大型单页面应用
源码地址: https://github.com/bailicangdu/vue2-elm 技术栈 vue2 + vuex + vue-router + webpack + ES6/7 + fetch ...
- 基于开源软件构建高性能集群NAS系统,包括负载均衡(刘爱贵)
大数据时代的到来已经不可阻挡,面对数据的爆炸式增长,尤其是半结构化数据和非结构化数据,NoSQL存储系统和分布式文件系统成为了技术浪潮,得到了长足的发展.非结构化数据目前呈现更加快速的增长趋势,IDC ...
- 基于jib-maven-plugin快速构建微服务docker镜像
一.说明 本文介绍基于 Maven 插件 jib-maven-plugin 实现快速构建 Spring Boot 程序镜像,并推送到远程仓库中,且 无需安装 Docker 环境 . Jib 是 Goo ...
- 流程自动化RPA,Power Automate Desktop系列 - 构建VuePress文档中心脚手架
一.背景 笔者曾基于VuePress搭建过一个文档中心,但是在实现在线管理功能之前,很多时候,新建文档需要手动处理很多数据,看有没有可能实现一个脚手架来处理这些问题,所谓脚手架,就是进行文档初始化的一 ...
- 小白学 Python 爬虫(31):自己构建一个简单的代理池
人生苦短,我用 Python 前文传送门: 小白学 Python 爬虫(1):开篇 小白学 Python 爬虫(2):前置准备(一)基本类库的安装 小白学 Python 爬虫(3):前置准备(二)Li ...
- 构建一个基本的前端自动化开发环境 —— 基于 Gulp 的前端集成解决方案(四)
通过前面几节的准备工作,对于 npm / node / gulp 应该已经有了基本的认识,本节主要介绍如何构建一个基本的前端自动化开发环境. 下面将逐步构建一个可以自动编译 sass 文件.压缩 ja ...
- Gravitational Teleport 是一个先进的 SSH 服务器,基于 Golang SSH 构建,完全兼容 OpenSSH
Gravitational Teleport 是一个先进的 SSH 服务器,可通过 SSH 或者 HTTPS 远程访问 Linux 服务器.其目的是为了替代 sshd.Teleport 可以轻松让团队 ...
- 使用 XMPP 构建一个基于 web 的通知工具——转
Inserting of file(使用 XMPP 构建一个基于 web 的通知工具.docx) failed. Please try again. http://www.ibm.com/develo ...
- 构建一个基于 Spring 的 RESTful Web Service
本文详细介绍了基于Spring创建一个“hello world” RESTful web service工程的步骤. 目标 构建一个service,接收如下HTTP GET请求: http://loc ...
随机推荐
- AI回答总不满意?你的提问方式可能完全错误!
AI回答总不满意?你的提问方式可能完全错误! 大家好,我是卷福同学,一个专注AI大模型整活的前阿里程序员,腾讯云社区2023新秀突破作者 向AI提问想写一篇论文,结果AI就生成2000字左右的文章后就 ...
- 5GC 关键技术之 SBA(基于服务的软件架构)
目录 文章目录 目录 前文列表 5GC 的关键技术 SBA(基于服务的软件架构) 微服务架构 NF 的模块化 NF Service 的服务化 前文列表 <简述移动通信网络的演进之路> &l ...
- Vue+springboot集成PageOffice实现在线编辑Word、excel文档
说明: PageOffice是一款在线的office编辑软件,帮助Web应用系统或Web网站实现用户在线编辑Word.Excel.PowerPoint文档.可以完美实现在线公文流转,领导批阅,盖章.可 ...
- 国产Linux音视频聊天程序开发遇到的坑及解决:相互听不到对方声音?
最近完成了一个银河麒麟上的视频聊天项目,在我们开发机上测试一切正常后,提交给甲方测试.结果发现在甲方的某些银河麒麟V10的电脑上,听不到声音. 这个问题,使用<Avalonia 实现跨平台的IM ...
- ef.core 事务不回滚的我遇到的一种情况分享
比如有几个Repository:_storeRep,_inventoryRep,_storeItemRep.基类封装有BeginTransaction(): using(var trans=_st ...
- Redis知识网络
Redis知识网络 作者:运维君莫笑 链接:https://www.zhihu.com/question/470465324/answer/2006650219 Redis为什么这么快? 根据官方数据 ...
- 宝塔面板6.X在Docker中安装宝塔面板5.9.1 – 我是不是太闲了?
我是不是太闲了,问你们三遍,场景是这样的,我在一台VPS里面安装宝塔面板6.X,宝塔面板的软件商店有Docker管理器2.0这一个免费好用的小玩意.大鸟安装好Docker管理器2.0,然后在Docke ...
- linux下基于官方源码编译ipopt
linux下基于官方源码编译ipopt 1.C++依赖项安装升级 由于需要编译c++所以需要安装一系列的依赖: apt-get update apt-get -y upgrade apt instal ...
- 音视频积累-Wakeups 解决
一.现象 ReplayKit2运行过程中经常会被系统杀掉,在USB连接手机后可以导出crash log Date/Time: 2017-09-29 12:16:59.321071 +0800 OS V ...
- itest(爱测试) 开源接口测试,敏捷测试管理平台10.0.1
一:itest work 简介 itest work 开源敏捷测试管理,包含极简的任务管理,测试管理,缺陷管理,测试环境管理,接口测试,接口Mock,还有压测 ,又有丰富的统计分析,8合1工作站.可按 ...