Write
pmt{A red sneaker} creates a Prompt. Add >img-nano to connect an image model.
Describe the nodes you want. Noding connects them as you type, ready to insert into Figma Weave.
pmt{A red sneaker} creates a Prompt. Add >img-nano to connect an image model.
See nodes and wires appear as you type. Check errors and warnings before inserting.
In the extension, press Shift + Enter. Or copy the workflow and paste it onto the Weave canvas.
Build the structure in one place: no separate node placement or wire dragging for the pattern you describe. Change a model name to compare models. Add *3 to repeat a connected pair. Save a pattern once and insert it later with a shortcut.
| What you want | What you type | What appears |
|---|---|---|
| One image model | pmt{A cap}>img-nano | 2 nodes, 1 wire |
| Compare two models | pmt{A cap}>(img-nano+img-nano-pro) | 3 nodes, 2 wires |
| Repeat the whole pair | (pmt{A cap}>img-nano)*3 | 6 nodes, 3 wires |
Noding speeds up workflow setup. Image and video generation still happen in Weave; compiling or inserting does not run a model.
Learn +: separate nodes, shared prompts and branches →
Next: work at keyboard speed →Write the code. See the nodes, connections and properties update beside it.
Edit settings in the expression. Click a node’s port or property for its syntax and available choices. This builds a preview; it does not run models.
Use keyboard shortcuts without memorizing every model name or setting. Start typing and let suggestions finish the structure.
Type nano or a model name. Use ↑ and ↓ to choose, then Tab or Enter to accept.
Tab accepts a faded suggestion and moves between editable fields. Try completing group: rename the selected title, then Tab into the group.
Inside [], autocomplete shows supported settings. Type an input name to find compatible connections from nodes you named with #labels.
From the extension editor, Shift + Enter inserts into the active Weave canvas. Review the result there before running models.
| Key | Action |
|---|---|
| Ctrl + Space | Open autocomplete; the Suggestions button does the same. |
| ↑ / ↓ | Choose a suggestion. |
| Tab | Accept a suggestion or move to the next editable field. |
| Enter | Accept an open suggestion. |
| Esc | Dismiss suggestions. |
| Shift + Enter | Insert from the extension editor when the expression is valid. |
Copy an expression or open it in the compiler to edit it. Each recipe is checked against the bundled compiler; review any warnings and the result in Weave.
Keep recurring workflows and prompt text in the Workflows and Prompts tabs. Both libraries are always available; no imports are needed.
product-shot./product-shotType /product, choose your saved workflow, and press Tab. The workflow shortcut becomes editable workflow code.
studio and content Soft studio light, neutral background, product photography.pmt{@studio}>img-nanoType @studio inside pmt{} and accept with Tab. With Keep prompt mentions on, the editor keeps @studio and resolves its saved text for preview, copy, download and canvas insertion. Turn it off to paste the full text when accepting a suggestion. The toggle does not rewrite existing code. These examples require the items you just saved; they are not built-in shortcuts.
Existing import workflow; and import prompt; lines remain accepted for compatibility.
Use Format code or Alt + Shift + F to indent groups and branches. Prompt text and setting values are preserved exactly. Purple mentions, blue node labels and warm connection symbols make the expression easier to scan.
Inside prompt text, @studio finds saved text automatically. Inside an input setting, [prompt=@brief.prompt] connects to a node named #brief.
Saved workflow snippets and pasted prompt text are copies. Kept prompt mentions use the latest saved text each time the workflow is generated; deleting a referenced prompt produces an error. Use \@name inside prompt text for a literal mention. Libraries and the mention preference are saved locally; the website and extension have separate storage.
This is inspired by Emmet. Here, > creates a wire; use group{Title}(...) to put nodes inside a group.
+ means “also add this.” > means “connect to this.” Use them together to build several branches in one expression.
The parentheses matter. In pmt>(img-nano+img-nano-pro), the prompt feeds both models. In pmt>img-nano+img-nano-pro, only the first model receives the prompt. The second model is separate because > binds more tightly than +.
These examples build the graph. Adding branches does not start simultaneous model runs; you run the workflow from Weave.
| Syntax | Meaning | Example |
|---|
#brief defines a node label. @brief refers to that same node without creating another copy. @brief.prompt selects its output explicitly.
pmt#brief{A red sneaker}
+ img-nano[prompt=@brief.prompt]
+ img-nano-pro[prompt=@brief.prompt]> binds more tightly than +: write pmt>(img-nano+img-nano-pro) to send one prompt to both models. Use unique labels; repeating a labeled node produces an error.
Search by component name or shortcut. The code shown below each name is what you type in Noding. Expand a result for its ports and settings.
Loading catalogue…
The Chrome extension keeps the compiler in a side panel while you work in Weave.
npm run build:extension.chrome://extensions in Chrome and enable Developer mode.dist/chrome-extension.https://app.weavy.ai/flow/…, then click the Noding extension icon.Start with pmt{A red sneaker}>img-nano. Choose Insert into canvas or press Shift + Enter in the editor. Allow access to Weave when Chrome requests it. Check that a Prompt and an image model appear, joined by one wire.
Check the canvas before retrying to avoid duplicates. Choose Copy workflow, click an empty canvas area, then paste with ⌘V on Mac or Ctrl V on Windows. This copies workflow JSON, whereas the wiki’s Copy expression buttons copy editable code.
Rebuild, then click Reload on the extension card in Chrome and reopen the panel. If you installed from a ZIP extracted elsewhere, replace that folder with the new build first.
Run npm run serve and open the compiler. The web version supports copying workflow JSON; direct canvas insertion is available in the installed extension.
| Message | What to do |
|---|---|
| UNKNOWN_COMPONENT | Copy a compiler name from the glossary. Component names with spaces need quotes. |
| AMBIGUOUS_COMPONENT | Two catalogue entries share that name. Use the unique catalogue identifier shown in the glossary. |
| AMBIGUOUS_PORTS | Choose the destination with :image_1 or [image_1=@photo.file], using ports listed for those nodes. |
| INPUT_OCCUPIED | Two connections target the same input. Remove one or choose a different existing input. |
| UNKNOWN_PORT / INCOMPATIBLE_PORTS | Check both port names and types. Extra ports added manually in Weave are not automatically created by the compiler. |
| INVALID_SETTING / UNKNOWN_SETTING | Check the setting name, value type and allowed choices. List selection starts at 0. |
| UNKNOWN_REFERENCE / DUPLICATE_LABEL | Define the label with #name exactly once. References use @name. |
| CYCLE | A node feeds back into itself, directly or through other nodes. Remove the loop. |
| ADAPTER_REQUIRED / TEMPLATE_ONLY | The component is captured, but the requested mapping is not implemented. Create its default template and finish that part in Weave. |
Make sure the canvas has focus, rather than a text field. If browser clipboard access fails, expand Generated clipboard JSON, select and copy the JSON manually. Download JSON also saves a copy.
A valid expression proves the compiler can build the workflow structure. Review the inserted workflow in Weave before running it.
("Import"#id[title="Import"]*3) creates #id_1, #id_2 and #id_3, each with the same title and properties. Use @id_2.file to connect the second copy. References inside repeated blocks follow their own copy; references to outside nodes stay unchanged. Nested repetition adds another numeric suffix. Names that collide with existing nodes still need to be renamed.
An Import node is a placeholder: add your image in Weave. Supported settings appear in autocomplete. A captured setting or port does not imply support for every value or additional port you can create manually in Weave.
The component directory is built from the local captured catalogue, not a live list of every model currently in Weave. Its result count comes from that catalogue.
Extension drafts and libraries are stored in your Chrome profile. Web libraries live in browser local storage. There is no cloud sync between them. Pasting a workflow puts its content into your Weave workspace.
Browse component support →