CleanFrame
삼성 The Frame용 개인 홈 화면, 포크와 맞춤을 위한 시작점
저장소 정보는 아직 수집하지 않았습니다.
아직 감지된 업데이트가 없습니다. GitHub 릴리스가 나오면 여기에 보입니다.
MEHFIL is a wedding-week look planner for South Asian celebrations. One portrait becomes Mehndi, Baraat, and Walima: the outfit and the grooming in a single frame, plus an event-day skin goal and a shoppable shade list with no brand names.
README 전체를 불러오는 중입니다.
README 전문 보기 ↗MEHFIL is a wedding-week look planner for South Asian celebrations. One portrait becomes Mehndi, Baraat, and Walima: the outfit and the grooming in a single frame, plus an event-day skin goal and a shoppable shade list with no brand names.
The groom week ships with a real YouCam run. The subject is Muhammad Asim, who consented. The bride week is a real YouCam run on an AI-generated fictional model, not a real person. The guest portrait is still a labeled drawing. Outfit photos for the bride and for a guest woman are product shots with no logos.
A South Asian wedding is not one outfit. It is a week. Mehndi, Baraat, and Walima ask for different clothes and different makeup, and the people buying those clothes often cannot try them on. Diaspora shoppers order from boutiques in Lahore, Karachi, and Delhi. A return across a border is slow or impossible, and the makeup trial happens somewhere else, on a different day, against a different photograph.
India’s wedding industry is about $130 billion, with 8–10 million weddings a year and a calendar of several events, according to a Jefferies estimate reported by Business of Fashion (17 September 2024). The spend is real. The try-on is not.
MEHFIL does not tell someone what to buy. The outfits are already chosen. It shows those outfits, and a grooming look that belongs with them, on the same face.
Server: https://yce-api-01.makeupar.com. Auth is Authorization: Bearer <YOUCAM_API_KEY> on the server only. The old RSA client-auth step is not used.
| API | Why it is here |
|---|---|
Skin Analysis POST /s2s/v2.0/task/skin-analysis | Standard quality, seven concerns: oiliness, redness, dark circles, texture, pores, acne, skin type. On the live groom run the overall score was 89, skin age 29, and dark circles (display 63, raw 45.55) were the only score that asked for attention. Cost: 12 units for 5–8 SD concerns. |
Facial Color Tones POST /s2s/v2.0/task/skin-tone-analysis | Skin, lip, eye, and brow hex values. The live skin hex is #805E46. The hair color name is not shown: on this run the analyzer said Auburn for black hair. Cost: 20 units, once. |
Clothes VTO v4 POST /s2s/v2.0/task/cloth-v4 | The full portrait plus a garment image. Chest-up photos use upper_body. A full-length photo can use full_body for a lehenga or a full sherwani. Categories: full_body, lower_body, upper_body, shoes, auto, outer. Cost: 2 units. |
Makeup VTO POST /s2s/v2.0/task/makeup-vto | { src_file_id, effects, version: "1.0" }. skin_smooth is always sent, because omitting it silently applies 50. Foundation carries color, color intensity, glow, and coverage. Concealer carries color, color intensity, under-eye intensity, and coverage. Cost: 1 unit. |
Skin Simulation POST /s2s/v2.0/task/skin-simulation | A cosmetic event-day preview. Analysis names are mapped onto simulation fields: dark_circle_v2 → dark_circle, pore → pores, age_spot → spots, eye_bag → eye_bags. The planner does not send oiliness on a fresh plan, because that scale adds shine at 1.0. The shipped groom preview is the recorded render (dark_circle 0.5, texture 0.3, pores 0.3, oiliness 0.4) and the slider is zoomed to the eyes, because the change is subtle. Cost: 4 units for 1–4 fields. |
Skin analysis, color tones, and simulation need a crop that keeps the forehead and ears in frame. The browser face box is tight (about 347px on the 1080×1350 groom frame). MEHFIL pads that box before cropping so the result is about 640px wide. A ~482px crop was cut off and skin simulation returned error_src_face_out_of_bound. A ~722px crop failed skin analysis with error_src_face_too_small. A cut-off face is retried looser. A face that is too small is retried once tighter. Clothes try-on uses the full photo. A chest-up photo uses upper_body. A full-length photo of a lehenga, gharara, anarkali, or sherwani uses full_body.
A result is fed into the next task by uploading it as a new file. Result URLs expire after about two hours, and makeup and simulation often return PNG bytes behind a .jpg name, so the server sniffs the bytes and hands the browser a data URL. The browser keeps the session in IndexedDB. No Blob store is required on the free tier.
The planner chooses the order:
skin_smooth is always explicit. The live groom test found this order kept more real skin detail (order A on the Baraat sherwani).The Baraat card in the groom demo can flip between the two orders. Both images are from the live run.
flowchart LR
browser["Browser\nquality gate and face crop"]
routes["Next.js route handlers\nkey stays on the server"]
youcam["YouCam API\nyce-api-01.makeupar.com"]
aiml["AIML API\ngpt-4o-mini, optional"]
idb["IndexedDB\nthis browser only"]
browser -->|"photo after checks"| routes
routes -->|"file, task, one poll"| youcam
routes -->|"plan copy, live mode only"| aiml
browser -->|"poll /api/youcam/task"| routes
routes -->|"sniffed image as data URL"| browser
browser --> idb
여기까지가 README 앞부분입니다. 나머지는 원문에서 읽을 수 있습니다. README 전문 보기 ↗