{"adoption": {"forks": 2691, "observed_at": "2026-08-28T04:11:05.365235+00:00", "stars": 14040}, "canonical_url": "https://ross.abutalabs.com/products/sadtalker", "card": {"archived": false, "artifact_type": "application", "description": "[CVPR 2023] SadTalker：Learning Realistic 3D Motion Coefficients for Stylized Audio-Driven Single Image Talking Face Animation", "domain": ["deep-learning", "computer-vision", "artificial-intelligence"], "enriched": true, "function": ["deep-learning", "video-processing", "audio-processing", "machine-learning", "llm-inference"], "health_score": 21, "homepage": "https://sadtalker.github.io/", "language": "Python", "license": "NOASSERTION", "license_family": "other", "maturity": "maintenance", "member_repos": ["OpenTalker/SadTalker"], "name": "OpenTalker/SadTalker", "platform": ["python", "cross-platform"], "pushed_at": "2024-06-26T12:51:53+00:00", "repo": "OpenTalker/SadTalker", "stars": 14040, "tags": ["talking-head", "talking-face-generation", "audio-driven-animation", "deepfake", "face-animation", "cvpr2023", "3dmm", "generative-ai", "audio", "video", "gpu", "docker"], "topics": ["audio-driven-talking-face", "cvpr2023", "talking-head", "deep-fake", "deep-fakes", "image-animation", "talking-face", "talking-face-generation", "talking-heads"], "urls": [], "use_cases": ["animate a portrait photo with speech audio", "generate talking head video from a single image", "create lip-synced avatar videos from voice recordings", "make a digital avatar speak from text-to-speech audio", "research audio-driven face animation", "produce deepfake-style talking face videos"], "what_it_is": "SadTalker is a CVPR 2023 deep learning tool that generates realistic talking head videos from a single portrait image and an audio clip by predicting 3DMM motion coefficients (head pose, expression) from audio. It is available as a Python codebase with Gradio demos, Hugging Face Spaces, Colab, and Stable Diffusion WebUI integrations.", "when_to_avoid": ["you need real-time lip sync for live streaming or video calls", "you require full-body avatar animation rather than a single face", "you need a commercially supported product with SLAs", "you lack a GPU and cannot tolerate slow inference"], "when_to_choose": ["you need to animate a single still portrait with an audio track", "you want a research-grade, widely cited talking-head generation model", "you want ready-made demos via Hugging Face, Colab, or Stable Diffusion WebUI", "you need controllable head pose and expression styles"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/sadtalker", "repo": "OpenTalker/SadTalker", "role": "main", "score": 22}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:11:05.365235+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-29T17:12:51.567335+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "a594a7558191630f684800a367840e89e6efd32342733f6f66c29dcc71360817", "fetched_at": "2026-08-28T04:11:05.365235+00:00", "kind": "readme", "missing": false, "url": "https://github.com/OpenTalker/SadTalker"}, {"content_hash": "140f8d74879e4eb5ed2036d23770e7238cc11a6f53a9fde1e36e0d229781ac56", "fetched_at": "2026-08-29T08:06:44.777490+00:00", "kind": "homepage", "missing": false, "url": "https://sadtalker.github.io/"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:11:05.365235+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-29T17:12:51.567335+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "a594a7558191630f684800a367840e89e6efd32342733f6f66c29dcc71360817", "fetched_at": "2026-08-28T04:11:05.365235+00:00", "kind": "readme", "missing": false, "url": "https://github.com/OpenTalker/SadTalker"}, {"content_hash": "140f8d74879e4eb5ed2036d23770e7238cc11a6f53a9fde1e36e0d229781ac56", "fetched_at": "2026-08-29T08:06:44.777490+00:00", "kind": "homepage", "missing": false, "url": "https://sadtalker.github.io/"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-29T17:12:51.567335+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "a594a7558191630f684800a367840e89e6efd32342733f6f66c29dcc71360817", "fetched_at": "2026-08-28T04:11:05.365235+00:00", "kind": "readme", "missing": false, "url": "https://github.com/OpenTalker/SadTalker"}, {"content_hash": "140f8d74879e4eb5ed2036d23770e7238cc11a6f53a9fde1e36e0d229781ac56", "fetched_at": "2026-08-29T08:06:44.777490+00:00", "kind": "homepage", "missing": false, "url": "https://sadtalker.github.io/"}], "taxonomy_version": 1}, "health_score": {"inputs": ["days_since_push", "days_since_release", "archived"], "kind": "computed", "method": "health_v1"}, "homepage": {"kind": "observed", "observed_at": "2026-08-28T04:11:05.365235+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:11:05.365235+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:11:05.365235+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-29T17:12:51.567335+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "a594a7558191630f684800a367840e89e6efd32342733f6f66c29dcc71360817", "fetched_at": "2026-08-28T04:11:05.365235+00:00", "kind": "readme", "missing": false, "url": "https://github.com/OpenTalker/SadTalker"}, {"content_hash": "140f8d74879e4eb5ed2036d23770e7238cc11a6f53a9fde1e36e0d229781ac56", "fetched_at": "2026-08-29T08:06:44.777490+00:00", "kind": "homepage", "missing": false, "url": "https://sadtalker.github.io/"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:11:05.365235+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:11:05.365235+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-29T17:12:51.567335+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "a594a7558191630f684800a367840e89e6efd32342733f6f66c29dcc71360817", "fetched_at": "2026-08-28T04:11:05.365235+00:00", "kind": "readme", "missing": false, "url": "https://github.com/OpenTalker/SadTalker"}, {"content_hash": "140f8d74879e4eb5ed2036d23770e7238cc11a6f53a9fde1e36e0d229781ac56", "fetched_at": "2026-08-29T08:06:44.777490+00:00", "kind": "homepage", "missing": false, "url": "https://sadtalker.github.io/"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:11:05.365235+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:11:05.365235+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:11:05.365235+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-29T17:12:51.567335+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "a594a7558191630f684800a367840e89e6efd32342733f6f66c29dcc71360817", "fetched_at": "2026-08-28T04:11:05.365235+00:00", "kind": "readme", "missing": false, "url": "https://github.com/OpenTalker/SadTalker"}, {"content_hash": "140f8d74879e4eb5ed2036d23770e7238cc11a6f53a9fde1e36e0d229781ac56", "fetched_at": "2026-08-29T08:06:44.777490+00:00", "kind": "homepage", "missing": false, "url": "https://sadtalker.github.io/"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:11:05.365235+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:11:05.365235+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-29T17:12:51.567335+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "a594a7558191630f684800a367840e89e6efd32342733f6f66c29dcc71360817", "fetched_at": "2026-08-28T04:11:05.365235+00:00", "kind": "readme", "missing": false, "url": "https://github.com/OpenTalker/SadTalker"}, {"content_hash": "140f8d74879e4eb5ed2036d23770e7238cc11a6f53a9fde1e36e0d229781ac56", "fetched_at": "2026-08-29T08:06:44.777490+00:00", "kind": "homepage", "missing": false, "url": "https://sadtalker.github.io/"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-29T17:12:51.567335+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "a594a7558191630f684800a367840e89e6efd32342733f6f66c29dcc71360817", "fetched_at": "2026-08-28T04:11:05.365235+00:00", "kind": "readme", "missing": false, "url": "https://github.com/OpenTalker/SadTalker"}, {"content_hash": "140f8d74879e4eb5ed2036d23770e7238cc11a6f53a9fde1e36e0d229781ac56", "fetched_at": "2026-08-29T08:06:44.777490+00:00", "kind": "homepage", "missing": false, "url": "https://sadtalker.github.io/"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-29T17:12:51.567335+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "a594a7558191630f684800a367840e89e6efd32342733f6f66c29dcc71360817", "fetched_at": "2026-08-28T04:11:05.365235+00:00", "kind": "readme", "missing": false, "url": "https://github.com/OpenTalker/SadTalker"}, {"content_hash": "140f8d74879e4eb5ed2036d23770e7238cc11a6f53a9fde1e36e0d229781ac56", "fetched_at": "2026-08-29T08:06:44.777490+00:00", "kind": "homepage", "missing": false, "url": "https://sadtalker.github.io/"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-29T17:12:51.567335+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "a594a7558191630f684800a367840e89e6efd32342733f6f66c29dcc71360817", "fetched_at": "2026-08-28T04:11:05.365235+00:00", "kind": "readme", "missing": false, "url": "https://github.com/OpenTalker/SadTalker"}, {"content_hash": "140f8d74879e4eb5ed2036d23770e7238cc11a6f53a9fde1e36e0d229781ac56", "fetched_at": "2026-08-29T08:06:44.777490+00:00", "kind": "homepage", "missing": false, "url": "https://sadtalker.github.io/"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 0, "longevity": 98, "rhythm": 8}, "computed_at": "2026-09-03T02:20:16.233290+00:00", "flags": ["no_license"], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 1380, "days_push": 798, "days_rel": null, "gap_med": null, "n_releases_24m": 0}, "score": 22, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}