手把手教你通过PaddleHub快速实现输入中/英文本生成图像(Stable Diffusion)

这篇具有很好参考价值的文章主要介绍了手把手教你通过PaddleHub快速实现输入中/英文本生成图像(Stable Diffusion)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

近来,基于Diffusion的文图生成模型比较火,用户输入一句话,模型就可以生成一副对应的图像,还是很有意思的。本文记录了通过PaddleHub快速实现上述任务的过程,以供参考。

1、安装PaddlePaddle

PaddleHub底层依赖于百度自研的开源框架PaddlePaddle,可以根据官方提供的方式来快速安装,目前文档还是挺全面的。

官方链接如下:https://www.paddlepaddle.org.cn/install/quick?docurl=/documentation/docs/zh/install/pip/linux-pip.html

安装前需要确定系统相关的环境,以下是我选择的安装命令:

python -m pip install paddlepaddle-gpu==2.3.2.post111 -f https://www.paddlepaddle.org.cn/whl/linux/mkl/avx/stable.html

paddle stable diffusion,前沿,教程,深度学习,文图生成,PaddleHub,StableDiffusion,AI创作,扩散模型

 2、安装PaddleHub

PaddleHub开源了较为丰富的预训练模型,涵盖大模型、CV、NLP、Audio、Video、工业应用主流六大品类的 360+ 预训练模型。这里我们主要是会用到其中的文图生成模型,包括Stable Diffusion和Disco Diffusion两种。

https://github.com/PaddlePaddle/PaddleHub/blob/develop/README_ch.md

!pip install --upgrade paddlehub -i https://mirror.baidu.com/pypi/simple

3、模型推理

PaddleHub对于模型封装的已经很完善了,通过几行代码即可快速调用文图生成模型的接口。以下是PaddleHub上的介绍,先来看看示例Stable Diffusion模型的效果。

官方示例链接如下:

https://aistudio.baidu.com/aistudio/projectdetail/4512600

Stable Diffusion是一种潜在扩散模型(Latent Diffusion), 属于生成类模型,这类模型通过对随机噪声进行一步步地迭代降噪并采样来获得感兴趣的图像,当前取得了令人惊艳的效果。相比于Disco Diffusion, Stable Diffusion通过在低纬度的潜在空间(lower dimensional latent space)而不是原像素空间来做迭代,极大地降低了内存和计算量的需求,并且在V100上一分钟之内即可以渲染出想要的图像。

from PIL import Image
import paddlehub as hub

# 导入模型
module = hub.Module(name='stable_diffusion')

# 生成图像
result = module.generate_image(text_prompts="A beautiful painting of a singular lighthouse, shining its light across a tumultuous sea of blood by greg rutkowski and thomas kinkade, Trending on artstation.", output_dir='stable_diffusion_out')

# 将生成过程存成gif
result[0].chunks[-1].chunks.save_gif('beautiful_painting.gif')

输入:A beautiful painting of a singular lighthouse, shining its light across a tumultuous sea of blood by greg rutkowski and thomas kinkade, Trending on artstation.

输出默认是512*512的图像,如下:

paddle stable diffusion,前沿,教程,深度学习,文图生成,PaddleHub,StableDiffusion,AI创作,扩散模型

4、更多的测试

到这里,我们就可以开始测试更多的输入了,大胆的尝试吧。如果设置seed的话,每次运行会生成不一样的图。

输入:A tree on the hilltop in autumn.

paddle stable diffusion,前沿,教程,深度学习,文图生成,PaddleHub,StableDiffusion,AI创作,扩散模型 paddle stable diffusion,前沿,教程,深度学习,文图生成,PaddleHub,StableDiffusion,AI创作,扩散模型

 生成过程如下:

paddle stable diffusion,前沿,教程,深度学习,文图生成,PaddleHub,StableDiffusion,AI创作,扩散模型

 输入:A man face.

paddle stable diffusion,前沿,教程,深度学习,文图生成,PaddleHub,StableDiffusion,AI创作,扩散模型

 输入:A woman face.

paddle stable diffusion,前沿,教程,深度学习,文图生成,PaddleHub,StableDiffusion,AI创作,扩散模型

5、尝试中文输入

上面提到的Stable Diffusion模型,暂时还不支持以中文作为输入。目前支持中文输入的模型给出了两个,都是Disco Diffusion的模型,生成图像的速度相对Stable Diffusion慢了很多,需要耐心等待。

官方示例链接如下:

https://aistudio.baidu.com/aistudio/projectdetail/4444998

示例代码如下:

​
from PIL import Image
import paddlehub as hub

# 导入模型
module = hub.Module(name='disco_diffusion_ernievil_base')

# 生成图像
result = module.generate_image(text_prompts="孤舟蓑笠翁,独钓寒江雪。", style='油画', width_height= [1280, 768], output_dir='孤舟蓑笠翁_油画', seed=1853109922)

# 将生成过程存成gif
​result[0].chunks.save_gif('孤舟蓑笠翁.gif')

输入:孤舟蓑笠翁,独钓寒江雪。

paddle stable diffusion,前沿,教程,深度学习,文图生成,PaddleHub,StableDiffusion,AI创作,扩散模型

6、问题解决方案

在使用的过程中,可能会出现一些问题,这里也记录下来。

问题1:无法使用GPU

解决方案:有可能是安装的PaddlePaddle不是gpu版本,需要卸载安装gpu版。

先使用如下命令查看当前安装的paddle和相关套件的版本:

pip list| grep paddle

查询信息如下:

paddle-bfloat                      0.1.7
paddle2onnx                        1.0.0
paddlefsl                          1.1.0
paddlehub                          2.3.0
paddlenlp                          2.4.0
paddlepaddle-gpu                   2.3.2.post111

如果确实有CPU版本,可通过如下命令卸载:

pip uninstall paddlepaddle

之后再选择合适的gpu版本来安装。

参考资料:https://github.com/PaddlePaddle/PaddleHub/issues/1301

问题2:Segmentation fault (core dumped)

解决方案:可能是cudnn版本不匹配导致的,建议检查cuda、cudnn以及paddlepaddle-gpu的版本是否匹配。

参考资料:https://github.com/PaddlePaddle/PaddleHub/issues/1301


体验下来,会发现参数中的text_prompts很重要,并不是任意的输入都能生成很好的图。在某些情况下,可以明显感觉到效果不太好,也是后续研究中需要重点解决的问题。  文章来源地址https://www.toymoban.com/news/detail-796230.html

到了这里,关于手把手教你通过PaddleHub快速实现输入中/英文本生成图像(Stable Diffusion)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【荣耀帐号服务】手把手教你快速web接入

    荣耀帐号开放服务基于OAuth2.0,Web应用可以获取用户授权凭证, 实现授权登录功能, 可以实现浏览器Web授权登录接入或者手机H5授权登录接入荣耀帐号。 1) 用户在应用网站上选择荣耀帐号登录 2) 应用服务器构造 /oauth2/v3/authorize 链接, 向荣耀帐号服务器发起授权请求 3) 荣耀帐号

    2024年02月10日
    浏览(29)
  • 手机怎么扫描照片成电子版?手把手教你快速搞定

    手机怎么把照片给扫描成电子版呢?大家在办公的过程中,经常会使用或者是收到纸质版的文件或合同,正常情况下使用当然是没问题,但当我们在外身边没有电脑,而这时需要把手头上的纸质版文件给转换成电子版给客户发过去,这时候怎么办呢?其实我们只需要利用好自

    2024年02月13日
    浏览(37)
  • 手把手教你通过 Docker 部署前后端分离项目(亲测可用)

    安装Docker 安装Nginx 安装Mysql 部署SpringBoot项目 部署Vue项目 一、安装Docker 1、安装: 2、启动/停止/重启docker服务 3、查看docker版本信息 4、运行helloword,因为不存在此镜像,docker会自动下载运行本镜像 5、查看所有docker镜像 二、安装Nginx 1、拉取Nginx镜像文件 2、查看下载好的镜像

    2023年04月24日
    浏览(39)
  • SDXL 1.0出图效果直逼Midjourney!手把手教你快速体验!

    最近,Stability AI正式推出了全新的SDXL 1.0版本。经过我的实际测试,与之前的1.5版本相比,XL的效果有了巨大的提升,可以说是全方位的超越。不仅在理解提示词方面表现出色,而且图片的构图、颜色渲染和画面细腻程度都有了很大的进步,实际出图效果堪比Midjourney。此外,

    2024年02月14日
    浏览(39)
  • 手把手教你如何快速定位bug,如何编写测试用例,快来观摩......

    手把手教你如何快速定位bug,如何编写测试用例,快来观摩......手把手教你如何快速定位bug,如何编写测试用例,快来观摩......作为一名测试人员如果连常见的系统问题都不知道如何分析,频繁将前端人员问题指派给后端人员,后端人员问题指派给前端人员,那么在团队里你在开发

    2024年01月20日
    浏览(45)
  • 手把手教你使用phpstudy本地快速搭建网站,并外网访问【无公网IP】

    本教程为快速在本地环境下搭建web网站,同时实现可在外网环境下访问!! 使用工具 phpstudy(本地搭建web网站) cpolar内网穿透(将网站发布到公网可访问) 1. 本地搭建web网站 1.1 下载phpstudy后解压并安装 官网下载:https://www.xp.cn/download.html 安装后的效果,如图: 点击,一键

    2024年02月08日
    浏览(39)
  • 手把手教你快速在生产环境搭建Doris集群附集群启停管理脚本

    组件分布规划 节点 node4 node5 node6 node7 node8 Node9 Node10 Node11 服务 FE(follower) BE FE(follower) BE FE(follower) BE FE(observer) BE BE Broker BE Broker BE BE Ip 192.168.22.34 192.168.22.35 192.168.22.36 192.168.22.37 192.168.22.20 192.168.22.16 192.168.22.17 192.168.22.18 根据自己集群的软硬件配置,选择合适的版本

    2024年02月02日
    浏览(37)
  • 手把手教你实现SpringBoot的监控!

    任何一个服务如果没有监控,那就是两眼一抹黑,无法知道当前服务的运行情况,也就无法对可能出现的异常状况进行很好的处理,所以对任意一个服务来说,监控都是必不可少的。 就目前而言,大部分微服务应用都是基于 SpringBoot 来构建,所以了解 SpringBoot 的监控特性是非

    2024年02月11日
    浏览(40)
  • 深入浅出:手把手教你实现单链表

    链表是一种 链状数据结构 。简单来说,要存储的数据在内存中分别独立存放,它们之间通过某种方式相互关联。 如果我们使用C语言来实现链表,需要声明一个 结构体 作为链表的结点,结点之间使用指针关联。 单向链表的每个结点内都有一个指针指向下一个结点,从而把所

    2024年02月10日
    浏览(38)
  • 记录--手把手教你,用electron实现截图软件

    因为我们日常开发项目的时候,需要和同事对接 api 和 文档 还有 UI图 ,所以有时候要同时打开多个窗口,并在多个窗口中切换,来选择自己要的信息,如果 api 和 文档 不多的情况还好,但是有时候就是要做大量的页面,为了提升效率我决定自己做一个截图工具,并把自己要

    2024年02月12日
    浏览(53)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包