作者:Raymond Lo
在OpenVINO Notebooks有不少AI案例,但你知道我們也可以執行最夯的Stable Diffusion圖片生成模型,並且將該模型轉換為OpenVINO的IR(Intermediate Representation)格式,讓它在CPU與GPU上高效率執行嗎?此外透過壓縮FP32模型至FP16格式,我們能把模型尺寸縮小(接近)一半,用更少的RAM/VRAM容量來執行。更重要的是,因為Intel的XMX(Xe Matrix Extensions)脈動陣列發揮作用,這也能大幅加快GPU處理速度。
以下是筆者用筆記型電腦執行的結果,非常有趣。用我的Intel Arc A770獨立顯示晶片,能取得大約每秒6.0次迭代(iterations,在沒有除錯模式的情況下)。這意味生成下方的高品質影像,通常只花不到10秒的時間。

Stable Diffusion圖生圖範例,將照片轉成水彩畫。
首先,這裡是OpenVINO Notebooks程式庫,裡面有所有你會需要完成今天示範的東西:
https://github.com/openvinotoolkit/openvino_notebooks.git
在示範筆記中,我們介紹的不只是知名的文生圖(Text-to-mage)流水線,還有圖生圖(Image-to-Image)生成流水線。不過,這實際上代表什麼意思,我們又要怎麼執行?
如何安裝
要安裝OpenVINO Notebooks,如果你使用的是Windows平台,可以依照下面連結的指示:https://github.com/openvinotoolkit/openvino_notebooks/wiki/Windows
如果你是Linux平台使用者,就跟著以下的連結:
https://github.com/openvinotoolkit/openvino_notebooks/wiki/Ubuntu
在高階語言,只有以下幾個步驟:
source openvino_env/bin/activate #for linux
Git複製目錄:
<span class="hljs-built_in">cd</span> openvino_notebooks
安裝所有的程式庫以及依賴項目:
執行Jupyter Notebooks:
現在如果你仔細看程式碼,我們完成的是真正最佳化PyTorch流水線,並且以OpenVINO執行程式碼。
第一次下載與轉檔可能會花一點時間,一旦完成,你就會得到一組IR檔案。為了方便你使用,我已經把那些經過預訓練、最佳化的模型更新到Hugging Face:https://huggingface.co/bes-dev/stable-diffusion-v1-4-openvino/tree/main
現在,如果你很幸運是使用Intel Arc GPU,你就可以將程式碼改成「GPU」。在預設條件下,它使用AUTO,因此如果被偵測到就會自動切換到GPU。
在這個步驟,我將步數設置為30;理想狀況下,我會設為50以取得最好看的結果。你可以在這裡透過修改輸入文字來生成不同場景,如果你想得到一些真的看起來很酷的圖片,你可以嘗試社群所收集的一些排名最高的輸入提示:https://mpost.io/best-100-stable-diffusion-prompts-the-most-beautiful-ai-text-to-image-prompts/
最後,我們製作了GIF圖檔,方便你了解每個步驟之間會看到什麼。
圖生圖流水線
現在如果你還在Notebooks上,你會看到我們也使用了提示來「影響」最終影像的外觀,以下我們提供了一個把照片轉換成水彩畫的範例。
結語
如果你現在就想學習Stable Diffusion如何運作,也想看看如何以Intel硬體實現硬體加速,OpenVINO Notebooks絕對是我的首選推薦。如果你有任何相關問題,或想秀一下你的最佳成果,歡迎在下面留言,或者是到我們的GitHub討論區聊聊。寫程式愉快!
進入討論區,與專家、同好交流本文主題- 如何以OpenVINO在Intel GPU上執行Stable Diffusion - 2023/03/27
訂閱MakerPRO知識充電報
與40000位開發者一同掌握科技創新的技術資訊!