作者:武卓博士 英特爾AI布道師
隨著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的安裝和使用過程,并通過OpenVINO 2023.0版本進行優(yōu)化和加速。只需幾行Python代碼,您就可以在幾秒鐘內(nèi)生成帶有文本的圖像。此外,OpenVINO簡化了在不同硬件平臺(包括Intel Desktop CPU、iGPU、dGPU和Xeon CPU)上加速工作的過程,使您的工作在部署時更加靈活。有關(guān)該方法的更多詳細信息,請點擊此處查看我們在GitHub上的OpenVINO Notebook代碼示例。
1.安裝
使用如下一行代碼安裝Optimum-Intel[OpenVINO]:
pip?install?-q?"optimum-intel[openvino,diffusers]"@git+https://github.com/huggingface/optimum-intel.git
2.下載預(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或Intel GPU上加速推理。模型權(quán)重以FP16精度存儲,這將模型的大小減少了一半。你可以發(fā)現(xiàn)這個Notebook中使用的模型名稱是"helenai/stabilityai-stable-diffusion-2-1-base-ov"。讓我們下載帶有以下代碼的預(yù)轉(zhuǎn)換模型Srable Diffusion 2.1Intermediate 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)
?3. 保存預(yù)先訓練好的模型,選擇推理設(shè)備并編譯
我們已經(jīng)下載了預(yù)先訓練和轉(zhuǎn)換的IR格式Stable Diffusion模型。讓我們保存模型,并使用以下代碼編譯它進行AI推理.
pipe.save_pretrained("./openvino_ir")
pipe.to("GPU.1")
pipe.compile()
4. 發(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
以下動圖展示了圖片生成的各步驟的效果。
?文章來源地址http://www.zghlxwxcb.cn/news/detail-719393.html
更多的資源信息:
OpenVINO? 2023.0 新版本介紹(麻煩附上新版本介紹鏈接)
OpenVINO? Notebooks
在英特爾DevCloud for the Edge 運行
歡迎在這里反饋結(jié)果以及開啟討論
致謝
感謝Helena Kloosterman 提供寶貴的指導(dǎo)意見。文章來源:http://www.zghlxwxcb.cn/news/detail-719393.html
?
到了這里,關(guān)于使用Optimum-Intel OpenVINO?輕松文生圖——幾行代碼加速Stable Diffusion的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!