SDXL:如何使用Stable Diffusion
最近開發了一個基於最新版本Stable Diffusion XL (SDXL) 的WordPress外掛程式。 Stable Diffusion是一個免費、開源的圖像生成模型,透過官方網站Stability AI可以直接下載程式碼。儘管自行部署模型的成本和難度較大,但可以使用Docker映像或手動安裝。此外,還可以透過Replicate.com網站使用或部署大模型和API。總的來說,Stable Diffusion和SDXL廣泛應用於AI影像生成產品。
最近基於Stable Diffusion XL(SDXL)開發了一個Wordpress插件。順便總結一下。
一、Stable Diffusion是什麼?
Stable Diffusion是一個開源的圖像生成大模型。
目前主要使用的版本就是Stable Diffusion XL,也就是SDXL。
官網:Stability AI
二、Stable Diffusion是免費的嗎?
Stable Diffusion以及Stability AI其它的大模型(包括視訊、語音、3D)等都是免費開源的。你可以從官網直接現在程式碼部署到你自己的電腦或伺服器。
但,大多時候,我們不會自己部署,因為成本比較高,難度也比較大。所以,更多的時候,開發一個基於Stable Diffusion的產品,我們需要呼叫官網或第三方的Stable Diffusion的API,但,這樣,就需要支付介面使用費。
三、如何部署Stable Diffusion? (由Google Gemini產生)
部署Stable Diffusion模型
方式1:使用預先建置的Docker映像
- 拉取Docker 映像:
docker pull stabilityai/stable-diffusion:latest
- 建立並啟動容器:
docker run -it --gpus all stabilityai/stable-diffusion:latest
方式2:手動部署
- 安裝依賴項:
- Python 3.10.x
- PyTorch 1.13.0+
- torchvision 0.14.0+
- ax-platform 0.3.11
- transformers 4.28.0+
- accelerate 0.9.1+
- kornia 0.6.2+
- einops 0.4.1+
- huggingface_hub 0.10.0+
- 克隆Stable Diffusion 儲存庫:
git clone https://github.com/huggingface/diffusers
- 安裝Stable Diffusion 函式庫:
cd diffusers
pip install .
- 下載模型權重:
wget https://huggingface.co/CompVis/stable-diffusion-v1-5/resolve/main/sd-v1-5.ckpt
- 部署模型:
- 建立一個Python 腳本,載入模型並為其設定輸入。
- 使用
diffusers.pipelines.stable_diffusion.StableDiffusionPipeline
類別運行圖像生成。
使用說明
透過上述步驟部署Stable Diffusion 模型後,可以使用以下命令產生映像:
from diffusers import StableDiffusionPipeline # 載入模型pipeline = StableDiffusionPipeline.from_pretrained("YOUR_MODEL_PATH") # 運行映像產生image = pipeline("YOUR_PROMPT")
提示
- 使用
--gpus all
標誌來利用所有可用的GPU。 - 調整
batch_size
和num_outputs
參數以控制生成影像的數量和品質。 - 使用
save_image()
方法將映像儲存到本機磁碟。
四、如何使用Stable Diffusion API?
在這個網站可以輕鬆部署自己的開源大模型。也可以使用別人部署的大模型的API。
1.使用你的GitHub帳號登入這個網站
2、進入dashboard
3.選擇一個影像生成模型
https://replicate.com/collections/text-to-image
這裡列出了所有推薦的圖像生成模型。
4.使用模型的API
這裡有多個stable diffusion和sdxl的模型,選擇一個即可。我們可以選第一個。點選進去,找到它的http API頁面:
stability-ai/stable-diffusion – Run with an API on Replicate
這裡就是這個模型的API和呼叫程式碼範例。
也可以使用封裝好的js、python等sdk。
五、總結
Stable Diffusion,免費、開源、通用,SDXL也是目前應用最多的圖像生成大模型,可以幫你實現各種圖片生成類別的AIGC產品。