> ## Documentation Index
> Fetch the complete documentation index at: https://docs.wji.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Connections and references

> Connections are how you feed context to AI. This is the core idea of the canvas.

This is the page that makes the rest of the canvas make sense.

**A connection into a generation node is a reference.** Everything you wire in becomes context the
model receives.

## Making a connection

<Frame caption="Dragging from a connection handle">
  <img src="https://mintcdn.com/wji/1nwL1jaWRdmAhYLq/images/infinite-canvas/connection-handles-01.png?fit=max&auto=format&n=1nwL1jaWRdmAhYLq&q=85&s=f5eb513cbd364c3d5157de4ea5ae0a24" alt="A node with plus handles on both sides and a connection line being dragged toward a generation node" width="1600" height="900" data-path="images/infinite-canvas/connection-handles-01.png" />
</Frame>

Hovering a node shows a `+` handle on each side. Drag from one to another node and release.

Direction is fixed: **right is the output, left is the input**. Dragging out of a left handle simply
flips the relationship so the result still reads right to left.

While dragging, the line tells you whether the drop is valid:

| Color | Meaning                    |
| ----- | -------------------------- |
| Green | This connection is allowed |
| Red   | Not allowed                |
| Grey  | Not over a target yet      |

## What each source contributes

<Columns cols={2}>
  <Card title="Text, table, YouTube" icon="align-left">
    Their content is **prepended to the prompt**, labelled with the node's name. This is how you give
    a generation a script, a shot description, or a summary.
  </Card>

  <Card title="Image, video, audio, panorama" icon="image">
    Added as reference media, subject to the model's limits for each type.
  </Card>

  <Card title="Dataset and bundle" icon="folder">
    Expanded into their member assets, so one connection can carry many references.
  </Card>

  <Card title="First and last frames" icon="film">
    On models that support them, the frame slots are filled from connections rather than uploads.
  </Card>
</Columns>

<Note>
  A dataset node in **content view** contributes its text; in **asset view** it contributes its
  media. The same connection means different things depending on the node's mode.
</Note>

## Multi-connect and fan-out

| Gesture                             | Result                                                      |
| ----------------------------------- | ----------------------------------------------------------- |
| Select several nodes, drag any `+`  | All of them connect to the target                           |
| **Alt** + drag `+` from a selection | **Fan-out** — each source gets its own new node, one to one |
| Drag out of a table node            | One connected node **per row**                              |

The multi-select toolbar shows an `⌥` badge as a reminder that Alt switches to fan-out.

You can also connect by tag: `⌥1`–`⌥8` with generation nodes selected connects every node carrying
that tag to them.

## What is not allowed

* A node cannot connect to itself
* The same connection cannot be made twice
* **Group nodes cannot connect** at either end
* A bundle can only feed a generation node
* Connections beyond a model's reference limit are refused, with the reason given

## Fine-tuning a connection

<Frame caption="The reference list on a generation node">
  <img src="https://mintcdn.com/wji/1nwL1jaWRdmAhYLq/images/infinite-canvas/reference-list-01.png?fit=max&auto=format&n=1nwL1jaWRdmAhYLq&q=85&s=9a5f24ed2e1877757d05a9b3c2a35fb2" alt="Reference list showing connected assets with names, a usage counter, and drag handles for reordering" width="1600" height="900" data-path="images/infinite-canvas/reference-list-01.png" />
</Frame>

Connections carry more than "these are joined":

* **Disabled assets** — for dataset and bundle sources, individual members can be excluded without
  removing the connection
* **Reference role and label** — what the reference is called, which is what `@image1` addresses
* **Frame slots** — which connection is the first frame and which is the last

Manage these from the generate panel's reference list, where you can also reorder references by
dragging.

## Removing a connection

<Frame caption="Cutting a connection">
  <img src="https://mintcdn.com/wji/1nwL1jaWRdmAhYLq/images/infinite-canvas/cut-connection-01.png?fit=max&auto=format&n=1nwL1jaWRdmAhYLq&q=85&s=e48c7072178ed4940d6bbd605c7898ae" alt="A selected connection line with the scissors button showing at its midpoint" width="1600" height="900" data-path="images/infinite-canvas/cut-connection-01.png" />
</Frame>

Click the line. A scissors button appears at its midpoint — **cut connection**. You can also select
a connection and press `Backspace` or `Delete`. Both can be undone.

<Tip>
  When a generation is not picking up something you expect, check the connections before rewriting
  the prompt. A disabled dataset member or a reference dropped for exceeding the model's limit looks
  exactly like a prompt that is not working.
</Tip>
