Użytkownik otwiera aplikację Taobao, wybiera zdjęcie modela i wrzuca sześć referencji: płaszcz, koszulkę pod spód, spodnie, buty, czapkę i torbę. Klika przycisk. Niecałe siedem sekund później pojawia się świeże zdjęcie - ta sama twarz, to samo tło, każdy element ubioru poprawnie ułożony, płaszcz rozpięty tak, że widać koszulkę pod spodem. Pomnóż to przez dziesiątki milionów requestów w oknie obsługowym, a dostajesz problem, który rozwiązuje Tstars-Tryon 1.0. To nie jest sterylny scenariusz VITON-HD, gdzie jedna koszulka jest doklejana do studyjnego modela. To virtual try-on (VTON) w skali e-commerce, na realnych zdjęciach, z warstwowymi outfitami i akcesoriami - i działa już dziś.
Motywacja
VTON jest popularnym tematem badawczym od 2017 r., a większość systemów akademickich traktuje go jako masked inpainting: bierze zdjęcie osoby, segmentuje obszar ubrania, a następnie warunkuje model generatywny na płaskim referencyjnym ubraniu, by wypełnił maskę. CatVTON, FitDiT, FastFit, Leffa - wszystkie żyją w tym paradygmacie i są ewaluowane na VITON-HD lub DressCode, czyli sterylnych datasetach studyjnych z jednym ubraniem naraz.
Wszystko się sypie, gdy wpuścisz tu prawdziwego użytkownika e-commerce:
- Jego zdjęcia mają złożone tła, motion blur, częściową okluzję, czasem awatary anime albo postacie 3D.
- Chce przymierzyć kilka rzeczy naraz - kurtkę plus koszulkę, plus buty, plus czapkę - z poprawnym warstwowaniem (“zostaw kurtkę rozpiętą, pokaż t-shirt”).
- Wiarygodna maska z human parsing’u często jest po prostu nieosiągalna.
Z drugiej strony ogólne edytory obrazu (QwenEdit, FLUX.2, GPT-Image-1.5, Nano Banana Pro, Seedream5 lite) radzą sobie z elastycznością edycji, ale wykładają się inaczej: gubią identyfikację twarzy, pomijają referencje, halucynują kolory i - co najważniejsze - potrzebują około 200 sekund na obraz przy odpowiedniej jakości. Dla produktu C-end 200 sekund to po prostu non-starter.
Tstars-Tryon 1.0 mieści się w luce między tymi dwoma obozami. To komercyjny system wdrożony w funkcji “AI Try-On” w aplikacji Taobao, zbudowany na pojedynczym Multi-Modal Diffusion Transformerze (MMDiT) o 5 mld parametrów. Obsługuje do 6 referencji w 8 kategoriach modowych (góra, spodnie, spódnice, sukienki, płaszcze, buty, torby, czapki), działa w 3.92 s dla pojedynczego ubrania i 6.74 s dla wielu ubrań na H200, i bije zarówno specjalistów akademickich VTON, jak i frontierowe modele closed-source na wielowymiarowym benchmarku.
Kluczowy pomysł
Zapomnij o maskach. Zapomnij o modułach warpingu. Centralne przeformułowanie Tstars-Tryon brzmi tak:
Virtual try-on to nie inpainting. To wieloobrazowa edycja sterowana instrukcją.
Wyobraź sobie stylistę, który patrzy na zdjęcie klienta i niewielki stos referencji: płaszcz, koszulka, spodnie, buty. Stylista nie wycina i nie wkleja kawałków materiału. Mentalnie przebiera klienta od zera, zachowując twarz, pozę i tło, ale nakładając nowy outfit zgodnie z fizyką i regułami warstwowania. Odpowiednikiem w świecie diffusion transformerów jest prosta procedura: wrzuć wszystkie te obrazy plus instrukcję tekstową do jednego okna kontekstowego MMDiT i każ modelowi odszumić nowy obraz.
Konkretnie wejście modelu to sekwencja tokenów złożona z:
- tokenów tekstowych (prompt, ewentualnie przepisany przez dedykowany prompt-rewriter),
- tokenów obrazowych zdjęcia osoby,
- tokenów obrazowych 1 do 6 referencji ubrań / akcesoriów.
Wszystkie te tokeny przechodzą przez wspólne bloki uwagi (joint attention). Nie ma masek inpaintingowych, osobnej sieci warping’owej, adapterów per kategoria. Warstwowanie, okluzja i miejsce akcesoriów uczone są implicit z danych.
To jest pozornie proste przeformułowanie - i dokładnie ono odblokowuje skalowanie do 8 kategorii, dowolnej liczby referencji i niesterylnego tła.
Architektura
Backbone to zunifikowany MMDiT z około 5 mld parametrów, w duchu rectified-flow transformerów ze Stable Diffusion 3 / FLUX. Trzy rzeczy są ważne, by go zrozumieć:
- Joint attention tekst-obraz. Obie modalności żyją w tych samych blokach uwagi; tokeny referencji ubrania mogą jednocześnie patrzeć na tokeny osoby i na (zaszumiony) latent docelowy.
- Zmienna liczba tokenów. Model przyjmuje dowolną liczbę referencji (1–6) bez zmian architektonicznych; data packing inspirowany NaViT (Patch n’ Pack) jest zaadaptowany do DiTów, żeby uniknąć marnowania compute’u przez bucketing o stałej rozdzielczości.
- Brak głowicy inpaintingowej. Wyjście to świeżo wygenerowany obraz, nie wklejka w obszar maski.
Generacja w stylu rectified-flow
Tstars-Tryon dziedziczy formułę rectified-flow. Trening polega na liniowej interpolacji między czystym latentem docelowym $x_0$ a szumem gaussowskim:
$$ z_t = (1-t),x_0 + t,\epsilon,\qquad \epsilon \sim \mathcal{N}(0,I),\quad t \in [0,1]. \tag{1} $$
gdzie:
- $x_0$ - czysty docelowy obraz try-on (w przestrzeni latentów),
- $\epsilon$ - próbka szumu gaussowskiego,
- $t$ - czas przepływu / poziom szumu,
- $z_t$ - zaszumiony latent na prostej między danymi a szumem.
Sieć uczy się pola prędkości $v_\theta(z_t, t, c) \approx x_0 - \epsilon$, gdzie warunkowanie $c$ pakuje wszystkie tokeny tekstowe i obrazowe. Interpretacja: model uczy się “pokazywać kierunek do domu” - mając zaszumiony latent i kontekst multimodalny, przewiduje wektor wskazujący na czysty obraz. Sampling robimy kilkoma krokami Eulera wzdłuż $v_\theta$.
To ten sam backbone, na który ekosystem open-source DiT się skonwergował; nowość Tstars-Tryon nie leży w tym równaniu, tylko w tym, co siedzi w $c$, oraz w tym, jak model jest post-trenowany.
Pipeline treningowy
Paper opisuje pięcioetapowy paradygmat treningu. Każdy etap ma uzasadnienie - żaden nie jest dekoracją.
Etap A - pretrening edycyjny
Zanim model zobaczy jakiekolwiek dane try-on, jest pretrenowany na dużej skali ogólnym datasecie edycji obrazu, zbalansowanym po taskach i treści. Sam data engine to nietrywialny pipeline:
- Element decomposition - wycinanie ubrań, akcesoriów i osób ze zdjęć “in-the-wild”.
- Retrieval-based recall - komponowanie par wieloelementowych przez wyszukiwanie pasujących elementów.
- Profesjonalny captioning - generowanie precyzyjnych instrukcji edycji.
- Filtrowanie wzbogacone wiedzą VLM-a - odsiewanie złych par.
- Screening percepcyjny - końcowa bramka jakości.
Po co pretrenować na ogólnej edycji? Bo VTON jest specjalnym przypadkiem edycji. Najpierw model uczy się szerokiej umiejętności “wykonaj wieloobrazową instrukcję edycji”, potem specjalizuje się.
Etap B - progressive resolution
Po pretreningu rozdzielczość jest stopniowo zwiększana. Standardowy trick na stabilizację wysokorozdzielczej syntezy bez płacenia kosztu treningu w pełnej rozdzielczości od zera.
Etap C - SFT na danych wertykalnych
Teraz model jest fine-tunowany na starannie wybranych danych try-on, zbalansowanych po 8 kategoriach i po liczbie referencji. Komplet metryk monitoruje progres per kategoria, żeby zapobiec collapse’owi - np. nie chcesz, żeby jakość butów dryfowała w dół, gdy poprawiasz płaszcze.
Etap D - RL z wielowymiarową nagrodą (DiffusionNFT)
Tu Tstars-Tryon robi coś naprawdę nietrywialnego. Po SFT model jest post-trenowany reinforcement learning’iem z wielowymiarową nagrodą po czterech osiach istotnych produktowo:
- Garment Fidelity (wierność ubraniu),
- Identity Consistency (spójność tożsamości),
- Background Preservation (zachowanie tła),
- Physical & Structural Logic (logika fizyczna i strukturalna).
Dla każdego warunkowania polityka próbkuje $G$ trajektorii, ocenia ich końcowe obrazy, a następnie liczy group-relative advantage w stylu GRPO:
$$ A_i = \frac{R_i - \mathrm{mean}\bigl({R_j}{j=1}^{G}\bigr)}{\mathrm{std}\bigl({R_j}{j=1}^{G}\bigr)}. \tag{2} $$
gdzie:
- $R_i$ - skalarna nagroda $i$-tej trajektorii (zagregowana po czterech wymiarach),
- $G$ - rozmiar grupy,
- $A_i$ - group-relative advantage ważący update polityki.
Interpretacja: wewnątrz grupy trajektorie powyżej średniej są wzmacniane, te poniżej - tłumione. Nie ma osobnej sieci wartości. Faktyczny update polityki realizowany jest przez DiffusionNFT (Zheng et al. 2025), online’ową metodę RL dla diffusion modeli operującą przez forward process - przy okazji daje też model, który dobrze próbkuje bez classifier-free guidance.
Czemu to ważne: sam SFT nie naprawia systematycznych failure mode’ów typu “model omija czapkę, gdy są jeszcze cztery inne referencje”. Sygnał nagrody nakierowany na garment fidelity zamyka tę pętlę.
Etap E - destylacja inferencji
5B DiT z pełnym CFG i wieloma krokami samplingu jest po prostu zbyt wolny dla produkcji. Tstars-Tryon kompresuje inferencję na dwie sposoby.
CFG distillation. Standardowy classifier-free guidance liczy
$$ v_{\text{cfg}}(z_t, c) = v_\theta(z_t, \emptyset) + w ,\bigl(v_\theta(z_t, c) - v_\theta(z_t, \emptyset)\bigr), \tag{3} $$
co wymaga dwóch forward passów na krok (warunkowy i bezwarunkowy). Studencki model prędkości $v_\phi$ uczy się dopasować $v_{\text{cfg}}$ w jednym przejściu:
$$ v_\phi(z_t, c) ;\approx; v_{\text{cfg}}(z_t, c). $$
Step distillation. Destylacja w stylu DMD (distribution matching distillation, Yin et al. 2024) kompresuje wiele kroków denoising’u do kilku, dopasowując rozkład wyjściowy studenta do rozkładu nauczyciela.
Łącznie CFG distillation + step distillation sprowadzają 5B DiT z “research-grade slow” do 3.92 s single-garment / 6.74 s multi-garment na H200. Open-source’owe edytory na porównywalnej jakości potrzebują ok. 200 s - przyspieszenie rzędu 25–50×.
Etap F - prompt rewriter
Dedykowany model przepisuje surowe prompty użytkownika na precyzyjne instrukcje edycji, które jasno mówią, która referencja idzie na którą część ciała i jakie są relacje warstwowe (“zostaw rozpięte, pokazując warstwę spodnią”). Ten krok nie jest kosmetyczny: zwykli użytkownicy nie piszą instrukcji w formacie, którego oczekuje DiT edycyjny.
Cała ścieżka inferencji wygląda tak:
prompt użytkownika + obrazy referencyjne
|
v
prompt rewriter
|
v
text encoder + tokenizer obrazu
|
v
zunifikowany MMDiT (5B, po destylacji)
|
v
wynikowy obraz try-on
Tstars-VTON Bench i ocena VLM
Praca wprowadza nowy benchmark, Tstars-VTON Bench, zaprojektowany tak, by faktycznie łapać to, co liczy się dla produkcyjnego systemu VTON.
| Właściwość | Wartość |
|---|---|
| Pary próbek | 1780 |
| Kategorie ubrań | 5 |
| Kategorie akcesoriów | 3 |
| Pod-style | 465 |
| Warstwowych elementów na próbkę | 1–6 |
| Ewaluacja | VLM Likert 1–10 po 4 wymiarach |
Cztery wymiary to Identity Consistency, Garment Fidelity, Background Preservation i Physical & Structural Logic.
Średnia geometryczna jako overall score
Czemu nie po prostu uśrednić cztery wymiary? Bo dla realnego produktu model 9.8 / 9.8 / 9.8 / 4.0 nie jest “prawie idealny” - jest popsuty na fizyce. Tstars-Tryon używa średniej geometrycznej:
$$ \text{Overall} = \left(\prod_{k=1}^{4} s_k\right)^{1/4}. \tag{4} $$
gdzie $s_k$ to wynik w wymiarze $k$ (Likert 1–10).
Interpretacja: równoważnie $\log \text{Overall} = \tfrac{1}{4}\sum_k \log s_k$. Każdy słaby element ciągnie cały wynik w dół - nie da się skompensować 4 dziesiątką. To wymusza “balanced excellence”, czyli dokładnie to, czego potrzebuje produkcyjny VTON.
Dwustopniowa ocena VLM-em
Ocena identyfikacji potrzebuje widzieć ubrania: zmiana sylwetki powinna być przypisana do grubego płaszcza, nie do dryfu tożsamości. Z drugiej strony ocena tła i fizyki jest rozpraszana przez kontekst ubrania. Benchmark dzieli wywołanie VLM-a:
- Stage 1 - VLM widzi osobę + referencje + wynik, ocenia Identity Consistency i Garment Fidelity.
- Stage 2 - VLM widzi tylko osobę + wynik, ocenia Background Preservation i Physical & Structural Logic.
Dwa niezależne wywołania API, mniejsze obciążenie kontekstowe.
Wyniki
Single-garment Tstars-VTON
| Model | Overall | ID Consistency | Garment Fidelity | Background | Physics |
|---|---|---|---|---|---|
| Tstars-Tryon | 9.372 | 9.889 | 8.833 | 9.863 | 9.241 |
| Seedream5 lite | 9.301 | - | 8.639 | - | 9.343 |
| Nano Banana Pro | 9.229 | - | 8.598 | - | - |
| GPT-Image-1.5 | 8.892 | - | 8.563 | - | - |
| FireRed-Edit-1.1 | 8.863 | - | - | - | - |
| FLUX.2-klein-9B | 8.797 | - | - | - | - |
| FLUX.2-dev | 8.764 | - | - | - | - |
| QwenEdit-2511 | 8.121 | - | - | - | - |
| FastFit | 6.448 | - | - | - | - |
| CatVTON | 6.663 | - | - | - | - |
| Leffa | 6.048 | - | - | - | - |
| FitDiT | 5.152 | - | - | - | - |
Tstars-Tryon zbiera prowadzenie w overall i pierwsze miejsce w trzech z czterech wymiarów, ustępując tylko w fizyce niewielką marżą do Seedream5 lite. Zauważ przepaść między editing-class modelami a akademickimi specjalistami VTON: ponad 3 punkty na 10-punktowej średniej geometrycznej.
Multi-garment Tstars-VTON
| Model | Overall | ID | Garment | Background | Physics |
|---|---|---|---|---|---|
| Tstars-Tryon | 9.171 | 9.619 | 8.955 | 9.620 | 8.883 |
| Seedream5 lite | 8.914 | 9.272 | 8.623 | 9.525 | - |
| Nano Banana | 8.540 | - | - | - | - |
| GPT-Image-1.5 | 8.391 | - | - | - | 9.070 |
| FLUX.2-klein-9B | 8.161 | - | - | - | - |
| FLUX.2-dev | 7.775 | - | - | - | - |
| QwenEdit-2511 | 6.441 | - | - | - | - |
| FastFit | 6.039 | - | - | - | - |
| FireRed-Edit-1.1 | 4.822 | - | - | - | - |
Multi-garment to miejsce, gdzie luka naprawdę widać. FireRed-Edit-1.1 i QwenEdit-2511 wykładają się mocno - wiele ubrań rozbija im identyfikację i warstwowanie - podczas gdy Tstars-Tryon ledwo schodzi z poziomu single-garment.
Akademickie benchmarki zero-shot
Tstars-Tryon nie był trenowany na VITON-HD ani DressCode, a mimo to ewaluuje konkurencyjnie albo najlepiej:
| Benchmark | Tstars-Tryon | FastFit | FitDiT | CatVTON | Leffa |
|---|---|---|---|---|---|
| VITON-HD unpaired (FID / KID) | 8.485 / 0.528 | 8.629 / 0.665 | 9.979 / 1.478 | 10.552 / 2.272 | 10.446 / 2.640 |
| DressCode unpaired (FID / KID) | 4.541 / 0.458 | 4.397 / 0.553 | 4.805 / 0.712 | 5.872 / 1.606 | 20.099 / 13.506 |
KID jest praktycznie połowiony albo lepiej względem każdego specjalistycznego baseline’u.
Latency
| Setting | Tstars-Tryon (H200) | QwenEdit-2511 / FLUX.2-dev |
|---|---|---|
| Single garment | 3.92 s | ~200 s |
| Multi-garment (5 refs avg) | 6.74 s | ~200 s |
Przyspieszenie 25–50×, czyli różnica między demo badawczym a przyciskiem w aplikacji zakupowej.
Ewaluacja ludzka (GSB)
Ocena side-by-side robiona przez ludzi opowiada spójną historię. Przeciwko Nano Banana Pro Tstars-Tryon wygrywa 41.1%, remisuje 41.6%, przegrywa 17.3% - i win rate rośnie z liczbą ubrań: 33.6% przy jednym ubraniu do 54.8% przy pięciu. Przeciwko Seedream5 lite obrazek jest jeszcze czystszy: 54.4% wygranych vs 9.0% przegranych, win rate rośnie od 46.1% (1 ubranie) do 70.2% (5 ubrań).
Wzór trudno przegapić: im bardziej skomplikowany outfit, tym większa przewaga.
Wdrożenie produkcyjne
Tstars-Tryon to silnik napędzający AI Try-On w aplikacji Taobao, obsługujący miliony użytkowników i dziesiątki milionów requestów - według papera największe produkcyjne wdrożenie VTON do tej pory.
Dlaczego to działa
Kilka intuicji wyjaśniających, czemu ten stack ostatecznie dominuje zarówno specjalistów VTON, jak i frontierowe edytory.
- Edycja > inpainting dla danych in-the-wild. Gdy przestajesz polegać na czystej masce z human parsing’u, powierzchnia awarii drastycznie się kurczy. Ekstremalne pozy, awatary anime, złożone tła stają się rozwiązywalne.
- Joint attention wieloobrazowy uczy warstwowania za darmo. Token referencji płaszcza i token referencji koszulki mogą patrzeć na ten sam region ciała w zaszumionym targetie; model uczy się kojarzyć dyrektywy tekstowe typu “zostaw rozpięte” z konkretnymi wzorcami uwagi.
- Wielowymiarowy RL celuje w faktyczne osie produktu. SFT na curated data poprawia średnią jakość, ale nie eliminuje pominięć. Nagroda jawnie karząca “brak czapki” zamyka pętlę.
- Destylacja jest obowiązkowa, nie opcjonalna. 200 s na obraz to akademicko interesujące, ale komercyjnie nieistotne. Własność CFG-free DiffusionNFT plus DMD-style step distillation są tym, co czyni 5B model serwowalnym.
Ograniczenia
Uczciwa lista, w większości za samym paperem:
- System zamknięty. Wagi, dane treningowe i prompt rewriter nie są udostępniane. Tylko benchmark Tstars-VTON jest planowany do release’u.
- Skąpa formalna ekspozycja. Faktyczna reguła update’u RL, loss’y destylacji i konkrety MMDiT są opisane wysoko-poziomowo przez referencje do wcześniejszych prac (DiffusionNFT, DMD, MMDiT, NaViT), zamiast wypisane w pełni.
- Latency baseline’ów closed-source przez API. Liczby ~200 s dla zamkniętych konkurentów oparte są na wywołaniach API i mogą zawierać overhead sieciowy - nie są ściśle porównywalne.
- Zależność od VLM-judge’a. Nawet z dwustopniowym protokołem benchmark dziedziczy idiosynkrazje VLM-a i wrażliwość na konstrukcję promptu.
- Saturacja średniej geometrycznej. Gdy wszystkie cztery wyniki są powyżej 9, nawet średnia geometryczna potrafi zatrzeć różnice.
- Prywatność i wizerunek. Silna preserwacja tożsamości w produkcie konsumenckim rodzi pytania, których paper nie rozwija; benchmark używa anonimizacji twarzy, ale produkcja - nie.
- Brak formalnej tabeli ablation. Wkład poszczególnych etapów (SFT vs RL vs distillation) jest opisany jakościowo. Trudno przypisać konkretne zyski jakościowe.
Podsumowanie
- VTON jako wieloobrazowa edycja, nie masked inpainting, to właściwe przeformułowanie. Pojedynczy MMDiT z 1–6 referencjami i warunkowaniem tekstowym zastępuje maski, warpery i adaptery per kategoria.
- Pięcioetapowy post-training - pretrening edycji → progressive resolution → SFT na danych wertykalnych → RL DiffusionNFT z wielowymiarową nagrodą → CFG + step distillation - jest tym, co czyni 5B DiT jednocześnie wysokiej jakości i serwowalnym w sekundach.
- Tstars-VTON Bench ze średnią geometryczną i dwustopniowym protokołem VLM łapie zbalansowaną jakość znacznie lepiej niż FID/KID i średnia arytmetyczna.
- Zarówno na Tstars-VTON, jak i na akademickich benchmarkach VITON-HD / DressCode system bije wyspecjalizowane baseline’y VTON, topowe edytory open-source i proprietarne modele closed-source - przy 25–50× niższej latencji.
- System działa produkcyjnie w AI Try-On w Taobao w skali dziesiątek milionów requestów, co jest najsilniejszą walidacją, jaką paper VTON może mieć obecnie.
Big-picture message: pojedynczy, dobrze wytrenowany transformer edycyjny z właściwą historią post-treningu może równocześnie pobić wyspecjalizowany akademicki VTON i frontierowe modele edycyjne - a wąskim gardłem nie jest już architektura, tylko data engine’y, nagrody RL i destylacja inferencji.
Źródła i materiały: