刷新AI作圖速度,最快的開源Stable Diffusion出爐
發(fā)布日期:2023/1/6 14:52:54 瀏覽量:
版權(quán)聲明:本文為CSDN博主「OneFlow深度學(xué)習(xí)框架」的原創(chuàng)文章,遵循CC 4.0 BY-SA版權(quán)協(xié)議,轉(zhuǎn)載請(qǐng)附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/OneFlow_Official/article/details/128156919
如有侵權(quán)請(qǐng)聯(lián)系我們立即刪除!
第一輛汽車誕生之初,時(shí)速只有 16 公里,甚至不如馬車跑得快,很長(zhǎng)一段時(shí)間,汽車尷尬地像一種“很酷的玩具”。人工智能作圖的出現(xiàn)也是如此。
AI 作圖一開始的 “風(fēng)格化” 本身就為 “玩” 而生,大家普遍興致勃勃地嘗試頭像生成、磨皮,但很快就失去興趣。直到擴(kuò)散模型的降臨,才給 AI 作圖帶來質(zhì)變,讓人們看到了 “AI 轉(zhuǎn)成生產(chǎn)力” 的曙光:畫家、設(shè)計(jì)師不用絞盡腦汁思考色彩、構(gòu)圖,只要告訴 Diffusion 模型想要什么,就能言出法隨般地生成高質(zhì)量圖片。
然而,與汽車一樣,如果擴(kuò)散模型生成圖片時(shí)“馬力不足”,那就沒法擺脫玩具的標(biāo)簽,成為人類手中真正的生產(chǎn)工具。
起初,AI 作圖需要幾天,再縮減到幾十分鐘,再到幾分鐘,出圖時(shí)間在不斷加速,問題是,究竟快到什么程度,才會(huì)在專業(yè)的美術(shù)從業(yè)者甚至普通大眾之間普及開來?
顯然,現(xiàn)在還無法給出具體答案。即便如此,可以確定的是 AI 作圖在技術(shù)和速度上的突破,很可能已經(jīng)接近甚至超過閾值。
其中一大標(biāo)志性事件是,近期 OneFlow 首度將 Stable Diffusion 模型加速至“一秒出圖”時(shí)代,隨后AI社區(qū)開啟一場(chǎng)AI作圖的競(jìng)速“內(nèi)卷”。剛剛,OneFlow又刷新了SOTA記錄。
OneFlow Stable Diffusion 使用地址:
https://github.com/Oneflow-Inc/diffusers/wiki/How-to-Run-OneFlow-Stable-Diffusion
OneFlow 地址:https://github.com/Oneflow-Inc/oneflow/
1
比快更快,OneFlow 一馬當(dāng)先
11月7日,OneFlow 宣布將 Stable Diffusion 模型作圖速度實(shí)現(xiàn)了字面意義上的“一秒出圖”,在各種硬件以及更多框架的對(duì)比中,OneFlow 都將 Stable Diffusion 的推理性能推向了一個(gè)全新的 SOTA。
下面的圖表分別展示了此前在 A100(PCIe 40GB / SXM 80GB)硬件上,分別使用 PyTorch, TensorRT, AITemplate 和 OneFlow 四種深度學(xué)習(xí)框架或編譯器,對(duì) Stable Diffusion 進(jìn)行推理時(shí)的性能表現(xiàn)。


在 A100 顯卡上,無論是 PCIe 40GB 的配置還是 SXM 80GB 的配置,OneFlow 的性能可以在當(dāng)時(shí)的最優(yōu)性能之上繼續(xù)提升 15% 以上。
特別是在 SXM 80GB A100 上,OneFlow 首次讓 Stable Diffusion 的推理速度達(dá)到了 50it/s 以上,首次把生成一張圖片需要采樣 50 輪的時(shí)間降到 1 秒以內(nèi)。
一周之后,Meta AITemplate 對(duì) Stable Diffusion 做了一次性能升級(jí),結(jié)果反超了 OneFlow,PyTorch 創(chuàng)始人 Soumith Chintala 為此打 call。

性能優(yōu)化無止境,OneFlow 也在不斷迭代。兩周之后,OneFlow 對(duì)Stable Diffusion 也做了進(jìn)一步性能升級(jí),并再度反超了 AITemplate 的結(jié)果 ,現(xiàn)在速度最快的還是 OneFlow。


可以看到,在 A100 顯卡上,無論是 PCIe 40GB 的配置還是 SXM 80GB 的配置,OneFlow 基于此前性能結(jié)果繼續(xù)提升 10% 以上,并且依然是當(dāng)之無愧的性能之王。
而在 T4、RTX2080 上,相比于目前 SOTA 性能的 TensorRT、PyTorch,OneFlow 的推理性能也大幅領(lǐng)先。
2
生成圖片展示
利用 OneFlow 版的 Stable Diffusion,你可以把天馬行空的想法很快轉(zhuǎn)化成藝術(shù)圖片,譬如:
以假亂真的陽光、沙灘和椰樹:

倉鼠救火員、長(zhǎng)兔耳朵的狗子:

在火星上吃火鍋:

未來異世界 AI:

集齊 OneFlow 七龍珠:

上述圖片均基于 OneFlow 版 Stable Diffusion 生成。如果你一時(shí)沒有好的 idea,可以在 lexica 上參考一下廣大網(wǎng)友的創(chuàng)意,不僅有生成圖片還提供了對(duì)應(yīng)的描述文字。

3
無縫兼容 PyTorch 生態(tài),實(shí)現(xiàn)一鍵模型遷移
想體驗(yàn) OneFlow Stable Diffusion?只需要修改三行代碼,你就可以將 HuggingFace 中的 PyTorch Stable Diffusion 模型改為 OneFlow 模型,分別是將 import torch 改為 import oneflow as torch 和將 StableDiffusionPipeline 改為 OneFlowStableDiffusionPipeline:

之所以能這么輕松遷移模型,是因?yàn)?OneFlow Stable Diffusion 有兩個(gè)出色的特性:
OneFlowStableDiffusionPipeline.from_pretrained 能夠直接使用 PyTorch 權(quán)重。
OneFlow 本身的 API 也是和 PyTorch 對(duì)齊的,因此 import oneflow as torch 之后,torch.autocast、torch.float16 等表達(dá)式完全不需要修改。
上述特性使得 OneFlow 兼容了 PyTorch 的生態(tài),這不僅在 OneFlow 對(duì) Stable Diffusion 的遷移中發(fā)揮了作用,也大大加速了 OneFlow 用戶遷移其它許多模型,比如在和 torchvision 對(duì)標(biāo)的 flowvision 中,許多模型只需通過在 torchvision 模型文件中加入 import oneflow as torch 即可得到。
此外,OneFlow 還提供全局 “mock torch” 功能,在命令行運(yùn)行 eval $(oneflow-mock-torch) 就可以讓接下來運(yùn)行的所有 Python 腳本里的 import torch 都自動(dòng)指向 oneflow。
4
使用 OneFlow 運(yùn)行 Stable Diffusion
在 docker 中使用 OneFlow 運(yùn)行 StableDiffusion 模型生成圖片:

更詳盡的使用方法請(qǐng)參考:
https://github.com/Oneflow-Inc/diffusers/wiki/How-to-Run-OneFlow-Stable-Diffusion
5
后續(xù)工作
后續(xù) OneFlow 團(tuán)隊(duì)將積極推動(dòng) OneFlow 的 diffusers(https://github.com/Oneflow-Inc/diffusers.git) 和 transformers(https://github.com/Oneflow-Inc/transformers.git) 的 fork 倉庫內(nèi)容合并到 huggingface 上游的的對(duì)應(yīng)倉庫,這也是 OneFlow 首次以 transformers/diffusers 的后端的形式開發(fā)模型。
值得一提的是,在優(yōu)化和加速 Stable Diffusion 模型的過程中使用了 OneFlow 自研編譯器,不僅讓 PyTorch 前端搭建的 Stable Diffusion 在 NVIDIA GPU 上跑得更快,而且也可以讓這樣的模型在國產(chǎn) AI 芯片和 GPU 上跑得更快,這些將在之后的文章中揭秘技術(shù)細(xì)節(jié)。
歡迎在GitHub上Star、試用:
OneFlow Stable Diffusion 地址:
https://github.com/Oneflow-Inc/diffusers/wiki/How-to-Run-OneFlow-Stable-Diffusion
OneFlow 地址:https://github.com/Oneflow-Inc/oneflow/
————————————————
馬上咨詢: 如果您有業(yè)務(wù)方面的問題或者需求,歡迎您咨詢!我們帶來的不僅僅是技術(shù),還有行業(yè)經(jīng)驗(yàn)積累。
QQ: 39764417/308460098 Phone: 13 9800 1 9844 / 135 6887 9550 聯(lián)系人:石先生/雷先生