尚未检测到更新。GitHub 发布版本后会显示在这里。
个人 GitHub 账号下公开仓库的所有者可以登录并验证所有权,自行管理介绍,无需管理员批准。
登录并生成验证文件,在 30 分钟内将其提交到此仓库的默认分支。其他分支或分叉仓库中的文件无效。然后在下方检查文件,即可无需管理员批准直接管理项目。请保留文件以维持管理权限。
如需登录,将前往登录页面。登录后请回到此处,再次点击所选的验证按钮。
在项目文件夹中运行 /nomorevibe verify,即可验证所有权并自行管理介绍。
一分钟完成验证Manhwa Recap Studio — multi-source manhwa/manga scraper with VLM transcription, smart panel slicing, credit filtering, and narrated recap video generation
翻译准备中
取自仓库 README
正在加载完整 README。 以下为已保存的摘录。
title: Manhwa Recap Studio
emoji: 🎬
colorFrom: green
colorTo: purple
sdk: docker
app_port: 7860
pinned: false
Auto-scrape manhwa/manga/webtoon chapters, transcribe panel text with
RapidOCR (PP-OCRv5, ONNXRuntime) as the primary transcriptor (no API
keys, no PaddlePaddle framework dependency) with PaddleOCR PP-OCRv4 as
a fallback tier (x86 only) and VLM as a last resort, translate to English,
and render a narrated recap video with text-to-speech audio.
Self-hosting on a VM (the current production setup)查看完整 README ↗Auto-scrape manhwa/manga/webtoon chapters, transcribe panel text with RapidOCR (PP-OCRv5, ONNXRuntime) as the primary transcriptor (no API keys, no PaddlePaddle framework dependency) with PaddleOCR PP-OCRv4 as a fallback tier (x86 only) and VLM as a last resort, translate to English, and render a narrated recap video with text-to-speech audio.
This is how the project actually runs in production (Oracle Cloud VM, x86 or ARM). One script does everything:
git clone <this-repo-url> manhwa-recap-studio && cd manhwa-recap-studio
SKIP_OLLAMA=1 ./setup.sh # drop SKIP_OLLAMA on an 8GB+ box if you want local LLMs
# paste secrets into .env (only if you want cloud VLM — the default OCR flow needs none)
setup.sh installs system packages, the Python venv (RapidOCR + optional
PaddleOCR), Bun deps, Piper TTS, Caddy, the systemd unit, builds the Next.js
bundle, and starts everything. It is idempotent — re-run it any time.
Moving to a fresh instance (incl. ARM): see MIGRATION.md.
It covers the aarch64 specifics (PaddleOCR skipped, RapidOCR is primary) and
what to carry over from an old box (db/custom.db, data/, .env secrets).
The Docker / Hugging Face Spaces path below still works but is not how the current deployment runs.
See DEPLOYMENT.md for the full guide. Short version:
manhwa-recap-studiohttps://yourname-manhwa-recap-studio.hf.spaceNo environment variables required to start. Add MEGA_EMAIL / MEGA_PASSWORD
(optional) for cloud archive to Mega (20 GB free).
| Service | Port | Purpose |
|---|---|---|
| Next.js (standalone) | 3000 | Frontend + API routes |
| Pipeline-service | 3001 | Job queue + VLM fallback + socket.io |
| PaddleOCR service | 3002 | RapidOCR PP-OCRv6 (primary) + PaddleOCR PP-OCRv4 (fallback) OCR engine |
| Caddy | 7860 | Reverse proxy (HF Spaces entry point) |
| Variable | Purpose |
|---|---|
MEGA_EMAIL | Mega cloud archive (20 GB free) |
MEGA_PASSWORD | Mega cloud archive |
GROQ_API_KEY | Better narration/translation (free at console.groq.com/keys) |
AUTO_ARCHIVE | true (default) to auto-upload videos to Mega |
Production mode is local-first and does not require edge-tts, OpenAI, or any cloud TTS API. The supported Oracle layout uses an isolated Python 3.10.4 runtime (do not replace /usr/bin/python3) and a dedicated virtual environment:
/opt/python3.10/bin/python3.10 -m venv /opt/manhwa-recap-studio/.venv
source /opt/manhwa-recap-studio/.venv/bin/activate
python --version # Python 3.10.4
pip install -r pipeline/requirements.txt
pip install -r mini-services/paddleocr-service/requirements.txt
pip install --no-deps rapidocr==3.9.2
Required local binaries for production are ffmpeg, ffprobe, piper, and espeak-ng (or espeak). Set a small CPU-friendly English Piper voice with PIPER_VOICE_MODEL=/opt/piper/voices/en_US-lessac-medium.onnx (or PIPER_VOICE). The production TTS cascade is Piper, Piper retry, then eSpeak NG; non-empty narration is never converted to successful silence.
Production validation commands:
PYTHONPATH=. python pipeline/production_canary.py --work-dir /tmp/mrs-canary --job-id canary
PYTHONPATH=. python pipeline/crash_resume_harness.py --work-dir /tmp/mrs-crash-tts --job-id crash-tts --stage TTS
The SQLite state database is stored under the chosen work directory as state.sqlite; temporary artifacts, promoted artifacts, and quarantined artifacts live under tmp/, artifacts/, and quarantine/ in that work directory.