Bối cảnh
Media Studio là công cụ mình tự làm để sản xuất nội dung review thiết bị công nghệ: bộ ảnh sản phẩm, banner, ảnh bìa, biểu đồ benchmark, kịch bản, giọng đọc và video. Đây là dự án của chính mình, không có khách nào bị nêu tên. Nó chạy trên một máy Mac ở nhà, mở từ xa qua HTTPS có đăng nhập, và mọi tính năng đều gọi được bằng REST API để các pipeline viết bài tự lấy ảnh và video.
Những bản đầu ra mắt vào khoảng tháng 6 đến tháng 7 năm 2026. Đến ngày 07/11/2026, công cụ ở bản 1.15.50 và vẫn được dùng hằng ngày. Ảnh được vẽ bằng GPT Image 2 qua Codex nên không cần khoá API riêng, hết hạn mức thì tự chuyển sang Nano Banana của Gemini.
Phân vai: mình lên kế hoạch, định hướng, thiết kế kiến trúc, vận hành và kiểm thử. Claude viết code theo kế hoạch và kiến trúc đó, Gemini (qua Antigravity) chỉnh giao diện, Codex review code và góp ý về lỗi.

Thách thức
Một bài review thiết bị cần rất nhiều thứ: bộ ảnh cùng phong cách, ảnh bìa, banner so sánh, biểu đồ benchmark, kịch bản, giọng đọc và video. Mỗi việc nằm ở một công cụ riêng, nên làm một bài mất nhiều lượt chuyển qua lại.
Ba chỗ hay hỏng nhất. AI vẽ lại bàn phím, cổng kết nối và logo sai so với thiết bị thật. Chữ tiếng Việt trên ảnh hay rơi dấu. Và số liệu benchmark thường phải tra tay, dễ nhầm.
Ràng buộc có ba. Một người làm. Các engine tạo ảnh có hạn mức, hết là báo lỗi. Và nội dung review không được bịa số, nên nếu không có số thật thì phải bỏ cảnh đó đi.
Cách làm
1. Để máy chấm điểm ảnh AI, rồi vẽ lại
Thay vì tin mắt từng ảnh, mình cho mỗi ảnh AI vẽ ra được so với ảnh gốc của thiết bị. Một AI khác (hiện là Gemini) chấm hình dáng, màn hình, chữ trên phím, cổng và logo, cho điểm khớp từ 0 đến 100. Chưa đạt ngưỡng 85 thì vẽ lại, lặp 2 đến 4 vòng, rồi giữ bản điểm cao nhất, không phải bản vẽ sau cùng.

2. Banner dựng thành từng lớp
Mình làm lại banner theo kiểu tách lớp: AI vẽ nền và chữ tiêu đề, còn ảnh thiết bị là ảnh gốc được ghép vào sau, nên không bị vẽ sai. Chữ tiếng Việt được OCR đọc lại. Sai một dấu thì vẽ lại, hoặc chuyển sang chữ HTML.
3. Mỗi engine có một đường dự phòng
Engine tạo ảnh chính hết hạn mức thì ảnh sau được gửi thẳng sang engine dự phòng cho tới khi hạn mức làm mới, không tốn thêm yêu cầu hỏng. Cả hai cùng cạn thì app trả lỗi 503 kèm thời gian chờ. Việc chữ và nhìn ảnh (chấm điểm, viết kịch bản) chạy bằng Gemini, để hạn mức vẽ ảnh chỉ dành cho việc vẽ.
Các việc khác cũng xếp hàng dự phòng. Phóng ảnh: UltraSharpV2, rồi Real-ESRGAN, rồi Lanczos. Tách nền: BiRefNet, rồi Photoshop, rồi rembg, rồi macOS Vision. Ảnh tách nền bị coi là hỏng nếu mất quá 6% thân máy, có lỗ kín, hoặc vỡ thành nhiều mảnh, và khi đó engine kế tiếp được thử.

4. Chỉ dùng số thật
Biểu đồ và cảnh benchmark dựng từ bộ CSV của NotebookCheck, và điểm render 3D lấy từ Blender Open Data (462 GPU và 1.123 CPU, giấy phép CC0). Không có số thì bỏ cảnh, không bịa. Giọng đọc được dò từng từ bằng nhận dạng giọng chạy trên máy, nên thông số hiện đúng lúc giọng đọc nhắc tới.
5. Biến thành API cho pipeline
Các việc lâu như bộ ảnh review (4 đến 5 phút) hay dựng video dễ bị ngắt kết nối giữa chừng. Nên API có job chạy nền và khoá chống tạo trùng: gọi lại cùng khoá thì nhận kết quả cũ, không vẽ thêm. API khoá sẵn nếu chưa tạo key nào. Từ ngày 22/10/2026, một link sản phẩm cho ra 5 bản video cho YouTube, Shorts, Facebook, Reels và TikTok, từ một kịch bản và một lần đọc giọng. Bộ kiểm thử tự động 48 mục chạy sau mỗi lần sửa mà không tốn hạn mức vẽ ảnh.
Kết quả
Các số dưới đây lấy từ trang dự án, nhật ký phiên bản và tài liệu của chính công cụ, kèm ngày ghi. Điểm khớp ảnh là điểm do AI chấm, không phải người chấm.
Điểm do một AI chấm so với ảnh gốc của thiết bị (hình dáng, màn hình, chữ trên phím, cổng, logo). Trước: vẽ một lần. Sau: vẽ lại 2 đến 4 vòng và giữ bản cao nhất. Nhật ký phiên bản 1.8 ngày 26/08/2026 ghi sau khi sửa là 89 đến 92; biểu đồ lấy mức thấp 89. Giới hạn: điểm do máy chấm, chưa có người chấm song song.
Sau khi thêm bước kiểm chất lượng (bản 1.13.2, 17/10/2026), 5 ảnh bị rembg đục lỗ đều được thay bằng bản sạch từ engine khác. Ảnh bị coi là hỏng khi mất quá 6% thân máy, có lỗ kín hoặc vỡ nhiều mảnh. Giới hạn: bộ 23 ảnh thử nhỏ, số này là kết quả trên chính bộ đó.
Ảnh studio đi từ 72 lên 89 đến 92 điểm khớp sau khi có vòng tự chấm và sửa (26/08/2026). Thư viện đã có 4.721 ảnh ngày 18/10/2026, trong một bảng điều khiển gồm 9 công cụ và một thư viện. Khi đổi sang UltraSharpV2 để phóng ảnh (16 đến 17/10/2026), nó thắng Real-ESRGAN trên 10 trên 10 ảnh thử, với PSNR (độ sát điểm ảnh) cao hơn từ 2,7 đến 4,9 dB, và giữ đúng chữ trên phím và chữ trên biểu đồ.
Có hai điều mình chưa làm được. Mình chưa đo thời gian hay chi phí tiết kiệm được so với làm tay, nên không có con số đó. Và 4.721 là số ảnh đã tạo ra chứ không phải số ảnh được dùng: nhiều ảnh là bản thử bị bỏ.
Bài học
Để máy chấm trước khi người xem. Một vòng chấm điểm tự động biến "ảnh AI trông được" thành một con số theo dõi được, và nó là lý do ảnh studio lên được 89 đến 92.
Đừng để AI vẽ lại thứ không được sai. Ghép ảnh thiết bị gốc vào nền do AI vẽ cho kết quả đúng hơn bắt AI vẽ cả máy.
Mỗi engine cần một đường lùi. Hạn mức hết lúc nào không báo trước, nên chuyển engine phải là việc tự động, không phải việc của người đang chờ.
Số thật hoặc không có số. Với nội dung review, một cảnh thiếu số thì bỏ, còn hơn một cảnh đẹp mà sai.
Việc lâu phải chạy nền và gọi lại không được tạo trùng. Hai chi tiết nhỏ này quyết định pipeline tự động có chạy trơn hay không.
Cần việc tương tự?
Nếu bạn đang làm nhiều ảnh, banner hay video theo một khuôn lặp lại và muốn nối vào quy trình viết bài của mình, gửi mình vài dòng. Mình sẽ xem quy trình hiện tại trước, rồi nói rõ việc nào máy làm được, việc nào cần người duyệt.



