---
title: "Kiến trúc & engine AI"
url: https://phatdev.net/docs/media-studio/kien-truc
lang: vi
updated: 2026-10-20
alternate:
  en: https://phatdev.net/en/docs/media-studio/kien-truc
markdown: https://phatdev.net/docs/media-studio/kien-truc.md
---

# Kiến trúc & engine AI

Thuộc bộ tài liệu: [Media Studio](https://phatdev.net/docs/media-studio.md)

> Engine nào làm việc gì, cách tự dự phòng khi hết hạn mức, nguồn dữ liệu benchmark.

Media Studio là một server **Node.js (Express)** chạy trên một máy Mac riêng, giao diện web HTML/CSS/JS thuần, truy cập từ xa qua HTTPS có đăng nhập. Mỗi loại việc được giao cho engine phù hợp nhất, và **mọi engine trả phí/giới hạn đều có đường dự phòng**.

## Bản đồ engine

| Việc | Engine chính | Dự phòng |
|---|---|---|
| Tạo ảnh | **GPT Image 2** | **Nano Banana** (Gemini) - tự chuyển khi engine chính hết hạn mức |
| Viết kịch bản, chấm điểm ảnh, đọc góc chụp / ánh sáng | **Gemini** | Engine tạo ảnh chính |
| Tra web (benchmark, cấu hình) | Gemini web search | Đọc tên linh kiện ngay trong trang sản phẩm + DB NotebookCheck |
| Tách nền | rembg (isnet) | macOS Vision → tách theo màu nền → Photoshop Select Subject |
| Upscale / làm nét | **UltraSharpV2** (chạy trên GPU Mac) | Real-ESRGAN → Lanczos |
| Giọng đọc | **Gemini TTS** (giọng mặc định *Charon*) | VieNeu on-device → Edge TTS |
| Nhận dạng giọng (phụ đề, mốc thời gian) | faster-whisper (chạy máy) | - |
| Dựng video | **Remotion 4** (React) + FFmpeg | - |
| Render banner | Chrome headless-shell (puppeteer) | Tự khởi động lại Chrome khi treo |
| Nén ảnh | TinyPNG (xoay nhiều key theo tháng) | - |

## Nguyên tắc chia hạn mức

- **Hạn mức của engine tạo ảnh dành riêng cho việc vẽ.** Việc chữ và "nhìn ảnh" (chấm điểm, viết kịch bản, phân tích ánh sáng) chạy bằng Gemini - hạn mức tách riêng, không ăn vào hạn mức vẽ.
- **Hết hạn mức thì không cố.** Khi engine chính báo quá giới hạn (429), app nhớ mốc reset và gửi thẳng các ảnh sau sang Nano Banana tới khi reset - không tốn request hỏng. Cả hai engine cùng cạn → trả `503` kèm thời gian chờ.
- **Pipeline cần đúng ảnh của engine chính** có thể gửi header `x-engine` (giá trị xem ở `GET /api/v1/info`) để không bao giờ nhận ảnh từ engine dự phòng.

## Dữ liệu benchmark

Điểm CPU/GPU/FPS game dựng từ bộ CSV NotebookCheck, điểm render 3D lấy từ **Blender Open Data** (CC0, 462 GPU + 1.123 CPU). Video và biểu đồ **chỉ dùng số thật** từ các nguồn này; không có số thì bỏ cảnh chứ không bịa.

## Địa chỉ

- **media.phatdev.net** - Media Studio (cần tài khoản).
