
當 ComfyUI 的工作流膨脹到幾百個節點,畫面停頓幾乎是必然。Sparknight 開源的 NodeSnapshots 是一個純前端擴充套件,目標就是把這種拖拉時的卡頓感處理掉。它不動推論邏輯、不改工作流格式、不裝額外模型,把閒置節點預先渲染成一張張透明畫布,平移、縮放、拖動節點時直接重用圖片,跳過昂貴的重繪。
在約 350 節點的實測流程裡,繁忙區塊的平均幀率從 20 FPS 拉到接近 60,改善幅度並非「感覺順」而是的明顯跳升。早期版本其實試過一次截整張圖的做法,速度更快,但截全圖那一刻會卡住;NodeSnapshots 改用逐個節點、分批閒置排程來拍快照,避開那個停頓,同時保留重用帶來的流暢感。
它處理了幾個關鍵取捨:
- 滑鼠停留、被選取、正在編輯、媒體預覽以及執行中的節點一律維持即時渲染,避免圖片覆蓋掉需要即時更新的狀態。
- 只有真正改到內容(值、大小、連線、繪製設定)才會把該節點的圖片標記失效;單純移動位置或縮放視窗不會清掉緩存。
- 視窗移動中會以 100 毫秒為週期檢查緩存是否可用,停下來才回到逐幀檢查,避免邊拖邊做完整校驗。
需要注意的限制:
- 快照以圖形座標的全細節拍攝再縮放顯示,畫面大幅放大時文字會變糊,可以透過 capture pixel ratio 取捨清晰度與記憶體。
- 切換調色盤、換字型、整個工作流被替換時緩存會清空,第一次進入子圖也可能觸發字型刷新造成短暫等待。
- 如果你同時裝了其他會覆蓋同樣繪製方法的擴充,可能互相影響。
對需要反覆在大型 Stable Diffusion、影像生成流程裡微調節點位置的使用者來說,這類擴充幾乎是工作流跑得起來的必要條件。安裝方式只需把資料夾放到 ComfyUI/custom_nodes/ComfyUI-NodeSnapshots,重啟後到 Settings > NodeSnapshots 開關即可。