[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-72334":3},{"id":4,"name":5,"fullName":6,"owner":7,"repo":5,"description":8,"homepage":9,"htmlUrl":10,"language":11,"languages":10,"totalLinesOfCode":10,"stars":12,"forks":13,"watchers":14,"openIssues":15,"contributorsCount":16,"subscribersCount":16,"size":16,"stars1d":17,"stars7d":18,"stars30d":19,"stars90d":16,"forks30d":16,"starsTrendScore":20,"compositeScore":21,"rankGlobal":10,"rankLanguage":10,"license":22,"archived":23,"fork":23,"defaultBranch":24,"hasWiki":23,"hasPages":23,"topics":25,"createdAt":10,"pushedAt":10,"updatedAt":30,"readmeContent":31,"aiSummary":32,"trendingCount":16,"starSnapshotCount":16,"syncStatus":33,"lastSyncTime":34,"discoverSource":35},72334,"PersonaLive","GVCLab\u002FPersonaLive","GVCLab","[CVPR 2026] PersonaLive! : Expressive Portrait Image Animation for Live Streaming","https:\u002F\u002Farxiv.org\u002Fabs\u002F2512.11253",null,"Python",3314,462,42,31,0,8,38,143,24,105,"Apache License 2.0",false,"main",[26,27,28,29],"cvpr","cvpr2026","talking-head","video-generation","2026-06-12 04:01:04","\u003Cdiv align=\"center\">\n\n\u003Cimg src=\"assets\u002Fheader.svg\" alt=\"PersonaLive\" width=\"100%\">\n\n\u003Ch2>Expressive Portrait Image Animation for Live Streaming\u003C\u002Fh2>\n\n#### [Zhiyuan Li\u003Csup>1,2,3\u003C\u002Fsup>](https:\u002F\u002Fhuai-chang.github.io\u002F) · [Chi-Man Pun\u003Csup>1,📪\u003C\u002Fsup>](https:\u002F\u002Fcmpun.github.io\u002F) · [Chen Fang\u003Csup>2\u003C\u002Fsup>](http:\u002F\u002Ffangchen.org\u002F) · [Jue Wang\u003Csup>2\u003C\u002Fsup>](https:\u002F\u002Fscholar.google.com\u002Fcitations?user=Bt4uDWMAAAAJ&hl=en) · [Xiaodong Cun\u003Csup>3,📪\u003C\u002Fsup>](https:\u002F\u002Fvinthony.github.io\u002Facademic\u002F) \n\u003Csup>1\u003C\u002Fsup> University of Macau  &nbsp;&nbsp; \u003Csup>2\u003C\u002Fsup> [Dzine.ai](https:\u002F\u002Fwww.dzine.ai\u002F)  &nbsp;&nbsp; \u003Csup>3\u003C\u002Fsup> [GVC Lab, Great Bay University](https:\u002F\u002Fgvclab.github.io\u002F)\n\n\u003Ca href='https:\u002F\u002Farxiv.org\u002Fabs\u002F2512.11253'>\u003Cimg src='https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FArXiv-2512.11253-red'>\u003C\u002Fa> \u003Ca href='https:\u002F\u002Fhuggingface.co\u002Fhuaichang\u002FPersonaLive'>\u003Cimg src='https:\u002F\u002Fimg.shields.io\u002Fbadge\u002F%F0%9F%A4%97%20Hugging%20Face-Model-ffc107'>\u003C\u002Fa> \u003Ca href='https:\u002F\u002Fmodelscope.cn\u002Fmodels\u002Fhuaichang\u002FPersonaLive'>\u003Cimg src='https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FModelScope-Model-624AFF'>\u003C\u002Fa> [![GitHub](https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Fstars\u002FGVCLab\u002FPersonaLive?style=social)](https:\u002F\u002Fgithub.com\u002FGVCLab\u002FPersonaLive)\n\n\u003Cimg src=\"assets\u002Fhighlight.svg\" alt=\"highlight\" width=\"95%\">\n\n\u003Cimg src=\"assets\u002Fdemo_3.gif\" width=\"46%\"> &nbsp;&nbsp; \u003Cimg src=\"assets\u002Fdemo_2.gif\" width=\"40.5%\">\n\u003C\u002Fdiv>\n\n## 📋 TODO\n- [ ] If you find PersonaLive useful or interesting, please give us a Star🌟! Your support drives us to keep improving.\n- [ ] Fix bugs (If you encounter any issues, please feel free to open an issue or contact me! 🙏)\n- [x] **[2026.05.15]** 🔥 Release `training code`.\n- [x] **[2026.02.21]** 🥳 PersonaLive is accepted by CVPR2026 🎉.\n- [x] **[2025.12.29]** 🔥 Enhance WebUI (Support reference image replacement).\n- [x] **[2025.12.22]** 🔥 Supported streaming strategy in offline inference to generate long videos on 12GB VRAM!\n- [x] **[2025.12.17]** 🔥 [ComfyUI-PersonaLive](https:\u002F\u002Fgithub.com\u002Fokdalto\u002FComfyUI-PersonaLive) is now supported! (Thanks to [@okdalto](https:\u002F\u002Fgithub.com\u002Fokdalto))\n- [x] **[2025.12.15]** 🔥 Release `paper`!\n- [x] **[2025.12.12]** 🔥 Release `inference code`, `config`, and `pretrained weights`!\n  \n## ⚖️ Disclaimer\n\n- [x] This project is released for **academic research only**.\n- [x] Users must not use this repository to generate harmful, defamatory, or illegal content.\n- [x] The authors bear no responsibility for any misuse or legal consequences arising from the use of this tool.\n- [x] By using this code, you agree that you are solely responsible for any content generated.\n\n## ⚙️ Framework\n\u003Cimg src=\"assets\u002Foverview.png\" alt=\"Image 1\" width=\"100%\">\n\n\nWe present PersonaLive, a `real-time` and `streamable` diffusion framework capable of generating `infinite-length` portrait animations.\n\n\n## 🚀 Getting Started\n### 🛠 Installation\n```\n# clone this repo\ngit clone https:\u002F\u002Fgithub.com\u002FGVCLab\u002FPersonaLive\ncd PersonaLive\n\n# Create conda environment\nconda create -n personalive python=3.10\nconda activate personalive\n\n# Install packages with pip\npip install -r requirements_base.txt\n```\n\n### ⏬ Download weights\nOption 1: Download pre-trained weights of base models and other components ([sd-image-variations-diffusers](https:\u002F\u002Fhuggingface.co\u002Flambdalabs\u002Fsd-image-variations-diffusers) and [sd-vae-ft-mse](https:\u002F\u002Fhuggingface.co\u002Fstabilityai\u002Fsd-vae-ft-mse)). You can run the following command to download weights automatically:\n    \n```bash\npython tools\u002Fdownload_weights.py\n```\n\nOption 2: Download pre-trained weights into the `.\u002Fpretrained_weights` folder from one of the below URLs:\n    \n\u003Ca href='https:\u002F\u002Fdrive.google.com\u002Fdrive\u002Ffolders\u002F1GOhDBKIeowkMpBnKhGB8jgEhJt_--vbT?usp=drive_link'>\u003Cimg src='https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FGoogle%20Drive-5B8DEF?style=for-the-badge&logo=googledrive&logoColor=white'>\u003C\u002Fa> \u003Ca href='https:\u002F\u002Fpan.baidu.com\u002Fs\u002F1DCv4NvUy_z7Gj2xCGqRMkQ?pwd=gj64'>\u003Cimg src='https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FBaidu%20Netdisk-3E4A89?style=for-the-badge&logo=baidu&logoColor=white'>\u003C\u002Fa> \u003Ca href='https:\u002F\u002Fmodelscope.cn\u002Fmodels\u002Fhuaichang\u002FPersonaLive'>\u003Cimg src='https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FModelScope-624AFF?style=for-the-badge&logo=alibabacloud&logoColor=white'>\u003C\u002Fa> \u003Ca href='https:\u002F\u002Fhuggingface.co\u002Fhuaichang\u002FPersonaLive'>\u003Cimg src='https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FHuggingFace-E67E22?style=for-the-badge&logo=huggingface&logoColor=white'>\u003C\u002Fa>\n\nFinally, these weights should be organized as follows:\n```\npretrained_weights\n├── onnx\n│   ├── unet_opt\n│   │   ├── unet_opt.onnx\n│   │   └── unet_opt.onnx.data\n│   └── unet\n├── personalive\n│   ├── denoising_unet.pth\n│   ├── motion_encoder.pth\n│   ├── motion_extractor.pth\n│   ├── pose_guider.pth\n│   ├── reference_unet.pth\n│   └── temporal_module.pth\n├── sd-vae-ft-mse\n│   ├── diffusion_pytorch_model.bin\n│   └── config.json\n├── sd-image-variations-diffusers\n│   ├── image_encoder\n│   │   ├── pytorch_model.bin\n│   │   └── config.json\n│   ├── unet\n│   │   ├── diffusion_pytorch_model.bin\n│   │   └── config.json\n│   └── model_index.json\n└── tensorrt\n    └── unet_work.engine\n```\n\n### 🎞️ Offline Inference\nRun offline inference with the default configuration:\n\n```\npython inference_offline.py\n```\n\n* `-L`: Max number of frames to generate. (Default: 100)\n* `--use_xformers`: Enable xFormers memory efficient attention. (Default: True)\n* `--stream_gen`: Enable streaming generation strategy. (Default: True)\n* `--reference_image`: Path to a specific reference image. Overrides settings in config.\n* `--driving_video`: Path to a specific driving video. Overrides settings in config.\n\n⚠️ Note for RTX 50-Series (Blackwell) Users: xformers is not yet fully compatible with the new architecture. To avoid crashes, please disable it by running:\n\n```\npython inference_offline.py --use_xformers False\n```\n\n### 📸 Online Inference\n#### 📦 Setup Web UI\n```\n# install Node.js 18+\ncurl -o- https:\u002F\u002Fraw.githubusercontent.com\u002Fnvm-sh\u002Fnvm\u002Fv0.39.1\u002Finstall.sh | bash\nnvm install 18\n\nsource web_start.sh\n```\n\n#### 🏎️ Acceleration (Optional)\nConverting the model to TensorRT can significantly speed up inference (~ 2x ⚡️). Building the engine may take about `20 minutes` depending on your device. Note that TensorRT optimizations may lead to slight variations or a small drop in output quality.\n```\n# Install packages with pip\npip install -r requirements_trt.txt\n\n# src\u002Fmodels\u002Fmotion_encoder\u002FFAN_temporal_feature_extractor.py\nself.pos_embed.pos_embed.requires_grad = False\n\n# Converting the model to TensorRT\npython torch2trt.py\n```\n💡 **PyCUDA Installation Issues**: If you encounter a \"Failed to build wheel for pycuda\" error during the installation above, please follow these steps:\n```\n# Install PyCUDA manually using Conda (avoids compilation issues):\nconda install -c conda-forge pycuda \"numpy\u003C2.0\"\n\n# Open requirements_trt.txt and comment out or remove the line \"pycuda==2024.1.2\"\n\n# Install other packages with pip\npip install -r requirements_trt.txt\n\n# Converting the model to TensorRT\npython torch2trt.py\n```\n⚠️ The provided TensorRT model is from an `H100`. We recommend `ALL users` (including H100 users) re-run `python torch2trt.py` locally to ensure best compatibility.\n\n#### ▶️ Start Streaming\n```\npython inference_online.py --acceleration none (for RTX 50-Series) or xformers or tensorrt\n```\nThen open `http:\u002F\u002F0.0.0.0:7860` in your browser. (*If `http:\u002F\u002F0.0.0.0:7860` does not work well, try `http:\u002F\u002Flocalhost:7860`)\n\n**How to use**: Upload Image ➡️ Fuse Reference ➡️ Start Animation ➡️ Enjoy! 🎉\n\u003Cdiv align=\"center\">\n  \u003Cimg src=\"assets\u002Fguide.png\" alt=\"PersonaLive\" width=\"60%\">\n\u003C\u002Fdiv>\n\n**Regarding Latency**: Latency varies depending on your device's computing power. You can try the following methods to optimize it:\n\n1. Lower the \"Driving FPS\" setting in the WebUI to reduce the computational workload.\n2. You can increase the multiplier (e.g., set to `num_frames_needed * 4` or higher) to better match your device's inference speed. https:\u002F\u002Fgithub.com\u002FGVCLab\u002FPersonaLive\u002Fblob\u002F6953d1a8b409f360a3ee1d7325093622b29f1e22\u002Fwebcam\u002Futil.py#L73\n\n## 🚄 Model Training\n\nPersonaLive training is organized into three stages. Approximate training time on 8x H100 with default configs: Stage 1 ~13h, Stage 2 ~15h, Stage 3 ~20h.\n\n### 1️⃣ Environment setup\nInstall base dependencies first (see installation section), then install training-only packages:\n\n```bash\npip install -r requirements_train.txt\n```\n\nIf you use multi-GPU or multi-node training, configure Accelerate once before launching training:\n\n```bash\naccelerate config\n```\n\n### 2️⃣ Data preparation\nYour dataset should contain a `videos` directory and a matching `boxes` directory:\n\n```text\nDatasets\n├── VFHQ\n│   ├── videos\n│   │   ├── example1.mp4\n│   │   ├── example2.mp4\n│   │   └── ...\n│   └── boxes\n│       ├── example1.pt\n│       ├── example2.pt\n│       └── ...\n└── ...\n```\n\nPreprocessing example:\n\n```bash\n# 1) Extract face \u002F eye \u002F mouth boxes from each frame\npython tools\u002Fget_boxes.py --video_dir .\u002FDatasets\u002FVFHQ\u002Fvideos --save_dir .\u002FDatasets\u002FVFHQ\u002Fboxes --workers 8\n\n# 2) Generate meta json: [{\"video_path\": \"...\u002Fvideos\u002Fxxx.mp4\"}, ...]\npython tools\u002Fextract_meta_info.py --root_path .\u002FDatasets\u002FVFHQ --dataset_name VFHQ\n```\n\nThen set `data.meta_paths` in each training config:\n\n```yaml\ndata:\n  meta_paths:\n    - \".\u002Fdata\u002FVFHQ_meta.json\"\n    - \".\u002Fdata\u002FOtherDataset_meta.json\"\n```\n\n### 3️⃣ Download weights\nDownload the training initialization weights: [X-NeMo](https:\u002F\u002Fdrive.google.com\u002Fdrive\u002Ffolders\u002F1RdjBYYbstO7SOchDg7oimoAwu03g_-mI), [pose_guider](https:\u002F\u002Fdrive.google.com\u002Fdrive\u002Ffolders\u002F1F6lyYfC5RijdS2SmvTct_8L9HZweV4nF?usp=sharing), and [stylegan2_discriminator](https:\u002F\u002Fdrive.google.com\u002Fdrive\u002Ffolders\u002F1F6lyYfC5RijdS2SmvTct_8L9HZweV4nF?usp=sharing).\n\n```text\npretrained_weights\n├── xnemo\n│   ├── xnemo_motion_encoder.pth\n│   ├── xnemo_denoising_unet.pth\n│   ├── xnemo_reference_unet.pth\n│   └── xnemo_temporal_module.pth\n├── sd-vae-ft-mse\n│   ├── diffusion_pytorch_model.bin\n│   └── config.json\n├── sd-image-variations-diffusers\n│   ├── image_encoder\n│   │   ├── pytorch_model.bin\n│   │   └── config.json\n│   ├── unet\n│   │   ├── diffusion_pytorch_model.bin\n│   │   └── config.json\n│   └── model_index.json\n├── pose_guider.pth\n└── stylegan2_discriminator_ffhq512.pth\n```\n\n### 4️⃣ Training workflow\n\n#### Stage 1: Image-level warm-up\nRun:\n```bash\naccelerate launch train_stage1.py --config .\u002Fconfigs\u002Ftrain\u002Fpersonalive_stage1.yaml\n```\n\nDefault output folder: `.\u002Fexp_output\u002Fpersonalive_stage1\u002F`\n\n#### Stage 2: Image-level adversarial refinement\n\nUpdate `configs\u002Ftrain\u002Fpersonalive_stage2.yaml` to point to Stage 1 outputs:\n```bash\nmotion_encoder_path: '.\u002Fexp_output\u002Fpersonalive_stage1\u002Fmotion_encoder-xxxxx.pth'\ndenoising_unet_path: '.\u002Fexp_output\u002Fpersonalive_stage1\u002Fdenoising_unet-xxxxx.pth'\nreference_unet_path: '.\u002Fexp_output\u002Fpersonalive_stage1\u002Freference_unet-xxxxx.pth'\npose_guider_path: '.\u002Fexp_output\u002Fpersonalive_stage1\u002Fpose_guider-xxxxx.pth'\n```\n\nRun:\n```bash\naccelerate launch train_stage2.py --config .\u002Fconfigs\u002Ftrain\u002Fpersonalive_stage2.yaml\n```\n\nDefault output folder: `.\u002Fexp_output\u002Fpersonalive_stage2\u002F`\n\n#### Stage 3: Temporal module fine-tuning for streaming\n\nUpdate `configs\u002Ftrain\u002Fpersonalive_stage3.yaml` to point to Stage 2 outputs:\n\n```bash\nmotion_encoder_path: '.\u002Fexp_output\u002Fpersonalive_stage2\u002Fmotion_encoder-xxxxx.pth'\ndenoising_unet_path: '.\u002Fexp_output\u002Fpersonalive_stage2\u002Fdenoising_unet-xxxxx.pth'\nreference_unet_path: '.\u002Fexp_output\u002Fpersonalive_stage2\u002Freference_unet-xxxxx.pth'\npose_guider_path: '.\u002Fexp_output\u002Fpersonalive_stage2\u002Fpose_guider-xxxxx.pth'\ndiscriminator_path: '.\u002Fexp_output\u002Fpersonalive_stage2\u002Fdiscriminator-xxxxx.pth'\n```\n\nRun:\n```bash\naccelerate launch train_stage3.py --config .\u002Fconfigs\u002Ftrain\u002Fpersonalive_stage3.yaml\n```\n\nDefault output folder: `.\u002Fexp_output\u002Fpersonalive_stage3\u002F`\n\n## 📚 Community Contribution\n\nSpecial thanks to the community for providing helpful setups! 🥂\n\n* **Windows + RTX 50-Series Guide**: Thanks to [@dknos](https:\u002F\u002Fgithub.com\u002Fdknos) for providing a [detailed guide](https:\u002F\u002Fgithub.com\u002FGVCLab\u002FPersonaLive\u002Fissues\u002F10#issuecomment-3662785532) on running this project on Windows with Blackwell GPUs.\n\n* **TensorRT on Windows**: If you are trying to convert TensorRT models on Windows, [this discussion](https:\u002F\u002Fgithub.com\u002FGVCLab\u002FPersonaLive\u002Fissues\u002F8) might be helpful. Special thanks to [@MaraScott](https:\u002F\u002Fgithub.com\u002FMaraScott) and [@Jeremy8776](https:\u002F\u002Fgithub.com\u002FJeremy8776) for their insights.\n  \n* **ComfyUI**: Thanks to [@okdalto](https:\u002F\u002Fgithub.com\u002Fokdalto) for helping implement the [ComfyUI-PersonaLive](https:\u002F\u002Fgithub.com\u002Fokdalto\u002FComfyUI-PersonaLive) support.\n\n* **Useful Scripts**: Thanks to [@suruoxi](https:\u002F\u002Fgithub.com\u002Fsuruoxi) for implementing `download_weights.py`, and to [@andchir](https:\u002F\u002Fgithub.com\u002Fandchir) for adding audio merging functionality.\n\n## 🎬 More Results\n#### 👀 Visualization results\n\n\u003Ctable width=\"100%\">\n  \u003Ctr>\n    \u003Ctd width=\"50%\">\n      \u003Cvideo src=\"https:\u002F\u002Fgithub.com\u002Fuser-attachments\u002Fassets\u002Fcdc885ef-5e1c-4139-987a-2fa50fefd6a4\" controls=\"controls\" style=\"max-width: 100%; display: block;\">\u003C\u002Fvideo>\n    \u003C\u002Ftd>\n    \u003Ctd width=\"50%\">\n      \u003Cvideo src=\"https:\u002F\u002Fgithub.com\u002Fuser-attachments\u002Fassets\u002F014f7bae-74ce-4f56-8621-24bc76f3c123\" controls=\"controls\" style=\"max-width: 100%; display: block;\">\u003C\u002Fvideo>\n    \u003C\u002Ftd>\n  \u003C\u002Ftr>\n\u003C\u002Ftable>\n\u003Ctable width=\"100%\">\n  \u003Ctr>\n    \u003Ctd width=\"25%\">\n      \u003Cvideo src=\"https:\u002F\u002Fgithub.com\u002Fuser-attachments\u002Fassets\u002F1e6a0809-15d2-4cab-ae8f-8cf1728c6281\" controls=\"controls\" style=\"max-width: 100%; display: block;\">\u003C\u002Fvideo>\n    \u003C\u002Ftd>\n    \u003Ctd width=\"25%\">\n      \u003Cvideo src=\"https:\u002F\u002Fgithub.com\u002Fuser-attachments\u002Fassets\u002Fd9cf265d-9db0-4f83-81da-be967bbd5f26\" controls=\"controls\" style=\"max-width: 100%; display: block;\">\u003C\u002Fvideo>\n    \u003C\u002Ftd>\n    \u003Ctd width=\"25%\">\n      \u003Cvideo src=\"https:\u002F\u002Fgithub.com\u002Fuser-attachments\u002Fassets\u002F86235139-b63e-4f26-b09c-d218466e8e24\" controls=\"controls\" style=\"max-width: 100%; display: block;\">\u003C\u002Fvideo>\n    \u003C\u002Ftd>\n    \u003Ctd width=\"25%\">\n      \u003Cvideo src=\"https:\u002F\u002Fgithub.com\u002Fuser-attachments\u002Fassets\u002F238785de-3b4c-484e-9ad0-9d90e7962fee\" controls=\"controls\" style=\"max-width: 100%; display: block;\">\u003C\u002Fvideo>\n    \u003C\u002Ftd>\n  \u003C\u002Ftr>\n  \u003Ctr>\n    \u003Ctd width=\"25%\">\n      \u003Cvideo src=\"https:\u002F\u002Fgithub.com\u002Fuser-attachments\u002Fassets\u002Fc71c4717-d528-4a98-b132-2b0ec8cec22d\" controls=\"controls\" style=\"max-width: 100%; display: block;\">\u003C\u002Fvideo>\n    \u003C\u002Ftd>\n    \u003Ctd width=\"25%\">\n      \u003Cvideo src=\"https:\u002F\u002Fgithub.com\u002Fuser-attachments\u002Fassets\u002F7e11fe71-fd16-4011-a6b2-2dbaf7e343fb\" controls=\"controls\" style=\"max-width: 100%; display: block;\">\u003C\u002Fvideo>\n    \u003C\u002Ftd>\n    \u003Ctd width=\"25%\">\n      \u003Cvideo src=\"https:\u002F\u002Fgithub.com\u002Fuser-attachments\u002Fassets\u002Ff62e2162-d239-4575-9514-34575c16301c\" controls=\"controls\" style=\"max-width: 100%; display: block;\">\u003C\u002Fvideo>\n    \u003C\u002Ftd>\n    \u003Ctd width=\"25%\">\n      \u003Cvideo src=\"https:\u002F\u002Fgithub.com\u002Fuser-attachments\u002Fassets\u002F813e7fbd-37e9-47d7-a270-59887fafeca5\" controls=\"controls\" style=\"max-width: 100%; display: block;\">\u003C\u002Fvideo>\n    \u003C\u002Ftd>\n  \u003C\u002Ftr>\n\u003C\u002Ftable>\n\n#### 🤺 Comparisons\n\n\u003Ctable width=\"100%\">\n  \u003Ctr>\n    \u003Ctd width=\"100%\">\n      \u003Cvideo src=\"https:\u002F\u002Fgithub.com\u002Fuser-attachments\u002Fassets\u002F36407cf9-bf82-43ff-9508-a794d223d3f7\" controls=\"controls\" style=\"max-width: 100%; display: block;\">\u003C\u002Fvideo>\n    \u003C\u002Ftd>\n  \u003C\u002Ftr>\n  \u003Ctr>\n    \u003Ctd width=\"100%\">\n      \u003Cvideo src=\"https:\u002F\u002Fgithub.com\u002Fuser-attachments\u002Fassets\u002F3be99b91-c6a1-4ca4-89e9-8fad42bb9583\" controls=\"controls\" style=\"max-width: 100%; display: block;\">\u003C\u002Fvideo>\n    \u003C\u002Ftd>\n  \u003C\u002Ftr>\n  \u003Ctr>\n    \u003Ctd width=\"100%\">\n      \u003Cvideo src=\"https:\u002F\u002Fgithub.com\u002Fuser-attachments\u002Fassets\u002F5bd21fe4-96ae-4be6-bf06-a7c476b04ec9\" controls=\"controls\" style=\"max-width: 100%; display: block;\">\u003C\u002Fvideo>\n    \u003C\u002Ftd>\n  \u003C\u002Ftr>\n\u003C\u002Ftable>\n\n\n## ⭐ Citation\nIf you find PersonaLive useful for your research, welcome to cite our work using the following BibTeX:\n```bibtex\n@article{li2025personalive,\n  title={PersonaLive! Expressive Portrait Image Animation for Live Streaming},\n  author={Li, Zhiyuan and Pun, Chi-Man and Fang, Chen and Wang, Jue and Cun, Xiaodong},\n  journal={arXiv preprint arXiv:2512.11253},\n  year={2025}\n}\n```\n\n## ❤️ Acknowledgement\nThis code is mainly built upon [Moore-AnimateAnyone](https:\u002F\u002Fgithub.com\u002FMooreThreads\u002FMoore-AnimateAnyone), [X-NeMo](https:\u002F\u002Fbyteaigc.github.io\u002FX-Portrait2\u002F), [StreamDiffusion](https:\u002F\u002Fgithub.com\u002Fcumulo-autumn\u002FStreamDiffusion), [RAIN](https:\u002F\u002Fpscgylotti.github.io\u002Fpages\u002FRAIN\u002F) and [LivePortrait](https:\u002F\u002Fgithub.com\u002FKlingTeam\u002FLivePortrait), thanks to their invaluable contributions.\n","PersonaLive 是一个用于生成直播场景下表情丰富的肖像动画的项目。它基于实时和可流式传输的扩散框架，能够生成无限长度的肖像视频。该项目采用 Python 语言开发，支持从单张图片生成连贯且自然的头部动作动画，并且在离线推理中仅需12GB显存即可生成长视频。此外，PersonaLive 还提供了用户友好的Web界面，允许替换参考图像。此工具特别适用于需要高质量虚拟主播或游戏角色动画的内容创作者。请注意，本项目仅供学术研究使用。",2,"2026-06-11 03:41:25","high_star"]