Box Composer:
AI-Powered Product Compositing for Banner Production at scale
How I turned a two-hour retouching chore into a one-click step, right inside Figma.
I produce web banners for e-commerce campaigns, and there's one workflow I know by heart. A campaign lands on my desk with a familiar brief: same box, new products. Maybe it's a subscription bundle that changes monthly. Maybe it's a seasonal gift set. Maybe it's a promo where the hero image is always the branded packaging, with this week's products arranged inside.
And I know exactly what happens next. I open Photoshop, mask each product, composite it into the box shot, match the lighting, paint in the shadows, export the result, and then paste it into every single banner size in the Figma file. 300×250. 728×90. 970×250. 1080×1080. Stories. The list goes on. And if we are talking about localization multiply it by 10!
The box never changes. The banners never change. Only the products change. And yet I was re-running the whole pipeline by hand, every time.
So I built Box Composer to delete that pipeline.
What Box Composer does
Box Composer is a Figma plugin I made that automates the product-in-box compositing step of banner production using AI image models, then propagates the result across every banner comp in your file automatically.
The workflow shrinks to this:
Drop your product photos onto the Figma canvas.
Select them.
Click Generate & replace.
That's it. About thirty seconds later, every banner comp on your page displays a freshly composited image of your products sitting inside your box: matched lighting, realistic shadows, and the box photographed exactly as it always is. No masking. No manual compositing. No copy-pasting across twelve artboards.
How it works under the hood
Box Composer connects Figma to fal.ai, a platform that hosts state-of-the-art image generation models behind a single API. Here's the full round trip:
1. One-time setup. In the plugin's settings, you save two things: your fal.ai API key and a reference photo of your empty box (the same box shot that appears in all your banner comps). Both are stored locally on your machine and persist between sessions, so setup happens exactly once.
2. Export. When you hit Generate, the plugin exports your selected product images straight from the canvas. Whatever is selected, whether photos, frames, or groups, gets rendered to pixels exactly as you see it.
3. AI compositing. The plugin sends the reference box image and your product images to fal.ai, along with a compositing prompt. The model's job is specific and constrained: place these products inside this box, match the lighting and perspective, keep the box itself pixel-faithful to the reference. The default prompt handles this out of the box (pun intended), and it's fully editable if your campaign needs different art direction: "arrange the products in a pyramid," "add festive tissue paper," whatever the brief calls for.
4. Automatic replacement. When the generated image comes back, Box Composer finds every layer named box-image on your current page and swaps in the new image. Critically, it preserves each layer's existing crop and scale settings, so a comp where the box was carefully framed for a skyscraper banner keeps that exact framing, and the square social comp keeps its own. Your compositions stay untouched; only the pixels inside them update.
The layer-name convention is the whole integration contract: name the box layer box-image in each comp once, and every future campaign refresh is a single click.
Three models, one dropdown
Different campaigns have different demands, so Box Composer lets you choose the model per run:
Nano Banana 2 (Google's Gemini 3.1 Flash Image) is my default: fast, inexpensive, and excellent at multi-image compositing. For routine product swaps, this is the workhorse. Results typically land in under fifteen seconds.
Nano Banana Pro (Gemini 3 Pro Image) brings deeper compositional reasoning. When I'm compositing many products at once, or the arrangement matters (products stacked, layered, or interacting), Pro's extra reasoning is worth the extra seconds.
GPT Image 2 (OpenAI) is the one I reach for when packaging has text on it. If your box carries a logo, a tagline, or label copy that must stay crisp and legible, GPT Image 2's best-in-class text rendering keeps every character intact.
Switching between them is just a dropdown. Same prompt, same workflow, different engine.
What this means in practice
The math is simple. My monthly campaign refresh across 12 banner sizes used to cost me roughly two hours of compositing and propagation. Now that step takes under a minute, and the generation itself costs pennies per image on fal.ai's pay-per-use pricing.
But the bigger win isn't speed. It's iteration. When compositing is free and instant, I can actually explore. Try the products arranged differently. Test a version with props. Generate three candidates and let the client pick. The cost of a variation drops from "an hour of retouching" to "edit the prompt and click again."
Marketing assets at scale, personalized for every segment
Here's where this gets bigger than saving me two hours a month.
Once compositing is a one-click step, the economics of segmented creative completely change. The old constraint was always production capacity: every product combination meant another retouching session, so campaigns shipped with one hero image for every audience. One box, one product set, everyone sees the same thing.
But a B2B audience is not one audience. A hotel manager, a procurement officer, and a plant supervisor all buy from the same catalog, and none of them buy the same things. Showing all three the same generic box of bestsellers wastes the one moment of attention the banner earns. With Box Composer, a product selection is just... a selection. Which means I can build a different box for every industry segment in minutes:
Hospitality sees a box of guest amenities: toiletries, coffee supplies, and housekeeping essentials.
Public sector sees office staples and breakroom supplies, the everyday reorder items agencies actually buy.
Industrial sees safety glasses, work gloves, and maintenance supplies straight from the MRO shelf.
Healthcare sees exam gloves, sanitizer, and front-desk consumables.
Education sees classroom and facility supplies sized for a district order.
The workflow per segment is identical: select that segment's products on the canvas, hit Generate, and every banner size updates. Duplicate the page, repeat for the next industry, and an afternoon produces a full matrix of industry-specific creative (every size, every vertical, every product mix) that would have taken a retouching team a week.
This pairs naturally with how B2B performance marketing already works. Ad platforms and account-based campaigns are built to serve different creative to different industries; the bottleneck was never targeting, it was producing enough tailored assets to feed it. When each additional variant costs a minute and a few cents instead of hours of manual work, a banner where the buyer recognizes their own workday inside the box stops being a "someday" idea and becomes the default way to run a campaign.
Box Composer supports Nano Banana 2, Nano Banana Pro, and GPT Image 2 via fal.ai. Your API key and reference images are stored locally and never leave your machine except in direct API calls to fal.ai.