(跨模态)AI作画——使用stable-diffusion生成图片
AI作畫——使用stable-diffusion生成圖片
- 0. 簡介
- 1. 注冊并登錄huggingface
- 2. 下載模型
- 3. 生成
0. 簡介
自從DallE問世以來,AI繪畫越來越收到關注,從最初只能畫出某些特征,到越來越逼近真實圖片,并且可以利用prompt來指導生成圖片的風格。
前不久,stable-diffusion的v1-4版本終于開源,本文主要面向不熟悉huggingface的同學,介紹一下stable-diffusion如何使用(非常簡單)。
1. 注冊并登錄huggingface
直接打開compvis的stable-diffusion:
https://huggingface.co/CompVis/stable-diffusion-v1-4
然后,去找它的模型,想給它下載下來,但是進入下載界面,會顯示404。沒關系,如果沒注冊過huggingface,需要先注冊一個賬號,一分鐘搞定。
然后回到model card,有一個用戶協議,點擊接受:
2. 下載模型
在切回模型文件,發現就可以下載了:
點擊每個文件后邊的小箭頭,就可以下載了,把所有下載的文件扔到一個文件夾里,你可以把這個文件夾命名為stable_diffusion,注意里邊的這些文件夾的名稱也要與項目里保持一致。
其實在這里我們也可以大概看到整個模型的基本結構:
官方文檔里對模型結構的整體介紹如下:
由于模型我目前也不是很熟,就不多介紹了,怕講錯了。直接進入下一個環節,生成。
3. 生成
首先安裝一下環境依賴:
pip install transformers pip install diffusers在配置好環境之后,模型的調用非常方便:
import torch from diffusers import StableDiffusionPipeline然后建立模型,這里的模型路徑可以選擇之前下載的所有文件存放的路徑。
pipe = StableDiffusionPipeline.from_pretrained('xxxxxx/huggingface/stable-diffusion-v1-4', use_auth_token=True) # cpu會很慢所以最好在GPU上運行,大概需要10G顯存 pipe.to('cuda:0')輸入一句話,直接調用這個類,就可以生成了,生成的圖片是PIL格式,可以直接保存。
prompt = "a photo of an astronaut riding a horse on mars" image = pipe(prompt, guidance_scale=7.5)["sample"][0] image.save("test_1.png")
然后看一下這個類調用方法可以傳入的參數都有什么:
查看官方文檔可知:
| height | 生成圖片的高度 | 512 |
| width | 生成圖片的寬度 | 512 |
| num_inference_steps | 預測步數 | 50 |
| guidance_scale | 指導度 | 7.5 |
| generator | 生成器 | None |
| output_type | 輸出的類型 | pil |
其中,預測的步數,一般來說步數越大,圖片效果越好,但是耗時就越長(調用的時候那個tqdm條就是步數);
guidance_scale,用來控制生成的一個參數,暫時不太了解,官方說設置為7.5-8效果最好。感興趣的話可以參考:https://arxiv.org/abs/2207.12598
關于生成器參數,主要可以用來生成VAE模型的初始潛在噪聲,由于VAE的初始化是采樣出來的,具有隨機性,所以如果想確保生成的圖片一樣的話,可以設置seed:
import torchgenerator = torch.Generator("cuda").manual_seed(1024) image = pipe(prompt, generator=generator)["sample"][0]本文就先介紹到這里,后續如果有更多好玩的text-to-image模型,可能會繼續介紹。
總結
以上是生活随笔為你收集整理的(跨模态)AI作画——使用stable-diffusion生成图片的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 学习笔记(2):走近智慧医疗,探索物联网
- 下一篇: java ai寻路_AI自动寻路