深度学习入门教程(2):使用预训练模型来文字生成图片TextToImageGenerationWithNetwork

本深度学习入门教程是在polyu HPCStudio 启发以及资源支持下进行的,在此也感谢polyu以及提供支持的老师。

本文内容:在GoogleColab平台上使用预训练模型来文字生成图片Text To Image Generation With Network

(1)你会学到什么:

了解什么是从文本生成图像以及如何使用它。 使用预先训练的模型来创造你的艺术以及如何让它变得更好

(2)大纲outline:

1:什么是文本到图像生成?
2:什么是稳定扩散?
3:快速工程prompt project
4:使用预训练模型生成图像的示例代码

1:什么是文本到图像生成?

文本到图像模型是一种机器学习模型,它将自然语言描述作为输入并生成与该描述匹配的图像。 由于深度神经网络的进步,此类模型于 2010 年代中期开始开发。 2022 年,最先进的文本到图像模型的输出,例如 OpenAI 的 DALL-E 2、Google Brain 的 Imagen、Midjourney 和 StabilityAI 的 Stable Diffusion 的输出开始接近真实照片和人类绘制艺术的质量。

文本到图像模型通常结合了语言模型和生成图像模型,其中语言模型将输入文本转换为潜在表示,生成图像模型生成以该表示为条件的图像。 最有效的模型通常是根据抓取的大量图像和文本数据进行训练的来自网络。
在这里插入图片描述

2:什么是稳定扩散 stable diffusion

Stable Diffusion 是 2022 年发布的深度学习文本到图像模型。它主要用于生成以文本描述为条件的详细图像,但它也可以应用于其他任务,例如修复、外绘和生成,由文本提示引导的图像到图像的翻译。

  • 超分辨率 - 对输入图像进行去噪
  • 潜在扩散模型 - 一次又一次地去噪
  • 模拟出全新形象

Stable diffusion 的结构
A text encoder文本编码器,可将您的提示转换为潜在向量。

A diffusion model扩散模型,反复对 64x64 潜在图像块进行“去噪”。

A decoder 解码器,将最终的 64x64 潜在补丁转换为更高分辨率512x512 图像。

3:快速工程 prompt project?

Prompt project是一种用特定措辞创作出优秀艺术作品或指示人工智能(机器人)提供所需输出(一般而言)的技能。

  1. 核心提示——主要主题。 例如 主角男孩、女孩、老人、动物等,多一些描述和形容词就更好了。

  2. 风格 - 例如 铅笔画、油画、照片等。

  3. . 艺术家 - 例如 Vincent Van Gogh、Leonardo DaVinci、Greg Rutkowski 等

  4. 收尾工作 - 例如 artstation、unreal engine 等上的趋势。 https://beta.dreamstudio.ai/prompt-guide

  5. 您还可以要求 AI 帮助完善您的提示。

下面是微软为优化提示而构建的模型

https://huggingface.co/spaces/microsoft/Promptist

4:使用预训练模型生成图像的示例代码

4.1
百度搜索GoogleColab,进去后登陆账号,注册一个notebook就可以,然后点击连接到GPU
在这里插入图片描述
在这里插入图片描述
4.2
依次导入需要的库

!pip install diffusers!pip install setuptools-rust!pip install transformers
from diffusers import StableDiffusionPipeline
#setup pipeline to pretrained model  下载预训练模型
pipe = StableDiffusionPipeline.from_pretrained("IDEA-CCNL/Taiyi-Stable-Diffusion-1B-Chinese-v0.1").to("cuda")
# 测试
prompt = '远上寒山石径斜,白云深处有人家。'
image = pipe(prompt, guidance_scale=7.5).images[0]  
image.save("白云深处.png")

在这里插入图片描述

prompt = '罨畫清溪上, 蓑笠扁舟一隻, 油畫'
image = pipe(prompt, guidance_scale=7.5).images[0]  
image.save("罨畫清溪上.png")

在这里插入图片描述

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

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

相关文章

Fiddler使用教程|渗透测试工具使用方法Fiddler

提示:如有问题可联系我,24小时在线 文章目录 前言一、Fiddler界面介绍二、菜单栏1.菜单Fiddler工具栏介绍Fiddler命令行工具详解 前言 网络渗透测试工具: Fiddler是目前最常用的http抓包工具之一。 Fiddler是功能非常强大,是web…

伦敦金在非农双向挂单

对伦敦金投资有一定经验的投资者都知道,在非农时期,伦敦金市场会出现很大的波动,那么我们如何才能抓住这些波动呢?答案是很难的。但是,有些投资者在多年实践中发明了一种双向挂单的方法,这里和大家一切分享…

向量数据库Milvus的四个版本

目录 MilvusLite版 单机版 分布式版 Milvus Cloud版 Milvus是一个功能强大的向量数据库管理系统,提供了多种版本,以满足不同用户的需求。以下是关于Milvus四个版本的具体介绍。 MilvusLite版 MilvusLite版是Milvus的轻量级版本,适合于小规模数据集和高性能计算场景。…

el-popover在原生table中,弹出多个以及内部取消按钮无效问题

问题&#xff1a;当el-popover和原生table同时使用的时候会失效&#xff08;不是el-table) <el-popover placement"bottom" width"500" trigger"click" :key"popover-${item.id}"></el-popover> 解决&#xff1a; :key…

vue 项目中使用阿里巴巴矢量图标库

1.网址&#xff1a;https://www.iconfont.cn/ 2.手动创建自己的项目图标库 选中图标 → 添加入库&#xff08;点击购物车&#xff09;→ 完成后点击上方菜单栏的购物车 → 添加至项目&#xff08;没有则新建项目&#xff09;→ 自动打开项目图标库 → 点击下载至本地 → 点击de…

【Redis-02】Redis的缓存

Redis的缓存 1.概念1.1什么是缓存1.2为什么使用缓存1.3如何使用1.3.1不适用缓存之前1.3.2 缓存模型和思路&#xff08;使用方法&#xff09;1.3.3 使用之后 2.缓存更新策略2.1数据库缓存不一致解决方案2.2数据库和缓存不一致采用什么方案2.3代码实例 3.缓存穿透3.1缓存穿透是什…

(四)RabbitMQ高级特性(消费端限流、利用限流实现不公平分发、消息存活时间、优先级队列

Lison <dreamlison163.com>, v1.0.0, 2023.06.23 RabbitMQ高级特性&#xff08;消费端限流、利用限流实现不公平分发、消息存活时间、优先级队列 文章目录 RabbitMQ高级特性&#xff08;消费端限流、利用限流实现不公平分发、消息存活时间、优先级队列消费端限流利用限流…

一个简单的 Android 版本目录(Version catalog)实现指南

一个简单的 Android 版本目录实现指南 使用 TOML 格式 在本文中&#xff0c;我们将探讨版本目录以及如何实现它。 版本目录 Gradle 版本目录使您能够以可扩展的方式添加和维护依赖项和插件。因此&#xff0c;不必在各个构建文件中硬编码依赖项名称和版本&#xff0c;而是在目…

【NodeJs】如何将Markdown文件生成HTML文件在线浏览

经常用的编辑器是Markdown&#xff0c;有自带预览排版效果功能的&#xff0c;预览的是HTML网页&#xff0c;如果想要将它转换成HTML网页文件&#xff0c;要怎么做呢。 首先&#xff0c;借助Node的插件来做&#xff0c;在使用前&#xff0c;确保电脑已安装了NodeJS应用&#xf…

Linux相关指令(上)

常见指令&#xff1a; 1 pwd&#xff1a;查看用户当前所在目录 以下面的路径为例&#xff1a; 2 ls&#xff1a;对于目录&#xff0c;该命令列出该目录下的所有子目录与文件。 对于文件&#xff0c;将列出文件名以及其他信息 ls-l&#xff08;or ll&#xff09;&#xff1a;列…

【西安交通大学】:融合传统与创新的学府之旅

【西安交通大学】&#xff1a;融合传统与创新的学府之旅 引言历史与发展学校特色学科优势院系专业校园环境与设施学生生活与社团活动校友荣誉与成就未来发展展望总结&#x1f340;小结&#x1f340; &#x1f389;博客主页&#xff1a;小智_x0___0x_ &#x1f389;欢迎关注&…

Huge and Efficient! 一文了解大规模预训练模型高效训练技术

本文分为三部分介绍了大模型高效训练所需要的主要技术&#xff0c;并展示当前较为流行的训练加速库的统计。文章也同步发布在AI Box知乎专栏&#xff08;知乎搜索 AI Box专栏&#xff09;&#xff0c;欢迎大家在知乎专栏的文章下方评论留言&#xff0c;交流探讨&#xff01; 引…

效率与质量兼备的6个设计工具!

今天本文为大家推荐的这6个设计工具&#xff0c;将帮助设计师实现高效工作&#xff0c;同时也更好地展示自己的创作力&#xff0c;一起来看看吧&#xff01; 1、即时设计 即时设计是一款国内的设计工具&#xff0c;它为设计师提供了非常多实用的设计功能和精致的设计素材&…

【C++】开源:grpc远程过程调用(RPC)配置与使用

&#x1f60f;★,:.☆(&#xffe3;▽&#xffe3;)/$:.★ &#x1f60f; 这篇文章主要介绍grpc远程过程调用&#xff08;RPC&#xff09;配置与使用。 无专精则不能成&#xff0c;无涉猎则不能通。。——梁启超 欢迎来到我的博客&#xff0c;一起学习&#xff0c;共同进步。 喜…

【转载+修改】pytorch中backward求梯度方法的具体解析

原则上&#xff0c;pytorch不支持张量对张量的求导&#xff0c;它只支持标量对张量的求导 我们先看标量对张量求导的情况 import torch xtorch.ones(2,2,requires_gradTrue) print(x) print(x.grad_fn)输出&#xff0c;由于x是被直接创建的&#xff0c;也就是说它是一个叶子节…

Linux查看内存的几种方法

PS的拼接方法 ps aux|head -1;ps aux|grep -v PID|sort -rn -k 4|head 进程的 status 比如说你要查看的进程pid是33123 cat /proc/33123/status VmRSS: 表示占用的物理内存 top PID&#xff1a;进程的ID USER&#xff1a;进程所有者 PR&#xff1a;进程的优先级别&#x…

python内置函数

https://www.runoob.com/python/python-built-in-functions.html https://www.runoob.com/python3/python3-function.html

SSD寿命和写放大测试

一、简述 SSD寿命规格&#xff0c;业界标准为TBW&#xff0c;TBW指的是Terabyte Writteb写入的兆兆字节&#xff0c;也有定义为Total Bytes Written&#xff0c;SSD使用寿命结束之前指定工作量可以写入SSD的总数据量&#xff0c;用来表达固态硬盘的寿命指标。 因为 SSD 使用 N…

同步、异步、阻塞、非阻塞

一、概念 同步与异步&#xff08;线程间调用&#xff09;的区别&#xff1a;关注的是调用方与被调用方之间的交互方式。同步调用会等待被调用方的结果返回&#xff0c;而异步调用则不会等待结果立即返回&#xff0c;可以通过回调或其他方式获取结果。 阻塞非阻塞&#xff08;…

springboot集成

maven配置 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-redis</artifactId> </dependency> <dependency><groupId>org.apache.commons</groupId><artifactId>…