
Song Generator 是一個 ComfyUI 工作流程,使用 Ace-Step 1.5XL 音訊模型合成完整歌曲。它支援兩種歌詞路徑:自動模式會把簡短主題擴寫成可對應 BPM 與時長的歌詞;手動模式則讓你貼上自己的文字。ComfySwitchNode 會在兩條路徑間切換,之後歌詞由 TextEncodeAceStepAudio1.5 編碼,用來引導音訊模型。你可以用 PreviewAny 預覽結果,並用 SaveAudioAdvanced 匯出。
在底層,UNETLoader 與 VAELoader 會載入 Ace-Step 1.5XL 的 checkpoint。EmptyAceStep1.5LatentAudio 會配置符合目標時長的潛空間音訊畫布。ModelSamplingAuraFlow 會設定模型的取樣器,而 KSampler 會使用 TextEncodeAceStepAudio1.5 產生的條件設定,在該潛空間上進行迭代式去雜訊。ConditioningZeroOut 用於在未使用負面條件設定時安全地清空可選的負面條件設定。取樣後,VAEDecodeAudio 會把潛空間轉成波形,供監聽與匯出。
BPM/時長感知的歌詞模組會用 PrimitiveInt/PrimitiveFloat 取得 BPM 與目標長度,使用 StringReplace 把這些值注入寫歌指令,再以 TextGenerate 產生符合曲目長度的主歌/副歌結構。StringCompare 用來偵測是否為空輸入,而 ComfySwitchNode 會在自動歌詞與 PrimitiveStringMultiline(手動歌詞)之間做乾淨切換。DualCLIPLoader/CLIPLoader 也可用於需要混入 CLIP 風格文字條件設定的工作流程,但主要路徑仍以 TextEncodeAceStepAudio1.5 服務 Ace-Step。
API
從程式碼使用此工作流
每個 Comfy 工作流都是一個 JSON 圖。下方的 payload 就是此工作流,與 ComfyUI 執行時完全相同 — 你可以從此 URL 取得、放入版本控制,或在 ComfyUI 載入並逐節點執行。
使用 Comfy SDK 以 TypeScript 或 Python 執行。相同程式碼可用於 Comfy Cloud 或你自架的 ComfyUI — 只需更改 base URL。
// Install (beta)
npm i @comfyorg/sdk
// Run this workflow (TypeScript)
import { Comfy } from "@comfyorg/sdk";
const client = new Comfy({ apiKey: "comfyui-..." });
const wf = await client.workflows.fromFile("workflow_api.json");
const job = await client.run(wf);
await job.getOutputs("<output-node-id>")[0].toFile("output.png");SDK 需使用 API 格式的工作流:請在 ComfyUI 開啟此工作流,並使用 檔案 → 匯出工作流(API)。
常見問題













