How I made "the friend 2" - AI short film
2023, một buổi chiều thứ Sáu ở văn phòng. Hôm đó còn ít việc để làm mà lỡ uống hơi nhiều cà phê, thế là mình và team quyết định làm một phim ngắn trong ngày. Mình ngẩng lên thì thấy một chiếc mặt nạ tinh tinh và một con thỏ bông nằm trên bàn (đừng hỏi vì sao). Và phim ngắn “the friend” ra đời.
Tua nhanh đến 2026, mình muốn test thử một số phần mềm làm video AI, một phần vì muốn nắm bắt xu thế, nhưng nhiều phần do FOMO. Lúc nghĩ xem nên làm phim chủ đề gì, mình nhớ lại bộ phim ngắn cũ ở văn phòng. Có vài thứ trong đó mình vẫn thấy thích, nên quyết định làm phần tiếp theo.
The Friend 2 là một phim ngắn không thoại, dài khoảng 1 phút 40 giây, được tạo hoàn toàn bằng AI. Tổng chi phí khoảng hai tháng tiền credit (tầm 2 triệu đồng), không ê-kíp.
Sau vài tháng thử nghiệm, mình tổng hợp quy trình mình làm ở đây. Cũng phải nói rõ rằng đây là quy trình mình tự thử nghiệm, không phải quy trình chung hay chuẩn gì cả, và quy trình này mình tối ưu cho 2 mục tiêu: một là nhân vật trông thật và xuyên suốt, hai là tiết kiệm chi phí. AI thay đổi gần như mỗi tháng, và chắc một năm nữa nhìn lại mình sẽ thấy những gì viết ở đây không còn đúng. Cứ coi đây như ghi chép làm nghề của một người vẫn đang học thôi nhé.
Ý tưởng
Phim the friend 1 nói về một mối quan hệ đồng nghiệp. Hai người ngồi cạnh nhau trong văn phòng, bất đồng gần như mọi thứ, kiểu mâu thuẫn rất thường gặp khi bạn làm việc với một người mỗi ngày.
Đến phần hai, mình đẩy thời gian đi thêm tầm 10-20 năm. Cả hai đều già hơn, và không còn ở cạnh nhau nữa. Con khỉ không còn phải chịu cái bực bội mỗi ngày khi làm việc với thỏ. Nhưng nó cũng không còn người bạn ấy bên cạnh.
Hai nhân vật này cũng tình cờ rất hợp với AI. Một người đeo mặt nạ tinh tinh và một con thỏ bông biết chuyển động là thứ cực kỳ tốn tiền nếu quay live action. Làm 3D hay prosthetic thì đội ngân sách lên nhiều lắm, còn AI thì gần như đưa chi phí đó về không.

Nên đây không chỉ là một bộ phim làm bằng AI, mà là một bộ phim khả thi nhờ AI. Đó là lý do chính mình chọn nó để thử nghiệm.
Viết kịch bản mất thời gian hơn mình tính. Vì cả bộ phim là về sự cô đơn, câu hỏi đặt ra là làm sao thể hiện sự cô đơn tăng dần khi cái nét mặt buồn bã chỉ có một, và cũng không nên cảnh nào cũng sử dụng. Dành mấy tháng mà vẫn chưa ưng kịch bản, xong mình nghĩ, phim đầu tiên mình làm trong có một ngày, phim này mình muốn thử nghiệm với AI, không thể quá cầu toàn như vậy được. Cuối cùng thì các beat chính của bộ phim cũng được lock: mở đầu, giới thiệu nhân vật (và sự trống vắng khi không có thỏ), giữa phim là nỗi cô đơn tăng dần, thông qua việc thêm người vào khung hình, trong khi kết nối thì ít đi. Kết phim là thỏ xuất hiện y như cái cách thỏ xuất hiện ở the friend 1.
Giờ bắt tay vào generate. Mình làm ở Higgsfield Cinema Studio.
Bước 1: Reference assets
Pipeline của mình khá đơn giản: reference assets → storyboard → first frame → video.
Mình tạo reference sheet cho nhân vật (khỉ, thỏ, ông lão đánh cờ, nhóm bạn karaoke), rồi bối cảnh (phòng làm việc, chess club, xe buýt, phòng karaoke, rooftop, phòng chơi game) rồi cuối cùng là mấy món đạo cụ xuất hiện nhiều nhất (tay cầm chơi game, ảnh polaroid, cốc cà phê, micro, ba lô, bộ cờ vua).
Với nhân vật, mình không làm mấy cái sheet nhiều góc cầu kỳ như hay thấy mọi người chia sẻ. Thử nhiều rồi mình thấy chỉ cần 3 khung là đủ, mà thậm chí còn ổn định hơn: cận mặt, toàn thân chính diện, toàn thân từ phía sau. Nền xám. Ánh sáng đều. Càng ít thông tin thừa càng tốt.

Có một phát hiện thú vị ở bước này. Ban đầu mình thiết kế con khỉ giống hệt Planet of the Apes, một con tinh tinh hoàn chỉnh. Ảnh tĩnh nhìn rất ổn. Nhưng đến lúc animate thì có gì đó sai sai. Nó kém thú vị hơn, kém đáng yêu hơn, mà mình cũng không giải thích được sao.
Đến khi thử version người, đeo mặt nạ tinh tinh (như cái phim trước), mọi thứ mới khớp. Nó lạ là mà hay hay, rất riêng.
Bài học: mình không thể đánh giá nhân vật chính bằng một tấm ảnh, nên generate thử vài frame chuyển động.
Bước 2: Storyboard
Đây có lẽ là thứ giúp mình tiết kiệm nhiều tiền nhất trong cả quy trình.
Thay vì generate từng first frame riêng lẻ, mình tạo storyboard 9 khung cho mỗi cảnh, một lưới 3×3 gồm chín góc máy liên tiếp, rồi mới chọn frame đẹp nhất mang đi animate.

Lý do đơn giản thôi. Thứ nhất, nó rẻ hơn: một lần generate được chín khung. Thứ hai, và quan trọng hơn, cả chín frame sinh ra trong cùng một lượt nên ánh sáng, màu, bối cảnh gần như đồng nhất. Generate từng ảnh riêng thì AI luôn trôi đi một chút: căn phòng hơi khác, ánh sáng đổi nhẹ, màu tường lệch đi. Người xem có thể không chỉ ra được, nhưng sẽ cảm thấy bộ phim thiếu liền mạch. Kéo hết frame từ cùng một storyboard thì continuity gần như có sẵn.
Thật ra bây giờ còn một cách khác. Seedance và vài model mới đã generate được clip dài tới 30 giây. Bạn có thể thiết kế nhiều góc máy trong cùng một video rồi cắt ra lúc dựng, continuity gần như hoàn hảo vì tất cả đến từ một lần generate. Đổi lại, bạn mất nhiều quyền kiểm soát bố cục từng shot hơn, và tốn credit hơn.
Bước 3: Tạo video
Đến phần animate, mình chủ yếu dùng Seedance và Kling, hai model rẻ mà vẫn ngon nhất ở thời điểm này.
Workflow gần như luôn là image-to-video. Mình không bao giờ gõ một prompt từ đầu rồi hy vọng AI hiểu. Mình luôn bắt đầu từ một first frame đã art direct sẵn, rồi mới đưa vào model để tạo chuyển động. Lý do rất thực tế: càng quyết định nhiều thứ ở bước hình ảnh, càng phải reroll ít ở bước video. Mà reroll video mới là thứ đốt credit nhanh nhất.
Hit rate của mình khoảng 4-5 lần generate mới được một shot dùng được. Tính cả dự án, mình tạo hơn 400 asset cho khoảng 21 góc máy trong bản dựng cuối.
Có 2 yếu tố quyết định một phim AI có bị lộ là AI hay không, ít nhất là theo trải nghiệm của mình.
1. Da. Da quá mịn, bóng như sáp, là dấu hiệu số một. Giữa dự án mình đổi luôn image model cũng vì chuyện này. Ban đầu mình đinh ninh Nano Banana Pro là ngon nhất, nhưng GPT Image 2.0 hiểu ý mình tốt hơn hẳn, bố cục và ánh sáng chắc tay hơn, và trên hết là chi tiết da. Kể cả trên một cái mặt nạ latex, khác biệt vẫn thấy được. ( mặc dù GPT Image thích đẩy contrast mạnh hơn gu mình, nhưng về tổng thể thì mình đánh giá là ok hơn).
2. Chuyển động máy quay. AI cực kỳ thích lia máy. Prompt nào cũng dễ biến thành mấy cú dolly mượt như game cinematic, trong khi máy quay thật thì tiết chế hơn nhiều. Nên phần lớn phim mình giữ máy gần như đứng yên, chỉ những khoảnh khắc quan trọng mới có một cú push in hay pull out thật chậm. Mà kể cả vậy mình vẫn phải vật nhau với model vì nó cứ muốn zoom nhanh. Mình còn phải ghi rõ trong prompt kiểu "slow push, tốc độ tầm 0.2-0.3 km/h" để ra được thứ giống một cái máy quay thật, thay vì một cú bay lượn trong game. Nghe hơi buồn cười, nhưng không ghi rõ là nó zoom nhanh ngay.
Bước 4: Dựng phim
Một tip mình học được sau khi làm bộ phim này: khi mỗi shot được generate độc lập, chuyển động sẽ luôn bị gãy.
Cách giải quyết là generate chồng hành động vào đầu clip sau. Để mình giải thích:
Ví dụ cảnh chơi cờ có ba shot: cận bàn tay đi nước chiếu hết, hai người bắt tay, rồi toàn cảnh người đàn ông đứng dậy bước đi. Về lý thuyết, shot rộng chỉ cần cảnh ông ấy rời đi. Nhưng mình vẫn generate thêm vài giây đầu với động tác bắt tay vẫn đang diễn ra. Cái bắt tay đó không thực sự "cần" trong shot rộng. Nhưng nhờ nó, lúc dựng mình cắt được đúng giữa động tác bắt tay: hai bàn tay rời ra, người đàn ông đứng lên, chuyển động nối liền qua điểm cắt nên người xem gần như không thấy cú cắt.
Đây thực ra là một nguyên lý rất cũ của dựng phim: cut on action, cắt giữa một chuyển động liên tục để mắt đi theo chuyển động chứ không thấy chỗ nối. Phần riêng của AI là bạn phải chủ động generate cái overlap đó ngay từ đầu để có cái mà cắt. Phần lớn mọi người generate mỗi shot như một nhịp rời, và tự hỏi vì sao lúc dựng playback không mượt.
Toàn bộ phim mình generate ở 720p, rồi dùng AI Upscale trong DaVinci Resolve đưa lên 4K. Đây hoàn toàn là quyết định vì ngân sách. Và nói thật, 4K upscale không phải 4K gốc. Khác biệt thấy rõ, cả độ chi tiết lẫn cảm giác hình ảnh. Nếu đủ điều kiện generate native 4K ngay từ đầu thì chất lượng ở một đẳng cấp khác, mà giá cũng ở một đẳng cấp khác. Với mình, 720p rồi upscale là điểm cân bằng hợp lý giữa chi phí và kết quả.
Một số quan sát/suy nghĩ của mình
Có hai cảnh ngốn thời gian mình nhiều nhất, và cũng là hai giới hạn của AI lúc này.
Cảnh sân thượng: người đàn ông bước qua chiếc ghế rồi ngồi xuống nhìn về phía thành phố. Mình generate hơn 10 lần. Lần thì AI làm sai động tác bước qua ghế, lần thì nó xoay nhân vật về phía camera thay vì nhìn skyline. Mình thử đủ kiểu prompt mà vẫn không ổn. Cuối cùng mình dùng một shot đơn giản hơn, cho người đàn ông ngồi sẵn trên ghế, camera push in. Bài học: một shot mà thử vài lần vẫn không ra thì đừng cố sửa prompt mãi, thứ cần đổi thường là blocking của shot.

Bàn cờ vua thì còn thú vị hơn. Mình muốn một cận cảnh thế cờ end-game thật: vua bị lộ, hậu đang áp sát. AI hoàn toàn không làm được. Quân cờ nằm giữa hai ô. Đen trắng đổi chỗ. Có lần trên bàn xuất hiện… ba quân vua. Sau khá nhiều lần, mình bỏ cuộc, để gương mặt hai người chơi nói lên khoảnh khắc đó thay cho bàn cờ. Khán giả vẫn hiểu mà không cần biết chính xác nước cờ. Nó cho mình một nguyên tắc chung: mấy thứ phức tạp đòi hỏi chính xác tuyệt đối thì AI vẫn làm chưa tới. Nếu bắt buộc phải có, nên giấu nó đi. Dùng diễn xuất hoặc bối cảnh gánh ý nghĩa thay.
Một chi tiết nhỏ mà thú vị: khi mình generate nhân vật phụ, mình prompt là người châu Á, nhất là ở cảnh karaoke, AI cứ mặc định ra mấy gương mặt rất Hàn Quốc. Mình đoán nó được train nặng về phim ảnh Hàn. Với phim này thì không sao, nhưng nó nhắc mình rằng mọi model đều mang theo thiên kiến từ dữ liệu train, và nếu thế giới bạn muốn tạo quá đặc thù, bạn sẽ cần prompt rất chi tiết.

****
Nhìn chung lại, mình khá hài lòng với bộ phim. Hai tháng credit, không một thành viên ê-kíp, có mở đầu, có nhịp phát triển, và cái kết chạm đúng cảm xúc mình muốn. Phần nhân vật thậm chí còn tốt hơn mình tưởng.
Một lỗi nhỏ mình học được để làm phim sau tốt hơn: do đổi image model giữa chừng, nên khi xem kỹ, gương mặt con khỉ ở mấy shot đầu và mấy shot sau hơi khác nhau một chút về texture và ánh sáng. Lần sau mình sẽ khóa một model duy nhất.
Bài học cuối cùng mình rút ra: một người chưa từng đứng trên trường quay vẫn có thể tạo ra một bức ảnh rất đẹp bằng AI. Nhưng sau bức ảnh đó là hàng nghìn quyết định nhỏ: máy quay đặt ở đâu, ánh sáng đến từ hướng nào, trang phục nói gì về nhân vật, hai người đứng cách nhau bao xa, cắt ở frame nào, làm sao để continuity không gãy. Đó là bài toán của làm phim, nhiều hơn là bài toán của model.
Có lẽ vì vậy mà ngày nay một shot AI đẹp thì rất nhiều, nhưng một chuỗi shot thật sự liền mạch và kể được câu chuyện thì vẫn hiếm.
AI không làm bộ phim này thay mình. Nó chỉ khiến việc làm nó rẻ hơn, nhanh hơn, và đủ sức để một người làm một mình. Còn mọi quyết định quan trọng nhất, cuối cùng, vẫn là quyết định của một filmmaker. Và điều đó khiến mình thấy khá yên tâm. Vì nó có nghĩa là thứ đáng để dành nhiều năm học hỏi vẫn là thứ cũ nhất: kĩ năng kể một câu chuyện hay.
Mình vẫn đang mò mẫm mấy thứ này. Nếu bạn cũng đang làm, mình rất mong muốn học thêm về quy trình của bạn.



Comments