← back to the board · all wave-1 PRDs

PRD DPL16 · UKIYO TEST WAVE 1

Status: Needs your yes on the 牛奶光 head, 2 keyframes made and approved, then 5 paid clips + voice take + edit.

1. The ad

Ad DPL16 · reel 9:16 · ~21.3 s
ad_id uki-ad-20261013-007 (16-pilot/mint-DPL16.json)
Objective Conversion: WhatsApp booking of the RM198 first trial, judged on cost per booked trial from the chat log + the per-ad code, never on cost per chat alone (map-v4 objective).
Offer line 首次黑金牛奶光体验 RM198. Default = a separate 牛奶光 first trial. Whether RM198 is one combined CellLight + 牛奶光 session or two separate first trials is still open (questions.json, 13 Oct).
Type · pain PAS · pain D1: dull, yellowish, tired-looking skin despite daily skincare and masks (暗沉 / 泛黄 / 没精神)
ICP Women about 25-40 in the catchment with dull, yellowish skin who lean on foundation (map-v4 pains.D1/D2; 17-dpl/REFS.md #9 Face Bar MY 85 d: 'skincare and masks every day, why still dull'; REFS.md line 150: 'women past 30 … makeup can't fully cover').
Hook (map-v4) 「想要韩系素颜感,脸却总是黄黄暗暗的?」
Structure from map-v4 DPL16 picture_and_structure: mirror, yellowish dull bare face (pain first) → foundation every morning → 黑金牛奶光 on the CellLight 3.0 machine, skin check first → 「肤色看起来更有光泽感。效果因人而异。」 → offer card. Never says the treatment or device is Korean (the wish only: LS Clinic MY 129 d, YoungBeauty MY 82 d, map-v4 why). Beat pace from Kimhei (~2-3 s per beat). MB06 sits right before the face shot (blocks.json MB06 use_in).
Chain so far brief atom-brief-ukiyo-newbatch-dpl16 · visual evidence atom-visual-evidence-ukiyo-newbatch-dpl16

2. References — what is copied, what never is

Ref Source (file · record) Signal We copy Never copy
Kimhei 「为什么别人素颜都在发光?」 reel 17-dpl/refs.json key kimhei_why_glow (1713279643107532); media/kimhei_1713279643107532_sheet.jpg MY · 17 days running · 16.4 s Pace and order: question hook → the light on a face → a look line (光泽感) → one offer card; ~2-3 s per beat. IPL naming (use UKIYO's own name); the RM88 price; 赶紧预约 urgency (brand rule: no urgency); 「不是滤镜」
Korean Skin Management Centre first trial 17-dpl/refs.json key koreanskin_trial (1023503244028533) MY · 7 days running Only the fact that a MY DPL first trial sits at RM138 (price context). fade scars / reduce redness; limited slots
XHS vendor block N4-B4 (牛奶光 on the face) 22-xhs-celllight/BLOCKS.md + blocks.json id N4-B4 (note4 8.7-19.5 s) vendor video, Jev value medium 0.99 The 牛奶光 choreography: window flat on cheek/jaw, slow glide, steady red glow (reskinned as KF-N4-B4). its spoken feel lines (温和不刺眼 / 温温热热 / 热水袋 / 舒服); the eye sticker / vendor towel / faces
UKIYO machine clips IMG_8136 / 5645 / 8139 23-machine-blocks/blocks.json (MB01-MB07) + kf/MB0?-ukiyo.png UKIYO's own machine footage, restyled stills The real machine and the 牛奶光 head, to illustrate 「先看肤况,再选适合你的光」. the staff face and 宏泰光电 idle-screen logo (blocks.json excluded); filter counts, wavelengths or specs as a selling point; crops into on-screen numbers

3. Shot list (~21.3 s)

# Time (s) Source On screen Camera Text on screen Voice-over Engine · cost
1 0.0-3.5 (3.5) KEYFRAME TO MAKE: D1 (see below) At the mirror, her bare face looks yellowish and dull; she looks at it near-still, small lean-in 想要韩系素颜感,/ 脸却总是黄黄暗暗的? 想要韩系素颜感,脸却总是黄黄暗暗的? Wan 3.0 i2v (skills/video-gen/scripts/wan3-i2v-fire.sh, 1080p, --audio false), 4 s · $0.80
2 3.5-6.0 (2.5) KEYFRAME TO MAKE: D2 Morning: she presses foundation on with a sponge at the mirror near-still 每天早上多打一层粉 每天早上都要多打一层粉, Wan 3.0 i2v (skills/video-gen/scripts/wan3-i2v-fire.sh, 1080p, --audio false), 3 s · $0.60
3 6.0-8.0 (2.0) ~/.zennith/state/ukiyo-celllight-w1/video-blocks/library/SkinCheck/SK01_SkinAnalysisLaptopOTS/UKIYO_SK01_skin-analysis-laptop-ots_Reel01_v1.mp4 (2.25 s, approved 2 Oct, INDEX.json SK01) Skin check on the laptop over the shoulder 先看肤况 我们会先看你的肤况, library block, $0
4 8.0-9.3 (1.3) Restyled still 23-machine-blocks/kf/MB06-ukiyo.png Gloved finger sets the 牛奶光 screen (never cropped into the numbers) static, finger moves 黑金牛奶光 再用黑金牛奶光, Wan 3.0 i2v (skills/video-gen/scripts/wan3-i2v-fire.sh, 1080p, --audio false), 2 s · $0.40
5 9.3-15.3 (6.0) Approved keyframe 16-pilot/blocks/kf/r6/KF-N4-B4.png (canvas atom-canvas-atom-ukiyo-macbook-air-2-01299) The 牛奶光 head flat on her cheek and jaw, steady red glow; camera at the head of the bed so her face is upside-down in frame (as in the reference) slow drift following the head (N4-B4's own move) — 一种温和的光护理,整张脸都会做到。 Wan 3.0 i2v (skills/video-gen/scripts/wan3-i2v-fire.sh, 1080p, --audio false), 6 s · $1.20
6 15.3-17.3 (2.0) Restyled still 23-machine-blocks/kf/MB07-ukiyo.png The 牛奶光 head in the gloved hand, its window glowing red slow push-in as the glow comes up 肤色看起来更有光泽感。/ 效果因人而异。 肤色看起来更有光泽感。效果因人而异。 Wan 3.0 i2v (skills/video-gen/scripts/wan3-i2v-fire.sh, 1080p, --audio false), 2 s · $0.40
7 17.3-21.3 (4.0) Offer card (static, built in the edit) UKIYO logo + offer static 首次黑金牛奶光体验 RM198 / WhatsApp 预约 / 效果因人而异 首次体验,WhatsApp 我们。 edit, $0

Keyframes to make (before any paid fire):

Id For shot Reskin from (exact frame) Change Also Engine
D1 0.0-3.5 ~/.zennith/state/ukiyo-celllight-w1/reel01-real-ba/reel01-paid-master.mp4 @ 11.9 s (mirror close, hand at the chin) — UKIYO-approved composition New generated face; her bare skin yellowish and dull (no breakouts); remove the burned-in caption 「可是熬夜隔天还是暗沉」 and the corner logo; plain wall none beyond the frame codex-image-gen --mode edit, $0; audit + board review
D2 3.5-6.0 ~/.zennith/state/ukiyo-celllight-w1/reel01-real-ba/reel01-paid-master.mp4 @ 9.6 s (her at a table mirror with skincare bottles) — no decoded foundation reference exists in lanes 03 / 13 / 17 (searched 13 Oct) Same woman as D1; she presses foundation with a sponge; sofa and bottles replaced by a plain wall and one foundation bottle; remove caption and logo D1 for identity codex-image-gen --mode edit, $0; audit + board review

Every keyframe with a person passes the 5 checks in ukiyo-celllight-w1/KEYFRAME-AUDIT-CHECKLIST.md (aesthetician at the head of the bed, ≤2 hands joined to arms, handpiece with its hose, a reskin not an invention, head/face orientation 1:1 with the reference), plain background, mild skin in treatment shots, no lettering on handpieces.

Wan motion lines (motion only; the scene is locked by the start frame):

Fire one shot per command: bash skills/video-gen/scripts/wan3-i2v-fire.sh --start-image-url <keyframe S3 url> [--end-image-url <url>] --prompt-file <motion line> --duration <s> --resolution 1080p --aspect 9:16 --audio false --ad-id uki-ad-20261013-007 --out <path>. Complete payload only (the endpoint queues before it validates). Each clip: full-size frame check, scene-cut check, then on chain before the edit.

Voice pace (target 4.5-5 syllables/s, gaps ≤0.6 s):

Time (s) Line Syllables Syl/s
0.0-3.4 想要韩系素颜感,脸却总是黄黄暗暗的? 16 4.71
3.6-5.8 每天早上都要多打一层粉, 11 5.0
6.0-7.8 我们会先看你的肤况, 9 5.0
8.0-9.6 再用黑金牛奶光, 7 4.38
9.8-13.0 一种温和的光护理,整张脸都会做到。 15 4.69
13.2-16.6 肤色看起来更有光泽感。效果因人而异。 16 4.71
17.6-19.4 首次体验,WhatsApp 我们。 8 4.44

Gaps between lines (s): [0.2, 0.2, 0.2, 0.2, 0.2, 1.0]. The gaps over 0.6 s fall on the end card, where the music comes up.

Sound and edit: Edit in the 08/11 pipeline (ukiyo-celllight-w1/addon-08-09-11/edit-remotion/build.sh, planner make_spec_v5.py with PRICE=RM198): music bed ~/.zennith/state/ukiyo-celllight-w1/R3/wan/bgm/rm99-00060.wav (117.5 BPM, full range) 6 dB under the voice and full between lines; gates duck_check.py (exit 7), seam_check.py, blackframe_check.py; voice checked word by word with R6/wan/tools/vo_check.py (one Whisper process at a time on the Air). Voice gaps ≤0.6 s; slow real footage plays at 1.3-1.6x; machine beats about 1 s.

Voice: One continuous voice take, voice-locked to R3's voice: ukiyo-celllight-w1/R6/wan/tools/fire_wan_r2v_voice.py --voice-ref addon-08-09-11/vo/r3-voice-ref.wav (Higgsfield; HF_ENV_FILE=~/.zennith/secrets/higgsfield.env). Target 4.5-5 syllables/s; the operator hears the take alone before the edit.

4. Engine and cost

Paid video seconds 17 s of Wan 3.0 i2v
Est. USD (one fire per shot) $3.40 at 1080p ($1.70 at 720p); $6.80 if every shot needs one retry
Voice take ~20 s, ≈35.0 Higgsfield credits (planning rate 1.75/s, not in the USD figure)
Keyframes / statics codex-image-gen or local composite, $0 (subscription / local)

5. Compliance

legal_scan.py --selftest PASS, then legal_scan.py 24-wave1-prd/wave1-lines.json: DPL16 pass (hook + 10 on-screen + 7 voice lines). Hits: none. Review flags: none.

Extra code check for the scanner's known blind spots (17-dpl/COMPLIANCE.md §3) and this run's rules (放松 / 舒缓 / 健康 / Korean claims / eye shields): none found.

Rules held (where they apply to this ad): real pain first; results only as how skin looks + 效果因人而异; offer line only (no visit details); no relax / lie-back / feel lines; no eye-shield mention; no 'you have X'; generated people never pose as customers; before/after only from the real UKIYO client; device = the cream paddle with the red light-bar, never the purple-logo head; machine keeps its own 'Cell Light III Platinum' print; aesthetician at the head of the bed.

6. Blocking items

7. Steps to launch

  1. Clear the blocking items above.
  2. Make the keyframes, audit them, put them on the board (LEFT = reference, RIGHT = our image).
  3. Fire the Wan shots one command per shot; land each clip on chain.
  4. Voice take; operator hears it; edit; gates (duck, seam, black frame, word check).
  5. qa-doctor: audit-reel (reels, R277 ≥84/120) or G7 (statics); legal_scan on the final copy.
  6. Your approval; /approvals row; Meta upload with ad_name = the ad_id and its tracked_url; per-ad code in the WhatsApp prefill; Meta primary text + headline legal-scanned; G8 published-atom.

Every Wan clip and every final lands on chain at action time: S3 copy, then a G5 video/canvas atom parented to this ad's visual-evidence atom, then the /approvals row (CLAUDE.md forward-emission rule).

← back to the board · all wave-1 PRDs