We built our own image generator so SMBs don't have to pay Runway.
Published: May 12, 2026 Read time: 5 min Author: Kadin Nestler Tags: ascero-studio, image-generation, smb, margin-math, productized-ai
The thing we shipped
Last week we shipped Ascero Studio — an in-house image generator at /tools/ascero-studio. It starts at $19/month for 200 images, with brand-kit logo composites and four aspect ratios on the higher tiers. This post explains why we built it instead of routing SMB owners to Runway, Midjourney, or one of the other consumer-grade image tools, and what the unit economics look like once you control the stack.
The short version: the bottleneck for an SMB owner is never "where do I get an image." The bottleneck is "how do I get a branded image that matches the rest of my content in under a minute, without paying a designer." That gap is what Studio fills. The fact that we can charge $19/month and still earn a >99% gross margin is a consequence of the architecture, not the goal.
The actual problem with sending SMBs to Runway
Every SMB owner I have onboarded in the last six months has the same content problem. They need a hero image for a menu update, a header for a Google Business Profile post, a thumbnail for a Reel, a banner for an email. They need it today. They need it to look like their brand — logo in the corner, color palette intact — and they need it to look like the vertical they operate in, not a generic stock photo.
The off-the-shelf tools are pointed at a different audience. Runway Standard is $15/month for 625 credits, which works out to roughly $0.024 per image generation, with outputs pitched at video production teams and creative professionals. Midjourney Basic is $10/month for around 200 generations, roughly $0.05 per image, and it lives inside Discord with a learning curve that loses three out of four SMB owners on the first session. Both produce excellent outputs. Neither produces an image a restaurant owner can drop directly into their menu without spending another twenty minutes in Canva adding the logo and color-correcting the food shot.
That gap — between a raw model output and a usable branded asset — is where a designer normally lives. Designers cost $50 to $150 an hour. For a restaurant doing $60,000 a month, the math does not work for the eight to twelve images they need per week.
Why we built it instead of reselling
The reseller path looked appealing for about ten minutes. You wrap the Runway API, charge a premium, ship. The problem is three-fold.
First, the API costs propagate. Reselling at scale means your gross margin lives or dies on what the upstream provider charges. Image-gen API pricing has moved twice in the last year.
Second, the vertical tuning matters more than the model quality. Out-of-the-box Flux Schnell does roughly the same job as out-of-the-box Stable Diffusion or Midjourney on most prompts. The difference is the preset system around it — a "restaurant menu hero" preset that knows to render food shots overhead with shallow depth of field and warm color temperature; a "real estate listing hero" preset that knows to render front-facing wide-angle exteriors at golden hour; a "contractor before-and-after" preset that knows to render paired interior shots with consistent lighting. Those presets are tuned against real vertical-specific reference imagery and refined based on what our SMB users actually pick.
Third, the brand-kit composite is its own deliverable. The Growth tier auto-overlays your logo, applies your color palette to gradient overlays, and outputs at the four aspect ratios that cover every platform an SMB posts to. That overlay logic is not in any model. It is a thin layer of code on top of the generation, and it is the part that turns a model output into a usable asset.
Owning the stack lets us tune all three layers. Reselling would have given us the first and lost us the second and third.
The margin math
The unit economics are the part of this story that surprised us, so I want to show the numbers.
We run image generation on Cloudflare Workers AI using Flux Schnell. The cost basis is roughly 18 neurons per image at $0.011 per million neurons, which works out to approximately $0.0002 per image at our current generation settings. That is a fifth of a tenth of a cent.
On the Starter tier, a customer pays $19 per month for 200 images. Their cost-to-them works out to $0.095 per image. Our cost-to-serve is $0.04 per customer per month in generation fees (200 images at $0.0002). That is roughly 0.2% of the price they pay, which means gross margin on the generation cost alone is north of 99%.
Compare that to Runway Standard. At $15 a month for 625 credits, the cost-to-them is $0.024 per image, cheaper per-image than our Starter — but Runway is not packaging brand overlays, vertical presets, or aspect-ratio multi-output, and 625 image credits in a Runway plan is shared with video credits at a different conversion rate. Compare it to Midjourney Basic at $10/month for ~200 images: roughly $0.05 per image, also without any of the vertical packaging.
The 99% gross margin sounds like a flag — and it would be, if the price tag were $99 a month. At $19 a month it is something different. It is the price an SMB will pay without thinking, the same way Slack or Zoom lives in the "noise" line of their P&L. The unit economics tell us we have priced the product correctly for the buyer.
Growth is $49 a month for 1,000 images, a $0.049 customer cost-per-image. Studio is $99 a month for 3,000 images, $0.033 customer cost-per-image. The gross margin compresses slightly at the top tier — call it ~98% — because higher-volume customers also generate more support load and more brand-kit storage. Still plenty of room.
What is actually hard about this
The hardest part of shipping Studio was not the model. The model is a commodity. The hard part is what surrounds it.
Vertical preset tuning is a labor-intensive feedback loop. We sit with an owner, watch them prompt, see what they expect, see what the model returns, and adjust the preset. Each preset takes 30 to 50 iterations to get the average SMB owner a usable image on the first try. Eight verticals shipped; twelve by Q3.
Moderation is the second hard part. SMB owners ask for things that are perfectly legitimate (an Italian restaurant's lasagna hero shot) and things that need to be filtered (a real estate agent's request for "this house but with a swimming pool" when altering listing imagery would create disclosure problems).
Brand-kit composites are the third. Logo overlays sound trivial. In practice, you have to handle dark logos on dark backgrounds, light logos on bright backgrounds, transparency, aspect-ratio cropping, and customers who upload logos wider than tall that we render on a square image. Every one of those edge cases burned a day.
How to try it
There is a free path at /tools/ascero-studio. One watermarked generation, no signup. If you like the output, the paid tiers are at /pricing#studio.
We built this for the operators who are sick of the choice between "pay a designer or post a bad image." If that is you, run the free generation and tell us what we missed.
— Kadin