# Talking-portrait source and cost assessment

Reviewed September 7, 2026. This package records a pinned source review and a reproducible browser encoder/audio-window experiment. The latter uses three drawn test cards and synthetic tones, never a neural model. There is no new inference run, portrait-quality benchmark, measured download or neural-performance test.

The snapshots come from the public Timeline Studio repository, commit `68980d142cce421eab86cd4ef26a4475a6affd56`: https://github.com/MartinDelophy/ai-video-editor. Their bytes were read from that commit and compared to the reviewed working copies. The upstream MIT notice is included in `LICENSE`.

- `source-review.json`: method, boundaries, declared model-size arithmetic, historical measurements and proposed neural-trial policy.
- `encoder-reproduction.zip`: complete downloadable reproduction package, including the parent MIT notice and original source excerpt. Follow the included `encoder-trial/README.md` to unzip, install the pinned media dependency and run locally.
- `encoder-trial/`: actual one-second VP8 output, original labelled test-card PNGs, synthetic WAV inputs, exact executed media functions, local browser harness, independent FFmpeg verification and its own SHA-256 manifest. Start with `encoder-trial/README.md`. This is a media-boundary test, not a generated talking portrait.
- `manifest.json`: file hashes, original source paths, full upstream file hashes and excerpt line numbers.
- `joyvasa-config.js`, `liveportrait-config.js`: complete model configurations; sum `knownArtifacts` only for the files actually required by each stage. Preview uses the preview generator; quality adds a different generator.
- `avatar-hook.js`: complete generation hook, including the four-second duration cap and video insertion.
- `avatar-media-functions.js`: excerpt from `editorRuntime.js`, covering audio resampling, worker dispatch and the video-only nearest-keyframe encoder. This excerpt is not a standalone executable.
- `avatar-render-excerpts.js`: excerpt from `liveportrait.worker.js`, covering keyframe selection, rendering, retry/fallback and output metadata. This excerpt is not a standalone executable.
- `frame-quality.ts`: complete numerical guard implementation. It is not a perceptual identity or lip-sync metric.
- `historical-port-record.md`: complete earlier development note. Its 3.56-second clip and 25–60 seconds per 512px neural frame are historical reports that were not reproduced in this assessment.

The declared files total 738,879,580 bytes for the initial preview path. Adding the quality generator requires 210,713,678 more bytes. These sums exclude the application/runtime and browser/GPU working memory. They are not observed network traffic.

No input portrait, private voice recording, model weights or generated portrait video is included. The article's hero now shows the actual non-AI test-card inputs, replacing the earlier illustrative contact sheet. The one-second 256px encoder trial was executed; the separately proposed one-second 256px neural portrait trial and stop rules remain unexecuted.

Hydration integration: `scripts/article-avatar-assessment.mjs` exports `applyAvatarAssessment(html)` and `getAvatarAssessmentPayload()`. The static transform replaces the old narrative, header, FAQ and illustration label; removes the old HowTo/FAQPage schema; and writes an escaped `application/json` script with id `avatar-assessment-data`. Its `headerHtml`, `heroHtml`, `sectionsHtml`, `faqHtml` and `closingHtml` fields are complete replacement fragments, not append-only additions. A DOM restorer should replace the matching article regions and remove `.resource-checklist`, rather than append the new assessment behind the old claims.

`applyLivePortraitCaveats(html)` makes the corresponding historical-evidence distinctions in the related graph-port article. It preserves the recorded numerical errors while replacing unsupported test-coverage and perceptual-validation claims. `applyAvatarIndexCopy(html)` updates only exact recovered title/summary strings in resource cards, related links and llms text. Run applyAvatarAssessment before provenance is inserted, and applyLivePortraitCaveats after generic engineering records are inserted. Apply the exact-copy transform wherever those older summaries are retained.

The talking-portrait assessment's main section owns `#article-body`; its opening header preserves `#avatar-assessment`. Both anchors lead to the assessment without depending on decorative chapter insertion. The related port article includes a September 7 source-review note at `#liveportrait-source-review-20260907`, linking the specific media-function, frame-guard, render-worker and model-configuration evidence above. That note documents a source correction, not a new dynamic-quality trial. The page transform adds the shared evidence stylesheet only when it is missing.
