YAML Metadata Warning:empty or missing yaml metadata in repo card

Check out the documentation for more information.

ReupFlow — Hybrid AutoReup Studio

MVP điều phối quy trình phát hiện, duyệt, dịch, lồng tiếng, dựng và đăng lại video theo đặc tả trong duan.md. Hệ thống ưu tiên chạy local, các tác vụ ngôn ngữ dùng cloud API và các tác vụ media chạy bằng Python/FFmpeg.

Chức năng đã có

  • Dashboard React responsive: video chờ duyệt, trạng thái pipeline, Manual/Auto, log realtime.
  • Trình sửa phụ đề theo timeline, lưu nháp và duyệt để chuyển từ Light Queue sang Heavy Queue.
  • Giao diện quản trị đầy đủ cho thư viện, chiến dịch, kênh theo dõi, hàng đợi, voice và trạng thái cấu hình.
  • Chọn voice riêng cho từng video trước khi duyệt hoặc ngay trong trình sửa phụ đề; lựa chọn được lưu xuống database và truyền tới worker tạo giọng.
  • KhanhTTS OmniVoice chạy local bằng môi trường Python/CUDA riêng, hỗ trợ voice design và voice cloning trên GPU.
  • REST API + Socket.IO, Prisma và cơ sở dữ liệu SQLite cho Campaign, Channel, Video, Job, Subtitle.
  • BullMQ/Redis tùy chọn, có retry và giới hạn Heavy Worker; fallback bất đồng bộ nội bộ khi chưa chạy Redis.
  • Python workers độc lập: tải video, tách audio, Groq Whisper, Gemini, Edge TTS, FFmpeg và Playwright.
  • Downloader ưu tiên nền tảng Trung Quốc: Bilibili, Douyin, Kuaishou, Xiaohongshu, Weibo, Youku, iQIYI, Tencent Video và Xigua/Toutiao. yt-dlp chạy trước, Lux tự động fallback nếu extractor thất bại.
  • Thông báo Telegram tùy chọn và chế độ DRY_RUN để thử toàn bộ luồng không tốn API/GPU.

Chạy nhanh (Windows)

Yêu cầu Node.js 20+, npm và Python 3.10+. Với chế độ demo, chưa cần FFmpeg hay Redis.

Copy-Item .env.example .env
npm install
npm run db:push
npm run dev

Mở http://localhost:5173. API chạy tại http://localhost:4000. Dữ liệu mẫu được tạo ở lần chạy đầu; bấm Xác nhận Reup, chờ vài giây, sau đó mở trình biên tập và duyệt sản xuất để thử trọn pipeline.

Nếu dùng bộ công cụ portable đã cài trong .tools trên Windows, bạn có thể khởi chạy dự án bằng lệnh sau (để vượt qua chính sách chặn script của PowerShell):

powershell -ExecutionPolicy Bypass -File .\start-local.ps1

Build lại bằng lệnh tương tự với file build-local.ps1. Không cần thêm Node.js hoặc Python vào PATH của hệ thống.

Bật xử lý thật

  1. Cài Python packages: pip install -r 3_Local_Workers/requirements.txt.
  2. Cài FFmpeg và bảo đảm lệnh ffmpeg có trong PATH.
  3. Điền GROQ_API_KEY, GEMINI_API_KEY trong .env.
  4. Đặt DRY_RUN=false.
  5. Nếu dùng hàng đợi bền vững, chạy docker compose up -d redis và đặt USE_REDIS=true.
  6. Nếu đăng tự động, chạy playwright install chromium, đăng nhập một lần trong thư mục session và hoàn thiện selector theo nền tảng mục tiêu.

Cookie và proxy cho nền tảng Trung Quốc

Xuất cookie đăng nhập theo định dạng Netscape vào 4_Storage_Data/f_browser_sessions/china-cookies.txt. Cookie thường cần cho Bilibili 1080p+, Douyin/Xigua, Youku và nội dung yêu cầu đăng nhập. Không commit hoặc chia sẻ file này.

Nếu nền tảng giới hạn vị trí địa lý, đặt proxy trong .env:

CHINA_PROXY_URL=http://user:password@host:port

Dashboard chấp nhận cả URL thuần lẫn toàn bộ đoạn nội dung được sao chép từ nút Share của ứng dụng Trung Quốc.

Auto upload được để ở trạng thái an toàn: worker mở đúng persistent browser session nhưng không tự bấm Publish cho đến khi selector và chính sách của nền tảng được cấu hình. Điều này tránh đăng nhầm trong lần khởi động đầu tiên.

Cấu trúc

1_Frontend_React/   React + TypeScript + Socket.IO client
2_Backend_API/      Express + Prisma + BullMQ + Socket.IO
3_Local_Workers/    Các bước pipeline Python 00–06
4_Storage_Data/     Raw, audio, subtitle, voice, export, browser session

Cấu hình quan trọng

Biến Mặc định Ý nghĩa
DRY_RUN true Mô phỏng worker, không tải/gọi API/đăng bài
USE_REDIS false Bật BullMQ và log Redis
HEAVY_CONCURRENCY 1 Số video dựng đồng thời
DATABASE_URL file:./dev.db Database cho Prisma
PYTHON_BIN python Lệnh Python backend sử dụng
FRONTEND_URL http://localhost:5173 Origin được phép kết nối API/socket

Lưu ý production

  • Chuyển Prisma datasource sang PostgreSQL khi triển khai nhiều máy; SQLite phù hợp cho studio một máy/MVP.
  • RVC cần được nối qua model .pth cụ thể và runtime tương ứng GPU; worker hiện tạo giọng nền Edge TTS trước.
  • YouTube/TikTok có điều khoản và cơ chế kiểm duyệt riêng. Chỉ xử lý nội dung bạn có quyền sử dụng và ưu tiên API upload chính thức khi có thể.

OmniVoice Original local

Weights chính thức k2-fsa/OmniVoice nằm tại OmniVoice-model/; mã nguồn tham khảo nằm tại OmniVoice/. Runtime Python/CUDA hiện được giữ trong .tools/khanhtts/ để không phải tải lại PyTorch, nhưng inference sử dụng model gốc.

Các biến quan trọng trong .env:

OMNIVOICE_PYTHON=D:\reupvideo\.tools\khanhtts\python\python.exe
OMNIVOICE_MODEL_PATH=D:\reupvideo\OmniVoice-model
OMNIVOICE_NUM_STEPS=20
OMNIVOICE_DURATION_PADDING=1.12
OMNIVOICE_CHUNK_DURATION=12
OMNIVOICE_INSTRUCT=female, young adult, moderate pitch

Để clone một giọng đã được cho phép sử dụng, đặt audio tham chiếu 3–10 giây và transcript chính xác:

OMNIVOICE_REF_AUDIO=D:\duong-dan\reference.wav
OMNIVOICE_REF_TEXT=Nội dung được đọc chính xác trong file tham chiếu.

Worker dùng bộ ước lượng thời lượng của OmniVoice và chia đoạn dài để hạn chế lặp từ, nuốt chữ hoặc đổi giọng giữa video.

Trong màn Mô hình giọng:

  • Voice Design tạo profile từ giới tính, độ tuổi, cao độ, kiểu đọc và accent được OmniVoice hỗ trợ.
  • Clone giọng nhận audio WAV/MP3/M4A/FLAC/OGG và transcript chính xác. Audio được lưu local trong 4_Storage_Data/g_voice_references/.
  • Voice profile mới tự động xuất hiện trong bộ chọn voice khi nhập video, duyệt video và chỉnh phụ đề.

Chỉ clone giọng khi có quyền và sự đồng ý hợp pháp của người sở hữu giọng nói. # reupvideo

Downloads last month

-

Downloads are not tracked for this model. How to track
Inference Providers NEW
This model isn't deployed by any Inference Provider. 🙋 Ask for provider support