一、前言

近年來,Stable Diffusion 作為代表性的Python 腳本里調用并不足以應對復雜場景。ComfyUI 通過“節點 + 可視化”的方式,讓管道搭建直觀易懂,并能靈活拆分子流程。結合 API 集成,便可實現一鍵調用、參數化、異步化等高級功能。

本文將分為以下幾個部分:

  1. ComfyUI 環境搭建
  2. 拖拽式節點化設計 Stable Diffusion 流水線
  3. 核心節點詳解與參數優化
  4. Python 腳本與命令行模式
  5. 基于 FastAPI 的 HTTP REST API 集成
  6. 部署方案與高并發異步
  7. 進階:多模型切換、LoRA 微調、ControlNet 接入
  8. 總結與最佳實踐

請務必準備好一臺顯存不低于 8GB 的 GPU 服務器,或使用具有 GPU 支持的云主機(如 AWS EC2 GPU 實例)。

二、ComfyUI 環境搭建

要使用 ComfyUI,首先需要準備 Python 3.10+ 環境,并安裝必要依賴。

# 克隆倉庫
git clone https://github.com/comfyanonymous/ComfyUI.git
cd ComfyUI

# 創建虛擬環境
python3 -m venv venv
source venv/bin/activate# Windows 下使用 venvScriptsactivate# 安裝依賴
pip install --upgrade pip
pip install -r requirements.txt

其中 requirements.txt 中包含了對 torch(支持 CUDA)、diffusers 等核心庫的依賴。

# 安裝 PyTorch(示例為 CUDA 11.7)
pip install torch torchvision --index-url https://download.pytorch.org/whl/cu117

提示: 若要使用最新的 Stable Diffusion 2.x 模型,請在安裝時指定對應 diffusers 版本,并下載官方權重。

啟動 ComfyUI 服務:

python main.py --listen --port 8188

啟動后在瀏覽器訪問 http://localhost:8188,即可看到可視化節點界面。


三、拖拽式節點化設計 Stable Diffusion 流水線

ComfyUI 的核心理念是“節點化”。一個流水線由多個節點(Node)組成,每個節點完成獨立的運算或數據轉換。下圖示例展示了一個基礎的 Stable Diffusion 生成流程:

  1. 文本編碼節點(CLIP Text Encoder):將用戶輸入的 Prompt 轉換為文本特征向量。
  2. 采樣器節點(Euler, LMS, DPM++ 等):根據模型與文本特征進行擴散采樣,輸出潛變量(Latent)。
  3. 解碼器節點(VAE Decode):將潛變量解碼回像素空間,產生最終圖像。
  4. 后處理節點(Color Correction、Sharpen 等):可選節點,用于調整色彩、銳度等。

在 ComfyUI 界面中,依次拖拽出上述節點,按箭頭連接即可。

每個節點都提供了豐富的配置項。例如,Sampler 節點支持多種調度器(Scheduler)、步數(Steps)、種子(Seed)等參數;后處理節點可加載自定義 Python 腳本插件。


四、核心節點詳解與參數優化

4.1 文本編碼:CLIP Text Encoder

4.2 采樣器:Euler a、DPM++、LMS

不同調度器在圖像質量與速度上各有特點:

Euler a 快速 對比度更強
DPM++ 2M Karras 中速 細節豐富
LMS 最慢 平衡

4.3 VAE 解碼

4.4 后處理插件

可以將 OpenCVPillow 腳本封裝成插件節點,實現:

示例:使用 Pillow 自動銳化腳本

from PIL import Image, ImageFilter

def process(img):
    return img.filter(ImageFilter.UnsharpMask(radius=2, percent=150, threshold=3))

將其保存為 sharpen.py 并在節點中加載,即可在流水線末端調用。


五、Python 腳本與命令行模式

雖然可視化界面直觀,但在批量任務或 CI/CD 場景下,腳本化調用更為高效。ComfyUI 同時支持命令行模式(CLI):

python main.py --silent --config pipeline.json --output ./results

其中 pipeline.json 為導出的節點配置文件,可提前在 UI 中完成設計并導出。

示例 pipeline.json 結構:

{
  "nodes": [
    { "id": "clip", "type": "CLIPTextEncode", "params": { "prompt": "一只藍色的火烈鳥" } },
    { "id": "sampler", "type": "EulerSampler", "params": { "steps": 30, "cfg_scale": 12 } },
    { "id": "decode", "type": "VaeDecode", "params": {} }
  ],
  "edges": [["clip", "sampler"], ["sampler", "decode"]]
}

六、基于 FastAPI 的 HTTP REST API 集成

為了讓上游應用(如 Web 后端、移動端、自動化腳本)能夠靈活調用流水線,我們將借助 FastAPI 打造一個輕量級的圖像生成 API 服務。

6.1 安裝與初始化

pip install fastapi uvicorn requests

在項目根目錄創建 api_server.py

if name == "main":
import uvicorn
uvicorn.run("api_server:app", host="0.0.0.0", port=9000, reload=True)

app = FastAPI()

class GenRequest(BaseModel):
prompt: str
steps: int = 30
width: int = 512
height: int = 512
seed: int = None

@app.post("/generate")
async def generate(req: GenRequest):

# 調用 ComfyUI 本地 CLI
config = {
"nodes":[
{"id":"clip","type":"CLIPTextEncode","params":{"prompt":req.prompt}},
{"id":"sampler","type":"EulerSampler","params":{"steps":req.steps,"cfg_scale":7.5,"seed":req.seed}},
{"id":"decode","type":"VaeDecode","params":{}}
],
"edges":[["clip","sampler"],["sampler","decode"]]
}
tmp_config = f"/tmp/{uuid.uuid4()}.json"
with open(tmp_config,"w") as f: f.write(json.dumps(config))
out_dir = f"./outputs/{uuid.uuid4()}"
os.makedirs(out_dir,exist_ok=True)

# 執行 CLI 命令
cmd = f"python main.py --silent --config {tmp_config} --output {out_dir}"
ret = os.system(cmd)
if ret != 0:
raise HTTPException(status_code=500, detail="Generation failed")

# 返回第一張圖 URL
img_files = os.listdir(out_dir)
if not img_files:
raise HTTPException(status_code=500, detail="No output images")
img_path = os.path.join(out_dir, img_files[0])
return {"url": f"/static/{os.path.basename(img_path)}"}

# Static 文件掛載
from fastapi.staticfiles import StaticFiles
app.mount("/static", StaticFiles(directory="outputs"), name="static")

if __name__ == "__main__":
import uvicorn
uvicorn.run("api_server:app", host="0.0.0.0", port=9000, reload=True)

6.2 調用示例

curl -X POST "http://localhost:9000/generate"
  -H "Content-Type: application/json"
  -d '{"prompt":"賽博朋克風格的城市夜景","steps":40}'

響應:

{"url":"/static/123e4567-e89b-12d3-a456-426614174000.png"}

至此,我們實現了基于 ComfyUI 流水線的 HTTP API 調用。可進一步集成到前端頁面或微服務架構。


七、部署方案與高并發異步

在生產環境下,需要考慮性能與穩定性:

  1. 異步任務隊列

  2. 多實例與負載均衡

  3. 模型緩存

  4. 監控與日志


八、進階:多模型切換、LoRA 微調、ControlNet 接入

8.1 多模型切換

在節點中通過下拉菜單即可切換不同版本的 Stable Diffusion 模型(1.x、2.x、xl)。也可在 API 請求中指定模型路徑,動態生成:

model_path = req.model or "runwayml/stable-diffusion-v1-5"
# 在配置節點時填入 model_path

8.2 LoRA 微調

利用 PEFT 對特定風格或人物進行 LoRA 微調,在 ComfyUI 節點中加載 LoRA 權重文件即可:

  1. 使用 PEFT 腳本生成 .safetensors 文件
  2. 在 ComfyUI 的 “LoRA Load” 節點中指定路徑
  3. 調整 “LoRA Scale” 節點參數控制風格強度

8.3 ControlNet 接入

ControlNet 能讓擴散模型更好地遵循條件(如邊緣、姿勢、深度圖)。在 ComfyUI 中:

  1. 添加 “ControlNet” 節點,并選擇對應模塊(Canny、Pose、Depth)
  2. 將輸入圖像接入 ControlNet
  3. 再與原有 Sampler 節點并聯

這樣便可實現“線稿→上色”、“人物姿態驅動” 等多種高級用例。


九、總結與最佳實踐

通過本文,你已經掌握了從生成式 AI無限潛力!


請將本文的關鍵點收藏并分享給需要的同好,一起在 2025 年開啟 AI 圖像生成的新篇章!

熱門推薦
一個賬號試用1000+ API
助力AI無縫鏈接物理世界 · 無需多次注冊
3000+提示詞助力AI大模型
和專業工程師共享工作效率翻倍的秘密
返回頂部
上一篇
增值稅發票OCR識別API在Java、Python、PHP中的使用教程
下一篇
銀行卡OCR識別API在Java、Python、PHP中的使用教程
国内精品久久久久影院日本,日本中文字幕视频,99久久精品99999久久,又粗又大又黄又硬又爽毛片
在线观看一区二区视频| 9i看片成人免费高清| 亚洲在线观看免费| 国产成人鲁色资源国产91色综| 欧美精品在线观看一区二区| 亚洲图片一区二区| 欧洲在线/亚洲| 午夜视黄欧洲亚洲| 波多野结衣在线一区| 欧美疯狂性受xxxxx喷水图片| 欧美无砖砖区免费| 日韩一区二区视频在线观看| 国产麻豆日韩欧美久久| 粉嫩av亚洲一区二区图片| 国产福利一区二区三区| 99久久er热在这里只有精品15| 91麻豆国产精品久久| 在线观看av一区二区| 4438亚洲最大| 精品va天堂亚洲国产| 在线观看成人免费视频| 欧美国产精品一区二区| 精品国产1区二区| 美女任你摸久久| 精品粉嫩超白一线天av| 欧美国产日韩精品免费观看| 一区二区欧美国产| 日韩一区二区在线观看视频 | 99re免费视频精品全部| 琪琪久久久久日韩精品| 韩国欧美国产一区| 精品国产1区二区| 五月天激情综合| 久久综合久久久久88| 麻豆国产91在线播放| 3d动漫精品啪啪1区2区免费| 久久爱另类一区二区小说| 一本一本久久a久久精品综合麻豆| 免费成人在线播放| 成年人国产精品| 久久精品在线观看| 岛国精品一区二区| 97久久精品人人做人人爽| 欧美精品久久天天躁| 欧美日韩中字一区| 激情综合色综合久久综合| 欧美性受极品xxxx喷水| 26uuu精品一区二区三区四区在线 26uuu精品一区二区在线观看 | 亚洲高清视频中文字幕| 欧美精品v日韩精品v韩国精品v| 亚洲第一激情av| 欧美国产日本视频| 欧美精品久久天天躁| 丁香桃色午夜亚洲一区二区三区| 久久久91精品国产一区二区精品| 日韩在线播放一区二区| 一本色道亚洲精品aⅴ| 亚洲国产一区二区视频| 亚洲国产成人私人影院tom| 欧美一区二区观看视频| 99久久er热在这里只有精品15| 丁香婷婷综合网| 7777精品伊人久久久大香线蕉经典版下载| 成人免费看的视频| 黄色资源网久久资源365| 亚洲午夜影视影院在线观看| 亚洲欧美另类在线| 日本中文字幕不卡| 亚洲v日本v欧美v久久精品| 中文字幕一区二区三区在线观看| 国产精品一区久久久久| 首页综合国产亚洲丝袜| 国产婷婷色一区二区三区四区| 国产精品主播直播| 久久66热偷产精品| 国产一区二区精品久久91| 一区二区中文字幕在线| 日韩精品一区在线| 久久午夜老司机| 欧美日韩成人激情| 国产精品99久久久| 亚洲国产精品久久久久秋霞影院| 亚洲日本在线视频观看| 亚洲成人一区二区| 首页亚洲欧美制服丝腿| 亚洲猫色日本管| 久久夜色精品国产噜噜av| 日本韩国精品在线| 久久久久久夜精品精品免费| 一区二区三区日韩| 高清beeg欧美| 国产精品69久久久久水密桃| 紧缚捆绑精品一区二区| 国产肉丝袜一区二区| 99re热这里只有精品视频| 精品久久人人做人人爱| 56国语精品自产拍在线观看| 成人欧美一区二区三区黑人麻豆| 99视频超级精品| 久久这里只有精品6| 国产福利不卡视频| 精品国免费一区二区三区| 麻豆国产91在线播放| 日韩视频一区二区三区| 九九**精品视频免费播放| 欧美专区在线观看一区| 国产精品国产三级国产| 日韩和欧美一区二区| 中文文精品字幕一区二区| 亚洲成人免费影院| 美腿丝袜亚洲一区| 色综合网色综合| 久久精品综合网| 99热国产精品| 91精品欧美福利在线观看| 久久日韩精品一区二区五区| 另类人妖一区二区av| 91精品国产综合久久精品app| 94色蜜桃网一区二区三区| 日韩欧美国产电影| 亚洲成人av电影| 欧美日本在线看| 天天色天天爱天天射综合| 欧美年轻男男videosbes| 亚洲不卡在线观看| 日韩三级av在线播放| 国内精品免费**视频| 26uuu亚洲| www.66久久| 午夜精品一区二区三区免费视频| 欧美视频在线观看一区| 日本不卡中文字幕| 国产午夜精品在线观看| 色婷婷激情综合| 日韩电影免费一区| 国产人妖乱国产精品人妖| 99久久精品一区二区| 香蕉乱码成人久久天堂爱免费| 日韩午夜三级在线| 风间由美性色一区二区三区| 亚洲制服欧美中文字幕中文字幕| 日韩一级片在线播放| 不卡大黄网站免费看| 奇米在线7777在线精品| 国产精品第四页| 日韩精品专区在线影院重磅| 95精品视频在线| 狠狠色狠狠色综合| 亚洲一区视频在线| 久久精品视频免费观看| 欧美日韩情趣电影| 成人国产精品免费网站| 性做久久久久久| 亚洲激情在线播放| 欧美—级在线免费片| 日韩三级中文字幕| 欧美日韩欧美一区二区| 99国产欧美另类久久久精品 | 久久久久久久国产精品影院| 99久久久精品| 大胆欧美人体老妇| 国产伦精品一区二区三区免费| 亚洲制服丝袜av| 国产精品理论片| 欧美国产97人人爽人人喊| 精品久久久久久久人人人人传媒| 欧美体内she精高潮| 国产超碰在线一区| 国产一区二区导航在线播放| 天堂成人国产精品一区| 一区二区在线观看不卡| 亚洲欧美自拍偷拍色图| 国产精品久久久久aaaa| 欧美激情一区二区三区在线| 久久众筹精品私拍模特| 精品国免费一区二区三区| 日韩西西人体444www| 日韩精品最新网址| 久久久精品人体av艺术| 久久久久久久精| 国产精品蜜臀av| 亚洲欧美另类在线| 亚洲一区二区三区中文字幕| 亚洲自拍与偷拍| 日韩国产欧美视频| 黄色成人免费在线| 成人中文字幕合集| 色菇凉天天综合网| 欧美精品久久99久久在免费线| 欧美日韩精品一区二区天天拍小说| 91成人免费在线视频| 欧美日韩高清影院| 久久综合国产精品| 亚洲日穴在线视频| 免费在线欧美视频| 国产成人精品综合在线观看| av电影天堂一区二区在线 | 老司机精品视频一区二区三区| 国产伦精品一区二区三区视频青涩 | 国产亚洲成aⅴ人片在线观看|