{"id":13467742,"url":"https://github.com/GunwooHan/EasyVtuber","last_synced_at":"2025-03-26T03:31:04.443Z","repository":{"id":39536402,"uuid":"403586377","full_name":"GunwooHan/EasyVtuber","owner":"GunwooHan","description":"Zoom , GoogleMeets에서 Vtuber 데뷔하기","archived":false,"fork":false,"pushed_at":"2024-07-16T13:11:02.000Z","size":45435,"stargazers_count":295,"open_issues_count":2,"forks_count":240,"subscribers_count":2,"default_branch":"main","last_synced_at":"2024-10-29T21:59:00.839Z","etag":null,"topics":["anime","python","vtuber"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/GunwooHan.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"License","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2021-09-06T10:51:54.000Z","updated_at":"2024-10-20T20:34:43.000Z","dependencies_parsed_at":"2024-07-16T16:10:07.639Z","dependency_job_id":null,"html_url":"https://github.com/GunwooHan/EasyVtuber","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GunwooHan%2FEasyVtuber","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GunwooHan%2FEasyVtuber/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GunwooHan%2FEasyVtuber/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GunwooHan%2FEasyVtuber/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/GunwooHan","download_url":"https://codeload.github.com/GunwooHan/EasyVtuber/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":245584643,"owners_count":20639595,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["anime","python","vtuber"],"created_at":"2024-07-31T15:01:00.001Z","updated_at":"2025-03-26T03:31:04.431Z","avatar_url":"https://github.com/GunwooHan.png","language":"Python","funding_links":[],"categories":["Python"],"sub_categories":[],"readme":"# EasyVtuber\n![](assets/sample_luda.gif)\n\n- Facial landmark와 GAN을 이용한 Character Face Generation \n- Google Meets, Zoom 등에서 자신만의 웹툰, 만화 캐릭터로 대화해보세요!\n- 악세사리는 어느정도 추가해도 잘 작동해요!\n- 안타깝게도 RTX 2070 미만에서는 실시간으로 잘 작동하지 않을 수도 있어요 ㅠㅠ\n\n\u003cbr/\u003e\u003cbr/\u003e\n\n## Demo\n![](assets/sample_luda_debug.gif)\n![](assets/sample_zoom.gif)\n\n\u003cbr/\u003e\u003cbr/\u003e\n\n## Requirements\n- Python \u003e= 3.8 \n- Pytorch \u003e= 1.7 \n- pyvirtualcam\n- mediapipe\n- opencv-python\n\n\u003cbr/\u003e\u003cbr/\u003e\n\n## Quick Start\n- ※ 이 프로젝트는 사용 전 OBS 설치가 필수입니다\n- 아래 설치 순서를 __꼭__ 지켜주세요!\n\n1. [OBS studio 설치](\u003chttps://obsproject.com/ko\u003e)\n   - OBS virtualcam을 사용하기 위해서 먼저 OBS Studio를 설치해야합니다\n2. ```pip install -r requirements.txt```\n   - OBS virtualcam을 설치되어있어야 requirements에 포함된 pyvirtualcam이 정상적으로 설치되어 사용할 수 있습니다\n3. [pretrianed model download](\u003chttps://www.dropbox.com/s/tsl04y5wvg73ij4/talking-head-anime-2-model.zip?dl=0\u003e)\n   - 아래 파일들을 pretrained folder에 넣어주세요\n     - `combiner.pt`\n     - `eyebrow_decomposer.pt`\n     - `eyebrow_morphing_combiner.pt`\n     - `face_morpher.pt`\n     - `two_algo_face_rotator.pt`\n4. character image를 character folder에 넣어주세요\n   - character image 파일은 다음의 조건을 충족해야합니다\n     - alpha 채널을 포함할 것(png 확장자)\n     - 1명의 인간형 캐릭터일 것\n     - 캐릭터가 정면을 볼 것\n     - 캐릭터의 머리가 128 x 128 pixel 내에 들어올 것 (기본적으로 256 x 256으로 resize되기 때문에 256 x 256 기준 128x128 안에 들어와야함)\n    \n    \u003cp align=\"center\"\u003e\n        \u003cimg src=\"./assets/img.png\" alt=\"Example image is refenced by TalkingHeadAnime2\" width=\"50%\" height=\"50%\"/\u003e\n    \u003c/p\u003e\n\n\n5.`python main.py --webcam_output`\n   - 실제 facial feature가 어떻게 잡히는지 보고 싶다면 `--debug` 옵션을 추가하여 실행해주세요\n\n\n\u003cbr/\u003e\u003cbr/\u003e\n\n## How to make Custom Character\n1. 네이버, 구글 등에서 본인이 원하는 캐릭터를 찾으세요!\n   - 되도록이면 위의 4가지 조건을 맞춰주세요!\n![google search](assets/01_sample_search.gif)\n\u003cbr/\u003e\u003cbr/\u003e\n2. 찾은 이미지에서 캐릭터 얼굴이 중앙으로 가도록 가로세로 1:1 비율로 이미지를 잘라주세요!\n   - [이미지 잘라내기 사이트](https://iloveimg.com/ko/crop-image) 광고아님 X\n![crop image](assets/02_sample_crop.gif)\n\u003cbr/\u003e\u003cbr/\u003e\n3. 이미지 배경을 제거해서 alpha 채널을 만들어 주세요!\n   - [배경제거 사이트](https://remove.bg/ko) 광고아님 X\n![google search](assets/03_sample_remove_backgroud.gif)\n\u003cbr/\u003e\u003cbr/\u003e\n4. 완성!\n   - character folder에 이미지를 넣고 `python main.py --output_webcam --character (.png_제외한_캐릭터파일_이름)` 실행!\n\n\u003cbr/\u003e\u003cbr/\u003e\n\n## Folder Structure\n\n```\n      │\n      ├── character/ - character images \n      ├── pretrained/ - save pretrained models \n      ├── tha2/ - Talking Head Anime2 Library source files \n      ├── facial_points.py - facial feature point constants\n      ├── main.py - main script to excute\n      ├── models.py - GAN models defined\n      ├── pose.py - process facial landmark to pose vector\n      └── utils.py - util fuctions for pre/postprocessing image\n```\n\n\u003cbr/\u003e\u003cbr/\u003e\n\n## Usage\n### webcam으로 송출 시\n- `python main.py --output_webcam`\n### 캐릭터 지정\n- `python main.py --character (character folder에 있는 .png를 제외한 캐릭터 파일 이름)`\n### facial feature 확인 시\n- `python main.py --debug`\n### 동영상 파일 inference\n- `python main.py --input video파일_경로 --output_dir frame_저장할_디렉토리`\n\n\u003cbr/\u003e\u003cbr/\u003e\n\n## TODOs\n- [ ] Add eyebrow feature \n- [ ] Parameter Controller GUI \n- [ ] Automation of Making Drivable Character \n\n\u003cbr/\u003e\u003cbr/\u003e\n\n## Thanks to\n- `이루다` 이미지 사용을 허락해주신 [스캐터랩 이루다팀](https://scatterlab.co.kr), `똘순이 MK1` 이미지 사용을 허락해주신 [순수한 불순물](https://pixiv.net/users/21097691) 님, 늦은 밤까지 README 샘플 영상 만들기 위해 도와주신 [성민석 멘토님](https://github.com/minsuk-sung), [박성호](https://github.com/naem1023), [박범수](https://github.com/hanlyang0522) 캠퍼님, 프로젝트 방향성 조언을 해주신 [김보찬 멘토님](https://github.com/MoMentum99) 모두 감사합니다!\n\n\u003cbr/\u003e\u003cbr/\u003e\n\n## Acknowledgements\n- EasyVtuber는 [TalkingHeadAnime2](\u003chttps://github.com/pkhungurn/talking-head-anime-2-demo\u003e)를 기반으로 제작되었습니다. \n- tha2 folder의 source와 pretrained model file은 원저작자 repo의 Liscense를 확인하고 사용하시기 바랍니다.","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FGunwooHan%2FEasyVtuber","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FGunwooHan%2FEasyVtuber","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FGunwooHan%2FEasyVtuber/lists"}