Skip to main content
FluffBuzz ships a bundled comfy plugin for workflow-driven ComfyUI runs. The plugin is entirely workflow-driven, so FluffBuzz does not try to map generic size, aspectRatio, resolution, durationSeconds, or TTS-style controls onto your graph.
PropertyDetail
Providercomfy
Modelscomfy/workflow
Shared surfacesimage_generate, video_generate, music_generate
AuthNone for local ComfyUI; COMFY_API_KEY or COMFY_CLOUD_API_KEY for Comfy Cloud
APIComfyUI /prompt / /history / /view and Comfy Cloud /api/*

What it supports

  • Image generation from a workflow JSON
  • Image editing with 1 uploaded reference image
  • Video generation from a workflow JSON
  • Video generation with 1 uploaded reference image
  • Music or audio generation through the shared music_generate tool
  • Output download from a configured node or all matching output nodes

Getting started

Choose between running ComfyUI on your own machine or using Comfy Cloud.
Best for: running your own ComfyUI instance on your machine or LAN.
1

Start ComfyUI locally

Make sure your local ComfyUI instance is running (defaults to http://127.0.0.1:8188).
2

Prepare your workflow JSON

Export or create a ComfyUI workflow JSON file. Note the node IDs for the prompt input node and the output node you want FluffBuzz to read from.
3

Configure the provider

Set mode: "local" and point at your workflow file. Here is a minimal image example:
{
  models: {
    providers: {
      comfy: {
        mode: "local",
        baseUrl: "http://127.0.0.1:8188",
        image: {
          workflowPath: "./workflows/flux-api.json",
          promptNodeId: "6",
          outputNodeId: "9",
        },
      },
    },
  },
}
4

Set the default model

Point FluffBuzz at the comfy/workflow model for the capability you configured:
{
  agents: {
    defaults: {
      imageGenerationModel: {
        primary: "comfy/workflow",
      },
    },
  },
}
5

Verify

fluffbuzz models list --provider comfy

Configuration

Comfy supports shared top-level connection settings plus per-capability workflow sections (image, video, music):
{
  models: {
    providers: {
      comfy: {
        mode: "local",
        baseUrl: "http://127.0.0.1:8188",
        image: {
          workflowPath: "./workflows/flux-api.json",
          promptNodeId: "6",
          outputNodeId: "9",
        },
        video: {
          workflowPath: "./workflows/video-api.json",
          promptNodeId: "12",
          outputNodeId: "21",
        },
        music: {
          workflowPath: "./workflows/music-api.json",
          promptNodeId: "3",
          outputNodeId: "18",
        },
      },
    },
  },
}

Shared keys

KeyTypeDescription
mode"local" or "cloud"Connection mode.
baseUrlstringDefaults to http://127.0.0.1:8188 for local or https://cloud.comfy.org for cloud.
apiKeystringOptional inline key, alternative to COMFY_API_KEY / COMFY_CLOUD_API_KEY env vars.
allowPrivateNetworkbooleanAllow a private/LAN baseUrl in cloud mode.

Per-capability keys

These keys apply inside the image, video, or music sections:
KeyRequiredDefaultDescription
workflow or workflowPathYesPath to the ComfyUI workflow JSON file.
promptNodeIdYesNode ID that receives the text prompt.
promptInputNameNo"text"Input name on the prompt node.
outputNodeIdNoNode ID to read output from. If omitted, all matching output nodes are used.
pollIntervalMsNoPolling interval in milliseconds for job completion.
timeoutMsNoTimeout in milliseconds for the workflow run.
The image and video sections also support:
KeyRequiredDefaultDescription
inputImageNodeIdYes (when passing a reference image)Node ID that receives the uploaded reference image.
inputImageInputNameNo"image"Input name on the image node.

Workflow details

Set the default image model to comfy/workflow:
{
  agents: {
    defaults: {
      imageGenerationModel: {
        primary: "comfy/workflow",
      },
    },
  },
}
Reference-image editing example:To enable image editing with an uploaded reference image, add inputImageNodeId to your image config:
{
  models: {
    providers: {
      comfy: {
        image: {
          workflowPath: "./workflows/edit-api.json",
          promptNodeId: "6",
          inputImageNodeId: "7",
          inputImageInputName: "image",
          outputNodeId: "9",
        },
      },
    },
  },
}
Set the default video model to comfy/workflow:
{
  agents: {
    defaults: {
      videoGenerationModel: {
        primary: "comfy/workflow",
      },
    },
  },
}
Comfy video workflows support text-to-video and image-to-video through the configured graph.
FluffBuzz does not pass input videos into Comfy workflows. Only text prompts and single reference images are supported as inputs.
The bundled plugin registers a music-generation provider for workflow-defined audio or music outputs, surfaced through the shared music_generate tool:
/tool music_generate prompt="Warm ambient synth loop with soft tape texture"
Use the music config section to point at your audio workflow JSON and output node.
Existing top-level image config (without the nested image section) still works:
{
  models: {
    providers: {
      comfy: {
        workflowPath: "./workflows/flux-api.json",
        promptNodeId: "6",
        outputNodeId: "9",
      },
    },
  },
}
FluffBuzz treats that legacy shape as the image workflow config. You do not need to migrate immediately, but the nested image / video / music sections are recommended for new setups.
If you only use image generation, the legacy flat config and the new nested image section are functionally equivalent.
Opt-in live coverage exists for the bundled plugin:
FLUFFBUZZ_LIVE_TEST=1 COMFY_LIVE_TEST=1 pnpm test:live -- extensions/comfy/comfy.live.test.ts
The live test skips individual image, video, or music cases unless the matching Comfy workflow section is configured.

Image Generation

Image generation tool configuration and usage.

Video Generation

Video generation tool configuration and usage.

Music Generation

Music and audio generation tool setup.

Provider Directory

Overview of all providers and model refs.

Configuration reference

Full config reference including agent defaults.