harry0703/MoneyPrinterTurbo
요약
키워드 하나로 스크립트, 소스, 자막, 배경음악을 포함한 고화질 숏폼 영상을 자동 생성하는 오픈소스 도구입니다. MVC 아키텍처를 기반으로 다양한 LLM 및 TTS 모델 연동을 지원하며 배치 생성 기능을 제공합니다.
핵심 포인트
- 주제 입력만으로 영상 스크립트부터 합성까지 자동화
- OpenAI, Google Gemini, DeepSeek 등 다양한 LLM 연동 지원
- 9:16 및 16:9 고화질 해상도와 배치 생성 기능 지원
- Windows 원클릭 패키지 및 Docker를 통한 손쉬운 배포
단 하나의 비디오 주제 또는 키워드만 제공하면, 비디오 스크립트, 비디오 소스, 비디오 자막, 비디오 배경 음악을 자동으로 생성하여 고화질 숏폼 비디오를 합성할 수 있습니다.
- 완전한 MVC 아키텍처 (MVC Architecture), 명확한 코드 구조로 유지보수가 용이하며
API및Web 인터페이스 (Web Interface)를 지원합니다. - 비디오 스크립트 AI 자동 생성을 지원하며, 사용자 정의 스크립트도 가능합니다.
- 다양한 고화질 비디오 사이즈를 지원합니다.
- 세로형 9:16,
1080x1920 - 가로형 16:9,
1920x1080 - 세로형 9:16
- 세로형 9:16,
- **배치 비디오 생성 (Batch Video Generation)**을 지원하여 한 번에 여러 비디오를 생성한 후 가장 만족스러운 것을 선택할 수 있습니다.
- 비디오 클립 길이 설정을 지원하여 소스 전환 빈도를 조절하기 편리합니다.
- 중국어 및 영어 비디오 스크립트를 지원합니다.
- 다양한 음성 합성을 지원하며, 효과를 실시간으로 미리 듣기 할 수 있습니다.
- 자막 생성을 지원하며,
글꼴 (Font),위치 (Position),색상 (Color),크기 (Size)를 조정할 수 있고,자막 외곽선 (Subtitle Stroke)설정도 지원합니다. - **배경 음악 (BGM)**은 랜덤 또는 지정된 음악 파일을 사용할 수 있으며,
배경 음악 볼륨을 설정할 수 있습니다. - 비디오 소스는 고화질이면서 저작권이 없으며, 사용자의 로컬 소스를 사용할 수도 있습니다.
- OpenAI, Moonshot, Azure, gpt4free, one-api, 통의천문 (Tongyi Qianwen), Google Gemini, Ollama, DeepSeek, MiniMax, 문심이언 (ERNIE Bot), Pollinations, ModelScope 등 다양한 모델 연동을 지원합니다.
- 중국 사용자는 대규모 언어 모델 (LLM) 제공업체로 DeepSeek 또는 Moonshot을 사용하는 것을 권장합니다 (중국 내에서 직접 접속 가능하며 VPN이 필요하지 않습니다. 가입 시 제공되는 크레딧으로 충분히 사용 가능합니다).
- 중국 사용자는 더 실제적인 합성 음성을 위해 다음을 권장합니다.
|---|---|
| ## demo-portrait-1.mp4 | ## default.mp4 |
| ## demo-portrait-2.mp4 | ## demo-landscape.mp4 |
| ## demo-landscape-2.mp4 | |
- 권장 시스템: Windows 10 또는 MacOS 11.0 이상, 또는 주요 Linux 배포판
- GPU가 필수 사항은 아니지만, 로컬 전사 (Transcription), 더 빠른 비디오 처리 또는 더 원활한 배치 생성 경험을 원한다면 비디오 메모리(VRAM)가 있는 독립 그래픽 카드를 사용하는 것을 권장합니다.
| 항목 | 최소 사양 | 권장 사양 | 이상적 사양 |
|---|---|---|---|
| CPU | 4 코어 | 6 ~ 8 코어 | 8 코어 이상 |
| ... |
-
주로 클라우드 LLM, 클라우드 TTS 및 온라인 소스에 의존한다면 GPU보다 CPU와 메모리가 더 중요합니다.
-
faster-whisper를 활성화하거나, 배치 생성 또는 더 무거운 로컬 처리 파이프라인을 사용하는 경우 GPU가 속도를 크게 향상시킵니다. -
Windows 사용자: 빠른 체험을 위해 원클릭 실행 패키지 사용을 우선 권장합니다.
-
MacOS / Linux 사용자: 로컬 배포를 위해
uv sync --frozen사용을 우선 권장합니다. -
실행 환경 격리를 원하는 경우: Docker 배포를 우선 권장합니다.
로컬 환경 설정 없이 Google Colab에서 MoneyPrinterTurbo를 빠르게 체험해 보세요.
원클릭 실행 패키지를 다운로드하여 압축을 풀고 바로 사용하세요 (경로에 중국어, 특수 문자, 공백이 포함되지 않도록 주의하세요).
현재 제공되는 설치 패키지는 여전히 v1.2.6의 구버전 패키징 버전이므로, 다운로드 후 update.bat를 먼저 실행하여 최신 코드로 업데이트하는 것을 권장합니다.
- 바이두 네트워크 디스크 (v1.2.6): https://pan.baidu.com/s/1wg0UaIyXpO3SqIpaq790SQ?pwd=sbqx 추출 코드: sbqx
- Google Drive (v1.2.6): https://drive.google.com/file/d/1HsbzfT7XunkrCrHw5ncUjFX8XX4zAuUh/view?usp=sharing
다운로드 후, update.bat를 더블 클릭하여 실행하여 최신 코드로 업데이트한 다음, start.bat를 더블 클릭하여 시작하세요.
시작하면 브라우저가 자동으로 열립니다 (만약 빈 화면이 나타나면 Chrome 또는 Edge로 열 것을 권장합니다).
- 예상치 못한 문제를 방지하기 위해 가급적 중국어 경로를 사용하지 마세요.
- 네트워크가 정상인지 확인하세요. VPN 사용 시
전체 트래픽 (Global Mode)모드를 켜야 합니다.
git clone https://github.com/harry0703/MoneyPrinterTurbo.git
config.example.toml파일을 복사하여config.toml로 이름을 변경하세요.config.toml에 따라...
파일 내의 설명을 따라 pexels_api_keys와 llm_provider를 설정하고, llm_provider에 해당하는 서비스 제공자에 맞춰 관련 API Key를 구성하세요.
Docker가 설치되어 있지 않다면 먼저 설치해 주세요: https://www.docker.com/products/docker-desktop/
Windows 시스템인 경우, Microsoft의 문서를 참고하세요:
- https://learn.microsoft.com/zh-cn/windows/wsl/install
- https://learn.microsoft.com/zh-cn/windows/wsl/tutorials/wsl-containers
cd MoneyPrinterTurbo
docker-compose up
주의: 최신 버전의 Docker는 설치 시 Docker Compose가 플러그인 형태로 자동 설치되므로, 실행 명령어를 docker compose up으로 조정해야 합니다.
브라우저를 열고 http://0.0.0.0:8501 에 접속하세요.
브라우저를 열고 http://0.0.0.0:8080/docs 또는 http://0.0.0.0:8080/redoc 에 접속하세요.
영상 튜토리얼
- 전체 사용 시연: https://v.douyin.com/iFhnwsKY/
- Windows에서 배포하는 방법: https://v.douyin.com/iFyjoW3M
Python 환경과 의존성 관리를 위해 uv 사용을 권장하며, 기본적으로 Python 3.11을 사용합니다.
git clone https://github.com/harry0703/MoneyPrinterTurbo.git
cd MoneyPrinterTurbo
uv python install 3.11
...
당분간 uv를 사용하지 않을 경우, venv + pip 방식을 계속 사용할 수도 있습니다.
python3.11 -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt
설명:
pyproject.toml은 주요 의존성 정의 파일입니다.
uv.lock은 잠금(lock) 파일이며, 기본적으로 uv sync --frozen을 실행하는 것을 권장합니다.
requirements.txt는 기존의 pip 설치 방식과의 호환성을 위해 유지됩니다.
Windows:
-
https://imagemagick.org/script/download.php 에서 Windows 버전을 다운로드하세요. 반드시 정적 라이브러리 (static library) 버전을 선택해야 합니다. 예: ImageMagick-7.1.1-32-Q16-x64-static.exe - 다운로드한 ImageMagick을 설치하세요. 설치 경로를 변경하지 않도록 주의하세요. -
설정 파일 config.toml내의imagemagick_path를 사용자의 실제 설치 경로로 수정하세요. -
https://imagemagick.org/script/download.php 에서 Windows 버전을 다운로드하세요. 반드시 선택해야 합니다.
MacOS:
brew install imagemagick
Ubuntu
sudo apt-get install imagemagick
CentOS
sudo yum install ImageMagick
주의: MoneyPrinterTurbo 프로젝트의 루트 디렉토리 (root directory)에서 다음 명령어를 실행해야 합니다.
uv run streamlit run ./webui/Main.py --browser.gatherUsageStats=False
이미 가상 환경을 수동으로 활성화했다면, 다음을 직접 실행할 수도 있습니다:
webui.bat
uv run streamlit run ./webui/Main.py --browser.gatherUsageStats=False
이미 가상 환경을 수동으로 활성화했다면, 다음을 직접 실행할 수도 있습니다:
sh webui.sh
실행 후 브라우저가 자동으로 열립니다 (만약 빈 화면이 나온다면, Chrome 또는 Edge로 여는 것을 권장합니다).
uv run python main.py
이미 가상 환경을 수동으로 활성화했다면, 다음을 직접 실행할 수도 있습니다:
python main.py
이 프로젝트의 배포 (deployment) 및 사용은 일부 초보 사용자들에게 어느 정도 진입 장벽이 있을 수 있습니다. 이에 대해 이 프로젝트를 기반으로 무료 AI 비디오 생성기 (AI Video Generator) 서비스를 제공하는 Luka (AI 지능형 멀티미디어 서비스 플랫폼) 웹사이트에 특별히 감사드립니다. 배포 없이 온라인에서 바로 편리하게 사용할 수 있습니다.
본 프로젝트가 지속적으로 업데이트되고 유지 관리될 수 있도록 지원과 후원을 제공해 주신 佐糖 (https://picwish.cn)에 감사드립니다.
佐糖은 이미지 처리 (Image Processing) 분야에 집중하며, 복잡한 작업을 극한으로 단순화하여 이미지 처리를 진정으로 더 쉽게 구현할 수 있는 풍부한 **이미지 처리 도구 (Image Processing Tools)**를 제공합니다.
실행 후, 다음 주소에서 API 문서 (API Documentation)를 확인하여 인터페이스를 직접 온라인으로 디버깅하고 빠르게 체험할 수 있습니다.
http://127.0.0.1:8080/docs 또는 http://127.0.0.1:8080/redoc
지원되는 모든 음성 목록은 다음에서 확인할 수 있습니다: [음성 목록]
2024-04-16 v1.1.2 업데이트: 9종의 Azure 음성 합성 (Speech Synthesis) 음성이 추가되었습니다. 더 사실적인 음성 합성을 위해 API KEY 설정이 필요합니다.
현재 2가지 자막 생성 방식을 지원합니다:
edge: 생성 속도가 빠름. 성능이 더 좋고 컴퓨터 사양에 대한 요구사항이 없지만, 품질이 불안정할 수 있습니다.
whisper: 생성 속도가 느림. 성능이 낮고 컴퓨터 사양에 대한 일정 수준의 요구사항이 있지만, 품질이 더 신뢰할 수 있음.
config.toml 설정 파일의 subtitle_provider를 수정하여 전환할 수 있습니다.
edge 모드 사용을 권장하며, 생성된 자막 품질이 좋지 않을 경우 whisper 모드로 전환하십시오.
주의 사항:
- whisper 모드에서는 HuggingFace에서 약 3GB 크기의 모델 파일을 다운로드해야 하므로 네트워크 상태가 원활해야 합니다.
- 빈칸으로 둘 경우 자막을 생성하지 않습니다.
중국 내에서 HuggingFace 접속이 불가능한 경우, 다음 방법을 사용하여 whisper-large-v3 모델 파일을 다운로드할 수 있습니다.
다운로드 주소:
- 바이두 클라우드 (Baidu Netdisk): https://pan.baidu.com/s/11h3Q6tsDtjQKTjUu3sc5cA?pwd=xjs9
- 콰크 클라우드 (Quark Netdisk): https://pan.quark.cn/s/3ee3d991d64b
모델 다운로드 후 압축을 풀고, 전체 디렉토리를 .\\MoneyPrinterTurbo\\\models 안에 넣으십시오. 최종 파일 경로는 다음과 같아야 합니다: .\\MoneyPrinterTurbo\\\models\\\whisper-large-v3
MoneyPrinterTurbo
├─models
│ └─whisper-large-v3
...
비디오 배경 음악은 프로젝트의 resource/songs 디렉토리에 위치합니다.
현재 프로젝트에는 YouTube 영상에서 가져온 기본 음악들이 포함되어 있습니다. 저작권 침해 요소가 있을 경우 삭제해 주시기 바랍니다.
비디오 자막 렌더링(Rendering)용 폰트는 프로젝트의 resource/fonts 디렉토리에 위치하며, 본인의 폰트를 직접 넣을 수도 있습니다.
일반적으로 ffmpeg는 자동으로 다운로드되고 자동으로 감지됩니다. 하지만 환경 문제로 자동 다운로드가 되지 않을 경우 다음과 같은 오류가 발생할 수 있습니다:
RuntimeError: No ffmpeg exe could be found.
Install ffmpeg on your system, or set the IMAGEIO_FFMPEG_EXE environment variable.
이 경우 https://www.gyan.dev/ffmpeg/builds/ 에서 ffmpeg를 다운로드하여 압축을 푼 뒤, ffmpeg_path를 실제 설치 경로로 설정하십시오.
[app]
# 실제 경로에 따라 설정하십시오. Windows 경로 구분자는 \\ 임에 주의하십시오.
ffmpeg_path = "C:\\Users\\harry\\Downloads\\ffmpeg.exe"
ImageMagick의 설정 파일인 policy.xml에서 이러한 정책을 찾을 수 있습니다.
이 파일은 보통 /etc/ImageMagick-X/ 또는 ImageMagick 설치 디렉토리의 유사한 위치에 있습니다.
pattern="@"를 포함하는 항목을 수정하여 rights="none"을 rights="read|write"로 변경하면 파일 읽기/쓰기 권한을 허용할 수 있습니다.
이 문제는 시스템의 파일 오픈 제한(File Descriptor Limit)으로 인해 발생하며, 시스템의 파일 오픈 제한 수치를 수정하여 해결할 수 있습니다.
현재 제한 확인:
ulimit -n
제한이 너무 낮다면 ulimit -n 10240과 같이 높일 수 있습니다.
LocalEntryNotfoundEror: Cannot find an appropriate cached snapshotfolderfor the specified revision on the local disk and outgoing trafic has been disabled. To enablerepo look-ups and downloads online, pass 'local files only=False' as input.
또는
Hugging Face Hub에서 Systran/faster-whisper-large-v3 모델을 동기화하는 중 오류가 발생했습니다: Hub에서 파일을 찾는 도중 오류가 발생했으며, 지정된 리비전(revision)에 대한 적절한 스냅샷(snapshot) 폴더를 로컬 디스크에서 찾을 수 없습니다. 인터넷 연결을 확인하고 다시 시도해 주세요. 로컬 캐시(local cache)에 모델이 존재하는 경우, 캐시에서 직접 모델을 로드하려고 시도합니다.
해결 방법: [클릭하여 클라우드 드라이브에서 모델을 수동으로 다운로드하는 방법 확인]
- 이슈(issue)를 제출하거나 풀 리퀘스트(pull request)를 보낼 수 있습니다.
LICENSE 확인하기
파일
AI 자동 생성 콘텐츠
본 콘텐츠는 GitHub Trending Python (daily)의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기