Case study — Creative SaaS · Generative AI

The same character, every time.

How Grootcore Systems built the consistency engine behind Neolemon — an AI cartoon platform where a character defined once holds its identity across unlimited scenes, poses and art styles.

Client
Neolemon — neolemon.com
Industry
Creative SaaS / Generative AI
Product
AI cartoon generator with persistent character identity
Audience
Children's book authors, educators, comic creators, marketers
Engagement
Ongoing — September 2024 to present
Team size
2 engineers — 1 full-stack, 1 frontend
Services
Full-stack product engineering, AI/ML pipeline integration, cloud infrastructure & DevOps
Also delivered
Platform architecture, subscription & billing integration, performance optimisation
Neolemon — define a character once, place it in unlimited scenes

Neolemon — define a character once, place it in unlimited scenes

Tech stack

Next.js (Vercel)DjangoMongoDB AtlasFal.aiRunway MLStripeAWSAzure Front Door CDN

The challenge

Generative models don't remember.

Ask one for “a curly-haired girl in a red coat.” Ask again for the same girl, now on a bicycle. You get a different girl — different face, different proportions, subtly different everything.

For someone generating a single image, that's a curiosity. For someone illustrating a 32-page picture book, it makes the tool worthless. The character on page four has to be the character on page twenty-seven.

Neolemon's founders set out to close exactly that gap. The product thesis was narrow and sharp: let a non-technical creator define a character once, then place that character into unlimited scenes, poses, outfits and expressions — the same character, every time.

When Neolemon's founder, Sachin Kamath, envisioned an AI platform capable of generating perfectly consistent cartoon characters across entire stories, he needed more than a development agency — he needed an engineering partner capable of turning an ambitious vision into a production-ready SaaS platform.

01

Consistency had to be a system, not a prompt trick

Describing a character carefully in a prompt gets you close once and drifts on the second attempt — small wording changes shift the output, and the same wording twice doesn't guarantee the same face. Tolerable for a single image; fatal across a book. Meeting the promise meant holding character identity as persistent, structured state that the application controls, then re-applying it to every generation.

02

The interface had to hide the AI entirely

The target user is a children's author, not a prompt engineer. Neolemon's own FAQ makes the promise explicitly: no design experience, no AI experience, no complex prompting. Every technical decision had to survive that constraint.

03

Unit economics had to work at $29/month

GPU inference is the dominant cost in a product like this. A flat subscription with a generous allowance only works if generation cost per image is tightly controlled and abuse is structurally impossible.

Our approach

Identity as state, not as description.

Four systems carry the product: the identity pipeline, a style layer that sits on top of it, credit-metered billing, and delivery infrastructure spanning three providers.

01 / Character identity pipeline

Capture identity once, re-inject it everywhere.

The core of the product. A user uploads a photo or writes a short description; the system derives a reusable character identity that can be re-applied across arbitrary new scenes.

Grootcore built this as an orchestration layer over hosted generation services — Fal.ai and Runway ML — rather than training and operating models in-house. That decision traded a degree of control for speed to market and freedom from GPU capacity management, and it moved the hard engineering from model training to pipeline design: how identity is captured, stored, and reliably re-injected into every downstream request.

02 / Style system

Identity survives a style change.

Neolemon ships multiple distinct art styles — Pixar-inspired 3D, anime, watercolor, chibi, claymation, western comic, minimalist vector, coloring-book line art — and a character rendered in watercolor must still read as the same character in chibi.

The solution keeps identity and style structurally separate. A layered prompt system holds each character's identity attributes — facial features, proportions, clothing, colours, accessories — in their own representation, distinct from the instructions that determine how those attributes get rendered. Style becomes a parameter applied on top of a fixed identity rather than a variable mixed in with it, which is what allows a switch from claymation to line art to change everything about the rendering and nothing about who the character is.

Generation runs against current image models through Fal.ai and other providers, with the identity layer re-applied on every call. The practical effect: adding a new art style doesn't require reworking any existing character.

Neolemon character references — one character, unlimited scenes

Character references — one character, unlimited scenes

Neolemon style system — the same identity across distinct art styles

Style system — the same identity across distinct art styles

03 / Credit metering & billing

Transparent credits, stricter than they look.

Rather than rate limits or opaque quotas, the team built a transparent credit model: 20 free credits on signup with no card required, then 600 credits monthly on the paid plan at 4 credits per generation. Credits don't roll over; top-up packs are available mid-cycle.

The engineering requirement behind that simplicity is stricter than it looks. Credits must be reserved before a generation is dispatched, reconciled against the actual result, and refunded automatically when a provider call fails — otherwise users are billed for images they never received.

Reserve credits before dispatch
Reconcile against the result
Auto-refund on provider failure
Renewals & upgrades
Failed payments
Mid-cycle top-ups
Cancellations
Stripe webhooks as source of truth
04 / Delivery infrastructure

Three providers, each for what it does best.

The Next.js frontend deploys on Vercel, the Django application and supporting services run on AWS, MongoDB Atlas holds application data, and Azure Front Door fronts image delivery. Generated assets are served from CDN edge rather than origin, which keeps gallery and dashboard loads fast regardless of user geography and keeps egress predictable as each user's library grows.

Because generation runs on external providers, there is no GPU fleet to scale — but there is a queue, a set of third-party rate limits, and latency the team doesn't control. The architecture had to absorb all three without the user feeling it.

Neolemon creator dashboard — projects, credits, and generation history

Creator dashboard — projects, credits, and generation history

Results

Scale, so far.

The engagement is ongoing. The figure below is the one Neolemon states publicly; performance and conversion metrics are being collected and will be published once verified.

23,000+
creators on the platform

Client-stated, Neolemon homepage

What the build demonstrates:

  • Turning an unreliable model behaviour into a dependable product guarantee
  • Designing generative pipelines around hosted providers instead of self-managed GPUs
  • Making metered billing accurate through failure, not just through the happy path
  • Shipping a multi-cloud delivery architecture with a two-engineer team
  • Holding an AI product to a non-technical user's expectations

What's next

From single images to whole stories.

The engagement is ongoing, and the current roadmap takes Neolemon beyond single images — both features depend on the consistency work above.

In progress

Flipbook / storybook builder

Assemble complete illustrated storybooks in one place — rich text formatting, headings, layout controls and AI-generated imagery composed together, rather than generating images in one tool and laying them out in another.

In progress

AI video generation

Turn finished stories into animated videos, rendered through Remotion for output quality that holds up outside the browser.

Why it depends on the engine

Consistency is the precondition

A storybook is only worth building if the character holds across thirty pages, and an animated video is only worth watching if it holds across every frame.

Work with us

Building an AI product where the model output has to be reliable, not just impressive?

That gap — between a demo that works once and a system that works every time — is where most generative AI products stall. Book a 30-minute technical review with Grootcore Systems.