目錄
- 前言
- 一、HAI
- 二、應用場景
- 三、構建 Stable Diffusion 模型
- 1、新建HAI應用
- 2、StableDiffusionWebUI
- (1)功能介紹
- (2)頁面轉中文
- (3)AI繪圖
- ① 正向提示詞語
- ② 反向提示詞
- ③ “+” 、“ AND”、“|” 用法
- ④ 權重
- ⑤ Euler a 取樣方法
- ⑥ DPM++ 2M Karras 取樣方法
- ⑦ 新增提示詞案例
- 四、總結

前言
一直以來想部署一個自己的 StableDiffusion 模型,但是在構建模型過程中遇到許多問題,后來發現可以用 HAI 可以快速構建并且部署,給我帶來了極大的便利,省去了許多麻煩事。
高性能應用服務(Hyper Application Inventor,HAI)是一款面向 AI 和科學計算的 GPU/NPU 應用服務
產品,提供即插即用的強大算力和常見環境。它可以幫助中小企業和開發者快速部署語言模型、AI 繪圖、數據科學等高性能應用,原生集成配套的開發工具和組件,大大提升應用層的開發生產效率。
如果你想快速構建一套AI模型,比如Stable Diffusion、ChatGLM2 6B、Llama2 7B、Llama2 13B
,又或者是想搭建一套AI框架,比如Pytorch2.0.0、Tensorflow2.9.0
,HAI 可成為你的首選。本文通過構建Stable Diffusion模型進行二次元AI繪畫,主要利用深度學習算法進行創作繪圖,應用場景也是十分廣泛。
一、HAI
高性能應用服務 HAI 以應用為中心,匹配GPU云算力資源,助力中小企業及開發者快速部署LLM、AI作畫、數據科學等高性能應用。其優勢十分顯著:
1、簡單易用。通過簡化計算、網絡和存儲等基礎設施的配置流程,大幅降低了云服務操作和管理的復雜度。
2、應用環境快速部署。支持多種 AI 環境快速部署,如 ChatGLM-6B、StableDiffusion 等,使用戶可專注業務及應用場景創新。
3、高靈活性。支持用戶登錄實例,對 AI 模型及實例環境進行靈活配置。可進行內部開發、業務測試,或對外提供業務服務。
4、多種登錄方式。除傳統連接方式外,支持通過 jupyterlab、WebUI 等方式一鍵啟動,提供更貼合使用場景的登錄方式。
5、算力種類豐富。提供多種算力套餐選擇,未來還將加入更多種類供用戶選擇。
二、應用場景
HAI 應用場景十分廣泛,可以應用于AI 作畫/設計、AI 對話/寫作、AI 開發測試以及數據科學等方面。
在AI 作畫/設計方面,設計師和開發者可以使用高性能應用服務快速地部署和優化 AI 繪畫模型。高性能應用服務預置 Stable Diffusion 等主流 AI 作畫模型及常用插件,提供 GUI 圖形化界面即開即用,大幅降低上手門檻。在AI 對話/寫作方面,研究者和開發者可以使用高性能應用服務快速部署和運行大型語言模型,如 LLAMA2、ChatGLM 等,進行自然語言處理任務,如文本生成、情感分析、文本分類等。高性能應用服務提供的算力支持和優化環境確保了語言模型可以在最短的時間內進行部署,同時還能保持高穩定性和可靠性。在AI 開發測試方面,高性能應用服務的預配置環境支持大多數流行的 AI 框架和工具,如 TensorFlow、PyTorch 等,使得開發者可以專注于算法設計和模型優化。AI 研究者可以在高性能應用服務上進行模型的開發、訓練、測試和優化,無需擔心硬件兼容性和軟件配置問題。如新算法的原型開發、模型微調與遷移學習、深度學習框架的交叉測試等。在數據科學方面,數據科學家們可使用高性能應用服務,快速進行數據分析和圖標處理。高性能應用服務預置了 Notebook、Python 環境,以及主流分析軟件。
三、構建 Stable Diffusion 模型
上面講解了HAI的優勢以及應用場景,那么接下來就開始使用 HAI 構建 Stable Diffusion 模型。Stable Diffusion,直接從字面意思翻譯是穩定的擴散,當然這也將圖像生成模型的工作原理點出來了。它是一種生成模型,可用于生成高質量的圖像,其原理是將噪聲添加懂真實圖像,然后通過神經網絡將噪聲去除掉,隨著噪聲逐漸去除,真實圖像便逐漸恢復。那么怎么使用 HAI 構建 Stable Diffusion 模型呢
1、新建HAI應用
首先在算力管理頁面點擊新建,這就是構建HAI應用的入口了。
在AI模型中選擇Stable Diffusion
,這就是我們需要的模型,然后點擊購買。
購買完成后HAI應用就會自動創建,創建過程大概需要3-8分鐘,靜候即可。
創建完成之后,點擊算力連接,在下拉中選擇stable_diffusion_webui
。
2、StableDiffusionWebUI
我們可以看到StableDiffusionWebUI
主頁面,具體如下圖所示:
(1)功能介紹
StableDiffusionWebUI
是基于StableDiffusion
開源模型開發的,具有以下功能:
-
文生圖
根據描述生成任何圖像 -
智能識別:
Stable Diffusion
可以智能識別用戶上傳的圖片,并自動調整圖片質量和色彩,讓圖片更加清晰、飽滿。 -
風格轉換:
Stable Diffusion
可以將用戶上傳的圖片轉換成不同的藝術風格,如印象派、后印象派、立體派等等,讓圖片更加藝術化。 -
人像修復:
Stable Diffusion
可以自動識別人像并進行修復,去除皺紋、瑕疵等不良痕跡,讓人像更加美觀自然。 -
圖像融合:
Stable Diffusion
可以將多張圖片進行融合,生成全新的圖像,讓用戶可以嘗試不同的創意和設計。 -
圖像去噪:
Stable Diffusion
可以自動去除圖片中的噪點,讓圖片更加干凈、清晰。
(2)頁面轉中文
首先我們先把頁面換成中文。選擇頁面中Extensions
菜單中的Available
菜單,然后取消localization
勾選,勾選script
,之后點擊 Load from
,大概需要等30-60s。
然后在搜索框中搜索:zh_CN,
點擊Install
進行安裝。
安裝成功后,我們可以在Extensions
菜單中的Installed
菜單看到安裝的stable-diffusion-webui-localization-zh_CN
最后在Setting
菜單中選擇User interface
,在Localization (requires restart)
下拉菜單中選擇zh_CN
最后先點擊Apply setting
,然后再點擊Reload UI
,頁面就變成中文了。
(3)AI繪圖
Stable Diffusion可以根據你輸入的提示詞(prompt)來繪制出想象中的畫面。在進行文生圖之前,先講解一下StableDiffusionWebUI主頁面的基本屬性,相關配置屬性解釋如下:
屬性 | 描述 |
---|---|
提示詞 | 主要描述圖像,包括內容風格等信息,原始的webui會對這個地方有字數的限制,可以安裝一些插件突破字數的限制。簡單來說就是你想要生成一副什么樣的圖片,包含主體、風格、色彩、質量要求等等 。 |
反向提示詞 | 告訴模型我們不需要的風格 ,表示你不想要什么,比如不想要圖片出現什么,不想圖片質量差,不想人物模糊或者多手多腳等 |
提示詞相關性(CFG scale) | 分類器自由引導尺度,圖像與提示符的一致程度越低的值產生的結果越有創意,數值越大成圖越貼近描述文本。一般設置為7 |
采樣方法(Sampling method) | 擴散算法的去噪聲采樣模式會影響其效果 ,不同的采樣模式的結果會有很大差異 |
采樣迭代步數(Sampling steps) | 在使用擴散模型生成圖片時所進行的迭代步驟 。每經過一次迭代,AI就有更多的機會去比對prompt和當前結果,并作出相應的調整。需要注意的是,更高的迭代步數會消耗更多的計算時間和成本,但并不意味著一定會得到更好的結果。然而,如果迭代步數過少,一般不少于50,則圖像質量肯定會下降 |
隨機種子(Seed) | 生成每張圖片時的隨機種子,這個種子是用來作為確定擴散初始狀態的基礎 。-1表示不基于圖片種子進行繪制,完全基于你的prompt生成,如果填寫一個圖片的種子值,則會參考你填寫的圖片種子,在此圖片基礎上進行二次繪制。 |
高清修復 | 將生成的圖片進行高清放大,提升分辨率 ,顯存不夠的寶子們慎用 |
生成批次 | 表示本次繪制時通過幾個批次進行繪畫,顯存低的寶子們可以調大,以時間換空間 |
每批數量 | 表示每批生成幾張圖片,也是看顯存大小進行設置 |
其中提示詞是非常重要的,是生成圖像最基本的要求。提示詞(prompt)由多個詞綴構成。提示詞分為正向提示詞(positive prompt)和反向提示詞(negative prompt),用來告訴AI哪些需要,哪些不需要。反向提示詞聽起來有些耐人尋味,其實就是我們不想出現什么的描述。提示詞與反提示詞實際上看你的想象力,當初也要轉換成英文描述的術語才能更好地生效,個人認為沒有什么定格公式,會限制人的想象力,總之你想什么就填上去,盡情發揮想象力。
① 正向提示詞語
這里提供一些正向提示詞語,可以斟酌添加到模型中。
prompt | 描述 |
---|---|
HDR, UHD, 64K | (HDR、UHD、4K、8K和64K)這樣的質量詞可以帶來巨大的差異提升照片的質量 |
Highly detailed | 畫出更多詳細的細節 |
Studio lighting | 添加演播室的燈光,可以為圖像添加一些漂亮的紋理 |
Professional | 加入該詞可以大大改善圖像的色彩對比和細節 |
Vivid Colors | 給圖片添加鮮艷的色彩,可以為你的圖像增添活力 |
Bokeh | 虛化模糊了背景,突出了主體,像iPhone的人像模式 |
High resolution scan | 讓你的照片具有老照片的樣子賦予年代感 |
Sketch | 素描 |
Painting | 繪畫 |
② 反向提示詞
一些返向提示詞案例,針對你要生成的圖像,通過反向提示,避免出現不符合預期的圖片
Negative Prompt | Description |
---|---|
Mutated hands and fingers | 變異的手和手指 |
Deformed | 畸形的 |
Bad anatomy | 解剖不良 |
Disfigured | 毀容 |
Poorly drawn face | 臉部畫得不好 |
Mutated | 變異的 |
Extra limb | 多余的肢體 |
Ugly | 丑陋 |
Poorly drawn hands | 手部畫得很差 |
Missing limb | 缺少的肢體 |
Floating limbs | 漂浮的四肢 |
Disconnected limbs | 肢體不連貫 |
Malformed hands | 畸形的手 |
Out of focus | 脫離焦點 |
Long neck | 長頸 |
Long body | 身體長 |
③ “+” 、“ AND”、“|” 用法
-
“+”和“AND”:這兩個符號都用于連接短標簽或關鍵詞。使用“+”或者“AND”來將標簽連接在一起。要注意的是,在使用“AND”連接標簽時,兩端需要加上空格。此外,“+”可以大致等同于“AND”。
-
“|”:這是用作循環繪制符號或融合符號。在這種上下文中,它可能表示一種繪圖操作,可以用來融合或循環繪制某些元素或標簽。
④ 權重
使用括號和不同格式來調整單詞的權重:
(PromptA:權重)
:調整權重比例為給定的權重。(PromptA)
:默認權重為1.1,等同于(PromptA:1.1)
。{PromptB}
:默認權重為1.05,等同于(PromptB:1.05)
。[PromptC]
:默認權重為0.952,等同于(PromptC:0.952)
。((PromptD))
:權重為1.21,等于(PromptD:1.1*1.1)
。{{PromptE}}
:權重為1.1025,等于(PromptE:1.05*1.05)
。[[PromptF]]
:權重為0.905504,等于(PromptF:0.952*0.952)
。
此外,根據標簽的位置,權重也會受到影響。比如,如果景色標簽在前,人物可能會被縮小;反之,人物可能會變大或顯示為半身。
⑤ Euler a 取樣方法
使用Euler a
取樣方法生成圖像,本文案例使用下面的配置:
正向提示詞:((studio ghibli)), (1cute girl) walking in street, half body,
反向提示詞:easynegative
取樣方法:Euler a
取樣步驟:65
高解析度修正(Hires.fix):放大演算算法選擇SwinIR_4x,高解析步驟為10,重繪幅度為0.71
提示次相關性(CFG):7
隨機種子:3472141699
產生批次:1
每批數量:8
然后生成如下圖,宮崎駿動漫里的夏天真的太好看啦
![]() | ![]() | ![]() |
![]() | ![]() | ![]() |
![]() | ![]() |
Euler a的優勢
適用性:歐拉采樣方法在生成二次元圖像中可能不是首選,因為它主要用于模擬物理系統或動態系統的數值積分,對于藝術風格的圖像生成并不是其主要應用。
特點:
歐拉方法更適用于模擬動態系統中的物體運動或相機路徑等,對于藝術性較高的二次元圖像可能無法提供所需的效果和細節。
⑥ DPM++ 2M Karras 取樣方法
之后了解到DPM++ 2M Karras
基于深度學習和神經網絡技術,能夠生成高質量、細節豐富的圖像。Euler
采樣方法主要用于模擬物理系統或動態系統的數值積分,對于藝術風格的圖像生成并不是其主要應用。因此將取樣方法修改為DPM++ 2M Karras
,并對其他屬性做了調整,如下:
正向提示詞:((studio ghibli)), (1cute girl) walking in street, half body,
反向提示詞:easynegative
取樣方法:DPM++ 2M Karras
取樣步驟:60
高解析度修正(Hires.fix):放大演算算法選擇SwinIR_4x,高解析步驟為10,重繪幅度為0.4
提示次相關性(CFG):7
隨機種子:3472141699
產生批次:1
每批數量:8
![]() | ![]() | ![]() |
![]() | ![]() | ![]() |
![]() | ![]() |
很明顯可以看出來兩個取樣方法生成的圖片有很大的不同,用DPM++ 2M Karras
方法生成的圖片色彩更鮮艷,人物形象也更生動。
DPM++ 2M Karras 的優勢
適用性: DPM++ 2M Karras可能更適合生成二次元圖像,因為它基于深度學習和神經網絡技術,能夠生成高質量、細節豐富的圖像。
特點:這種方法能夠更好地保持模型的細節,并且可以更快速地生成需要的圖像。它適用于生成二次元風格的圖像,特別是在處理角色造型、背景細節等方面有著較好的效果。
⑦ 新增提示詞案例
依舊使用上面的DPM++ 2M Karras
方法取樣,新增一些正向提示詞和反向提示詞,看看與上面生成的圖片有什么不同,本次配置提示詞更豐富,限制的要求比較多。
提示詞 | 描述 |
---|---|
prompt | ((studio ghibli)), (1cute girl) walking in street, half body, 64K, Professional,Makoto Shinkai, Katsuhiro Otomo, Masashi Kishimoto, Kentaro Miura |
negative prompt | (low quality, worst quality:1.4), (bad_prompt:0.8), (monochrome:1.1), (greyscale), username, watermark, signature, text, logo, nsfw |
![]() | ![]() | ![]() |
![]() | ![]() | ![]() |
![]() | ![]() |
可以看到生成的圖片雖然使用了DPM++ 2M Karras
取樣方法,但是新添加的提示詞(64K, Professional,Makoto Shinkai, Katsuhiro Otomo, Masashi Kishimoto, Kentaro Miura
)的作用也是非常明顯,生的的圖像色彩對比更明顯,圖像的細節也更多了。并且圖像的面部、肢體也和正常人物形象沒有什么很大差別,并沒有出現多余的肢體、畸形的手等變異的地方。
四、總結
StableDiffusionWebUI 的出神入化讓我十分震驚,HAI不僅可以構建應用,而且也提供了部署的功能,這讓我一個嫌麻煩的人似乎找到了歸宿。本來自己構建模型的話就挺復雜了,HAI 徹底解決了我的問題。在體驗過程中,對 HAI 構建應用有一些自己的看法:
缺陷以及優化建議:
1、構建HAI應用地域的選擇有點少,像北京這樣的一線城市選項竟然么有,有一些詫異。
2、生成圖像過程中會出現卡頓現象,雖然顯示圖像在生成中,但是進度一直不動,卡的時間比較長,只能重啟應用來解決問題,如果能監控到圖像生成的問題并給予提示就更好了。個人認為是算力不夠,在處理更大尺寸的圖像、采樣步數過大等問題,會有限制。
3、對于有經驗的使用者,對目標圖像生成時,配置參數有自己的著重點。但是對于新手使用,提示詞積累比較少,生成圖像可能跟自己的預期大相徑庭,能提供一些提示詞案例就更好了。
優點:
1、HAI 提供了簡單易用的API接口和友好的開發工具,方便用戶開發和調試。
2、快速構建和部署,我覺得這是很多使用者都能看到的優點,真的很方便。
3、HAI 使用先進的架構和算法,能夠處理大量并發請求,并提供高吞吐量和低延遲的服務,這讓使用者在使用應用過程中體驗更好。
4、可以搭建一套服務,讓多個應用一起使用,這樣不僅節約了經費,還節省了時間。
附:HAI官方地址:https://cloud.tencent.com/product/hai