Skip to content

Image Generation

Image generation in SecondStack covers three main areas. The generation settings control quality, size, background, and batch count, and vary by model. A generated image can then be edited in three ways: a quick inline edit, the annotation editor, or the message composer. And the Image Gallery collects every generated image across all your threads.

Full transcript lightly edited for readability

Tutorial overview (00:00). Hi everyone, and welcome to another SecondStack tutorial. In this video I want to show you how image generation works in SecondStack, and I’ll focus on three main areas: first, the image generation settings; second, the different ways you can edit generated images; and finally, the Image Gallery page.

Image generation settings (00:27). Let’s start by generating our first image, and let’s explore the settings we have here. First we need to make sure we’ve selected the right model. Now let’s look at the settings: we can change the aspect ratio, quality, background, and batch count. Batch count means we can get more images from just one prompt. Let’s set the count to two and the quality to medium, and generate our first image.

Generating your first image (00:58). Now we can see that two images are generating — that’s because we selected a batch count of two. And here we get our first generated images.

Editing images with the Message Composer (01:22). Now let’s take a look at the different ways of editing an image in SecondStack. The first option is very simple: we can just drag the image and drop it into the message composer, and describe our changes there.

Quick Edit and Annotate (01:52). The second way: hover over the image and click the Edit image button, and we see some options. The first option is Quick edit — we describe our edits in the input box right on the image. The next option is Edit in composer, which is similar to drag and drop. And the last option is image annotation — a more advanced option. Let’s click it.

Using image annotations (02:45). When I click it, the modal with the image opens, and here we can describe our changes in a more advanced way. For example, we can use shapes to mark an object, or use numbered marks to describe our edits and pin them to specific areas. Let’s edit this image: I’ll mark the area here — I want to add a phone. We can also change some preferences here, and then generate a new image. Great — now we have an edited version of our image with the changes we described earlier, and we could continue editing if we need to make more changes.

Image Gallery overview (03:22). Now I’d like to show you how the Image Gallery page works. To do that, I’ll generate more images in another thread — again with a batch — and let’s generate something like an alpaca. We get our images here. Before we go on, a quick look at the thread view: it’s the general view of any chat, and we can switch between the tabs to get more space to explore the generated images. Now let’s go to the Image Gallery page. Here we see some filters, which give us a more convenient way to find generated images or user-uploaded images on the platform.

Summary (04:15). And that’s basically all I wanted to tell you about image generation in SecondStack. If you have any questions or comments, please comment on this video. Thank you for watching, and see you in the next tutorial.

Image models are their own model type in the picker — Image Generation, alongside chat models and agents. Once one is selected, the composer shows an image generation settings popover. The settings are per-model: a model only shows the options it actually supports, as configured in ControlTower.

  • Quality — output quality, e.g. medium, high, or auto.
  • Size, or Aspect Ratio and Resolution — the output dimensions. Which of these controls you get depends on the model.
  • Background — background transparency.
  • Batch Count — the number of images to generate from one prompt, up to 4. Each one is an independent generation.

A batch runs as independent parallel requests rather than a single provider-specific multi-image call, so it behaves the same for every provider. If some generations fail, you still get the ones that succeeded, with a note of how many failed.

One caveat: quality and background apply to generation only. Provider edit endpoints don’t accept them, so they aren’t applied when you edit an image.

Hover a generated image and press the pencil Edit image button to pick an edit mode:

  • Quick edit — describe the change in an inline input right on the image (“Describe your edit…”). Best for one-line changes without leaving the flow of the thread.
  • Annotate — open the “Annotate image” editor, draw on the image, and attach instructions to what you marked. Best for precise, area-specific changes.
  • Edit in composer — send the image to the message composer and describe the change as a normal message. Best for longer instructions, or for combining the edit with other context.

Dragging an image into the composer does the same thing as Edit in composer — drop it in and describe the change.

The Annotate image editor is the precise option: instead of describing a region in words, you mark it.

  • Drawing tools — Pen, Arrow, Rectangle, Eraser, and Pin, with Undo, Redo, and Clear.
  • Numbered pins — each pin gets its own entry in an Instructions list (“Describe the edit for this pin”), so one image can carry several different edits, each tied to its own area.
  • Additional instructions — a free-text field for image-wide guidance (“Describe what to do with the image”).
  • Model selector — the editor has its own picker, limited to image-generation models.

Your pins are converted into a numbered instruction block for the model, with an explicit instruction not to reproduce the pins and marks in the output. When you send a single annotated image, SecondStack sends the original and the annotated copy together with a grounding prefix, so the model can tell your markup from the picture itself — which is why annotation edits stay faithful to the source image.

There are two gallery views: one inside a thread, and one across all threads.

A conversation with an image model gets Thread / Gallery tabs, and the Gallery tab replaces the chat transcript with a full-width grid of that thread’s images.

  • Layouts — Grid or Free (masonry), with a Columns control.
  • Per image — expand, download, copy, or delete. Deleting removes only that image; the message and its other images stay in the conversation.
  • Whole batch — a message that produced several images has one button that downloads all of them.

The Image Gallery row in the sidebar opens a gallery of every AI-generated image across your threads.

  • Filter — All Images, Generated, or Uploaded, to separate AI-generated images from your own uploads.
  • Per image — Go to thread, View full size, Download, Copy image, and Load more paging.
  • No edit actions, by design — editing needs a thread’s context, so you jump to the thread first.

Images generated in a temporary chat are deleted when the chat ends and never appear in the gallery.

Like the rest of SecondChat, image generation runs on your own infrastructure: requests are routed through SecondGate and counted against the same per-user and per-team budgets and usage analytics as chat.