Chats
- title
- time
- messages1 → n
- looks1 → n
Case study · Fashion and generative AI
A conversational stylist that knows your wardrobe
Named after the costume designer from The Incredibles, Edna is a fashion assistant you talk to like a friend with strong opinions. Tell her where you are going and she puts together complete looks from your taste, your past purchases and what is trending this week, finds every piece in a real catalogue, and keeps reworking the outfit as you react to it.
01 The brief
The brief, in short
The challenge was to build a generative AI fashion outfit generator that changes how people discover and put together personalised outfits, and to do it in a natural, conversational way. It should draw on past purchases, browsing data and social media trends to offer tailored, on-trend recommendations, and understand each person’s preferred style, colours and favourite brands.
Getting dressed for an occasion is a surprisingly hard search problem. A store’s search box understands “black heels” perfectly well, but it has no idea what to do with “something for a friend’s sangeet that is festive without being loud”, and it certainly does not remember that you only wear three-quarter sleeves or that you already own the perfect pair of earrings. So people end up translating their own taste into keywords, one item at a time, and hoping the pieces work together.
Edna starts from the other end. The conversation is the interface, so you describe the occasion the way you would to a friend and let Edna do the translating. She already knows your fit, your colours and your budget from what you have bought and browsed, she keeps an eye on what is in fashion this season, and she answers with whole outfits instead of single products. If something is off, you just say so and she tries again.
Distilled, the brief asked for
A generative AI fashion recommender you can talk to
Built on
With the focus on
02 The brief
We broke the brief into six use cases and ranked them from P0 to P5, and the order says a lot about the product: conversation comes first, the wardrobe follows close behind, and everything else builds on those two.
Talk through an occasion and get complete outfits shaped around your preferences, the event, your body type and your style.
ChatOpen the app to a look for the day, put together from clothes you already own, so there is one less decision to make in the morning.
WardrobeAdd clothes with a photo or a few words, and Edna mixes what you own with new pieces whenever she styles you.
PhotosEdna looks for what your wardrobe is missing and suggests the few pieces that would make it work for more occasions.
WardrobeReact to a look in plain words and Edna reworks it, keeping what you liked and changing what you did not.
LooksThe looks lean on what is popular right now, so they stay current without you having to follow every trend yourself.
Trends03 The product
Edna is a Flutter app for Android and iOS with four main places: the chat where looks are made, a page for each look with real products, the wardrobe, and a page that shows everything Edna has learned about you. The screens here are rebuilt from the designs, with drawings standing in for the product photos.
You
I need a ball gown for a dance on Saturday
EdnaGPT
Ah, my discerning fashion enthusiast! A ball gown, you say? How utterly thrilling! But of course, I must know a few details to truly tailor my recommendation to your impeccable taste.
Are you envisioning a classic and timeless elegance, a daring avant-garde statement, or perhaps a harmonious blend of the two? And do tell me, what hues and fabrics make your heart skip a beat?
You
Timeless in lavender or sage green
EdnaGPT
Marvelous choices, darling! Lavender and sage green exude sophistication and grace.
Now, let me conjure up some splendid options for your consideration:
Do any of them resonate with your inner fashionista, or would you like Edna to weave her creative magic and conjure up some alterations to better suit your desires? Feel free to share your thoughts, and together we shall create a masterpiece that will leave everyone breathless!
EdnaGPTSoft lavender and pearls keep it timeless, and black heels add a little drama.
₹4993.8 (78)
Embroidered Georgette Stitched Anarkali Gown
₹15,4993.8 (78)
Embroidered Georgette Stitched Anarkali Gown
₹2,1994.1 (316)
Sage Tulle Strapless Ball Gown
₹6494.2 (1,031)
Suede Envelope Clutch
₹8993.9 (204)
Satin Box Clutch with Chain
₹1,2994.0 (2,410)
Ankle Strap Stilettos
₹9993.7 (88)
Block Heel Sandals
₹3494.4 (612)
Pearl Stretch Bracelet
Did you like our suggestions?
EdnaGPT
Effortless elegance: A white crop top and black high-waisted jeans complemented by a sleek leather jacket, slip-on sneakers, silver accessories.
Get more out of your current wardrobe by adding a few items
Tops
Traditional Attire
Bottoms
Dresses
Basic Information
Your Preferences
01
Every conversation starts with an occasion. Edna replies in character, a little theatrical and very sure of herself, and asks about the style and colours you have in mind before she commits to anything. Once she knows enough, she sends her looks as a small collage, and the conversation gets a title of its own, such as “Ball Dance Gown”, so you can pick it up again later from your history.
02
Opening a look lists every item in it, and each item comes with several real products from the catalogue, with the price, the rating and a link to the store, so you can choose between the ₹499 gown and the ₹15,499 one. At the bottom you can tell Edna whether you liked the suggestions, ask for a change right there in the message box, or add the whole look to your cart in one go.
03
The wardrobe opens with an outfit of the day made only from clothes you own, with a line from Edna on why it works. Below it, gap analysis looks at everything you have and suggests the few pieces that would get more out of it, and the rest of the screen is your clothes, grouped into tops, traditional wear, bottoms and dresses, with the colours in each group shown as small dots.
04
Everything Edna works out about you is laid out on one page, from basic details like age and height to preferences for colour, pattern, sleeve length, fabric, neckline, fit, style and budget. Showing it openly was a deliberate choice, because an assistant that learns from your shopping should let you see exactly what it has learned.
04 Proposed approach
The app itself does very little thinking. It sends requests to a Django server, the server talks to the language model and to our own trained models, and a SQLite database, hosted separately, is shared by both. Pick one of the five flows to follow a request from your thumb to the models and back.
The schema follows the app almost screen for screen. A chat holds its messages and the looks it produced, a look holds its articles, and every article holds the products found for it. The wardrobe has its own branch of categories, articles and products, and two small tables keep the preferences and the profile that Edna fills in about you. Hover over or tap a reference to see where it points.
Chats
Wardrobe
You
05 Proposed approach
The heart of Edna is a multi-heuristic prompt generator. Instead of passing your message to the model as it is, it wraps the message in everything Edna knows about you, from age and region to fit, favourite colours and budget, and spells out exactly what shape the answer must take so that the app can read it.
Red T-shirt
Blue jeans
Yellow shirt
Black trousers
Hawaiian shirt
Casual shorts
Switch traits on and off and watch the prompt change. The client is based on the test profile written into the app’s prompts.
Prompt~0 tokens
Expected answerparsed into looks
"Title": "Goa Trip",
"Issues": "",
"Look 1": {
"items": ["shirt", "shorts", "hat", "sandals"],
"shirt": "Light blue linen shirt",
"shorts": "Khaki chino shorts",
"hat": "Straw fedora",
"sandals": "Brown leather sandals",
"Explanation": "Relaxed and breezy for exploring Goa, and the light colours keep you cool."
},
"Look 2": { … }
Asking for the structure inside the prompt is what made the rest possible. GPT-3.5 was told to answer only in JSON, to list the items of each look before describing them, to keep every explanation under twenty words and to flag any problem with the request, so a gibberish message comes back as an issue instead of a broken look.
One item per component keeps the searches clean, and asking for details like colour and sleeve length in every description gives the catalogue search something specific to match. For each item the search returns several products, which is why every look offers a few versions of each piece at different prices and ratings.
06 Proposed approach
Personal taste is only half of dressing well, and the other half is knowing what people are wearing right now. A small pipeline keeps Edna current by reading the fashion web and boiling it down to a handful of tags that the prompt generator can use.
A paragraph like the ones it readssample text
This season the cropped silhouette refuses to leave. Stylists keep pairing boxy crop tops with high-rise flared jeans, while relaxed chinos have quietly replaced joggers for weekend plans. Necklines are dropping too, with the V-neck back in almost every runway recap.
What reaches the prompttrend tags
“Current trends: …”
07 Proposed approach
A stylist that works from your wardrobe is only useful if filling the wardrobe is painless, so Edna takes either a few words or a photo. Typing “white ribbed crop top” is enough, and a photo goes through two models that work out what is in it and describe each piece the way a person would.
U2-Net
Cloth segmentation
BLIP-2
Fashion-aware captioning
U2-Net nests small U-shaped blocks inside one large U, so it looks at fine detail like collars and cuffs and at the overall shape of a garment at the same time. That makes for clean outlines around clothes, which matters when every outline becomes a crop for the next model.
BLIP-2 connects a frozen image encoder to a large language model through a small Q-Former, so it describes a garment in natural words, “red check shirt” rather than a class label. Those words drop straight into the wardrobe and, later, into the prompt.
08 Results
Edna had to be cheap enough to run for a lot of people and light enough to live on an ordinary phone. These are the numbers for typical use.
RAM
for typical use of the app
Database
50–100 KBof space per user
Network
<3 KBof bandwidth per recommendation
Latency
LLM usage
~2,000tokens per recommendation
Cost
~₹5per active user a month, from about 2,000 tokens for every recommendation
The number that stands out is the fifteen seconds a recommendation takes, and almost all of it is spent waiting for the language model. Everything around that call is quick, because the app only ever moves text and links: a full recommendation is under 3 KB on the wire, and a user’s entire record fits in 50 to 100 KB.
The recommendation algorithm grows linearly with the size of a user’s data and the length of their prompts. The server is written in Django, which is designed to scale, and the SQLite database can move to MySQL or PostgreSQL when it needs to.
The database and the APIs are encrypted, every trait Edna extracts is visible to the user, and every product comes from a single e-commerce catalogue, so the looks are ready to plug into a real store.
09 Results
Edna works, but it is worth being clear about where it is weakest, and most of its limits trace back to one decision: putting a very large model behind an API instead of a small one on the phone.
A small model on the phone would be quick and private but makes more mistakes and copes badly with unusual requests. We chose a large model behind an API, hosted on a cloud service, and accepted the cost and the wait that come with it.
Every look depends on the server and the language model, so without a connection Edna cannot style anything at all.
With a large user base the compute bill grows quickly, because each recommendation is a call to a large model.
Language models carry the biases of the data they were trained on, which can quietly reinforce certain fashion standards and leave out styles that deserve a place.
Without an official API for the product catalogue, search results are less accurate than they could be, and an item can come back as a near miss.
10 Results
Three ideas came out of building Edna that would make it noticeably better, and the app already has an empty screen set aside for the third.
An AR view that shows the suggested outfit on your own body in real time, so you can see how a look sits before you buy a single piece of it.
A friendlier start that asks about your taste up front through quick this-or-that comparisons, so Edna has a strong picture of you from the very first message.
Looks shown one at a time to keep or skip with a swipe, which makes choosing feel like a game and gives clean signals for fine-tuning the models. Try it above.
11 Looking back
What I enjoyed most about Edna is how little of it is the model. GPT-3.5 does the imaginative part, but the product lives in everything around that one call: the prompt that carries a person’s taste into it, the structure that makes its answer readable, the search that turns a description into something you can buy, and the screens that let you push back. Those pieces decide whether a look feels like it was made for you.
It also taught me to treat the cost of a model as part of the design from the start. Knowing that a recommendation takes about 2,000 tokens and fifteen seconds shapes the whole product, from asking for a compact, structured answer to working out that Edna costs around ₹5 per active user a month, which is the number that decides whether an idea like this can ever be more than a demo.
Thanks for reading. Edna’s code, from the chat to the wardrobe, is on GitHub.