隨著 AIGC 模型越來越強大,并取得了更驚人的結(jié)果,任意運行 AIGC 模型, 比如 Stable Diffusion,對于開發(fā)人員來說仍然面臨一些挑戰(zhàn)。首先,GPU 的安裝設(shè)置需要我們處理復(fù)雜的配置和兼容性問題,這可能既耗時又令人沮喪。此外,如果運行 Stable Diffusion 代碼前需要經(jīng)過復(fù)雜的軟件安裝和環(huán)境配置步驟,這也會帶來額外的困難。因為開發(fā)者們經(jīng)常被干凈直觀的 API 所吸引,這使我們能夠輕松地與模型交互并簡化我們的工作流程。最后,在沒有復(fù)雜代碼編寫以及編譯的情況下,如何快速完成硬件加速仍然是一個開發(fā)者們優(yōu)先關(guān)心的事項,因為開發(fā)者們總是尋求高效而直接的解決方案來充分利用 AIGC 算法的潛力。
圖1.我們需要更改的代碼行數(shù)以獲得英特爾的硬件加速
在這篇文章中,我們將探索使用 Optimum Intel (OpenVINO)在 Stable Diffusion V2.1上實現(xiàn) AI 硬件加速的最快方法(使用最少的代碼行和依賴項安裝)。我們還將指導(dǎo)您完成在本地機器上運行 Stable Diffusion 的安裝和使用過程,并通過 OpenVINO2023.0版本進行優(yōu)化和加速。只需幾行 Python 代碼,您就可以在幾秒鐘內(nèi)生成帶有文本的圖像。此外,OpenVINO簡化了在不同硬件平臺(包括英特爾 Desktop CPU、iGPU、dGPU 和 Xeon CPU)上加速工作的過程,使您的工作在部署時更加靈活。
01安裝
使用如下一行代碼安裝
pip install -q "optimum-intel[openvino,diffusers]"@git+https://github.com/huggingface/optimum-intel.git
向右滑動查看完整代碼
02下載預(yù)轉(zhuǎn)換過的
Stable Diffusion 2.1 IR 模型
Stable Diffusion 將6個元素結(jié)合在一起,一個帶有標記器的文本編碼器模型,一個帶調(diào)度器的 UNet 模型,以及一個帶有解碼器和編碼器模型的自動編碼器。
這里使用的基礎(chǔ)模型是 "stabilityai/stable-diffusion-2-1-base"。該模型被轉(zhuǎn)換為 OpenVINO格式,用于使用Optimum Intel [OpenVINO] 在 CPU 或英特爾 GPU 上加速推理。模型權(quán)重以 FP16 精度存儲,這將模型的大小減少了一半。你可以發(fā)現(xiàn)這個 Notebook 中使用的模型名稱是"helenai/stabilityai-stable-diffusion-2-1-base-ov"。讓我們下載帶有以下代碼的預(yù)轉(zhuǎn)換模型 Srable Diffusion 2.1 Intermediate Representation Format (IR)。
from optimum.intel.openvino import OVStableDiffusionPipeline # download the pre-converted SD v2.1 model from Helena's HF repo name = "helenai/stabilityai-stable-diffusion-2-1-base-ov" pipe = OVStableDiffusionPipeline.from_pretrained(name, compile=False) pipe.reshape(batch_size=1, height=512, width=512, num_images_per_prompt=1)
向右滑動查看完整代碼
03保存預(yù)先訓(xùn)練好的模型,
選擇推理設(shè)備并編譯
我們已經(jīng)下載了預(yù)先訓(xùn)練和轉(zhuǎn)換的 IR 格式 Stable Diffusion 模型。讓我們保存模型,并使用以下代碼編譯它進行 AI 推理
pipe.save_pretrained("./openvino_ir") pipe.to("GPU.1") pipe.compile()
向右滑動查看完整代碼
04發(fā)揮你的創(chuàng)意,輸入文本,
享受生成的美圖吧
現(xiàn)在是時候發(fā)揮創(chuàng)意了!輸入創(chuàng)意提示,并使用以下內(nèi)容欣賞生成的圖像。
# Generate an image. prompt = "red car in snowy forest, epic vista, beautiful landscape, 4k, 8k" output = pipe(prompt, num_inference_steps=17, output_type="pil").images[0] output.save("image.png") output
向右滑動查看完整代碼
以下動圖展示了圖片生成的各步驟的效果。
審核編輯:湯梓紅
-
英特爾
+關(guān)注
關(guān)注
60文章
9748瀏覽量
170647 -
gpu
+關(guān)注
關(guān)注
27文章
4591瀏覽量
128144 -
AI
+關(guān)注
關(guān)注
87文章
28877瀏覽量
266225 -
python
+關(guān)注
關(guān)注
53文章
4753瀏覽量
84078 -
AIGC
+關(guān)注
關(guān)注
1文章
332瀏覽量
1372
原文標題:幾行代碼加速 Stable Diffusion,使用 OpenVINO? 輕松文生圖 | 開發(fā)者實戰(zhàn)
文章出處:【微信號:英特爾物聯(lián)網(wǎng),微信公眾號:英特爾物聯(lián)網(wǎng)】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論