Skip to content

Our cost per generation fell 80%. Now we have room to grow.

Roomates brought monthly serving costs down from $2,000 to $400 with Sparset, with measured image generation around three seconds and a path to lower costs per generation as usage grows.

RoomatesAvatar generation on Sparset

Before and after

At 50,000 generations a month. Measured September 1 to 9, 2026.

MetricPrevious setupDelivered configuration
Generation timeAbout 12 seconds, customer-reported3.07-second median, 3.25-second p95, measured
Monthly serving cost at 50,000 images$2,000$400
Cost per generation at that volume4¢ ($0.04)0.8¢ ($0.008)
Measured steady throughput300 images per hour1,180 images per hour

The customer

Roomates turns a user’s selfie into a stylized, pop-character profile picture. Its consumer image-generation experience depends on a recognizable visual style, defined by a custom-trained model adapter called a LoRA. At the time of the project, Roomates was processing approximately 50,000 generations each month, with plans to quadruple that volume. Every output needed to be exactly 512×512 pixels, preserve the person’s identity, and feel consistent with the product. Valentin Py is Roomates’ Co-founder and CTO.

Twelve seconds, 50,000 times a month

Roomates’ previous Gemini setup cost $0.04 per generation and took approximately 12 seconds per image, according to the customer’s production figures. At 50,000 monthly generations, that meant a $2,000 monthly bill, or $24,000 at an annualized run rate.

The friction appeared in two places. Users had to wait for the image they had just requested. Meanwhile, every additional generation added another four cents to the serving bill. Doubling usage would double that expense under the same pricing.

Changing the infrastructure also had constraints. Roomates needed its own visual style preserved, a fixed output size, and a private integration that kept end users away from the GPU provider. A cheaper image with the wrong face or expression would not solve the problem.

The reason to change

Roomates was planning to grow from 50,000 to 200,000 monthly generations. At four cents each, that would take the monthly generation bill from $2,000 to $8,000. Growth meant committing to a much larger recurring expense. The team needed economics that would give it more room to scale while preserving its custom avatar style.

The requirements were specific: run on one GPU, retain the custom model adapter, and prevent user images from being written to the GPU vendor’s disk. The new service also needed to connect to Roomates’ existing backend, keeping the infrastructure behind the product experience.

Why Sparset: more growth without the same cost curve

The case for Sparset centered on protecting margins as usage grew. With Gemini’s per-generation pricing, four times the volume meant four times the generation bill. Sparset offered a dedicated deployment that could absorb more work within the same GPU capacity, spreading the monthly cost across more avatars.

That changed the economics of Roomates’ expansion plan: at 200,000 monthly generations, a $400 single-GPU service would cost $7,600 less per month than the previous rate. Roomates could retain its custom model and connect through one private API while Sparset handled the inference setup.

From custom model to production service

The work followed four practical steps.

  • Preserve the custom look

    The team combined Qwen Image Edit 2511 with the acceleration adapter and Roomates’ own LoRA before compressing the model. The complete custom adapter was retained at its specified strength.

  • Optimize for the actual output

    The production path generated images directly at 512×512 and used a three-step generation schedule. During the progression from the four-step baseline to the final version, measured throughput rose from 910 to 1,180 images per hour.

  • Handle overlapping requests within one card

    The service prepared a second request while the first was generating, allowing work to overlap within the GPU’s memory limits. The schedule was selected through throughput testing.

  • Package the worker as a service

    Roomates’ backend submitted jobs through an authenticated API. Inputs and outputs were held temporarily in memory for approximately 15 minutes. The service included polling, retry handling, and duplicate-request protection so integration did not depend on users communicating with GPU infrastructure.

About three seconds per image

The final production configuration recorded a median generation time of 3.07 seconds and a 95th-percentile time of 3.25 seconds in its validation window. Compared with Roomates’ reported 12-second Gemini baseline, median generation was approximately 3.9 times faster.

Validation included 200 individual runs, 100 pairs, and 80 quality-review images after warmup. None of the 80 reviewed images was classified as unusable. The final configuration was selected against both speed and image-quality checks.

Roomates’ monthly cost is now $400, down from $2,000 at 50,000 generations. That is an 80% reduction, saving $1,600 per month, or $19,200 annualized at unchanged volume and pricing. Each generation now costs 0.8 cents ($0.008).

What changed for the team

Roomates now has a $400 monthly service with room for additional generation work on the same GPU. The cost of that capacity can be planned against the team’s growth targets, instead of assigning another four-cent charge to every avatar.

For Roomates’ team, the service provides one API for submitting a selfie and retrieving the finished image. Model execution, request scheduling, and worker retries sit behind that interface. This gives the product team a consistent integration point while Sparset handles the inference setup. Users continue to interact with Roomates throughout the process.

In their words

“Sparset helped us free ourselves from Gemini pricing and constraints, dividing our avatar generation cost by five, while allowing more than ten times the volume, for a quarter of the time per generation. The team is also very reactive and very easy to work with.”
Valentin PyCo-founder and CTO, Roomates

Next: four times the volume

Roomates’ next target is 200,000 generations per month. At $400 on the existing GPU, that would bring the average cost to 0.2 cents per generation ($0.002), compared with the previous four-cent rate, a 95% reduction at that volume.

The longer-term capacity scenario goes further:

Monthly generationsCost at previous Gemini rateSparset single-GPU monthly costSparset cost per generation
50,000, current$2,000$4000.8¢
200,000, planned$8,000$4000.2¢
800,000, projected capacity scenario$32,000$4000.05¢

At 800,000 monthly generations, that is 20 generations for one cent, or 98.75% less per generation than the previous rate. Pricing remains $400 while the workload fits the single-GPU deployment. If requests arrive in concentrated bursts, the platform may determine that more GPUs are needed, increasing the monthly cost.

The 800,000 scenario remains a projection. At the measured throughput, it requires approximately 678 operating hours, 93% of an average month, with limited room for downtime and bursts. Higher utilization can also increase queueing and user wait times.

For Roomates’ immediate fourfold growth plan, the opportunity is concrete: more avatars on existing capacity, with a lower cost per generation and more room in the budget to support the product.

See the same loop on your workload.

Book a Call