ComfyUI Node

Submit to Deadline

Send your ComfyUI workflow to a Deadline farm without rendering locally

By doubletwisted·Created about a year ago·Updated 2 months ago· 34
Submit to Deadline
    • job_id
    output_directory
    batch_count1
    chunk_size1
    priority50
    poolnone
    groupnone
    job_nameComfyUI via Deadline
    comment
    department

    This node is a "send" button for your entire workflow, and the name is the honest part of it: it submits to Deadline, it doesn't render. You queue the graph in ComfyUI, this node packages it, hands it to Thinkbox Deadline, and your local GPU never touches the job. If you've ever watched a bank of 3090s sit idle while your one workstation grinds out a batch, you know exactly why that's the point.

    This is a niche tool with a narrow audience, so let's get the audience check out of the way: if you don't already run Deadline, skip this node. Deadline is Autodesk's render manager, the thing studios use to queue Maya and Houdini frames across a farm. The author built this pack for their own office - a studio with a couple dozen GPUs and a Deadline installation already in place - and it's aimed squarely at people in that situation. The setup cost (a Deadline client, a repository, portable ComfyUI installs on workers) only makes sense if the farm already exists.

    What it actually does

    On your side, the workflow stays normal: loaders, samplers, save nodes, and one Submit to Deadline wired into the graph. When you hit Queue, the node grabs the current API prompt and:

    • strips itself (and any other submit node) out of the copy the workers get, so workers don't re-submit in an infinite loop,
    • stages the input files your loaders reference into <output parent>\input\,
    • writes prompt_to_execute.json (what workers render) and workflow.json (the readable graph, so you can drag the finished image back into ComfyUI),
    • calls deadlinecommand to submit the job and parses the returned JobID.

    A registered prompt handler makes sure only this node executes on your machine - the whole graph is skipped locally, then rebuilt on the farm.

    The inputs that matter

    Most of these are Deadline plumbing, but three are worth actually thinking about:

    • output_directory - the one you must get right. It has to be a path every worker can see (a UNC share like \\server\render\comfy), and the plugin creates it if it doesn't exist. A local C:\... path will fail on the first worker.
    • batch_count and chunk_size - how many variations you want, and how many variations each Deadline task processes before it finishes. batch_count=50, chunk_size=1 means 50 tasks, one variation each - maximum parallelism across the farm. These are variations, not animation frames, a distinction the README is at pains to make.
    • priority (0–100, default 50), pool / group, job_name - the pool and group dropdowns are populated live from your Deadline repository when the node is created; if the client can't reach it, they fall back to just none. comment and department are optional metadata.

    The single output, job_id, is the Deadline JobID as a string - mostly just proof the submit worked, handy for finding the job in Deadline Monitor.

    Installing it

    No extra Python dependencies - the requirements file is deliberately empty, everything runs on stdlib plus ComfyUI itself. Clone it in (or search "ComfyUI Deadline Submission" in ComfyUI Manager) and restart:

    cd ComfyUI/custom_nodes
    git clone https://github.com/doubletwisted/ComfyUI-Deadline-Plugin.git
    

    Then the part people miss: the ComfyUI side is only half of it. You also have to deploy the Deadline-side plugin, which the pack ships a PowerShell script for:

    powershell.exe -ExecutionPolicy Bypass -File .\scripts\deploy_deadline_plugin.ps1
    

    That finds your Deadline repository via deadlinecommand -GetRepositoryPath and copies the plugin into it (or pass -RepositoryPath yourself). Finally, in Deadline Monitor, set the ComfyUI plugin's ComfyUI Installation Paths - one portable Windows ComfyUI root per line; workers try each in order and use the first one containing ComfyUI\main.py and python_embeded\python.exe.

    Where people get burned

    The most common failure is a dead end before submission: "Deadline command not found. Set DEADLINE_PATH or install Deadline Client." That's the submitting machine lacking the deadlinecommand binary, or the DEADLINE_PATH env var not pointing at it - the client install is required, not optional. Relatedly, if your pool and group dropdowns only show none, the node couldn't reach Deadline when it was built; fix the client, then rebuild the node.

    The other classic trap is the input files. Files you pasted or uploaded into ComfyUI's input folder exist only on your machine, so the plugin stages them next to the output directory and rewrites the prompt to point at the staged copies. Absolute-path loader nodes are left alone - those paths must already be valid on the farm. And remember the targeting: this expects portable Windows ComfyUI workers, so a Linux box will need that sorted before anything renders. Render timeouts are Deadline's job - set them in Deadline Monitor, not in the node.

    Categorydeadline

    Inputs (9)

    NameTypeDefaultDescription
    output_directorySTRING
    batch_countINT11–10000
    chunk_sizeINT11–256
    priorityINT500–100
    poolCOMBOnone1 options: none
    groupCOMBOnone1 options: none
    job_nameSTRINGComfyUI via Deadline
    commentoptSTRING
    departmentoptSTRING

    Outputs (1)

    NameTypeDescription
    job_idSTRING