> For the complete documentation index, see [llms.txt](https://docs.flora.ai/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.flora.ai/nodes/how-nodes-run.md).

# How Nodes Run

Run one node or a whole chain, follow generation status, and browse, pick, and clean up each node's generation history.

Every generation in FLORA happens inside a node. This page covers what happens when you hit run: how to run one node or many, what the node shows while it works, what happens when something fails, and how each node keeps a history of everything it has generated.

## Running a Node

To run a single node, do one of the following:

* Click the round **Generate** arrow in the node's prompt bar. Hover it to see the credit cost before you run.
* Press **Enter** while typing in the prompt box. Use **Shift + Enter** for a new line.
* Select the node on the canvas and press **Enter**.

### Running several nodes or a whole chain

Select two or more nodes and click **Run all** (the play button) in the selection toolbar, or press **Enter**. The tooltip shows how many nodes will run and the total cost.

* Nodes run in **dependency order**: upstream nodes go first, and downstream nodes wait for their inputs to finish.
* You can run up to **50 nodes** at a time.
* To run everything inside a field, use **Run Field** in the field's toolbar.

{% hint style="info" %}
Running a node does **not** automatically run the nodes connected upstream of it. If an input isn't ready yet, you'll see **Can't run yet** with a hint such as "Waiting for the connected image to be ready". To run a chain from scratch, select the whole chain and use **Run all**.
{% endhint %}

### When upstream nodes change

Downstream nodes never re-run on their own. If you edit or regenerate an upstream node, connected nodes keep their current output until you run them again. Each run creates a new generation, and results aren't cached.

### Connecting a Text Node as the prompt

When you connect a [Text Node](/nodes/text-node.md) to an Image, Video, Audio, or 3D node, the connected text **replaces** the prompt typed into that node. It doesn't add to it. The node's own prompt box locks while the text is connected.

* An empty Text Node doesn't take over the prompt.
* You can connect several Text Nodes. The first one with content becomes the prompt, and you can drag to reorder inputs to choose which one. Depending on the model, the others are passed along as extra text inputs.

## Generating Multiple Outputs

Hover the **Generate** button to reveal a counter, then use **+** and **−** to run a node up to **20 times** in one go. The tooltip updates to show "Run *n* times" and the total cost.

Where the extra results go depends on **Settings → Generation → Variation behavior**:

| Option                        | What happens                                                  |
| ----------------------------- | ------------------------------------------------------------- |
| **In node history** (default) | All results are stored in the same node's generation history  |
| **On canvas**                 | Each result appears as its own copy of the node on the canvas |

**Multi-model behavior** offers the same choice for running several models at once. It defaults to **On canvas**.

## Generation Status

While a node works, its header shows its progress:

| Status                    | Meaning                                                                         |
| ------------------------- | ------------------------------------------------------------------------------- |
| **QUEUED**                | The generation is waiting to start                                              |
| **GENERATING**            | The model is working. An estimated time (for example, `~45s`) appears alongside |
| Warning icon + error card | The generation failed (see below)                                               |

{% hint style="info" %}
New free accounts run one generation at a time. If you start several, a clock icon shows that they're queued and will start automatically, one after another. Upgrade to run multiple generations at the same time.
{% endhint %}

### Cancelling

Right-click a running node and choose **Cancel generation**. With several running nodes selected, use **Cancel all** in the selection toolbar.

### When a generation fails

A failed node shows an error card explaining what went wrong and what to try next. Common reasons:

| Error                                                 | What to try                                                                                                        |
| ----------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------ |
| **Content blocked**                                   | The model's safety filter rejected the prompt or input. Rephrase or change the input                               |
| **Invalid input**                                     | An input isn't supported by this model, such as the format, size, or count. Check the model's requirements         |
| **Model is busy** / **Model temporarily unavailable** | The provider is overloaded or down. Wait a moment, or switch to another model                                      |
| **Generation timed out**                              | Try again, or use a faster model or setting                                                                        |
| **Insufficient credits**                              | Add credits or upgrade your plan. See [Manage Subscription](/plans-and-billing/manage-subscription.md)             |
| **Something went wrong**                              | Try again. If it keeps happening, try a different model or [contact support](/getting-started/help-and-support.md) |

**To retry**, simply run the node again. There's no separate retry button.

**Credits for failed generations are refunded automatically.** Failed runs also appear in the node's history, and hovering one shows how many credits were refunded.

## Generation History

Every time you run a node, the new result is **added** to that node's generation history. Earlier results aren't overwritten.

### Browsing past generations

Once a node has two or more generations, select or hover over it to see a strip of thumbnails underneath.

* Click the **arrows** on either side to step through generations, or press the **Left** and **Right** arrow keys while the node is selected.
* Click any thumbnail to make it the node's **active** output.

{% hint style="success" %}
**The active generation is what flows downstream.** Any node connected to this one uses whichever generation you've selected. To try a different result in the rest of your workflow, select it in the history strip and re-run the downstream nodes.
{% endhint %}

### Managing generations

Right-click a thumbnail in the history strip for these options:

| Option                             | What it does                                                                    |
| ---------------------------------- | ------------------------------------------------------------------------------- |
| **Copy variant**                   | Copies the generation (⌘C / Ctrl+C)                                             |
| **Export selected as…**            | Downloads the generation                                                        |
| **Extract this batch onto Canvas** | Places the results as separate nodes on the canvas                              |
| **Delete variant**                 | Removes the generation from the node's history right away, with no confirmation |

To wipe a node's entire history, right-click the node and choose **Clear node** (⌘⇧X / Ctrl+Shift+X). You can click **Undo** in the confirmation toast if you change your mind.

To download everything a node has generated at once, use **Download All** in the node toolbar. See [Export Node](/nodes/export-node.md#bulk-download).

A single node can hold up to **1,000 generations**.

### Account-wide history

Separately from each node's history, the **History** tab in the library (**Shift + 5**) collects generations from all your projects. You can filter by Image, Video, or Audio, then **Add to canvas**, **Save to Assets**, or **Go to Project** to jump back to where something was made. See [Toolbar](/editor/toolbar.md#generation-history).

## Common Questions

<details>

<summary>If I re-run a node, do I lose the previous result?</summary>

No. Each run adds a new generation to the node's history. The newest one becomes active, and you can switch back to any earlier generation at any time.

</details>

<details>

<summary>Which result do connected nodes use?</summary>

The node's active generation, which is the one selected in its history strip.

</details>

<details>

<summary>Will changing an upstream node re-run the rest of my workflow?</summary>

No. Downstream nodes only update when you run them. Select the chain and use **Run all** to regenerate everything in order.

</details>

<details>

<summary>Am I charged for failed generations?</summary>

No. Credits for failed generations are refunded automatically.

</details>

<details>

<summary>How do I clear a node's history?</summary>

Right-click a thumbnail and choose **Delete variant** to remove one generation, or right-click the node and choose **Clear node** to remove them all.

</details>


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation by asking a question.

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://docs.flora.ai/nodes/how-nodes-run.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
