A new creator, from nothing
The whole path for someone who is not Dr K or Huberman, as a checklist. It assumes the machine is
set up and ./alive check only complains about models. Pick an id for them, short
and lowercase; below it is <id>.
Where your time goes
The checklist
1 · Choose the videos
- Their own channel, one person talking to camera, little music. Interviews and panels break the voice and face steps.
- About five uploads of ~30 minutes for the voice and answers; more uploads make the answers richer, at no extra face cost.
- One of them is the face video: a steady setup, face large in the frame, 30 frames a second. That is the one tracked. Its clips are split three ways for the face stages (train, choose, test). Hold the whole video out of voice training, so the finished chain can be tested on its test clips with a voice that never heard them.
- Write down the YouTube ids (the part after
v=).
2 · Create the files that describe them
In each recipe's folder, copy _template.py to <id>.py. The full folders:
| stage | profiles folder |
|---|---|
| voice | engines/text2audio/blocks/voice/recipes/text-to-voice/profiles/ |
| face clips | engines/audio2face/corpus/recipes/face-clips/profiles/ |
| motion | engines/audio2face/rigfit/recipes/audio-to-mesh/profiles/ |
| render | engines/audio2face/gauss/recipes/mesh-to-render/profiles/ |
| answers (persona note) | engines/knowledge_style/proto/harness/creators/_template/creator.md → data/answers/<id>/creator.md |
In creators/<id>/build.json: the YouTube ids under videos.ids, the face video's id under
clips.takes, and the profile names (your id) for each stage.
3 · Download
./alive down
./alive build <id> --stage videos
Puts each video, its sound and its subtitles in data/takes/<id>/.
4 · Answers
./alive build <id> --stage answers
It stops asking for the persona note. Write it as on the answers page (its last step, trying it out, waits until the app runs), then run the same command again.
5 · Everything else
./alive build <id>
Run it, and each time it stops, it says what to look at. Make the decision, record it where it says (each stage page has a Where the decisions are kept table), and run the same command again. In order, the stops are:
| stage | you |
|---|---|
| voice | read the speaker table and set the threshold; listen to the reference clip; pick the saved step |
| face clips | read the derived numbers into the profile; label each group of frames; watch a few chunks; check the mesh overlays |
| motion | look at their rig beside the stock face; look at the timing sheet; promote, writing what is wrong |
| render | look at the mesh-on-photo sheet and the two-second clip; promote, writing what is wrong |
6 · Live
- Fill in
creators/<id>/live.env: the template names every value. LeaveRESTempty for now.WPS, their speaking rate, comes from the voice training set:
python3 -c "import json;r=[json.loads(l) for l in open('data/voice/dataset/<id>/train/manifest.jsonl')];print(sum(x['n_words'] for x in r)/sum(x['seconds'] for x in r))" ./alive check <id>until nothing is missing../alive up <id>, then pick the resting pose and setREST.- Ask the example questions, and the three persona-note test questions. Listen and watch.
If a stage comes out worse than for Dr K or Huberman
Every recipe's profile separates values measured on this person from values carried over from Dr K. The
carried ones are the first place to look. Each RECIPE.md has a section, What did not generalise,
listing what changed between the first creator and the second; a third will find more. Add what you find there.