> ## 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.

# Creating nodes

> Six ways to add a node, from double-clicking the board to dragging a connection.

## Six entry points

<Frame caption="The create panel">
  <img src="https://mintcdn.com/wji/1nwL1jaWRdmAhYLq/images/infinite-canvas/create-panel-01.png?fit=max&auto=format&n=1nwL1jaWRdmAhYLq&q=85&s=fe023596811fb557dcf9cf3079f4e207" alt="Create panel listing every node type available to place on the canvas" width="1600" height="900" data-path="images/infinite-canvas/create-panel-01.png" />
</Frame>

<Steps>
  <Step title="Double-click empty space">
    Opens the create menu at that point. The empty-canvas hint tells you this.
  </Step>

  <Step title="Right-click empty space">
    Gives you **Upload**, **Create node**, and **Paste**.
  </Step>

  <Step title="The Create button">
    First icon in the capsule toolbar. Opens the create panel; clicking a type places it at the
    centre of your view.
  </Step>

  <Step title="Drag from a connection handle">
    Drag a node's `+` handle into empty space and release. The menu that appears creates the new
    node **already connected**.
  </Step>

  <Step title="Keyboard">
    `I`, `V`, and `A` create image, video, and audio generation nodes at the pointer. If something
    is selected, the new node is connected to it automatically.
  </Step>

  <Step title="Drag, paste, or upload">
    See **Adding files to the canvas** below.
  </Step>
</Steps>

## What the create menu offers

<Frame caption="The create menu, opened by double-clicking empty space">
  <img src="https://mintcdn.com/wji/1nwL1jaWRdmAhYLq/images/infinite-canvas/create-menu-01.png?fit=max&auto=format&n=1nwL1jaWRdmAhYLq&q=85&s=01407a5a68c50f776c98f94b755ca792" alt="Context menu on the canvas listing media node types above a divider and an Annotation submenu below" width="1600" height="900" data-path="images/infinite-canvas/create-menu-01.png" />
</Frame>

The full menu lists media types — text, table, image, panorama, video, audio, dataset, bundle,
group — then a divider, then an **Annotation** submenu containing title, comment, task list, and
arrow.

Dragging from a `+` handle gives a shorter list, because not everything makes sense as the target of
a connection. Dataset and group are excluded. If the source is an image node with media, panorama is
added. A **More** submenu carries describe, storyboard, depth video, video upscale, image-to-sketch,
and character sheet.

## Adding files to the canvas

You never have to upload a file somewhere else first. Drop it on the board and WJI works out what it
is.

### Four ways in

<Steps>
  <Step title="Drag from your desktop">
    Drop one or several files anywhere on the board. Each becomes its own node at the drop point.
  </Step>

  <Step title="Paste">
    `⌘V` accepts an image from the clipboard, a spreadsheet file, tabular text, or plain text.
  </Step>

  <Step title="Right-click empty space">
    Choose **Upload** and pick files.
  </Step>

  <Step title="A node's upload button">
    Image, video, audio, and dataset nodes each have an upload control in their toolbar, for putting
    a file into a node that already exists.
  </Step>
</Steps>

### What each file type becomes

| Drop this                                                                         | You get                                          |
| --------------------------------------------------------------------------------- | ------------------------------------------------ |
| An image file                                                                     | An **image** node                                |
| A video file — `mp4`, `mov`, `webm`, `m4v`, `mkv`, `avi`                          | A **video** node                                 |
| An audio file — `mp3`, `wav`, `m4a`, `aac`, `ogg`, `flac`, `opus`, `weba`, `webm` | An **audio** node                                |
| A CSV or spreadsheet file                                                         | A **table** node. Several at once stack downward |
| A Markdown or text document                                                       | A **text** node                                  |
| A YouTube link, pasted as text                                                    | A **YouTube** node                               |

Images are recognized by type rather than by extension, so anything your browser treats as an image
works.

<Warning>
  Uploads are capped at **25 MB** for images, audio, and documents, and **200 MB** for video. See
  [Supported file types](/reference/supported-file-types) for the full limits, including the tighter
  ones that apply to reference video.
</Warning>

Dragging an existing **asset** rather than a file — from the asset library, from generation history,
or from another part of the app — also creates a node. That and every other drag gesture is
catalogued in [Drag and drop](/image-generation/drag-and-drop).

## Pasting

`⌘V` on the canvas handles several kinds of content, in this order:

1. An **image file or image URL** → uploaded and placed as an image node
2. A **spreadsheet file** → a table node
3. **Tabular text** (TSV or CSV) → a table node
4. **Plain text** → a YouTube node if it is a YouTube link, otherwise a text node
5. **Nodes you copied earlier** in WJI → pasted with their connections intact

Pasting places content at the pointer if you have moved the mouse, otherwise slightly offset from
the last paste.

## Table rows become nodes

Dragging a connection out of a **table node** to create a non-table node creates **one connected
node per row**. This is the fastest way to turn a shot list into a set of generation nodes.

<Tip>
  Paste a shot list as a table, map the column holding the prompt, then drag out from the table.
  Every row arrives as its own generation node, already connected and already carrying its prompt.
</Tip>
