# Prompt pre and post text

> Pre and post text is fixed text that Nodaro adds before and after a node's prompt at run time. It stays hidden from app users and travels with presets.

Source: https://nodaro.ai/docs/concepts/prompt-pre-post-text

**Pre and post text** is fixed text that Nodaro adds before and after a node's prompt every time the node runs. You set it in the settings panel, it never appears on the node, and people who use your workflow as an app never see it. Use it for a house style or a standing instruction, so that the prompt field stays free for the subject.

## How it works

| Field | Where the text goes |
| --- | --- |
| **Before the prompt** | Before the prompt |
| **After the prompt** | After the prompt |

With **Before the prompt** set to `Cinematic 35mm still of` and **After the prompt** set to `, golden hour`, the prompt `a woman in Tokyo` runs as:

```
Cinematic 35mm still of a woman in Tokyo, golden hour
```

The person who typed the prompt wrote only "a woman in Tokyo". The style comes from the settings of the node.

## Set it

### Open the settings panel

Double-click the node, such as [Generate Image](https://nodaro.ai/docs/nodes/image/generate-image), to open its settings panel.

### Open Pre & post text

Click the **Pre & post text** section. It is collapsed by default.

### Write the text

Type in **Before the prompt**, **After the prompt**, or both. These fields work like the prompt: they accept `@` references, `{` variables and `/` [snippets](https://nodaro.ai/docs/guides/prompt-snippets). When a field has text, the section shows a badge, such as **2 set**, so the text is never hidden from you.

### Run the node

The text is added to the prompt at run time. To check the result, switch the prompt area of the node to **Final**.

![The settings panel of Generate Image with the Pre & post text section open, text in Before the prompt and After the prompt, and the 2 set badge.](https://nodaro.ai/docs-media/screens/en/concepts/pre-post-text.light.webp)

## When to use it

- **Apps.** Your [MiniApp](https://nodaro.ai/docs/concepts/apps) shows a prompt field, and the pre and post text add your house style around whatever people type. They never see or change it.
- **Presets.** A [preset](https://nodaro.ai/docs/concepts/presets) that keeps its instruction in pre and post text leaves the prompt free: apply the preset, type your subject, and the preset's text still wraps it. A preset that puts its text in the prompt is overwritten as soon as you type.
- **A standing instruction.** Rules that every run needs, such as "no text in the image", belong in the pre text instead of in every prompt.

## What gets wrapped

- **Whatever prompt the run uses.** The text typed in the node, a prompt connected from another node, or each item of a [list](https://nodaro.ai/docs/concepts/lists-and-batching).
- **Before Nodaro adds its own parts.** Nodaro adds picker wording, character references and the **Style** and "Avoid:" lines after the wrap. Pre and post text therefore behaves exactly like text you typed into the prompt.
- **Only the positive prompt.** The negative prompt is not changed.
- **Variables and mentions work.** A `{Label}` [variable](https://nodaro.ai/docs/concepts/prompt-variables) in the pre or post text is resolved at run time, and a snippet is inserted as plain text.
- **Generate Script is the exception.** On [Generate Script](https://nodaro.ai/docs/nodes/video/generate-script), the text wraps the topic that arrives on its prompt input, not the **Style Guide** field.

## How the pieces are joined

Nodaro drops the parts that are empty and puts a single space between the others. It adds no space when there is already one on either side, or when the next part starts with a comma, a period, a semicolon, a colon, an exclamation mark, a question mark or a closing parenthesis. Nodaro never trims your text, so you control the formatting.

| Before the prompt | Prompt | After the prompt | Result |
| --- | --- | --- | --- |
| `Cinematic 35mm still of` | `a woman in Tokyo` | `, golden hour` | `Cinematic 35mm still of a woman in Tokyo, golden hour` |
| `RULES: no text`, then two line breaks | `a red shoe` | Empty | The rules, an empty line, then `a red shoe` |
| Empty | `a red shoe` | `Avoid clutter.` | `a red shoe Avoid clutter.` |
| `Portrait of {Character}` | Empty | Empty | `Portrait of Mira`, when the node labeled Character holds "Mira" |

**An empty prompt.** When the prompt is empty, the pre and post text alone are the prompt. A preset can therefore carry its whole prompt in **Before the prompt**. This also replaces a node's built-in default for an empty prompt, such as the default question of [Describe Image](https://nodaro.ai/docs/nodes/image/describe-image).

## See the final prompt

Switch the prompt area of the node from **Edit** to **Final**, or click **Show final prompt** in the settings panel. The final view shows the whole prompt as it will run, and colours the pre and post text teal, with **Pre/post text** in the legend.

## Pre and post text in presets

- **Presets save it.** A preset stores the pre and post text with every other setting of the node.
- **Prompt presets replace it.** Applying a preset that ships prompt content, a prompt or pre and post text, replaces the node's pre and post text. No leftover text from an earlier preset wraps the new prompt.
- **Settings presets keep it.** A preset that only changes settings, such as the model and the aspect ratio, leaves your prompt and your pre and post text alone.

Many factory presets keep their instruction in pre and post text, so that your prompt stays yours:

- **Generate Image** and **Modify Image**: the **Reference Sheet** boards, the **Character Reference Grid**, **Label Elements** and **Apply Named Edit**, the **Face Privacy** edits, the **Portrait Transformations**, the **Stylized Subject** presets and the **Edits** folder.
- **Relight & Switch**: every operation preset.
- **Video to Video**: the **Restyle Looks**.
- **Generate Video**: **Edit Video**, which puts `edit {video:1} as follows:` before your sentence and a "keep everything else unchanged" instruction after it.

## Which nodes have it

Every AI node that has a prompt: the image, video, audio, music, speech, text, script, vision, analysis and Suno nodes. The plain [Text](https://nodaro.ai/docs/nodes/automate/text) node has no pre and post text, because its whole content is already text you type.

## From the API

Pre and post text are ordinary node data, so every surface that reads or writes a workflow carries them.

- **In workflow JSON**, set `data.promptPrefix` and `data.promptSuffix` on the node. This works with the [REST API](https://nodaro.ai/docs/developers/api/workflows), the SDK, the CLI and the [MCP tools](https://nodaro.ai/docs/mcp/tools).
- **Per run of an app**, without showing it to users, send `inputOverrides` with the node's id, for example `{ "<nodeId>": { "promptPrefix": "Cinematic 35mm still of" } }`, to `POST /v1/app/:slug/run`. The SDK's `client.apps.run`, the MCP `run_app` tool and the CLI's `--override` flag accept the same overrides.
- **Discovery.** `GET /v1/nodes` lists `promptPrefix` and `promptSuffix` for every node that supports them.
- **Single generation calls**, such as `POST /v1/generate-image`, take one `prompt`. Join your text to it yourself, or pass a `presetId` to an MCP generation tool to wrap your prompt with the preset's pre and post text.

## Frequently asked questions

### What is pre and post text in Nodaro?

Two optional texts that Nodaro adds before and after the prompt of an AI node every time the node runs. You set them in the settings panel, and they never appear on the node itself.

### Can the people who use my app see the pre and post text?

No. Pre and post text is a setting, not part of the app's form. People who run your app type only the prompt, and your text wraps it at run time.

### Does pre and post text change the negative prompt?

No. Only the positive prompt is wrapped. The negative prompt is used exactly as you wrote it.

### What happens when the prompt is empty?

The pre and post text alone become the prompt. This is how a preset can carry its whole prompt in the pre text, and it replaces any built-in default the node would otherwise use for an empty prompt.

### Does applying a preset replace my pre and post text?

A preset that ships prompt content, a prompt or pre and post text, replaces the node's pre and post text. A preset that only changes settings leaves your pre and post text as it is.
