此次會連載一套 AI Agent 構建的系列,主要分為三部分,上篇是速通 AI Agent 構建的工作流基礎,本篇則是通過 ComfyUI 作為案例來復盤如何快速上手工作流平臺,給大家提供一些思路與竅門,下篇則是借助 Agent 平臺構建一個 AI Agent 案例,本系列意圖主要是幫助大家貫通工作流的搭建形式,并嘗試為自己搭建一些可用的 AI 助手,或是提供構建的方法指引。
不得不提的廢話
就目前市面上的圖像生成平臺真的是越來越強悍,就例如最新版本的 ChatGPT 4o、即夢 AI 等,不僅提示詞描述更簡單了,圖像效果也越來越好,通過幾張簡單的參考圖加需求說明,就可以馬上進行高質量的圖像融合、局部替換修復、風格轉換、效果延展等,甚至即夢以及能夠處理中文以及文字效果了。
那你可能在想用 ComfyUI 做工作流上手案例還有必要么?有的!
原因是專業的業務場景需要專業且復雜的工作流或是 Agent 來實現,我們學習和掌握的是一套可復用的思維或方法,而不局限于本次所用的 ComfyUI,在第三篇的案例構建中,我也會用這套方法熟悉上手其他智能體平臺來搭建一個 Agent 助手。
所以,通過學習和掌握復雜,只為更從容面對瞬息萬變的 AI 應用。
上期回顧:
清晰我們的構建目標是什么,業務背景是什么,需求會提供哪些數據,要轉化成什么樣的結果,一切圍繞著目標需求來拆解基本流程與尋求實現工作流的技術平臺。
例如我要構建圖像生成的工作流,需求提供了圖像的風格與主題內容說明,那么結果肯定是將這些說明生成一張符合的圖像,若我們要通過一套工作流實現,這個工作流平臺就必須具備文生圖的插件能力,例如基于 SD 圖像生成的 ComfyUI。
那么就基于圖像工作流 ComfyUI,我們來展開聊聊如何快速上手一款工作流平臺為我所用~
本質是一套數字化的生產流程,所以先分析和明確實現目標的基本工作或流程,以及對應的起始到結束的數據轉化涉及到哪些加工步驟?中間至少需要哪些插件或 AI 模型的能力來實現轉化。
好比說老板畫了一張小狗的草圖,他想要我做一個工作流上色和完善圖像,給他一個二維卡通的狗狗圖片,那么基于 AIGC 的方法概念,我們簡單思索一下,這個流程至少要有以下幾個節點過程;
Step1. 有一個風格符合的大模型
Step2. 有插件能夠加載和識別草稿圖
Step3. 能夠輸入關鍵詞來指導圖像的基本要求
Step4. 能夠配置圖像規格的參數
Step5. 能夠基于以上數據生成期望的圖像
那么我們就可以根據這套基礎流程與插件訴求去匹配合適的工作流平臺了。
舉例我是做一套代碼托管部署,那么我就可以找代碼相關的工作流部署平臺,若是 AI 智能體相關工作流就可以看看扣子、文心智能體平臺、百寶箱、Dify 這些,這些平臺會提供相應的插件、工具或模型,我的選用標準主要就三個方面;
- 能夠滿足我的設計目標或業務訴求(需求可行性)
- 有豐富可用的插件或 AI 模型(能力擴展性)
- 友好的用戶體驗與成本控制(體驗與商業平衡)
經過簡單調研,若能夠滿足上面提到的三個方面,我們就可以進一步的了解與體驗,并嘗試構建或部署我們的業務。
一切從簡單的部分開始,當我們初次看到一團雜亂的工作流時,幾乎是勸退的,但所有的復雜也都是從簡單一點一點豐富起來的,面對一個陌生的工作流時,我們可以通過以下方法快速熟悉和掌握;
- 一套可運行的基礎工作流程要包含哪些節點與參數,如常見的起手式與結束式用哪些節點和設置,以及面對整個工作流的配置設置有哪些,有什么差異,那個更適合我們的業務需求(例如扣子具備單 Agent 的對話模式、多 Agent 的協同觸發模式、以及我正在使用應用模式)。
- 節點連接的關系與條件是怎樣的,如輸入輸出的數據類型、參數、準入準出等,理解節點怎樣才能連接到一起并正確運行起來(也就是上篇的工作流基礎速通篇所講的內容)。
- 掌握各類節點插件的作用或類別,即不同節點的用途是什么,通常銜接在流程的哪些階段中,需要哪些必要的輸入輸出完善流程(通常各類節點或 AI 模型會有相應的介紹說明,這些有必要了解一下)。
那么就用上面這套方法,讓我們試著快速熟悉一下 ComfyUI 的基礎流程與插件能力吧~沒有電腦本地部署 ComfyUI 的可以試試這款線上的工作流平臺( https://www.liblib.art/modelinfo/a02112c0c9784832a4d21dc9bba84900?from=search&versionUuid=b3f60f7458f24c58be24b6d71bb660c4 )
OK 回到正題,假若當我們看到這個完整工作流時,是不是虎軀一顫,心想這啥玩意兒?
但莫要慌張,讓我們逐一拿捏這套小小工作流,首先 ComfyUI 是基于 Stable Diffusion 的節點式工作流,因此任意工作流的基礎流程都應該是基于以下這套編排關系來展開的;
那么我們把這些核心節點對應找出來,如下,我們已經在工作流面板中搜索出了基礎流程所需要的節點。
OK,那我們再繼續研究節點連接的關系與條件是怎樣的,我們可以觀察到,單個節點卡片的左右就是輸入輸出的字段,卡片中間就是要配置的參數,是典型輸入輸出+數據配置的結構,有意思的輸入輸出的字段甚至用顏色做了類型區分,所以只要按照顏色就可以將節點之間連接起來就可以了(這使得連接關系更加簡單易懂)。
這里我們快速連接了一下,仿佛已經掌握了 ComfyUI 的基礎工作流,但是點擊運行后報錯了!
明眼人一看肯定就知道原因了,原來是有個節點缺少執行的預設輸入配置,那么我們嘗試找一個“粉色”的“Latent”補充進來再試試。
通過拖拽粉色缺失的輸入接口(平臺支持端口拖拽出來適用選項的窗口),我們直接添加了一個空的“Latent”,通過觀察參數設置,顯然這個粉色的“家伙兒”是用來設置圖像大小和批次的,并且這次也順利運行了起來。
那么我們已經掌握了最基礎的工作流搭建,以及理解了節點之間如何正確的連接與運行的。這種方法的好處在于我們知道了 1+1=2 以后就可以直接引用,而不需要你去深度理解和解釋為什么 1+1=2,當然了你要是想知道 ComfyUI 的基礎生成流程為什么要這樣,你可以自己在網絡上深度學習一下。
接著到第三趴,開始掌握不同的節點插件的用途與類型差異,并揭秘第一張雜亂工作流的概念與用途。
ComfyUI 的節點插件是相當多的,并且隨著時間推移,還會越來越多,但不礙事兒,我們先從核心且高頻的節點下手;
面對各種節點先聊聊應該在哪些流程階段使用,就 ComfyUI 平臺來說,可以洞察到每個節點都會用顏色將輸入輸出進行標記分類,拖拽輸入輸出端口后,還會浮窗顯示關聯條件的節點,這就意味一個節點你不熟悉時,添加到面板上并加上輸入輸出的節點,基本上你就能知道這個節點應該用到哪個階段上了,如下圖所示;
通過上圖可以看出這個“遮罩閾值”節點是在圖像相關節點后進行工作的,并且相關的輸出節點都是橙色、紫色輸出作為結束,那么我們再參考基礎的工作流節點,是不是很容易就發現“遮罩閾值”節點是用作“關鍵詞”跟“K 采樣器”之間的階段呢。
那么節點使用階段的竅門說完,繼續深入一下核心的節點有哪些、它們有何用途、常用于哪些場景?請看以下我整理的說明表;
1. ComfyUI 的基礎核心節點
2. ComfyUI 的圖像控制與增強節點
3. ComfyUI 的條件控制節點
4. ComfyUI 的邏輯與流程控制節點
5. ComfyUI 的特殊功能節點
6. ComfyUI 的高頻節點參數配置參考
當然了,這只是部分核心節點的信息整理,如果大家對 ComfyUI 或這些節點有興趣,可以去“ https://comfy.icu/node/ ”上了解更多,或者通過 ComfyUI 工具對節點的分類來了解,就像下圖所示,這里不展開了。
然后在 SD 生圖的進階使用中,ControlNet 是一個必學的進階節點,同樣也是一開始的工作流中出現過的節點,還有印象嗎?那么這就來簡單了解一番,為破解前面那張復雜工作流做準備。
7. ControlNet 節點分類說明表
這些 ControlNet 模型可以幫助我們進行圖像參考生成,但是對參考圖是有條件要求的,通常這些模型要配套相關的條件預處理器一起用,例如將圖像的黑白線稿提取出來,若你本身就是符合條件的黑白線稿圖,使用相關模型時也可以不再使用預處理器。
對這些 ControlNet 節點與用途效果想要深入了解朋友可以移步到此:GitHub - lllyasviel/ControlNet-v1-1-nightly: Nightly release of ControlNet 1.1
看到這里,你應該對 ComfyUI 基本的出圖流程有了認識,知道了有哪些核心節點,不同節點之間應該如何連接使用,以及知道如何通過添加上下級節點來分析出在哪些階段使用。
也許你的大腦已經過載了,但是無礙,如果接下來你在案例中看到了不熟悉的節點,你依舊可以翻閱前面的節點或插件介紹。
那么我們繼續,重新回顧這個復雜的工作流,可以看出紫色部分是生圖的基礎節點,基礎流程前后的黃色節點分別是一個 Lora 跟一套圖像放大節點,在關鍵詞跟 K 采樣器之間則還有一套灰色的節點任務,讓我們逐一拆解;
Lora 節點采用的是一個可配合“Realistic Vison V5.1”寫實類大模型的毛絨效果 Lora,用途就是產生更細膩的毛絨效果;
圖像放大節點實際上由三個子任務構成,核心節點是 圖像通過模型放大 (ImageUpscaleWithModel),功能是通過分塊處理的方式,逐步放大圖像,同時處理內存不足的情況。
圖像通過模型放大節點需要由“放大模型加載器”來選定指定的放大模型,輸出部分通過觀察顏色是可以直接進行圖像輸出的,但是為了產生更高清的圖像,輸出添加了一個“縮放節點”,它會基于“空 Latent”中設定的尺寸*縮放節點的縮放系數 2,最終產生一個高清二倍圖。
接著就剩這團灰色的節點了,通過節點名稱,我們可以抓取到關鍵詞是“ControlNet”,可以觀察到這團節點其實是通過“ControlNet 應用 (舊版高級)”節點實現與基礎流程接軌的,根據節點輸入輸出的顏色標記,可以看出是在 CLIP 關鍵詞與 K 采樣器之間的階段工作的,并且有兩組“ControlNet 應用 (舊版高級)”節點串聯在一起,那么我們一組一組的來揭秘下;
經過拆解,單組“ControlNet 應用”的節點實際上由四個任務節點構成,主要是完成 ControlNet 模型選取與參考圖加載處理,在前文 #掌握核心節點或插件/七/ControlNet 節點部分 介紹過所有 ControlNet 模型是有輸出條件的,因此需要將上傳的參考圖預處理成匹配的輸出條件,所以在“加載圖像”節點后就多了這么一個“PidNet 模糊線預處理器”,并且這個圖像預處理器是跟模型匹配的;
可以看見加載的 ControlNet 模型是“control_v11p_sd15_softedge”,這表示為適應用 SD1.5 版本的 SoftEdge(軟邊緣),那么對應可用的圖像預處理器則是“Pidinet”,可以提取圖像柔和的邊緣輪廓,而柔和的輪廓在圖像生成時則可以賦予 AI 更多發揮空間,不至于邊緣太生硬導致毛絨的效果不好;
當我們解析完第一組 ControlNet 任務節點后,再來看第二組時,似乎就簡單很多了,結構基本相似,模型采用了“control_v11fle_sd15_tile”,圖像預處理器采用了“Tile 平鋪預處理器”,這是一個分塊采樣器,可以在原有畫面的基礎上生成更好的細節或畫面質量,用做提升毛絨效果的質感,因為這些預處理器輸入輸出都是圖像,所以在輸出端添加了一個“預覽圖像”,這樣就可以方便我們看到預處理后的效果了。
那么再次打開這個完整的 ComfyUI 工作流,你又能看懂多少了?又或是有了什么新的疑問?
好啦,我來公布答案了!
「紫色域」其中有紫色標記的節點即基礎工作流節點,用做基本的文生圖;
CHECKPOINT 模型后掛載的黃色 Lora 模型用做生成特定的毛絨效果,結尾處黃色任務節點用做提升清晰度與圖像大小;
「暗紅域」+「綠色域」暗紅色的是兩組 ControlNet 任務節點,用做獲取參考圖特征,兩組通過綠色的“加載圖像”節點從用戶設備本地獲取同一個參考素材,第一組采用 SoftEdge(軟邊緣)獲取參考對象的邊緣線稿,第二組分塊/模糊(tile/blur)任務節點則獲取圖像的特質;
最終這套工作流就可以實現毛絨效果的圖標繪制了。
那么,有趣的是!
可以看見工作已經運行成功了,不過 ControlNet 應用節點上的“VAE”輸入并沒有添加,可以猜測是給特殊模型用的,不過你也可以為此添加上主模型的“VAE”,最終工作流還是可以運行的。
看到這里,如何快速學習和掌握一款工作流平臺的法子,我想你應該有思路了,那么再繼續聊聊“編排與初步調試”與“能力擴展與調試”。
基本上就是拆解任務的最小工作流,并嘗試將相關節點編排連接起來,對工作流運行的基礎參數進行設置完善,使得這個工作流能夠運行起來,之后則是根據運行的效果,對節點的參數進一步的調整,或替換其他效果的任務節點,概括一下就是像 OKRs 一樣把大目標拆解成若干小任務或基礎流程,先把基礎工作流構建起來并運行起來,之后才開始考慮能力擴展優化等。
這個過程在前面的 #熟悉 ComfyUI 的基本流程 部分中也有體現,還有印象嗎?
簡單說就是根據目標完善工作流的能力,并經過測試驗證,加強效果與穩定性,并且可以根據工作需要不斷調整優化工作流的能力,當然了如果無法很好兼容新的訴求,那就建議新建一條;
還是以前面的案例為例,當我們的基礎工作流跑起來后,就可以根據設計目標進行能力的擴展與測試,經過揭秘的工作流目標就是能夠參考圖標生成毛絨效果的圖標,那么這個能力擴展與測試的過程如下;
那么到此,一套如何上手掌握工作流平臺的方法就說完了,這里我再幫大家整理和回顧一下,希望這些方法能夠被大家理解和應用;
如果你對主流的 AI 工作流或智能體平臺不熟悉,那么你可用這套方法自己快速熟悉起來,如果你已經比較熟悉且有自己的學習上手方法,那么直接期待下篇吧。
篇幅問題,下篇上案例,開始構建我們的 Agent 牛馬~
復制本文鏈接 文章為作者獨立觀點不代表優設網立場,未經允許不得轉載。
發評論!每天贏獎品
點擊 登錄 后,在評論區留言,系統會隨機派送獎品
2012年成立至今,是國內備受歡迎的設計師平臺,提供獎品贊助 聯系我們
標志設計標準教程
已累計誕生 729 位幸運星
發表評論 為下方 2 條評論點贊,解鎖好運彩蛋
↓ 下方為您推薦了一些精彩有趣的文章熱評 ↓