ganeshblank commited on
Commit
923da14
β€’
1 Parent(s): 30f37fa

Update README.md

Browse files
Files changed (1) hide show
  1. README.md +156 -142
README.md CHANGED
@@ -1,142 +1,156 @@
1
- <h1 align="center">This is the modification of LivePortrait: Efficient Portrait Animation with Stitching and Retargeting Control for allowing video as a source </h1>
2
-
3
-
4
- <br>
5
- <div align="center">
6
- <!-- <a href='LICENSE'><img src='https://img.shields.io/badge/license-MIT-yellow'></a> -->
7
- <a href='https://arxiv.org/pdf/2407.03168'><img src='https://img.shields.io/badge/arXiv-LivePortrait-red'></a>
8
- <a href='https://liveportrait.github.io'><img src='https://img.shields.io/badge/Project-LivePortrait-green'></a>
9
- <a href ='https://github.com/KwaiVGI/LivePortrait'>Official Liveportrait</a>
10
- </div>
11
- <br>
12
-
13
- <p align="center">
14
- <img src="./assets/docs/showcase2.gif" alt="showcase">
15
- <br>
16
- πŸ”₯ For more results, visit LivePortrait <a href="https://liveportrait.github.io/"><strong>homepage</strong></a> πŸ”₯
17
- </p>
18
-
19
-
20
- ## πŸ”₯ Getting Started
21
- ### 1. Clone the code and prepare the environment
22
- ```bash
23
- git clone https://github.com/KwaiVGI/LivePortrait
24
- cd LivePortrait
25
-
26
- # create env using conda
27
- conda create -n LivePortrait python==3.9.18
28
- conda activate LivePortrait
29
- # install dependencies with pip
30
- pip install -r requirements.txt
31
- ```
32
-
33
- ### 2. Download pretrained weights
34
-
35
- Download the pretrained weights from HuggingFace:
36
- ```bash
37
- # you may need to run `git lfs install` first
38
- git clone https://huggingface.co/KwaiVGI/liveportrait pretrained_weights
39
- ```
40
-
41
- Or, download all pretrained weights from [Google Drive](https://drive.google.com/drive/folders/1UtKgzKjFAOmZkhNK-OYT0caJ_w2XAnib) or [Baidu Yun](https://pan.baidu.com/s/1MGctWmNla_vZxDbEp2Dtzw?pwd=z5cn). We have packed all weights in one directory 😊. Unzip and place them in `./pretrained_weights` ensuring the directory structure is as follows:
42
- ```text
43
- pretrained_weights
44
- β”œβ”€β”€ insightface
45
- β”‚ └── models
46
- β”‚ └── buffalo_l
47
- β”‚ β”œβ”€β”€ 2d106det.onnx
48
- β”‚ └── det_10g.onnx
49
- └── liveportrait
50
- β”œβ”€β”€ base_models
51
- β”‚ β”œβ”€β”€ appearance_feature_extractor.pth
52
- β”‚ β”œβ”€β”€ motion_extractor.pth
53
- β”‚ β”œβ”€β”€ spade_generator.pth
54
- β”‚ └── warping_module.pth
55
- β”œβ”€β”€ landmark.onnx
56
- └── retargeting_models
57
- └── stitching_retargeting_module.pth
58
- ```
59
-
60
- ### 3. Inference πŸš€
61
-
62
- #### Fast hands-on
63
- ```bash
64
- python inference.py
65
- ```
66
-
67
- If the script runs successfully, you will get an output mp4 file named `animations/s6--d0_concat.mp4`. This file includes the following results: driving video, input image, and generated result.
68
-
69
- <p align="center">
70
- <img src="./assets/docs/inference.gif" alt="image">
71
- </p>
72
-
73
- Or, you can change the input by specifying the `-s` and `-d` arguments:
74
-
75
- ```bash
76
- python inference.py -s assets/examples/source/s9.jpg -d assets/examples/driving/d0.mp4
77
-
78
- # disable pasting back to run faster
79
- python inference.py -s assets/examples/source/s9.jpg -d assets/examples/driving/d0.mp4 --no_flag_pasteback
80
-
81
- # more options to see
82
- python inference.py -h
83
- ```
84
-
85
- For video: you can change the input by specifying the `-sd` and `-d` arguments:
86
-
87
- ```bash
88
- python inference.py -sd assets/examples/driving/d3.mp4 -d assets/examples/driving/d0.mp4 -vd True
89
-
90
- # disable pasting back to run faster
91
- python inference.py -sd assets/examples/driving/d3.mp4 -d assets/examples/driving/d0.mp4 -vd True --no_flag_pasteback
92
-
93
- ```
94
- #### Driving video auto-cropping
95
-
96
- πŸ“• To use your own driving video, we **recommend**:
97
- - Crop it to a **1:1** aspect ratio (e.g., 512x512 or 256x256 pixels), or enable auto-cropping by `--flag_crop_driving_video`.
98
- - Focus on the head area, similar to the example videos.
99
- - Minimize shoulder movement.
100
- - Make sure the first frame of driving video is a frontal face with **neutral expression**.
101
-
102
- Below is a auto-cropping case by `--flag_crop_driving_video`:
103
- ```bash
104
- python inference.py -s assets/examples/source/s9.jpg -d assets/examples/driving/d13.mp4 --flag_crop_driving_video
105
- ```
106
-
107
- If you find the results of auto-cropping is not well, you can modify the `--scale_crop_video`, `--vy_ratio_crop_video` options to adjust the scale and offset, or do it manually.
108
-
109
- #### Template making
110
- You can also use the `.pkl` file auto-generated to speed up the inference, and **protect privacy**, such as:
111
- ```bash
112
- python inference.py -s assets/examples/source/s9.jpg -d assets/examples/driving/d5.pkl
113
- ```
114
-
115
- **Discover more interesting results on our [Homepage](https://liveportrait.github.io)** 😊
116
-
117
- ### 4. Gradio interface πŸ€—
118
-
119
- We also provide a Gradio interface for a better experience, just run by:
120
-
121
- ```bash
122
- python app.py
123
- ```
124
-
125
- You can specify the `--server_port`, `--share`, `--server_name` arguments to satisfy your needs!
126
-
127
-
128
-
129
-
130
- ## Acknowledgements
131
- We would like to thank the contributors of [FOMM](https://github.com/AliaksandrSiarohin/first-order-model), [Open Facevid2vid](https://github.com/zhanglonghao1992/One-Shot_Free-View_Neural_Talking_Head_Synthesis), [SPADE](https://github.com/NVlabs/SPADE), [InsightFace](https://github.com/deepinsight/insightface), [LivePortrait](https://github.com/KwaiVGI/LivePortrait) repositories, for their open research and contributions.
132
-
133
- ## Citation πŸ’–
134
-
135
- ```bibtex
136
- @article{guo2024liveportrait,
137
- title = {LivePortrait: Efficient Portrait Animation with Stitching and Retargeting Control},
138
- author = {Guo, Jianzhu and Zhang, Dingyun and Liu, Xiaoqiang and Zhong, Zhizhou and Zhang, Yuan and Wan, Pengfei and Zhang, Di},
139
- journal = {arXiv preprint arXiv:2407.03168},
140
- year = {2024}
141
- }
142
- ```
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ ---
2
+ title: Liveportrait_video
3
+ emoji: 😻
4
+ colorFrom: blue
5
+ colorTo: indigo
6
+ sdk: gradio
7
+ sdk_version: 4.38.1
8
+ app_file: app.py
9
+ pinned: false
10
+ license: apache-2.0
11
+ ---
12
+
13
+ Check out the configuration reference at https://huggingface.co/docs/hub/spaces-config-reference
14
+
15
+ <h1 align="center">This is the modification of LivePortrait: Efficient Portrait Animation with Stitching and Retargeting Control for allowing video as a source </h1>
16
+
17
+
18
+ <br>
19
+ <div align="center">
20
+ <!-- <a href='LICENSE'><img src='https://img.shields.io/badge/license-MIT-yellow'></a> -->
21
+ <a href='https://arxiv.org/pdf/2407.03168'><img src='https://img.shields.io/badge/arXiv-LivePortrait-red'></a>
22
+ <a href='https://liveportrait.github.io'><img src='https://img.shields.io/badge/Project-LivePortrait-green'></a>
23
+ <a href ='https://github.com/KwaiVGI/LivePortrait'>Official Liveportrait</a>
24
+ </div>
25
+ <br>
26
+
27
+ <p align="center">
28
+ <img src="./assets/docs/showcase2.gif" alt="showcase">
29
+ <br>
30
+ πŸ”₯ For more results, visit LivePortrait <a href="https://liveportrait.github.io/"><strong>homepage</strong></a> πŸ”₯
31
+ </p>
32
+
33
+
34
+ ## πŸ”₯ Getting Started
35
+ ### 1. Clone the code and prepare the environment
36
+ ```bash
37
+ git clone https://github.com/KwaiVGI/LivePortrait
38
+ cd LivePortrait
39
+
40
+ # create env using conda
41
+ conda create -n LivePortrait python==3.9.18
42
+ conda activate LivePortrait
43
+ # install dependencies with pip
44
+ pip install -r requirements.txt
45
+ ```
46
+
47
+ ### 2. Download pretrained weights
48
+
49
+ Download the pretrained weights from HuggingFace:
50
+ ```bash
51
+ # you may need to run `git lfs install` first
52
+ git clone https://huggingface.co/KwaiVGI/liveportrait pretrained_weights
53
+ ```
54
+
55
+ Or, download all pretrained weights from [Google Drive](https://drive.google.com/drive/folders/1UtKgzKjFAOmZkhNK-OYT0caJ_w2XAnib) or [Baidu Yun](https://pan.baidu.com/s/1MGctWmNla_vZxDbEp2Dtzw?pwd=z5cn). We have packed all weights in one directory 😊. Unzip and place them in `./pretrained_weights` ensuring the directory structure is as follows:
56
+ ```text
57
+ pretrained_weights
58
+ β”œβ”€β”€ insightface
59
+ β”‚ └── models
60
+ β”‚ └── buffalo_l
61
+ β”‚ β”œβ”€β”€ 2d106det.onnx
62
+ β”‚ └── det_10g.onnx
63
+ └── liveportrait
64
+ β”œβ”€β”€ base_models
65
+ β”‚ β”œβ”€β”€ appearance_feature_extractor.pth
66
+ β”‚ β”œβ”€β”€ motion_extractor.pth
67
+ β”‚ β”œβ”€β”€ spade_generator.pth
68
+ β”‚ └── warping_module.pth
69
+ β”œβ”€β”€ landmark.onnx
70
+ └── retargeting_models
71
+ └── stitching_retargeting_module.pth
72
+ ```
73
+
74
+ ### 3. Inference πŸš€
75
+
76
+ #### Fast hands-on
77
+ ```bash
78
+ python inference.py
79
+ ```
80
+
81
+ If the script runs successfully, you will get an output mp4 file named `animations/s6--d0_concat.mp4`. This file includes the following results: driving video, input image, and generated result.
82
+
83
+ <p align="center">
84
+ <img src="./assets/docs/inference.gif" alt="image">
85
+ </p>
86
+
87
+ Or, you can change the input by specifying the `-s` and `-d` arguments:
88
+
89
+ ```bash
90
+ python inference.py -s assets/examples/source/s9.jpg -d assets/examples/driving/d0.mp4
91
+
92
+ # disable pasting back to run faster
93
+ python inference.py -s assets/examples/source/s9.jpg -d assets/examples/driving/d0.mp4 --no_flag_pasteback
94
+
95
+ # more options to see
96
+ python inference.py -h
97
+ ```
98
+
99
+ For video: you can change the input by specifying the `-sd` and `-d` arguments:
100
+
101
+ ```bash
102
+ python inference.py -sd assets/examples/driving/d3.mp4 -d assets/examples/driving/d0.mp4 -vd True
103
+
104
+ # disable pasting back to run faster
105
+ python inference.py -sd assets/examples/driving/d3.mp4 -d assets/examples/driving/d0.mp4 -vd True --no_flag_pasteback
106
+
107
+ ```
108
+ #### Driving video auto-cropping
109
+
110
+ πŸ“• To use your own driving video, we **recommend**:
111
+ - Crop it to a **1:1** aspect ratio (e.g., 512x512 or 256x256 pixels), or enable auto-cropping by `--flag_crop_driving_video`.
112
+ - Focus on the head area, similar to the example videos.
113
+ - Minimize shoulder movement.
114
+ - Make sure the first frame of driving video is a frontal face with **neutral expression**.
115
+
116
+ Below is a auto-cropping case by `--flag_crop_driving_video`:
117
+ ```bash
118
+ python inference.py -s assets/examples/source/s9.jpg -d assets/examples/driving/d13.mp4 --flag_crop_driving_video
119
+ ```
120
+
121
+ If you find the results of auto-cropping is not well, you can modify the `--scale_crop_video`, `--vy_ratio_crop_video` options to adjust the scale and offset, or do it manually.
122
+
123
+ #### Template making
124
+ You can also use the `.pkl` file auto-generated to speed up the inference, and **protect privacy**, such as:
125
+ ```bash
126
+ python inference.py -s assets/examples/source/s9.jpg -d assets/examples/driving/d5.pkl
127
+ ```
128
+
129
+ **Discover more interesting results on our [Homepage](https://liveportrait.github.io)** 😊
130
+
131
+ ### 4. Gradio interface πŸ€—
132
+
133
+ We also provide a Gradio interface for a better experience, just run by:
134
+
135
+ ```bash
136
+ python app.py
137
+ ```
138
+
139
+ You can specify the `--server_port`, `--share`, `--server_name` arguments to satisfy your needs!
140
+
141
+
142
+
143
+
144
+ ## Acknowledgements
145
+ We would like to thank the contributors of [FOMM](https://github.com/AliaksandrSiarohin/first-order-model), [Open Facevid2vid](https://github.com/zhanglonghao1992/One-Shot_Free-View_Neural_Talking_Head_Synthesis), [SPADE](https://github.com/NVlabs/SPADE), [InsightFace](https://github.com/deepinsight/insightface), [LivePortrait](https://github.com/KwaiVGI/LivePortrait) repositories, for their open research and contributions.
146
+
147
+ ## Citation πŸ’–
148
+
149
+ ```bibtex
150
+ @article{guo2024liveportrait,
151
+ title = {LivePortrait: Efficient Portrait Animation with Stitching and Retargeting Control},
152
+ author = {Guo, Jianzhu and Zhang, Dingyun and Liu, Xiaoqiang and Zhong, Zhizhou and Zhang, Yuan and Wan, Pengfei and Zhang, Di},
153
+ journal = {arXiv preprint arXiv:2407.03168},
154
+ year = {2024}
155
+ }
156
+ ```