See it before you commit.
An Android-first AI styling companion that lets people preview clothes, hairstyles, and accessories on their own photo.
Open the Luku judge page for the signed Android APK and a three-step evaluation route.
- Download Luku v1.1.12 for Android
- Check the hosted API
- Fastest flow: Clothes → Use a sample shopper → choose a look → Generate
Buying a look online often ends with one expensive question: will this work for me? Product photos show the item on somebody else, while inspiration is scattered across galleries, search results, Pinterest, and store websites.
Luku brings those decisions into one short flow. A user adds their photo, chooses an item image from wherever they found it, and receives a YouCam-powered visual preview. Finished looks stay in an on-device Wardrobe, so users can revisit them without paying to generate the same image again.
Luku launches with Kenyan shoppers in mind, where small retailers rarely have access to virtual-fitting infrastructure, but the experience is designed to work globally.
- Fast camera capture and gallery selection without forced cropping.
- Clothing, hairstyle, hat, earrings, and necklace preview flows.
- Item discovery through gallery, camera, Bing Images, Pinterest, or a store website.
- Direct generation immediately after a newly sourced image is confirmed.
- A calm progress experience with looping, properly attributed elevator jazz.
- Clear offline states, timeouts, retry handling, and cancellable generation.
- Touch-driven before/after comparison with quick Before and After controls.
- Automatic on-device Wardrobe storage for completed previews.
- Save-to-device and shareable before/after imagery with a translucent Luku watermark.
- Secure server-side API credentials, upload limits, rate limiting, and URL safety checks.
Virtual previews support style decisions. They do not predict physical fit or sizing.
Luku's submission centers on Apparel Virtual Try-On using Perfect Corp.'s YouCam APIs. It demonstrates more than an isolated model call: it turns virtual try-on into a complete mobile decision journey—from acquiring usable source images to generation, comparison, saving, and reuse.
The product is evaluated around four strengths:
- Implementation: real YouCam task creation and polling behind a secure backend boundary.
- Experience: an understandable Android flow for first-time users, including failure and cancellation states.
- Impact: premium virtual styling made accessible to shoppers and, later, independent retailers.
- Originality: inspiration can come directly from search, a Pin, a camera, or a store page without first saving it to the gallery.
- Choose what to try: clothes, hair, or accessories.
- Take or select a clear personal photo.
- Choose the item from gallery, camera, Bing, Pinterest, a store, or recent looks.
- Let Luku generate the preview through the secure YouCam service.
- Compare before and after, then save, share, or keep it in Wardrobe.
Expo / React Native Android app
|-- camera, gallery and on-device Wardrobe
|-- Bing and store image selection
|-- Pinterest OAuth
|
+--> Luku Cloudflare Worker
|-- image validation and upload limits
|-- KV-backed rate limiting and Pinterest sessions
|-- private-network URL blocking
|-- Pinterest token boundary
|
+--> Perfect Corp. YouCam APIs
|-- Clothes V3
|-- Hair Transfer
+-- Fashion accessories
The mobile app receives only the public Luku backend URL. YouCam and Pinterest secrets remain server-side and are never bundled into the APK.
- Expo 54, React Native 0.81, React 19, and TypeScript.
- Expo Camera, Image Picker, Media Library, Audio, and Sharing.
- React Native WebView for in-app image discovery.
- Cloudflare Workers and KV for the permanent public API.
- Node.js, Express, Multer, Sharp, TensorFlow.js, and COCO-SSD for local development and enhanced photo checks.
- Perfect Corp. YouCam Fashion APIs.
- Pinterest API v5 OAuth integration.
- Supabase Edge Function starter for a clothes-only hosted deployment.
- Node.js 20 or newer.
- pnpm through Corepack.
- Java 17 and the Android SDK for native Android builds.
- A YouCam API account and Bearer token for real generation.
corepack enable
pnpm install
pnpm run checkCreate supabase/.env.local locally. This file is ignored by Git:
YOUCAM_API_KEY=your_server_side_bearer_token
# Optional Pinterest connection
PINTEREST_APP_ID=
PINTEREST_APP_SECRET=
PINTEREST_REDIRECT_URI=https://your-public-api.example.com/pinterest/callbackStart the backend on port 8787:
pnpm backendCopy .env.example to .env and point the app at a backend address reachable by the phone:
EXPO_PUBLIC_YOUCAM_FUNCTION_URL=http://192.168.1.20:8787/try-onThen start Expo:
pnpm startThe phone and development computer must be on the same network when using a LAN address. Production and Pinterest OAuth require a stable HTTPS backend URL.
With JAVA_HOME and ANDROID_HOME configured:
cd android
.\gradlew.bat assembleReleaseThe APK is written to android/app/build/outputs/apk/release/app-release.apk and is intentionally excluded from Git.
- Secrets stay in the backend environment.
- Accepted image formats and a 10 MB upload limit are enforced.
- Remote reference URLs must use HTTPS and pass private-network protections.
- Generation is rate-limited per client.
- The UI explains when generation requires internet access.
- Completed previews are copied to the local Wardrobe for reuse.
- Users explicitly choose when to save an image to their photo library.
- Cancelling after generation starts may still consume a paid API request, which the UI states before cancellation.
pnpm run check
pnpm doctorThe current Android release is v1.1.12 (versionCode 23) and has been tested on a physical Redmi device.
Source code is available under the MIT License. Third-party media and model attribution is documented in THIRD_PARTY_NOTICES.md and server/models/coco-ssd/SOURCE.md.
