如何本地摆设基于stable-diffusion的AI绘画(jupyter,python实现,详细,

[复制链接]
查看1161 | 回复0 | 2023-8-23 11:58:13 | 显示全部楼层 |阅读模式
基于stable - diffusion 的本地摆设AI绘画教程

   自从Stable Diffusion 1.0模子发布以来,“AI文本图片天生”真正的变成平凡人也能利用的技能。同时各种国表里AI画图软件,也不绝频仍更新,AI绘画的关注度也越来越高。
  以下是本人自己天生出来的一些AI画图(夹带私货木木枭^ ^)


对应的提示语prompt为:
  1. "a cute portrait of rowlet,anime,warm style,suit , highly detailed, oil painting, concept art, smooth, sharp focus,high quality artwork"
复制代码

那么如果我们想要本地摆设一个真正属于自己的AI绘画模子,须要哪些东西呢。
要完本钱次摆设,我们须要导入一些包而且用里面封装好的参数来实现相应的功能,从而实现我们要的笔墨出图的功能.
接下来详细先容一下大概的步调。
利用环境:python 3.8.13利用软件:VsCode文件格式:ipynb 须要下载的包在背面会有讲到
1. 连接显卡

  1. !nvidia-smi  
复制代码
起主要让GPU连接到notebook上
单独运行该语句后,成功后会表现如下提示

2. 本地下载transformershe和diffusers包:

  1. %pip install diffusers==0.4.0  
  2. %pip install transformers scipy ftfy  
复制代码
由于这里是jupyter所以和python 的pip的方式有点不一样
大概通过conda下载也可以

下载成功后会有如上提示
如果背面有
RuntimeError: CUDA error: no kernel image is available for execution on the device
雷同这种提示,则阐明一样平常是cuda大概python的版本出了问题
大概是版本不对,一样平常要求是3.8
3. 获取hugging face官网的access token:

安装好两个包后,就要开始获取用户的权限了,由于stable diffusion的hugging face上面的产物,要利用它的模子的时候须要一个token的申请。
因此我们看一下如何得到申请
  1. 1.        from huggingface_hub import notebook_login  
  2. 2.          
  3. 3.        notebook_login()  
复制代码
这里的代码只有两行
如果没有安装huggingface_hub这个包的话用conda下载一下就可以了
也是比较容易的
Conda install huggingface_hub
成功运行后会出现如下内容

要拿到这个token须要我们登录hugging face的官网
注册一个账号,不须要手机号什么的,比较容易注册


  • 注册成功之后到个人设置这里

  • 获取token之后就可以正常运行了

成功登录获取之后如上图提示内容
4. 获取diffusers数据集并天生pipe管道

起首看一下这个的代码
  1. 1.        import torch  
  2. 2.        #from torch import autocast  
  3. 3.        from diffusers import StableDiffusionPipeline  
  4. 4.          
  5. 5.        # make sure you're logged in with `huggingface-cli login`  
  6. 6.        #pipe = StableDiffusionPipeline.from_pretrained("CompVis/stable-diffusion-v1-4", revision="fp16", torch_dtype=torch.float16)   
  7. 7.        pipe = StableDiffusionPipeline.from_pretrained("./stable-diffusion-v1-4")   
复制代码
这里导入了torch包和之前下载的diffusers包
进行模子,然后进行模子的加载
Pipe就是加载成功后得到模子的管道了
而这一句也是全部代码当中最焦点的一句
这里的文件路径是一个模子包
可以在github大概huggingface上面都有,下载模子包
CompVis/stable-diffusion-v1-4 · Hugging Face
以上是官网链接

整个模子大概10GB(如今大概不止了)
运行成功后没有提示语出现
5.将pipe管道摆设到GPU上运行

如果我们利用CPU去跑这个模子,须要等候的时间将会非常非常的长,为了办理这个问题,这里提供了一个方法,可以将pipe管道移动到GPU上面去运行。
  1. pipe = pipe.to("cuda")
复制代码
但是这里会跟资源的分配有关,本地的电脑如果显卡没有这么强的话,很有大概会失败,比方提示显存不敷给予去运算,比方本人的电脑如果开了其他运行程序就很容易出现内存分配不敷的问题
如果内存不敷建议可以利用谷歌提供的colab云平台来运行自己的服务,谷歌会免费分配一个显卡资源给colab的账号。
内存不敷的时候运行上述代码会有相应的报错,注意看报错内容即可。
6. 利用prompt天生图片

当我们可以正常利用GPU来跑模子之后,就可以正式开始天生我们的图片啦!
我们只须要简单地输入一个字符串,就可以天生图片
  1. 1.        #提示语输入内容  
  2. 2.        prompt = "a photograph of an astronaut riding a horse"  
  3. 3.        #放入pipe中运行  
  4. 4.        image = pipe(prompt).images[0]   
  5. 5.          
  6. 6.          
  7. 7.        #直接显示图片  
  8. 8.        image
复制代码
运行该代码,会出现一个进度条进行等候,运行成功后如下所示。

上图就是通过stable-diffusion模子天生的图片了
给出的提示语是“a photograph of an astronauut riding a horse”
可以看出给出的图片照旧比较符合描述语的内容的,同时也有一种怪诞的感觉
   末了:如果想要让画面更加风雅,须要给prompt的内容加上更加细节的描述
  如果自己想不到什么好的英文提示语,可以参考网站Lexica
  这个网站答应用户上传自己的prompt天生的图片
  
给出的图片照旧比较符合描述语的内容的,同时也有一种怪诞的感觉
   末了:如果想要让画面更加风雅,须要给prompt的内容加上更加细节的描述
  如果自己想不到什么好的英文提示语,可以参考网站Lexica
  这个网站答应用户上传自己的prompt天生的图片

来源:https://blog.csdn.net/weixin_52424236/article/details/129834834
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则