---
title: Two passes, not one
canonical: https://withicarus.com/papers/wings
site: Icarus
description: One model asked to render a scene and reproduce a specific product in the same pass will invent the product. Splitting the render, and the bug that decided how.
---

# Two passes, not one

One model asked to render a scene and reproduce a specific product in the same pass will invent the product. Splitting the render, and the bug that decided how.

Published 25 September 2026. Written by Tanmay (https://tanmay.xyz).

## Abstract

A single image model asked to build a scene and reproduce one specific product in the same request does the first well and invents the second, in a way that is not visibly broken until the render sits beside the real object. Wings splits the request: a generator renders the frame with nothing pinned in it, then a vision pass is shown that frame alongside the real reference photographs and writes one narrow edit instruction that composites the product in. Building that instruction from the product record instead returned a fluent render of the wrong category of object, which is the bug that decided the design. This note covers the split, the instruction rules, why references are capped at one per subject, and what two passes still do not fix.

## Contents

1. [The failure](https://withicarus.com/papers/wings#problem)
2. [Splitting the render](https://withicarus.com/papers/wings#split)
3. [The bug that changed the design](https://withicarus.com/papers/wings#bug)
4. [What the edit instruction may say](https://withicarus.com/papers/wings#instruction)
5. [One photograph, not twenty](https://withicarus.com/papers/wings#references)
6. [What this does not fix](https://withicarus.com/papers/wings#limits)
7. [Components](https://withicarus.com/papers/wings#built-on)

## Questions

### Why do AI product photos get the logo or stitching wrong?

Because a single pass is doing two different jobs. Building a scene is generative work and reproducing one specific object is not, and a model asked for both in one request will invent the parts it cannot recall. The output is not obviously broken, which is why it ships: the logo is nearly the logo and the colour has moved half a shade.

### How does a two-pass render fix it?

The first pass renders the frame with nothing pinned in it, so it is never asked to imagine the product. The second pass already has the frame and only has to place the real product into it, which means the one thing it decides is the one thing a single pass was worst at.

### Why show the second pass the photograph instead of the product name?

Because a name is a lossy encoding and the model fills the loss in silently. Building the edit instruction from the product record returned a fluent, well-composited render of a shoulder bag when the product was a white tank top. Handing the pass the actual reference images removes the guess: it names the object because it is looking at the object.

### Should I upload every angle of my product?

No. One angle per product and one face-on photograph per person. Multiple references pull the subject in different directions and it drifts from shot to shot across a set, which is the exact thing pinning is supposed to prevent.

### Does a shot with nothing pinned still cost two passes?

No. With nothing pinned there is nothing to composite, so the second pass degrades to a light refine or does not run, and the shot is not billed for work that had none in it.

## References

- [Higgsfield](https://higgsfield.ai) -- Soul and Soul Cinema, the models that render the base frame.
- [fal](https://fal.ai) -- runs the compositing pass and the rest of the image and video models.
- [Vercel AI SDK, issue 8180: tool-result image parts are dropped](https://github.com/vercel/ai/issues/8180) -- why references are attached as message content, not returned from a tool.
- [Inngest](https://www.inngest.com) -- durable execution; a render survives the browser that started it.
- [Schema.org TechArticle](https://schema.org/TechArticle) -- the structured description this page publishes about itself.

## Read it

The full paper, with figures and tables: https://withicarus.com/papers/wings


---

Site: Icarus (https://withicarus.com)
Canonical: https://withicarus.com/papers/wings
Contact: tanmay@onai.studio
