一、前言

近年來,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久久,又粗又大又黄又硬又爽毛片
日韩欧美激情四射| 综合激情网...| 国产精品国产三级国产| 久久精品国产秦先生| 欧美日本一道本在线视频| 日韩av在线播放中文字幕| 9191成人精品久久| 蜜乳av一区二区| 国产日产精品1区| 9i看片成人免费高清| 亚洲一区二区三区中文字幕在线| 91免费观看视频| 亚洲裸体在线观看| 精品视频一区二区不卡| 免费不卡在线视频| 91麻豆国产在线观看| 午夜视黄欧洲亚洲| 精品成人私密视频| 在线视频一区二区三区| 日韩电影在线观看电影| 日韩1区2区日韩1区2区| 久久老女人爱爱| 91麻豆高清视频| 精品一区二区av| 综合久久久久久| 日韩美女一区二区三区四区| 丁香六月综合激情| 五月天一区二区三区| 国产精品久久久久久久久免费樱桃| 色哟哟精品一区| 日韩精品一区二区三区视频播放 | 一区二区三区国产精品| 成人精品免费网站| 精品系列免费在线观看| 亚洲乱码国产乱码精品精小说| 精品福利二区三区| 欧美色偷偷大香| 国产精品视频第一区| 日韩欧美不卡在线观看视频| 91视频在线观看免费| 国产91精品免费| 日韩成人免费在线| 亚洲伊人伊色伊影伊综合网| 国产情人综合久久777777| 欧美电影精品一区二区| 欧美网站大全在线观看| 亚洲成人av中文| 一区二区三区四区不卡在线 | 日韩欧美久久一区| 3atv一区二区三区| 欧美日韩综合在线免费观看| 色女孩综合影院| 99久久精品免费看国产免费软件| 激情欧美一区二区三区在线观看| 日韩极品在线观看| 亚洲成精国产精品女| 亚洲国产精品久久人人爱蜜臀| 一区在线播放视频| 国产精品国产自产拍在线| 国产色产综合色产在线视频| 91高清视频在线| 日本高清不卡视频| 91蜜桃网址入口| 99久久国产综合色|国产精品| 国内精品伊人久久久久av影院| 久久超碰97中文字幕| 老司机免费视频一区二区 | 91蜜桃免费观看视频| 欧美日韩视频在线第一区 | 国产一区二区三区在线观看免费视频| 青青草97国产精品免费观看 | 日韩一区在线免费观看| 1024亚洲合集| 香蕉影视欧美成人| 日本不卡视频在线观看| 中文字幕日韩一区二区| 亚洲一二三区视频在线观看| 亚洲高清不卡在线| 国产在线一区观看| 成人动漫在线一区| 成人性生交大片免费看中文网站| 一本高清dvd不卡在线观看| 在线观看91视频| 亚洲精品一区二区三区精华液| 久久精品这里都是精品| 国产精品高潮久久久久无| 性感美女久久精品| 国产一区二区三区黄视频| 91免费视频网| 欧美成人激情免费网| 国产精品午夜在线| 青青草91视频| 成人av影视在线观看| 91精品婷婷国产综合久久| 久久久精品2019中文字幕之3| 日本一区二区动态图| 日本成人在线看| 成人永久免费视频| 日韩欧美成人午夜| 亚洲男同性恋视频| 麻豆一区二区99久久久久| 欧美私人免费视频| 中文字幕不卡一区| 麻豆91在线看| 在线免费一区三区| 91精品国产欧美一区二区18| 一区二区在线观看不卡| 黑人精品欧美一区二区蜜桃| 欧美中文字幕一区| 久久中文字幕电影| 中文字幕一区日韩精品欧美| 精品一区二区三区免费观看| 在线观看一区二区视频| 亚洲视频在线观看一区| 免费成人av在线播放| 国产成人一区在线| 久久网站最新地址| 日本成人中文字幕在线视频| 91在线视频播放| 久久久久国产精品麻豆| 精品午夜久久福利影院 | 成人性生交大片免费看视频在线| 精品久久久久久久久久久久久久久久久| 最新欧美精品一区二区三区| 国产成a人亚洲精品| 欧美成va人片在线观看| 五月婷婷色综合| 3atv在线一区二区三区| 午夜电影网一区| 欧美裸体bbwbbwbbw| 中文字幕精品一区| 粉嫩aⅴ一区二区三区四区| 欧美mv日韩mv国产网站app| 久久99热这里只有精品| 欧美不卡一区二区| 免费成人在线观看| 久久婷婷色综合| 国产美女精品人人做人人爽| 国产午夜精品久久久久久久| 久久97超碰色| 国产日韩欧美激情| 成人午夜又粗又硬又大| 亚洲黄色小说网站| 欧美色爱综合网| 亚洲欧洲日韩av| 六月婷婷色综合| 久久久不卡影院| av影院午夜一区| 亚洲综合在线五月| 欧美日韩大陆在线| 日韩国产成人精品| 久久久www成人免费毛片麻豆 | 欧美日韩国产综合草草| 久久精品在这里| 99精品欧美一区二区三区小说 | 久久9热精品视频| |精品福利一区二区三区| 91成人网在线| 国产在线视频一区二区| 国产精品国产三级国产aⅴ原创| 国产精品一区二区在线观看不卡| 亚洲美女在线一区| 91麻豆精品久久久久蜜臀| 成人午夜短视频| 亚洲制服丝袜av| 久久久777精品电影网影网| 91浏览器打开| 国产一区二区在线观看视频| 亚洲欧洲成人精品av97| 欧美日韩精品电影| 国产成人精品午夜视频免费 | 国产乱码精品1区2区3区| 亚洲人成网站色在线观看| 在线这里只有精品| 国产美女主播视频一区| 久久久精品免费网站| 91精品国产综合久久婷婷香蕉 | 夜色激情一区二区| 久久亚洲综合av| 欧美一区二区女人| 99久久99久久精品免费观看| 国内精品自线一区二区三区视频| 亚洲线精品一区二区三区 | 亚洲地区一二三色| 中文字幕视频一区二区三区久| 欧美一区二区日韩| 精品视频123区在线观看| 国产二区国产一区在线观看| 亚洲一区在线电影| 国产精品网站在线观看| 91在线看国产| av电影天堂一区二区在线观看| 亚洲国产色一区| 一区二区三区成人在线视频| 亚洲国产经典视频| 欧美日韩国产系列| 97精品久久久午夜一区二区三区 | 欧美精品国产精品| 91国产免费观看| 欧美军同video69gay|