# Overview (https://docs.fuser.studio/docs/recipes)

A **recipe** packages connected nodes into one reusable node. You choose the
inputs people can change and the outputs they receive.

A product campaign recipe, for example, can expose a creative brief, aspect
ratio, and optional reference images while keeping the model and art direction
inside. Reuse it in another project or publish it for others to try.

## Three ways to work with a recipe [#three-ways-to-work-with-a-recipe]

### On the canvas [#on-the-canvas]

Connect a recipe to other nodes just like any part of your flow. Here, a Text
node supplies the brief to **Botanical Campaign**, and an Image node receives
the finished campaign image.

![A Text node feeding a creative brief into the Botanical Campaign recipe, with its image output connected to an Image node](/recipes-canvas-flow.png)

Open the canvas library's **Recipes** tab to find **My Recipes**, **Featured**,
and **Recent**. Click or drag a recipe to place it. Discover community creations
in the [Gallery](https://docs.fuser.studio/docs/interface/gallery.md).

### In the run preview [#in-the-run-preview]

Choose **Enter focus** from the node's menu to see its inputs and results
together. Adjust the controls, review the credit estimate, and click **Execute**.
Browse earlier runs to compare results.

![A botanical product campaign recipe with a creative brief and a finished image](/recipes-preview.png)

See [Running recipes](https://docs.fuser.studio/docs/recipes/running.md) for media inputs, execution status,
and run history.

### Inside the recipe [#inside-the-recipe]

Select the node and click **Open recipe**, or press `E`. The internal canvas
contains the working nodes, an **Input** node, and an **Output** node. Use the
**Recipes** panel to arrange controls, add descriptions, and prepare to publish.

![An Input node feeding Gemini Image and an Output node collecting the campaign image](/recipes-wiring.png)

Edit directly if you have permission. For a **View only** recipe, choose
**Make a copy to edit** to create an independent recipe.

## Design the interface around the task [#design-the-interface-around-the-task]

Expose the decisions someone needs to make each time. Dropdowns retain their
choices, media inputs use the appropriate picker, and descriptions explain
what to provide.

Reorder controls, share an input between compatible properties, or make
supported media inputs optional. See [Inputs and outputs](https://docs.fuser.studio/docs/recipes/inputs-and-outputs.md)
for controls and result types.

## Build once, improve over time [#build-once-improve-over-time]

Create a recipe from a working selection, test its starting values, and save
as you refine it. Publish when it's ready to share.

Each placed recipe uses a particular version. You choose when to adopt
updates, so a finished project can keep its current version. Recipes can
also contain other recipes to combine reusable steps.

## What's Next? [#whats-next]

  - [Running recipes](https://docs.fuser.studio/docs/recipes/running.md): Change inputs, execute a recipe, and work with its results.

  - [Creating a recipe](https://docs.fuser.studio/docs/recipes/creating.md): Turn a working flow into a reusable recipe, step by step.

  - [Inputs and outputs](https://docs.fuser.studio/docs/recipes/inputs-and-outputs.md): Choose the controls, starting values, and results people use.

  - [Editing recipes](https://docs.fuser.studio/docs/recipes/editing.md): Refine the flow, make an independent copy, or unpack its nodes.

  - [Publishing & versions](https://docs.fuser.studio/docs/recipes/publishing-and-versions.md): Publish your recipe and manage updates across projects.