Branches

Branches allow users to create multiple paths of generation or exploration without losing the route back to the original. This can be helpful if users are not sure of exactly what outcome they are trying to reach, or if they want to play with different tokens, parameters, models, etc before converging on a path forward. This pattern also makes exploration auditable, since each path preserves inputs, settings, and outcomes.

Branches work across modalities:

  • Text chat branches split a conversation into parallel threads, preserving the conversation and context up to that point.
  • Variant branches automatically generate multiple paths based off of the original source to compare or edit independently.
  • Workflow branches split a graph at a node so different parameter sets or tools run side by side.

Branches offer a solution for users wanting to break out of the linear-constrains of a conversation. To maintain user control and usability, retain footprints back to the original, and clues for what is changing as the generative path progresses. Open-canvas layouts introduced by tools like Flora Fauna aid by making this visual, but it's harder in text-based contexts.

Good implementations make branch creation explicit, keep context inheritance clear, and provide simple ways to compare, merge, or retire paths.

Design considerations

  • Maintain the source relationship. Provide links and references that lead back to the original prompt so users can trace backwards to the origin from multiple journeys. List the parent and children of branches if the surface doesn't make it clear.
  • Make branching a first-class action at obvious touchpoints. Add a clear “Branch” control on message actions, artifact tiles, and workflow nodes. Users should not have to duplicate chats or copy prompts to explore. ChatGPT’s “Branch in new chat” and TypingMind’s edited-message threads set the expectation.
  • Let each branch progress independently. On creation, display a compact summary of inherited context, including prompt, model, tools, files, and memory flags. Let users deselect items before the branch commits to avoid leaking irrelevant context.
  • Define lightweight merge patterns. For chat, allow “adopt this answer into main thread” with a note. For artifacts, promote a chosen variant as the new baseline while keeping a link back. Avoid destructive merges.

Examples

Firefly supports a more limited set of options for branching than other visual editors, but does allow individual variations to be branched into additional prompts while maintaining the relationship back to the original.
OpenAI supports branched conversations. The context up to the point of the branch is retained and duplicated into a new thread.
Flora shows its branches visually on the canvas. Users can try different models, prompt combinations, references, and more through chained actions.
Every time Midjourney runs a prompt, it creates variants that can be followed down its own branch. Links in the description lead back to the original, allowing users to explore different variations, parameters, and references before converging on a direction.
Agentive workflow editors like Rivet support branches that are convergent rather than divergent, supporting different prompts, actions, and branches for different conditions or states.
Typing mind uses the term “fork” instead of branch to create a new conversation that contains the context of the thread up to that point.