It can describe a jacket well and tell you what to search for. What it cannot do is hand you a stocked link you can check out from in your own country, and that gap is the whole answer.
Partly, and the split is clean. A general AI assistant can look at a photo and describe the garment well: the cut, the fabric, the era, the words to search with. What it does not do is hand you that jacket in stock, priced in your currency, on a shop that ships to you. Koral is built for the second half of that job, and it is a different job.
There are questions where a general AI assistant beats us outright, and they are not edge cases. Ask what this style is called, or what would go with this jacket, or which era a silhouette belongs to, and you will get a better answer there than here. You will get it immediately, in conversation, and for most people at no cost. Koral does not answer those questions at all. It is a search tool. You give it a photo and it gives you things to buy. If you want to understand an outfit rather than own it, an assistant is the right window to be typing into.
It is worth being precise about how wide that is, because it is wider than a grudging concession. A general assistant is good at naming things you have no vocabulary for, which is most of fashion. It will tell you that the loops and dome buttons on a military jacket are frogging, that the trouser you keep saving is a barrel leg rather than a wide leg, that the shoe you like on other people is a mary jane. It is good at styling advice, which is a genuine taste question rather than a lookup. It is good at telling you what to type. It is patient with vague questions in a way a search box never is, and vague is how most people start.
None of that is a consolation prize, and this page is not going to pretend the free tool is bad so that the paid one looks better. The honest framing is narrower and more useful. There is one specific thing a description cannot become, however good the description gets.
If you want to understand the outfit, ask an assistant. If you want to own it, you need something that can see what is in stock.
A description is generated from what a model has learned about clothes. It is a language problem, and it is one that language models are extremely good at. A buyable link is not that. It is a claim about the world at this exact moment: this retailer, on this product page, has this garment, at this price, in this currency, and will ship it to the country you are sitting in. Every one of those facts has a shelf life measured in hours. Prices move, sizes sell out, a page becomes a 404, a shop stops shipping to your region.
That is why the gap between the two is structural rather than a matter of one tool being cleverer than another. Turning a photo into a stocked link means going and looking at live retailer inventory, then deciding what to throw away: the wrong currency, the wrong country, the shop front page that is not a product page, the aggregator that just relists other shops. It is a retrieval and filtering problem sitting on top of the understanding problem, and it does not get solved by describing the jacket better.
Assistants do keep gaining abilities, and some of them can go and read the web. That is worth saying plainly rather than pretending otherwise. But the second the answer stops being a description and starts being a link, the questions change to the ones this page is about. Is that shop in your region. Is that price in your currency. Is that a product page or a magazine article about the trend. Those are checks somebody has to run, and the rest of this page is what running them looks like.
A description is a good sentence. A link is a fact with an expiry date.
Say you upload a photo and get back something genuinely accurate. A cropped black quilted bomber with gold hardware and a ribbed hem. That is a better sentence than most people would write themselves, and every word of it is true about the jacket in the picture. Now take it to a shop and try to buy it.
black quilted bomber jacket, cropped, gold hardware
Every chip is a jacket that sentence describes correctly. The words are not wrong, they are just not narrow enough to finish a search, which is why a description is where a search starts rather than where it ends.
The description handed you a query. You are back at a search box with better words in it, which is a real improvement and is not the same as being handed the item. A photo skips the translation entirely. It carries the quilt pattern, the exact length, the hardware and the way the fabric hangs without anyone having to find the word for any of them, and it carries all of that into the search rather than into a sentence you then retype.
This is the part a description structurally cannot carry, and it is the single biggest reason a shopping answer either works or wastes your afternoon. Koral searches five regions: the UK, the US, the EU, Australia and Canada. That is not a label attached to the results at the end. It changes which market is queried, and then it throws away what came back wrong.
A result priced in a currency that does not belong to your region is dropped rather than ranked lower. Each region has one expected currency, pounds for the UK, dollars for the US, euros for the EU, Australian dollars and Canadian dollars for the other two, with the seven EU countries that never adopted the euro expecting their own instead. A listing in the wrong one never reaches you. A result on a domain that belongs to another region goes the same way, so a .com.au shop does not surface for a Canadian shopper and a .co.uk one does not surface for an American. Generic endings like .com are deliberately left alone, because .com says nothing at all about where a shop ships and guessing would throw away good results. There is a third check for the storefronts that announce it in the title instead, so a listing whose name ends in a country you are not in gets cut too.
Inside the EU it narrows further, to the member state rather than to the continent, and the generic Europe option falls back to Germany. There is a wrinkle worth knowing there: nine of the twenty-seven member states have no shopping market of their own to query, so each of those is searched through the nearest country that does, which is why a shopper in Latvia sees Finnish stock and one in Slovenia sees Austrian. It is an imperfect answer that is honestly better than an empty one.
The starting region comes from where you appear to be connecting. If that is wrong, if you are travelling, or if you want to buy from somewhere else, it is a setting rather than something you have to work around. The same photo really does return two different lists in two different countries.
Ask anything on the open web where to buy a garment and a large share of what comes back is not a shop. It is a magazine piece about the trend, a pin, a Reddit thread, a blog post from four years ago, or an aggregator page that relists other shops and sends you off again. All of those are perfectly good reading and none of them is a checkout.
Koral drops those pages outright rather than ranking them low, which means a result from one of them never appears at all. The list covers social platforms, blog hosts, magazines including Vogue, Elle, Cosmopolitan and Refinery29, aggregators including Lyst, and the cross-border replica marketplaces: Temu, AliExpress, DHgate, Wish and more of the same. The match is on the brand rather than the exact address, so a regional version of a blocked site is blocked too, and it works on the retailer name as well as the link.
Resale is handled differently, because sometimes resale is genuinely where an item lives. Depop, Vinted, eBay and the other secondary marketplaces are held back by default, and kept in full when they make up a real share of what survived the other filters. A discontinued piece where everything left is on resale keeps its results. A current season piece with two stray listings does not get cluttered with them.
One more filter is worth naming because it catches a common disappointment: a link whose address is just the front page of a shop is dropped. Being sent to a homepage and told the item is in there somewhere is not an answer to a question about one specific jacket.
Split by what you get at the end rather than by which tool feels more capable, the division of labour is clean enough to write down.
| Route | What comes back | Region and currency | Best used for |
|---|---|---|---|
| Asking a general AI assistant | A description, a style name, and words to search with | Not something a description carries | Understanding the outfit |
| Typing those words into a search engine yourself | Whatever a general search box makes of them | Whatever your search engine assumes about you | When you already know the brand |
| A general reverse image search | Pages where the image appears, plus visual lookalikes | Varies by tool, and you check it yourself | Finding the original post |
| A search built for clothes | A product page per garment, not one guess per photo | Filtered to one of five regions, wrong currency dropped | Actually buying the thing |
The first row is not a weak option. It is the right tool for a different question, and plenty of the time it is the question you actually have. The rows are also not exclusive: asking an assistant what a garment is called and then searching the photo is a perfectly sensible two-step, and it is what we would do.
This page argues for a specific tool over a general one, so it owes you the cases where that argument does not hold, including the one where this page itself goes out of date.
The separate items in a single image are each detected, cropped out and searched on their own, so a full outfit comes back head to toe rather than as one guess at whatever dominates the frame. Footwear gets a second, zoomed look of its own, because shoes occupy a tiny share of a full-body photo and lose their detail at normal resolution.
The occasion goes: wedding, party, date night, festival, work. They describe your evening rather than the garment and they pull in everything a retailer has ever tagged for an occasion. The department is made explicit rather than left neutral, which sounds trivial and is one of the largest sources of junk in clothing search. Brand names survive as you wrote them.
Blocked domains go first, all 33 of them. Then anything priced in the wrong currency for your region, anything on another region domain, anything whose title has been appended with a country you are not in, and anything whose link is a shop front page rather than a product page. Resale is held back unless it is a real share of what is left.
The result is not a description of a jacket and it is not a page to read. It is a set of product links per garment, in your currency, on shops that serve where you are. When two independent signals agree on the exact brand and model, that gets named. When they do not, nothing is named, because returning nothing beats returning the wrong product with confidence.
If you already have a description from an assistant, you can paste it in rather than starting again. It gets treated the same as anything else you type, which means parts of it are deliberately thrown away before the search runs.
blackquiltedbomberjacketforafestival
The occasion goes, the department is made explicit, and what is left describes the garment rather than the evening. Bottoms are the exception that proves the rule: jeans, trousers and skirts are almost never sent to a text-only search, because cut defines them far more than colour does and no sentence carries a cut reliably.
If an assistant told you what the jacket is called, that is the first half done. Drop the photo itself into Koral and it searches each garment against live retailer stock, then throws out the wrong currency, the wrong country, the magazines and the aggregators, so what is left is something you can actually check out from.
Start a searchCropped quilted bomber