體驗在線 AI 畫圖服務(wù)
Midjourney
Midjourney 是一個由同名研究實驗室開發(fā)的人工智能程序,可根據(jù)文本生成圖像普舆,于2022年7月12日進入公開測試階段恬口,用戶可透過 Discord 的機器人指令進行操作。該研究實驗室由 Leap Motion 的創(chuàng)辦人大衛(wèi)·霍爾茲負責領(lǐng)導沼侣∽婺埽—— Wikipedia
可以加入 Beta 計劃從 Discord 群中向機器人提交作圖指令。官網(wǎng)服務(wù)也提供付費訂閱蛾洛。
Microsoft Bing Image Creator
微軟借助 OpenAI 的 DALL-E 圖像生成 AI 养铸,提供了這個在線圖片生成服務(wù)。用戶輸入一段文本提示雅潭,僅需數(shù)秒即可獲得一組 AI 生成的與之匹配的圖像揭厚。
Preview 階段却特,每位普通用戶媒體可以快速生成 25 次扶供,超過次數(shù)需要排隊等待。
搭建自己的 AI 作圖環(huán)境
在線服務(wù)效果好裂明,但是有使用次數(shù)限制椿浓。如果你需要更多的自由度,那么可以考慮自己搭建一套 AI 做圖環(huán)境闽晦。
準備
Stable Diffusion GUI
AI 繪圖已經(jīng)火出圈扳碍,自然開源社區(qū)里也有許多 Stable Diffusion 的圖形界面,方便用戶上手體驗仙蛉。
有專門提供給 MacOS 桌面端的 DiffusionBee笋敞,還有跨平臺的 Stable Diffusion UI v2 。
而本文我們著重介紹可以部署在云端的 Web UI 荠瘪。
AUTOMATIC1111(簡稱 A1111)Stable Diffusion Web UI 是為高級用戶提供的 Stable Diffusion GUI夯巷。
多虧了活躍的開源社區(qū),大多數(shù)新功能都會先支持上這個免費的 Stable Diffusion GUI 哀墓。
但要使用它并不容易趁餐。文檔不夠詳盡,以及提供的茫茫功能列表都會讓新手迷茫篮绰。
購買一臺云主機
初次體驗后雷,先試試最便宜的 GPU 主機。
P.S 最低配的也完全夠用吠各,生成圖片很快臀突!
我開通的云主機的配置如下:
- 系統(tǒng): Ubuntu22.04
- 顯卡: 1 * NVIDIA T4
- CPU/內(nèi)存: 4 核 32 G
- 系統(tǒng)盤: 200GB
- 帶寬: 10Mbps
順暢的網(wǎng)絡(luò)環(huán)境
略,自己想辦法
安裝
機器開通后贾漏,可以直接從 Web 端一鍵登錄:
也可以使用 ssh 登錄候学,在 “更多操作” 下拉菜單中選擇重制密碼,即可重新設(shè)定一個 root 賬號的登錄密碼磕瓷,然后云主機會重啟盒齿。
具體的你可以參考文檔產(chǎn)品文檔念逞。
登錄云主機后,可以先檢查一下顯卡型號:
$ lspci | grep -i nvidia
00:06.0 3D controller: NVIDIA Corporation TU104GL [Tesla T4] (rev a1)
貨真價實边翁,沒有問題翎承,那么開始搭建吧!
安裝一些必要的依賴軟件
# 更新軟件包索引
sudo apt-get -y update
# 必要軟件
sudo apt-get -y install wget git python3 python3-venv python3-pip
sudo apt-get -y install aria2 screen
# 安裝 cuda 軟件包符匾,讓顯卡發(fā)揮超能力
wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2204/x86_64/cuda-keyring_1.0-1_all.deb
sudo dpkg -i cuda-keyring_1.0-1_all.deb
sudo apt-get update
sudo apt-get -y install cuda
# 清理 deb 安裝包
rm *.deb
# 安裝 cuda 之后叨咖,需要重啟生效
sudo reboot
驗證 cuda 是否安裝成功:
$ nvidia-smi
+---------------------------------------------------------------------------------------+
| NVIDIA-SMI 530.30.02 Driver Version: 530.30.02 CUDA Version: 12.1 |
|-----------------------------------------+----------------------+----------------------+
| GPU Name Persistence-M| Bus-Id Disp.A | Volatile Uncorr. ECC |
| Fan Temp Perf Pwr:Usage/Cap| Memory-Usage | GPU-Util Compute M. |
| | | MIG M. |
|=========================================+======================+======================|
| 0 Tesla T4 On | 00000000:00:06.0 Off | 0 |
| N/A 38C P0 26W / 70W| 2279MiB / 15360MiB | 0% Default |
| | | N/A |
+-----------------------------------------+----------------------+----------------------+
+---------------------------------------------------------------------------------------+
| Processes: |
| GPU GI CI PID Type Process name GPU Memory |
| ID ID Usage |
|=======================================================================================|
| 0 N/A N/A 103851 C python3 2274MiB |
+---------------------------------------------------------------------------------------+
寫在前面的一點建議
建議你在使用 ssh 登錄云主機時,使用 screen 命令進入一個虛擬終端會話啊胶,這可以避免因為網(wǎng)絡(luò)不穩(wěn)定而中斷了正在執(zhí)行的命令甸各。因為接下來的一些命令需要下載大文件而耗時比較長。
screen 命令速記:
# 新建一個 screen 會話焰坪,我的會話取名為 workspace
screen -R workspace
# 退出 screen 會話
## 先按組合鍵 Ctrl+A
## 然后按字母 D
# 當需要重新進入 screen 會話
screen -r -d workspace
詳細的命令使用說明趣倾,參考 How To Use Linux Screen 。
部署 Web UI
你可以直接 clone 項目 AUTOMATIC1111/stable-diffusion-webui (又稱 A1111 ) 的最新代碼某饰,然后按照 README 中的說明安裝即可儒恋。
而我參考了另一個項目:
如果你想快速開始體驗,就跟我一樣腳本一把梭黔漂,免得耗費時間找各種插件/模型诫尽;
如果你很在意這些命令在干什么,我簡單添加了一些注釋炬守;
看不懂牧嫉?沒關(guān)系派哲,這個系列以后會有文章深入這些細節(jié)昧狮。
#!/usr/bin/env bash
# A1111 項目沒有打 tag 的習慣计济,你拉取到的最新版本代碼可能無法復現(xiàn)本文的內(nèi)容慨仿,
# 而這個項目 Fork 自 A1111 渡八,還貼心地打上了 tag 壕探,建議你和我一樣使用這份源碼
git clone -b v2.2 https://github.com/camenduru/stable-diffusion-webui
# 指定之后操作的根目錄
base_dir="$(pwd)/stable-diffusion-webui"
# 簡化 ariac2 下載命令
download="aria2c --console-log-level=error -c -x 16 -s 16 -k 1M"
# Extra network / Textual Inversion
# 負面詞怖侦,功能說明 https://github.com/AUTOMATIC1111/stable-diffusion-webui/wiki/Negative-prompt
git clone https://huggingface.co/embed/negative ${base_dir}/embeddings/negative
# Extra network / Lora
# 支持把 Lora 模型作為關(guān)鍵詞
git clone https://huggingface.co/embed/lora ${base_dir}/models/Lora/positive
# 4x-UltraSharp 虱肄,一個通用模型墓捻,可以提高圖片的分辨率抖仅。
# 原始模型發(fā)布在 MEGA 網(wǎng)盤,為了下載方便使用 huggingface 上的備份砖第。
${download} https://huggingface.co/embed/upscale/resolve/main/4x-UltraSharp.pth -d ${base_dir}/models/ESRGAN -o 4x-UltraSharp.pth
# 一些方便的插件撤卢,可以去他們的 Github 主頁查看功能介紹
## 方便從 Web 端下載 civitai 市場的模型
git clone -b v2.0 https://github.com/camenduru/sd-civitai-browser ${base_dir}/extensions/sd-civitai-browser
## 方便從 Web 端下載 huggingface 市場的模型
git clone https://github.com/camenduru/stable-diffusion-webui-huggingface ${base_dir}/extensions/stable-diffusion-webui-huggingface
## 一個圖片瀏覽器,方便瀏覽保存過的圖片
git clone https://github.com/AlUlkesh/stable-diffusion-webui-images-browser ${base_dir}/extensions/stable-diffusion-webui-images-browser
# 主模型
models="${base_dir}/models"
## Stable Diffuison v1.5梧兼,SD1.5 的模型 (可選)
${download} https://huggingface.co/runwayml/stable-diffusion-v1-5/resolve/main/v1-5-pruned-emaonly.safetensors -d ${models}/Stable-diffusion -o v1-5-pruned-emaonly.safetensors
## 國風3 https://huggingface.co/xiaolxl/GuoFeng3
${download} https://huggingface.co/xiaolxl/GuoFeng3/resolve/main/GuoFeng3.2.safetensors -d ${models}/Stable-diffusion -o GuoFeng3.2.safetensors
# LoRA 模型
mkdir -p ${models}/Lora
## 墨心 MoXin https://civitai.com/models/12597/moxin
${download} https://civitai.com/api/download/models/14856 -d ${models}/Lora -o MoXin_v10.safetensors
最后我們啟動 Web UI
直接通過 launch.py 啟動放吩,而不是 webui.sh ,這樣可以加載額外安裝的插件羽杰。
一些 Python 依賴包會在初次運行時安裝渡紫。
cd stable-diffusion-webui
## 初始化并啟用新的 python venv 環(huán)境
python3 -m venv .venv
source .venv/bin/activate
## 安裝支持 cuda 11.8 的 pytorch, xformer
pip install torch torchvision torchaudio torchtext torchdata --extra-index-url https://download.pytorch.org/whl/cu118 -U
pip install xformers==0.0.18 triton==2.0.0 -U
## 在 10000 端口上啟動 Web 服務(wù)
python3 launch.py --listen --xformers --enable-insecure-extension-access --gradio-queue --port 10000
瀏覽器打開 http://${host_ip}:10000 就可以看到 Stable Diffusion Web 頁面了到推。
把 ${host_ip} 換成你的云主機 ip 地址。
P.S 安裝腳本中省略了部分本文用不到的插件惕澎,所以 Web 截圖會略有不同莉测。
使用自建的 AI 作圖環(huán)境
選擇一個基礎(chǔ)模型(主模型)在 Stable Diffusion checkpoint 下拉菜單中,選擇 GuoFeng3.2.safetensors 唧喉。
GuoFeng3 這是一個中國華麗古風風格模型捣卤,也可以說是一個古風游戲角色模型,具有2.5D的質(zhì)感八孝。來自: https://huggingface.co/xiaolxl/GuoFeng3
點擊 Generate 下面的 Show/hide extra networks 圖標董朝,可以看到已經(jīng)安裝的模型。
切換選項卡干跛,可以看到我們已經(jīng)安裝的所有 LoRA 模型子姜。
Q: 什么是 LoRA 模型?
A: 根據(jù)特定概念更改現(xiàn)有 Stable Diffusion 模型結(jié)果的文件驯鳖。這可以是一種藝術(shù)風格闲询、一個角色久免、一個現(xiàn)實中的人浅辙、一個物體或一個主題。一些著名的例子:Arcane Style LoRA(奧術(shù)風格 LoRA) 阎姥,Makima from Chainsaw Man LoRA(來自動漫《電鋸人》中的瑪奇瑪)记舆。(來自:https://aituts.com/stable-diffusion-lora/ )
點擊一個 LoRA 模型,可以看到在 Prompts 輸入框中呼巴,自動填寫上了模型名稱:
我選擇 Moxin_10 這個模型泽腮。
墨心 MoXin 1.0
昔涓子《琴心》,王孫《巧心》衣赶,心哉美矣诊赊,故用之焉。
來自: https://civitai.com/models/12597/moxin
(非常適合與國風3 搭配使用的 LoRA 模型府瞄,可以生成水墨畫風格的圖片碧磅。)
從最簡單的開始
準備創(chuàng)作,首先要有個想法:
假如我想畫一只熊遵馆。
在關(guān)鍵詞 (Prompt) 輸入框中添加一句描述:
a bear
提示詞目前只支持英語鲸郊。
如果你有更復雜的描述,但是表達不出來货邓?翻譯軟件一大把秆撮。
然后點擊 Generate 進行生成,大概花了 10s换况,圖片就生成好了职辨。
說實話盗蟆,這虎頭虎腦的黑熊,效果還挺萌舒裤!頓時對我們的 AI 繪畫之旅姆涩,充滿信心了有木有?
如果要再次生成惭每,就繼續(xù)點擊 Generate 骨饿;如果要一次生成多張圖片,可以調(diào)整 Batch count 台腥。
顯卡有多還可以調(diào)整 Batch size 進行并發(fā)生成??宏赘。
點擊 Generate 進行批量生成,大概花了 13s黎侈,多張圖片就生成好了察署。
多生成幾張之后會發(fā)現(xiàn),奇奇怪怪的圖片真不少峻汉,質(zhì)量參差不齊贴汪。
獲得更好的效果
首先我們可以點開模型的介紹頁面,看看模型的作者都有什么建議休吠。
根據(jù)作者的建議扳埂,我做了如下調(diào)整:
加上負面詞(Negative prompt):
lowres, worstquality, low quality, normal quality, text, error, extra digit, jpegartifacts, signature, watermark, username, blurry
這些負面詞,稍微翻譯下瘤礁,就能懂他們的意思阳懂。
修改了參數(shù):
- Sampler: DPM++ SDE Karras
- Sampling steps: 35
- CFG Scale: 5
這里先不介紹這些參數(shù)的含義,僅僅是按照模型作者推薦的來設(shè)置柜思。
再來點擊 Generate 岩调,生成看看。
生成時間長了一些赡盘,大概 40s号枕。
而且通過負面詞篩掉了許多質(zhì)量不佳的圖片素材,出圖效果確實變好了許多陨享。
賦予圖片主題
我們提供的關(guān)鍵詞過于簡單葱淳,所以生成的圖片沒有一個統(tǒng)一的主題,所以我們需要細化一下需求霉咨,擴充一下提示詞中的畫面描述蛙紫。
比如,現(xiàn)在我想要畫一只黑熊站在楓葉林中練習揮劍途戒。
修改關(guān)鍵詞坑傅,把圖片描述的更細致:
A black bear stood in the maple leaf forest and practiced waving his sword.
為了快速看到構(gòu)圖效果,可以調(diào)低 Batch count喷斋。
再次嘗試生成:
圖片里的這只黑熊有“劍客”內(nèi)味兒了唁毒,只是手指看起來怪怪的蒜茴。
手指的的生成問題,在使用 Stable Diffusion 時很常見浆西,我們可以暫時通過負面詞去繞過這個問題粉私。
Tips: 你如果使用和我一樣的參數(shù)和關(guān)鍵詞,填入同樣的 Seed 就能復現(xiàn)我這張圖哦~
圖片生成信息中可見 Seed: 620974436 近零。
舉一反三
當有一張圖片讓我們感覺不錯诺核,希望再得到類似的創(chuàng)意怎么做?
接下來我們以這張”灰熊劍客”的構(gòu)圖為基準久信,來生成其他的圖片窖杀。
點擊生成圖片下方的 Send to img2img 按鈕。
點擊后會自動跳轉(zhuǎn)到 img2img 標簽頁裙士。仔細觀察可以發(fā)現(xiàn)入客,相比之前的頁面又多了 2 個可調(diào)整的參數(shù):
Denoising strength,去噪強度腿椎,控制與原始圖像相比桌硫,它將產(chǎn)生多少變化:
- 設(shè)置成 0 時,不會有任何變化啃炸;
- 設(shè)置成 1 時铆隘,會得到一個無關(guān)的繪圖。
那我們保持之前的參數(shù)都不變肮帐,僅僅調(diào)整 Denoising strength 咖驮,來看生成多張圖片的效果。
- Denoising strength: 0.75
- Denoising strength: 0.35
因此如果我們想要生成與原圖片類似的構(gòu)圖训枢,Denoising strength 取值在 0.5 以下更佳。
Resize mode忘巧,如果目標圖像的寬高比與輸入圖像的寬高比不同恒界,有如下幾種方法可以調(diào)和差異:
- Just resize: 簡單地將源圖像調(diào)整為目標分辨率,可能導致不正確的寬高比砚嘴。
- Crop and resize: 調(diào)整源圖像的大小十酣,保留寬高比,使其占據(jù)整個目標分辨率际长,并裁剪突出的部分耸采。
- Resize and fill: 調(diào)整源圖像的大小,保持寬高比工育,使其完全適合目標分辨率虾宇,并從源圖像中按行/列填充空白。
- Just resize (latent upscale):類似于 “Just resize”如绸,但縮放是在潛在空間中完成的嘱朽。使用大于 0.5 的 Denoising strength 來避免圖像模糊旭贬。
我們固定 Denoising strength 為 0 (即不生成新的繪圖),嘗試將 512x512 分辨率的原圖調(diào)整為 300x600 的圖片搪泳,觀察在不同 Resize mode 下的變化稀轨。
起初我不是很能理解 Just resize (latent upscale) 的意義 ,感覺就是讓原圖變得更抽象了岸军。
當我根據(jù)說明中的提示把 Denoising strength 設(shè)置為 0.6 (即大于 0.5)奋刽,再次生成:
這樣生成的圖片是清晰的,AI 發(fā)揮了創(chuàng)意的同時讓這一組圖片中的灰熊艰赞,變得更瘦了杨名。看來 Just resize (latent upscale) 模式主要是用來和 Denoising strength 配合的猖毫。
提高分辨率
在不那么充裕的算力資源下台谍,為了更多更快地生成圖像,我們不會設(shè)定過高的圖片分辨率吁断,但是當生成的結(jié)果讓我們滿意時趁蕊,分辨率不達預期怎么辦?
在 Stable Diffusion 中提供了 Image AI upscaler (圖像 AI 升頻器)仔役,比如: ESRGAN 掷伙。
找到中意的圖片,點擊下方的 Send to extras 按鈕又兵。
點擊后會自動跳轉(zhuǎn)到 Extras 標簽頁任柜。但是這里的選項比較多,篇幅有限沛厨,簡單給各位看官演示一下宙地,以后文章中細聊。
繼續(xù)探索
使用文本生成圖片依賴合適的模型逆皮,發(fā)揮創(chuàng)意組合關(guān)鍵詞(Prompts)宅粥,輔以調(diào)整參數(shù)獲得滿意的效果。
學習資源很多电谣,可以多看看其他人的作品秽梅。
比如: https://prompthero.com/prompt-builder/62cc0211b76
一幅作品用到的模型,做圖參數(shù)剿牺,關(guān)鍵詞都會分享出來企垦。雖然僅憑這些不一定能復刻一個同樣的作品,但是就算是照抄關(guān)鍵詞也能發(fā)現(xiàn)不少有趣的東西晒来。
下面是我使用 Stable Diffusion 1.5 基礎(chǔ)模型和相同的關(guān)鍵詞生成的作品:
推薦一些發(fā)布 AI 藝術(shù)作品網(wǎng)站:
- https://prompthero.com/
-
https://pixai.art/
推薦一些 Prompts 學習筆記: - https://www.creativindie.com/best-midjourney-prompts-an-epic-list-of-crazy-text-to-image-ideas/
-
https://stable-diffusion-art.com/prompts/
推薦一些模型市場: - https://civitai.com/
- https://huggingface.co/models
總結(jié)
本次給大家分享了如何開啟你的 AI 繪圖之旅钞诡,而 AI 藝術(shù)卻不僅限于圖像,如果大家對 AI 藝術(shù)感興趣的話,推薦大家去看看這篇文章臭增,它相當于是一個資源導航懂酱。
利用 AI 去發(fā)揮更多的創(chuàng)意吧!
引用
拓展思考
Q: AI 能作圖誊抛,那么 AI 可以幫忙寫作圖關(guān)鍵詞嗎列牺?
A: 當然可以!但是下回再說拗窃。敬請期待之后的分享瞎领!
參考
- https://github.com/AUTOMATIC1111/stable-diffusion-webui/wiki/Features/
- https://github.com/camenduru/stable-diffusion-webui-colab
- https://huggingface.co/xiaolxl/GuoFeng3
- https://civitai.com/models/12597/moxin
- https://developer.nvidia.com/cuda-11-8-0-download-archive
- https://pytorch.org/get-started/locally/
- https://stable-diffusion-art.com/inpainting_basics/
- https://stable-diffusion-art.com/ai-upscaler/
- https://pharmapsychotic.com/tools.html