Nodes/ComfyUI CrewAI/📎CrewAI Crew
ComfyUI Node

📎CrewAI Crew

The node that actually runs your agents (and spends your tokens)

By luandev·Created 2 years ago·Updated 2 years ago· 63
📎CrewAI Crew
  • tasks
  • agents
  • manager_agent
  • positive
  • negative
â—„verbosefalseâ–º
â—„topicâ–º
â—„isSequentialtrueâ–º

Everything else in this pack is setup. This is the payoff. The Crew node takes your assembled agents and tasks, runs them in the right order, and hands you two strings: a positive prompt and a negative prompt. Those wire straight into a CLIPTextEncode → KSampler chain, which is exactly what the pack's Basic_Workflow.json example does - the crew is a prompt-generator sitting in front of a normal ComfyUI sampling graph.

The inputs that matter

  • tasks (required, CREWAI_TASK) - the jobs to run. A single 📎CrewAI Task connects directly; for several, chain them through a 📎CrewAI Task List first.
  • agents (CREWAI_AGENT) - who does the work. One agent connects directly, or build a cast with 📎CrewAI Agent List.
  • topic (string) - this is the fun one. Any {topic} placeholder inside your task descriptions gets replaced with this value at run time. Type "a sad dog in a dark room" here and every task suddenly knows what it's writing about.
  • isSequential (bool, default true) - true runs tasks one after another, each to its assigned agent. false switches to CrewAI's hierarchical process, where a manager agent coordinates.
  • manager_agent (CREWAI_AGENT) - the coordinator for hierarchical mode. Only used when isSequential is false.
  • verbose (bool) - dumps the crew's running commentary to the console. Great for debugging, brutal on log size.

Two outputs, positive and negative, both plain STRING.

Why the output is a prompt pair

Look at the 📎CrewAI Task node and you'll see it's not just a free-text box: it hard-codes a structured JSON output with positive_prompt and negative_prompt fields. The Crew node runs crew.kickoff(inputs={'topic': topic}), reads the final task's JSON, and splits it into those two outputs. So this pack is deliberately built as a prompt-crafting tool for image generation - don't come here expecting general-purpose agent chat. Write your task descriptions as "produce positive and negative prompts about {topic}", and the whole thing clicks.

How to use it, and the traps

The canonical loop: set a topic, run the crew, read the positive/negative outputs, tweak the topic, run again. The example workflows show two endings for those outputs - straight into CLIPTextEncode for a fully automatic "prompt → image" workflow, or into a 📎CrewAI Text node so you can read and edit before they hit the sampler.

Where people get burned:

  • Hierarchical mode without a manager_agent. CrewAI needs someone to delegate. Keep isSequential on until you have a real multi-agent crew with a manager wired in.
  • It's synchronous and blocking. The crew executes inside ComfyUI's Python process, so your queue freezes while agents talk to the LLM. A big crew on a local model can hold the UI for minutes.
  • If the agents don't produce valid positive_prompt/negative_prompt JSON, the node catches an IndexError and prints it - you'll get an empty output and a confusing console line. That's why the task descriptions need to keep steering the agents toward that exact shape.

Installing

ComfyUI Manager → search "ComfyUI-CrewAI", or git clone https://github.com/luandev/ComfyUI-CrewAI into custom_nodes and pip install -r requirements.txt. The one dependency is CrewAI itself (a chunky install), and there are no model files to fetch - the "model" is whatever LLM your LLM node points at, cloud or local.

Category📎CrewAI

Inputs (6)

NameTypeDefaultDescription
tasksCREWAI_TASK—
verboseoptBOOLEANfalse—
agentsoptCREWAI_AGENT—
manager_agentoptCREWAI_AGENT—
topicoptSTRING—
isSequentialoptBOOLEANtrue—

Outputs (2)

NameTypeDescription
positiveSTRING—
negativeSTRING—