然而,基于 SD 來進(jìn)行圖像生成的工具遠(yuǎn)不止 SD WebUI 這一個(gè),還有很多其他同類工具,比如 Fooocus、WebUI Forge、ComfyUI 等等。

ComfyUI 介紹

在這所有的基于 SD 的同類工具里,ComfyUI 的自由度最高,直接看圖就明白了:

ComfyUI 并不追求簡(jiǎn)單易用,而是將重點(diǎn)放在了自由度和可拓展性上。它通過模塊化的節(jié)點(diǎn)設(shè)計(jì),讓用戶能夠根據(jù)自己的需求,自由組合和調(diào)整工作流,實(shí)現(xiàn)高度個(gè)性化的創(chuàng)作。同時(shí),ComfyUI 還支持用戶自行開發(fā)和拓展節(jié)點(diǎn)功能,使其成為一個(gè)開放的創(chuàng)作平臺(tái)。

在 AI 知識(shí)庫領(lǐng)域,F(xiàn)astGPT 也采用了工作流的設(shè)計(jì),有異曲同工之妙。

采用工作流模式,用戶可以清晰地看到整個(gè)創(chuàng)作流程,并且可以方便地對(duì)每個(gè)節(jié)點(diǎn)進(jìn)行配置和調(diào)整。除此之外,還有很多肉眼可見的優(yōu)勢(shì),比如:

怎么樣,想實(shí)現(xiàn) AI 繪畫自由么?跟我一起來學(xué) ComfyUI 吧。

ComfyUI在哪安裝?

這一節(jié)內(nèi)容玩過 SD WebUI 的同學(xué)應(yīng)該很熟悉,一般來說有兩種選擇:要么裝在本地,要么裝在云上。

如果你自己的電腦 GPU 給力,完全可以直接裝在本地,0 成本,一分錢不用花。

如果你本地的電腦 GPU 不太給力,可以選擇云端服務(wù),云端的配置上限很高,生圖速度更快,唯一需要考慮的就是費(fèi)用問題。

我的電腦是 M1 Max,用 ComfyUI 生圖的速度也很慢,如果你的配置還不如我的 M1 Max,就別想在本地跑了。

如果你決定了要將 ComfyUI 部署在云端,可以試試 Sealos 最近上線的云主機(jī),Sealos 的付費(fèi)模式是按量付費(fèi),用的時(shí)候開機(jī),不用的時(shí)候關(guān)機(jī),關(guān)機(jī)狀態(tài)下只收少量的存儲(chǔ)費(fèi)用。如果你不是一天 24 小時(shí)使用 ComfyUI,可以試試 Sealos 的這種模式。

當(dāng)然,如果你只是短期玩玩,大可以選擇某些云廠商所謂的新人優(yōu)惠,價(jià)格確實(shí)非常低,但是 “老用戶與狗不得入內(nèi)啊

實(shí)際測(cè)試下來,我在 Sealos 上新建了個(gè) 12C/44G 的云主機(jī),GPU 選的是 NVIDIA A10,存儲(chǔ) 50G,關(guān)機(jī)狀態(tài)下每小時(shí)的費(fèi)用是 0.04 元。開機(jī)狀態(tài)下每小時(shí)的費(fèi)用是 9.24 元。

如果你一天只玩?zhèn)z小時(shí),那么一天的花費(fèi)不到 20 元。然而現(xiàn)實(shí)情況是,有時(shí)候你可能一個(gè)星期只玩了一兩天,其他時(shí)間都是關(guān)機(jī),那就更便宜了,因?yàn)殛P(guān)機(jī)狀態(tài)下一天只有 9 毛錢。

總結(jié)一下:

ComfyUI 的安裝

下面介紹如何在 Linux 主機(jī)上安裝 ComfyUI,Windows 用戶請(qǐng)自行參考 ComfyUI 官方文檔或者網(wǎng)上的文章進(jìn)行安裝。

以 Sealos 為例,首先進(jìn)入 Sealos 廣州可用區(qū):https://gzg.sealos.run

點(diǎn)擊桌面的 “云主機(jī)”:

點(diǎn)擊 “新建主機(jī)”,選擇 “異構(gòu)計(jì)算”,然后在機(jī)型中選擇 GPU 型號(hào),目前最便宜的是 T4,但是好像已經(jīng)售空了,可以選擇 A10。

下面繼續(xù)選擇操作系統(tǒng)鏡像,存儲(chǔ)推薦 50G 以上,因?yàn)楦鞣N模型要占用存儲(chǔ)空間,有條件建議直接 100G。公網(wǎng) IP 也需要打開,不然無法聯(lián)網(wǎng)。帶寬直接默認(rèn) 1M 就夠了。最后設(shè)置好密碼就可以點(diǎn)擊右上角的 “提交” 了。

創(chuàng)建完成后,點(diǎn)擊云主機(jī)右邊的三個(gè)點(diǎn),然后點(diǎn)擊 “終端”:

打開終端后,輸入云主機(jī)的密碼即可登錄云主機(jī)。然后執(zhí)行命令 sudo su 切換到 root 用戶。

接下來正式進(jìn)入安裝流程。

首先需要安裝 NVIDIA 驅(qū)動(dòng):

apt update
ubuntu-drivers install nvidia:535

安裝完驅(qū)動(dòng)后,執(zhí)行以下命令重啟云主機(jī):

systemctl reboot

重啟之后執(zhí)行命令 nvidia-smi 測(cè)試驅(qū)動(dòng)是否安裝成功:

接著安裝 NVIDIA Container Toolkit:

curl -fsSL https://nvidia.github.io/libnvidia-container/gpgkey | sudo gpg --dearmor -o /usr/share/keyrings/nvidia-container-toolkit-keyring.gpg \
&& curl -s -L https://nvidia.github.io/libnvidia-container/stable/deb/nvidia-container-toolkit.list | \
sed 's#deb https://#deb [signed-by=/usr/share/keyrings/nvidia-container-toolkit-keyring.gpg] https://#g' | \
sudo tee /etc/apt/sources.list.d/nvidia-container-toolkit.list

apt update
apt install -y nvidia-container-toolkit

安裝 Docker:

apt install -y docker.io

配置 Docker 使用 GPU:

nvidia-ctk runtime configure --runtime=docker

systemctl restart docker

執(zhí)行以下命令拉取 ComfyUI 的鏡像:

docker pull registry.cn-guangzhou.aliyuncs.com/yangchuansheng/comfyui-boot:latest

這個(gè)鏡像比較大,需要多等待一會(huì)兒。

鏡像拉取完成后,再在當(dāng)前目錄下創(chuàng)建一個(gè) download.txt 文件,內(nèi)容如下:

# Stable Cascade

#https://huggingface.co/stabilityai/stable-cascade/resolve/main/comfyui_checkpoints/stable_cascade_stage_c.safetensors
# dir=models/checkpoints
# out=stable_cascade_stage_c.safetensors
#https://huggingface.co/stabilityai/stable-cascade/resolve/main/comfyui_checkpoints/stable_cascade_stage_b.safetensors
# dir=models/checkpoints
# out=stable_cascade_stage_b.safetensors
#https://huggingface.co/stabilityai/stable-cascade/resolve/main/controlnet/canny.safetensors
# dir=models/controlnet
# out=stable_cascade_canny.safetensors
#https://huggingface.co/stabilityai/stable-cascade/resolve/main/controlnet/inpainting.safetensors
# dir=models/controlnet
# out=stable_cascade_inpainting.safetensors
#https://huggingface.co/stabilityai/stable-cascade/resolve/main/controlnet/super_resolution.safetensors
# dir=models/controlnet
# out=stable_cascade_super_resolution.safetensors

# VAE

https://hf-mirror.com/stabilityai/sd-vae-ft-mse-original/resolve/main/vae-ft-mse-840000-ema-pruned.safetensors
dir=models/vae
out=vae-ft-mse-840000-ema-pruned.safetensors
https://hf-mirror.com/madebyollin/taesd/resolve/main/taesd_decoder.safetensors
dir=models/vae_approx
out=taesd_decoder.safetensors
https://hf-mirror.com/madebyollin/taesdxl/resolve/main/taesdxl_decoder.safetensors
dir=models/vae_approx
out=taesdxl_decoder.safetensors

# Upscale

https://mirror.ghproxy.com/https://github.com/xinntao/Real-ESRGAN/releases/download/v0.1.0/RealESRGAN_x4plus.pth
dir=models/upscale_models
out=RealESRGAN_x4plus.pth
https://mirror.ghproxy.com/https://github.com/xinntao/Real-ESRGAN/releases/download/v0.2.2.4/RealESRGAN_x4plus_anime_6B.pth
dir=models/upscale_models
out=RealESRGAN_x4plus_anime_6B.pth
https://hf-mirror.com/Kim2091/AnimeSharp/resolve/main/4x-AnimeSharp.pth
dir=models/upscale_models
out=4x-AnimeSharp.pth
https://hf-mirror.com/Kim2091/UltraSharp/resolve/main/4x-UltraSharp.pth
dir=models/upscale_models
out=4x-UltraSharp.pth
https://hf-mirror.com/gemasai/4x_NMKD-Siax_200k/resolve/main/4x_NMKD-Siax_200k.pth
dir=models/upscale_models
out=4x_NMKD-Siax_200k.pth
https://hf-mirror.com/uwg/upscaler/resolve/main/ESRGAN/4x_foolhardy_Remacri.pth
dir=models/upscale_models
out=4x_foolhardy_Remacri.pth
https://hf-mirror.com/uwg/upscaler/resolve/main/ESRGAN/8x_NMKD-Superscale_150000_G.pth
dir=models/upscale_models
out=8x_NMKD-Superscale_150000_G.pth

# Embeddings

https://hf-mirror.com/datasets/gsdf/EasyNegative/resolve/main/EasyNegative.safetensors
dir=models/embeddings
out=easynegative.safetensors
https://hf-mirror.com/lenML/DeepNegative/resolve/main/NG_DeepNegative_V1_75T.pt
dir=models/embeddings
out=ng_deepnegative_v1_75t.pt

# CLIP Vision

https://hf-mirror.com/openai/clip-vit-large-patch14/resolve/main/model.safetensors
dir=models/clip_vision
out=clip_vit14.safetensors
#https://huggingface.co/stabilityai/control-lora/resolve/main/revision/clip_vision_g.safetensors
# dir=models/clip_vision
# out=control-lora-clip_vision_g.safetensors

# unCLIP

#https://huggingface.co/stabilityai/stable-diffusion-2-1-unclip-small/resolve/main/image_encoder/model.safetensors
# dir=models/checkpoints
# out=stable-diffusion-2-1-unclip-small.safetensors

# ControlNet v1.1
# More models: https://huggingface.co/lllyasviel/sd_control_collection

https://hf-mirror.com/lllyasviel/ControlNet-v1-1/resolve/main/control_v11f1p_sd15_depth.pth
dir=models/controlnet
out=control_v11f1p_sd15_depth.pth
https://hf-mirror.com/lllyasviel/ControlNet-v1-1/resolve/main/control_v11p_sd15_canny.pth
dir=models/controlnet
out=control_v11p_sd15_canny.pth
https://hf-mirror.com/lllyasviel/ControlNet-v1-1/resolve/main/control_v11p_sd15_openpose.pth
dir=models/controlnet
out=control_v11p_sd15_openpose.pth
#https://huggingface.co/lllyasviel/ControlNet-v1-1/resolve/main/control_v11e_sd15_ip2p.pth
# dir=models/controlnet
# out=control_v11e_sd15_ip2p.pth
#https://huggingface.co/lllyasviel/ControlNet-v1-1/resolve/main/control_v11e_sd15_shuffle.pth
# dir=models/controlnet
# out=control_v11e_sd15_shuffle.pth
#https://huggingface.co/lllyasviel/ControlNet-v1-1/resolve/main/control_v11f1e_sd15_tile.pth
# dir=models/controlnet
# out=control_v11f1e_sd15_tile.pth
#https://huggingface.co/lllyasviel/ControlNet-v1-1/resolve/main/control_v11p_sd15_inpaint.pth
# dir=models/controlnet
# out=control_v11p_sd15_inpaint.pth
#https://huggingface.co/lllyasviel/ControlNet-v1-1/resolve/main/control_v11p_sd15_lineart.pth
# dir=models/controlnet
# out=control_v11p_sd15_lineart.pth
#https://huggingface.co/lllyasviel/ControlNet-v1-1/resolve/main/control_v11p_sd15_mlsd.pth
# dir=models/controlnet
# out=control_v11p_sd15_mlsd.pth
#https://huggingface.co/lllyasviel/ControlNet-v1-1/resolve/main/control_v11p_sd15_normalbae.pth
# dir=models/controlnet
# out=control_v11p_sd15_normalbae.pth
#https://huggingface.co/lllyasviel/ControlNet-v1-1/resolve/main/control_v11p_sd15_scribble.pth
# dir=models/controlnet
# out=control_v11p_sd15_scribble.pth
#https://huggingface.co/lllyasviel/ControlNet-v1-1/resolve/main/control_v11p_sd15_seg.pth
# dir=models/controlnet
# out=control_v11p_sd15_seg.pth
#https://huggingface.co/lllyasviel/ControlNet-v1-1/resolve/main/control_v11p_sd15_softedge.pth
# dir=models/controlnet
# out=control_v11p_sd15_softedge.pth
#https://huggingface.co/lllyasviel/ControlNet-v1-1/resolve/main/control_v11p_sd15s2_lineart_anime.pth
# dir=models/controlnet
# out=control_v11p_sd15s2_lineart_anime.pth

# Control-LoRA

#https://huggingface.co/stabilityai/control-lora/resolve/main/control-LoRAs-rank256/control-lora-canny-rank256.safetensors
# dir=models/controlnet
# out=control-lora-canny-rank256.safetensors
#https://huggingface.co/stabilityai/control-lora/resolve/main/control-LoRAs-rank256/control-lora-depth-rank256.safetensors
# dir=models/controlnet
# out=control-lora-depth-rank256.safetensors
#https://huggingface.co/stabilityai/control-lora/resolve/main/control-LoRAs-rank256/control-lora-recolor-rank256.safetensors
# dir=models/controlnet
# out=control-lora-recolor-rank256.safetensors
#https://huggingface.co/stabilityai/control-lora/resolve/main/control-LoRAs-rank256/control-lora-sketch-rank256.safetensors
# dir=models/controlnet
# out=control-lora-sketch-rank256.safetensors

創(chuàng)建本地存儲(chǔ)目錄并賦予權(quán)限:

mkdir storage
chmod -R a+w storage

最后執(zhí)行以下命令啟動(dòng)容器:

docker run --restart always -d --net host   --name comfyui   --gpus all   -p 8188:8188   -v "$(pwd)"/storage:/home/runner -v "$(pwd)"/download.txt:/home/scripts/download.txt   -e CLI_ARGS=""   registry.cn-hangzhou.aliyuncs.com/yangchuansheng/comfyui-boot:latest

容器啟動(dòng)過程中,會(huì)下載各種必要的模型和節(jié)點(diǎn),如果某個(gè)模型下載失敗,最終容器會(huì)重啟繼續(xù)進(jìn)行下載,直到最后模型全部下載完成,耐心等待即可。

可以通過命令 docker logs -f comfyui 查看啟動(dòng)日志,最終啟動(dòng)成功日志如下:

在瀏覽器地址欄中輸入 <云主機(jī)的公網(wǎng)地址>:8188 就可以訪問 ComfyUI 的 Web 界面了。

ComfyUI 的基礎(chǔ)配置

我們先來裝一個(gè)必備的節(jié)點(diǎn)。點(diǎn)擊右下角的 “Manager”:

接著點(diǎn)擊 “Install Custom Nodes”:

在搜索框輸入 workspace 進(jìn)行搜索,然后點(diǎn)擊 ComfyUI Workspace Manager - Comfyspace 右邊的 “Install” 按鈕進(jìn)行安裝:

安裝完成后回到云主機(jī)執(zhí)行命令 systemctl restart docker 重啟容器,然后直接刷新瀏覽器頁面,你會(huì)發(fā)現(xiàn)左上角多了幾個(gè)按鈕:

這個(gè)玩意就是用來管理各種工作流和模型的,非常好用。我們先來安裝 SD 最先進(jìn)的模型 SDXL,直接點(diǎn)擊左上角的 “Models”,然后點(diǎn)擊 “Install Models”。

這里面的模型都來自 C 站 (https://civitai.com),需要縱云梯才能下載,我們的云主機(jī)是沒法下載的。為了曲線救國(guó),我們可以點(diǎn)擊右上角的 “Cumstom URL Install”:

在彈出來的彈窗中輸入國(guó)內(nèi)模型下載站的模型下載鏈接和模型保存目錄:

然后點(diǎn)擊 Confirm,左下角就會(huì)出現(xiàn)一個(gè)進(jìn)度條開始下載模型,靜靜等待模型下載完成即可。如果下載速度過慢,可以換一個(gè)魔搭的下載鏈接繼續(xù)嘗試下載:https://modelscope.cn/api/v1/models/AI-ModelScope/stable-diffusion-xl-base-1.0/repo?Revision=master&FilePath=sd_xl_base_1.0.safetensors

模型下載完成后,關(guān)掉彈窗,點(diǎn)擊右下角的 “Manager”:

然后點(diǎn)擊 “Restart” 重啟服務(wù):

關(guān)掉彈窗,多點(diǎn)擊兩次右邊的 “Refresh” 按鈕:

現(xiàn)在你再點(diǎn)擊下圖中我用紅框選出來的區(qū)域,就會(huì)出現(xiàn)你之前下載好的模型了:

接下來就是見證奇跡的時(shí)刻,直接點(diǎn)擊 “Queue prompt”:

頃刻之間,圖就畫好了,你可以在圖片上方點(diǎn)擊鼠標(biāo)右鍵,然后點(diǎn)擊 “Open Image” 來查看大圖。

我們將圖片的高度和寬度改成 1024 再試試:

最終畫出來的圖更加高清:

ComfyUI 原理解析

秀完了肌肉,我們?cè)賮砜纯?ComfyUI 的工作原理。

ComfyUI 采用了可視化編程的思路,將 Stable Diffusion 的各個(gè)功能模塊以 “節(jié)點(diǎn)” 的形式呈現(xiàn),用戶只需將節(jié)點(diǎn)用 “邊” 連接起來,就能自定義出一個(gè)完整的圖像生成流程。

“節(jié)點(diǎn)” 代表特定的操作或函數(shù),“邊” 將 “節(jié)點(diǎn)” 的輸出連接到另一節(jié)點(diǎn)的輸入。整個(gè)流程有點(diǎn)像一條生產(chǎn)線,原材料 (如文本提示) 在不同工位 (節(jié)點(diǎn)) 加工處理,最終生成成品 (如圖像)。

每個(gè)節(jié)點(diǎn)上的術(shù)語看起來可能會(huì)很晦澀難懂,不用擔(dān)心,下面我以系統(tǒng)默認(rèn)的工作流為例,按照生圖的順序依次來講解。

加載模型

首先要在 “Load Checkpoint” 節(jié)點(diǎn)中選擇預(yù)訓(xùn)練的 SD Checkpoint 模型進(jìn)行加載,單機(jī)其中的模型名稱即可顯示 ComfyUI 服務(wù)器所有可用的模型列表。

?

如果節(jié)點(diǎn)太小,可以使用鼠標(biāo)滾輪或在觸摸板上用兩根手指捏合來放大和縮小。

一個(gè)完整的 Stable Diffusion 模型由以下三個(gè)主要部分構(gòu)成:

  1. 文本編碼器 (CLIP):一個(gè)將自然語言文本映射為潛在空間的神經(jīng)網(wǎng)絡(luò)。它使用 Contrastive Language-Image Pre-training (CLIP) 模型。
  2. 先驗(yàn)/去噪模型 (UNet):一個(gè) UNet 結(jié)構(gòu)的神經(jīng)網(wǎng)絡(luò),用于從潛在空間中的隨機(jī)噪聲圖像出發(fā),去噪生成與提示匹配的圖像。這是整個(gè)生成過程的核心。
  3. 解碼器 (VAE):一個(gè) Variational Autoencoder,用于在圖像空間和潛在空間之間進(jìn)行轉(zhuǎn)換。具體來說,編碼器將圖像編碼為潛碼,解碼器將潛碼解碼回圖像。

Load Checkpoint 節(jié)點(diǎn)會(huì)返回這三個(gè)組件,分別輸出到 CLIP、MODEL 和 VAE 端口,供下游節(jié)點(diǎn)使用。這有點(diǎn)像把一臺(tái)機(jī)器拆解成不同的功能模塊。

輸入提示詞

接下來 CLIP 會(huì)連接到兩個(gè) CLIP Text Encode 節(jié)點(diǎn),這個(gè)節(jié)點(diǎn)會(huì)利用 CLIP 模型的文本編碼器部分,將輸入的文本提示轉(zhuǎn)換為一個(gè)潛在向量表示,也就是 “embedding”。

它會(huì)先將提示拆分為一系列 token,然后將這些 token 輸入 CLIP 的文本編碼器 (該編碼器是一個(gè)預(yù)訓(xùn)練的 Transformer 語言模型)。編碼器會(huì)將這些 token 編譯成一個(gè)個(gè)的詞特征向量。此步驟下會(huì)輸出 77 個(gè)等長(zhǎng)的向量,每個(gè)向量包含 768 個(gè)維度。這個(gè)向量就可以指引后續(xù)的圖像生成過程了。

我們可以將文本編碼過程理解為對(duì)食材進(jìn)行切割、腌制等預(yù)處理,讓它們可以更好地融入最終的佳肴中。

在本工作流中,上面的 CLIP Text Encode 節(jié)點(diǎn) CONDICTIONG 輸出連接到 KSampler 節(jié)點(diǎn)的 “正輸入”,所以它的提示詞是正向提示詞 (所謂正向提示詞,就是我想要什么)。下面的 CLIP Text Encode 節(jié)點(diǎn) CONDICTIONG 輸出連接到 KSampler 節(jié)點(diǎn)的 “負(fù)輸入”,所以它的提示詞是反向提示詞 (所謂反向提示詞,就是我不想要什么)。

潛空間圖像

接下來,這些特征向量會(huì)和一張隨機(jī)圖 (可以簡(jiǎn)單理解這是一張布滿電子雪花的圖,或充滿信息噪聲的圖) 一起被轉(zhuǎn)化到一個(gè)潛空間 (Latent Space) 里。

潛空間圖像 (latent image) 的尺寸通常小于最終生成圖像的大小,但與之成正比。所以調(diào)整潛空間圖像的寬高就可以控制最終圖像的分辨率。潛空間圖像的像素值是隨機(jī)采樣自標(biāo)準(zhǔn)正態(tài)分布的。

我們可以將潛像類比為一塊 “畫布”,畫布的大小決定了最終作品的尺幅。開始時(shí)畫布上只有隨機(jī)的色塊,但它蘊(yùn)含了千變?nèi)f化的可能,等待被創(chuàng)意的火花點(diǎn)燃。

在這里你可以設(shè)置最終圖像的高度和寬度,也可以設(shè)置生成的圖片數(shù)量 (默認(rèn)是 1)。

生成圖像

接下來,我們來到 KSampler 節(jié)點(diǎn),這是整個(gè)工作流程中最關(guān)鍵核心的一個(gè)節(jié)點(diǎn)。KSampler 實(shí)現(xiàn)了擴(kuò)散模型的迭代采樣過程,可以將上面的隨機(jī)潛空間圖像根據(jù)文本提示詞生成最終的圖像。

KSampler 使用的采樣算法和調(diào)度器 (scheduler) 決定了每一步去噪的幅度和方式。不同的采樣器在速度和效果上都各有權(quán)衡。

在每個(gè)采樣步驟中,先將潛像輸入 VAE 解碼為普通圖像,再和 CLIP 嵌入一起送入 UNet。UNet 會(huì)預(yù)測(cè)噪聲殘差,將其從潛像中減去一部分,從而讓圖像更接近目標(biāo)的提示語義。這個(gè)過程重復(fù)多個(gè)步驟,每一步去除一些噪聲,讓圖像變得越來越清晰。

?

打個(gè)比方,采樣過程就像一位雕塑家在雕刻。最初她面對(duì)的是一塊毫無章法的石料,經(jīng)過一點(diǎn)一點(diǎn)的鑿削打磨,漸漸顯露出美輪美奐的藝術(shù)品。每一錘一鑿都要拿捏分寸,避免破壞已有的成果。

所以與其說 SD 是在 “生成” 圖像,不如說它是在 “雕刻” 圖像。

世間所有的圖片都在一張充滿噪點(diǎn)的圖片里,SD 只是將這張圖片里不需要的部分都去掉了,剩下的部分就是你想要的圖片。

解碼圖像

最終來到了 VAE Decode 節(jié)點(diǎn),這個(gè)節(jié)點(diǎn)使用 VAE 的解碼器部分將最終的潛像解碼為常規(guī)的 RGB 圖像。你可以將 VAE 類比為一個(gè) “翻譯官”,它在抽象表征空間和具象圖像空間之間往復(fù)穿梭、翻譯

具體來說,VAE 解碼器由一系列的轉(zhuǎn)置卷積 (transposed convolution) 層組成。它將潛像視作一個(gè)低分辨率的特征圖,通過上采樣 (upsampling) 和卷積操作,逐步將其解碼為高分辨率的圖像。在這個(gè)過程中,解碼器會(huì)學(xué)習(xí)填補(bǔ)細(xì)節(jié),將抽象的表征還原為豐富的視覺細(xì)節(jié)。

?

打個(gè)比方,如果將潛像看作建筑的結(jié)構(gòu)圖紙,那么 VAE 解碼就像根據(jù)圖紙將大樓建造出來,為骨架添筋加肉,直至每個(gè)房間的裝潢都妥帖合宜,每扇窗戶都熠熠生輝。

怎么樣,現(xiàn)在你應(yīng)該能理解 ComfyUI 生圖的整個(gè)過程了吧?

生成更高質(zhì)量的圖片

再來看一個(gè)稍微有億點(diǎn)點(diǎn)復(fù)雜的工作流,它充分利用了 SDXL 模型的優(yōu)勢(shì),做了很多調(diào)優(yōu)工作,同時(shí)還用上了精煉模型使最終生成的圖片細(xì)節(jié)更加豐富。

感興趣的朋友可以自己先研究下,后續(xù)文章我將為大家講解其中的原理。

如何導(dǎo)入工作流呢?還記得一開始我讓你安裝的 ComfyUI Workspace Manager 節(jié)點(diǎn)嗎,這時(shí)候就派上用場(chǎng)了。點(diǎn)擊左上角的文件夾圖標(biāo):

然后點(diǎn)擊 “Import” 就可以導(dǎo)入工作流了。

再來點(diǎn)刺激的:

原文轉(zhuǎn)載自: AI 畫圖真刺激,手把手教你如何用 ComfyUI 來畫出刺激的圖

上一篇:

通過內(nèi)網(wǎng)代理工具frp輕松將本地服務(wù)暴露到公網(wǎng)

下一篇:

一分鐘部署 Llama3 中文大模型教程
#你可能也喜歡這些API文章!

我們有何不同?

API服務(wù)商零注冊(cè)

多API并行試用

數(shù)據(jù)驅(qū)動(dòng)選型,提升決策效率

查看全部API→
??

熱門場(chǎng)景實(shí)測(cè),選對(duì)API

#AI文本生成大模型API

對(duì)比大模型API的內(nèi)容創(chuàng)意新穎性、情感共鳴力、商業(yè)轉(zhuǎn)化潛力

25個(gè)渠道
一鍵對(duì)比試用API 限時(shí)免費(fèi)

#AI深度推理大模型API

對(duì)比大模型API的邏輯推理準(zhǔn)確性、分析深度、可視化建議合理性

10個(gè)渠道
一鍵對(duì)比試用API 限時(shí)免費(fèi)