Skip to main content

ComfyUI / workflow repair

Get your ComfyUI workflow moving again.

Missing nodes, an API error, a task that keeps waiting, or a result you cannot find? Locate the stage that stopped first. This guide covers SpicyAPI hosted model nodes and the ComfyUI connections that turn a generated image or video into a saved file.

Creative workbench with source portraits, connected model modules and finished image and video frames.
Illustration: source media, model connections and saved results.

Four stages. One place to start.

Follow the last status you actually saw. An error before a task ID needs a different fix from a completed task with a missing local file.

  1. 01

    Load the graph

    ComfyUI recognizes the nodes and their connected inputs.

    Nodes → inputs
  2. 02

    Prepare & quote

    The plugin reads your key, uploads media and checks the estimated charge.

    Preparing inputs → Submitting
  3. 03

    Generate remotely

    SpicyAPI returns a task ID; the node follows its progress.

    Queued → Generating
  4. 04

    Download & save

    The node receives the result; a save node writes it locally.

    Downloading result → Save Image / Save Video

Keep the task ID when one exists. It is the fastest way to distinguish a running generation from a local preview or saving problem.

What do you see on the canvas?

Choose the symptom that matches your workflow. Each section gives you the next check and a visible sign that the problem is fixed.

01 / Check this stage

The workflow opens with missing nodes

Start with the missing node's name. SpicyAPI model nodes come from our custom node pack. A checkpoint loader, sampler or another vendor's helper belongs to a different part of the graph.

Visual guideComfyUI
ComfyUI/custom_nodes/comfyui-spicyapi
SpicyAPI · ComfyUI
SpicyAPI model nodes in ComfyUI search, with a Seedance image-to-video node selected.
Install the pack in the running ComfyUI instance
  1. 1.

    Install the pack in the running ComfyUI instance

    The comfyui-spicyapi folder belongs inside that instance's custom_nodes directory. A second desktop or portable installation has its own directory; installing into the other one will not add nodes to this canvas. Import the templates linked here onto the canvas. For the local ComfyUI API, use Export (API) from that graph rather than submitting the canvas JSON unchanged.

  2. 2.

    Restart the backend, then check startup logs

    Restart ComfyUI after installation or an update. Refreshing the browser alone does not reload Python node classes. An import error in the startup log points to a loading problem; update ComfyUI and the pack together when the V3 node API is missing.

  3. 3.

    Search the model name on an empty canvas

    Search for SpicyAPI or the model name. If the pack appears but a newly added model does not, configure your key and restart so the node list can refresh from your account. For a third-party missing node, check that node's own package rather than adding model weights at random.

What success looks like

The model appears in node search, and the imported graph no longer shows it as unknown. Reconnect any links that an earlier placeholder lost.

Review installation and node search
02 / Check this stage

The model node cannot authenticate

SpicyAPI nodes use your SpicyAPI key. They do not read a ComfyUI Partner Nodes credit balance or a key pasted into an unrelated custom node.

Visual guideComfyUI
SPICY_API_KEY
Settings → SpicyAPI → API key
SpicyAPI settings in ComfyUI with a masked API key and maximum cost per run
The plugin reads authentication and the spending limit from Settings > SpicyAPI. A server environment key takes priority over the saved key.
  1. 1.

    Set the key where the plugin reads it

    Open Settings > SpicyAPI and save an active key from your SpicyAPI console. On a hosted ComfyUI server, SPICY_API_KEY must be set in the environment of the process running ComfyUI.

  2. 2.

    Check which setting takes priority

    SPICY_API_KEY takes priority over the key saved in Settings. If you replaced a key in the UI but still get the old authentication error, inspect the server environment and restart after correcting it.

  3. 3.

    Keep authentication separate from billing

    For a 401 response, check the key and the account it belongs to. For a balance or spending error, open billing and check that specific message. Never put the key into a prompt, a workflow Note or a screenshot you share.

What success looks like

The node gets past the missing-key or authentication error and begins preparing inputs or requesting a quote.

Open SpicyAPI API keys
03 / Check this stage

The node rejects an input before generation

Check the hosted model node's inputs rather than copying settings from a local checkpoint workflow. Different models accept different reference images, options and LoRA bases.

Visual guideComfyUI
LoadImage
IMAGE → image_0
LoadImage
IMAGE → image_1
Qwen Image 2.1 Edit

SpicyAPI LoRA → Z-Image Turbo LoRA

A SpicyAPI LoRA weights node connected to Z-Image Turbo LoRA and an image preview.
Follow the media wire to the model
  1. 1.

    Follow the media wire to the model

    Choose a real file in Load Image and connect its IMAGE output to the model's image input. For two references, connect both source nodes to separate image sockets. A filename written in the prompt does not upload an image.

  2. 2.

    Use a direct LoRA weights link

    Connect SpicyAPI LoRA to a model that exposes a loras input. Its URL must point to the weights file and open without a login; a gated repository or a web page URL is not a downloadable weights file. Match the LoRA's base model to the selected node.

  3. 3.

    Keep the model's required fields filled

    Our downloadable templates leave the prompt blank so you choose the scene before running. Fill it in, check required references, and use the options offered by that node. Start with a small graph before reconnecting extra masks, LoRAs or processing nodes.

What success looks like

The node accepts your connected media and options, then reaches the quote or task submission stage.

Choose a matching starter workflow
04 / Check this stage

The run stops at the cost check

A spending limit is an intentional stop. The plugin requests a quote before creating the generation task and compares the quoted charge with Max cost per run.

Visual guideComfyUI
Max cost per run

Within the limit

quote ≤ limit

Continue to task submission

Above the limit

quote > limit

Stop before submitting a generation task

Read the quote and the exact limit
  1. 1.

    Read the quote and the exact limit

    Open Settings > SpicyAPI > Max cost per run. When the quote exceeds the limit, the plugin stops before submitting a generation task. The message tells you the quoted amount and your limit; changing the limit should be a deliberate choice.

  2. 2.

    Trim the first test instead of the whole workflow

    For video, use a shorter duration or a lower resolution offered by the model. For image editing, start with the reference count and output size you need. Review the new quote before scaling up to the final version.

  3. 3.

    Count paid model nodes separately

    The setting applies to each hosted model-node run, not a total budget for the entire canvas. A generate-then-upscale graph can create two paid tasks. Check both stages when planning a batch or queuing several variants.

What success looks like

The chosen settings fit your limit and the node receives a task ID. Check the final charge after completion as well as the starting estimate.

Review model options and current pricing
05 / Check this stage

The node has a task ID but keeps waiting

A task ID means generation was submitted. Keep that ID and check the task before starting another run: the browser, ComfyUI's local queue and the remote generation are separate pieces.

Visual guideComfyUI
task ID → SpicyAPI console
queued
running
succeeded

Download & save

failed

Check this stage

Find the same task in your console
  1. 1.

    Find the same task in your console

    Open SpicyAPI console logs and locate the displayed task ID. A queued or running task is still in progress. A succeeded task points you toward result downloading or local saving; a failed task has its own error to inspect.

  2. 2.

    Treat Stop as stopping the local wait

    Stopping ComfyUI does not cancel a generation already submitted to SpicyAPI. That task continues remotely and can be charged if it succeeds. Check its result in the console before queuing the same request again.

  3. 3.

    Separate generation from result downloading

    If the node says Downloading result, generation has reached the download stage. Check that the ComfyUI server can reach the returned result URL, then inspect its backend log for the download or decoding error. Refreshing the browser does not repair the server's network connection.

What success looks like

You know the remote task's final state and can find its result or its specific error. Resume troubleshooting from that stage rather than treating every delay as a new generation failure.

Check your task in console logs
06 / Check this stage

The result arrived, but where is the file?

Receiving a result and saving it are two steps. Follow the output socket through the graph, then check the output directory of the ComfyUI instance that executed the workflow.

Visual guideComfyUI
IMAGE
Save Image
VIDEO
Save Video

Saved file

ComfyUI/output/
spicyapi/
reference-edit_*.png
Connect the matching save node
  1. 1.

    Connect the matching save node

    Connect the model's IMAGE output to Save Image, or its VIDEO output to Save Video. A task ID or text output is not the media socket. Check that the save node is connected and enabled in the graph you actually queued.

  2. 2.

    Distinguish a preview from a saved output

    An image shown by Preview Image can be a temporary preview. Use Save Image for a persistent image file. If generation succeeded but saving failed, check the save node's own error and the destination folder's permissions.

  3. 3.

    Check the active output path, including subfolders

    The usual location is ComfyUI/output, but desktop sharing, a custom output directory or a remote installation can change it. A filename_prefix such as spicyapi/reference-edit creates a subfolder under that output location. On a remote server, the file is saved on that server.

What success looks like

The expected image or video exists in the active output directory, with the prefix and subfolder you chose.

Open a template with the save stage wired

Finish the connection. Keep the file.

Hosted model nodes return regular ComfyUI media values. Use a save node at the end of the media path, then look in the output location configured for that machine.

IMAGESave Image

Use the images output for the picture. A mask output is a separate value; it is not the finished image.

VIDEOSave Video

Use the video output for the clip. Saving a still frame through Save Image does not save the video.

Which output folder?

Start with ComfyUI/output, then check your desktop storage settings or custom --output-directory if the file is not there. The path belongs to the machine running the backend, even when you open the canvas from another computer.

Example filename_prefix: this saves into a spicyapi subfolder, not a second installation directory.

spicyapi/reference-edit

Give your AI assistant something useful to inspect.

Copy this guide and fill in the diagnostic fields. One exact error, one task ID and a small graph tell an assistant more than a screenshot of a crowded canvas.

Details to add after copying

  • ComfyUI version and installation method
  • comfyui-spicyapi version
  • Model node name and task ID, if available
  • Exact error and last visible status
  • Connected inputs and selected settings
  • Save node and active output directory
  • What changed before the error
  • A minimal workflow without private references

Remove API keys and private source-image links before sharing. The copy button copies this guide and blank fields; it does not collect your local files or account data.

Restart from a graph you can understand.

Choose a template for the task you want. Keep the input, model and save stage working first; add extra processing once that small path succeeds.

Common questions

Documentation behind this guide