Chúng ta sẽ đi qua các bước để tạo video bằng Deforum Stable Diffusion.
Bài viết này dành cho những người mới bắt đầu chưa từng tạo video bằng Deforum Stable Diffusion trước đây. Bạn sẽ học được:
- Deforum Stable Diffusion là gì.
- Cách cài đặt tiện ích Deforum trên AUTOMATIC1111 Stable Diffusion.
- Các thiết lập cơ bản.
- Từng bước để tạo video Deforum đầu tiên của riêng bạn.
Deforum Stable Diffusion là gì?
Deforum là phần mềm mã nguồn mở và miễn phí để tạo ra các hiệu ứng hoạt hình. Nó sử dụng chức năng chuyển đổi ảnh sang ảnh của Stable Diffusion để tạo ra một chuỗi hình ảnh và ghép chúng lại để tạo thành một video.
Nó áp dụng các biến đổi nhỏ cho một khung ảnh và sử dụng chức năng chuyển đổi ảnh sang ảnh để tạo ra khung ảnh tiếp theo. Vì sự thay đổi giữa các khung ảnh là nhỏ, nó tạo ra cảm giác của một video liên tục.
Làm thế nào để cài đặt Deforum Stable Diffusion?
Chúng ta sẽ sử dụng tiện ích deforum của giao diện người dùng AUTOMATIC1111. Bạn có thể sử dụng giao diện người dùng này trên Windows, Mac hoặc Google Colab.
Sử dụng deforum trên Google Colab
Nếu bạn đang sử dụng sổ ghi chép Colab trong Hướng dẫn Bắt đầu Nhanh, chỉ cần kiểm tra tiện ích Deforum trước khi bắt đầu AUTOMATIC1111.
Vậy là xong!
Sau khi khởi động, bạn sẽ thấy Deforum tab trong giao diện người dùng AUTOMATIC1111.
Cài đặt deforum trên Windows
Làm theo hướng dẫn này để cài đặt Deforum Stable Diffusion nếu bạn chạy AUTOMATIC1111 trên Windows.
Bước 1: Mở cửa sổ command prompt (cmd) và thay đổi thư mục đến stable-diffusion-webui. Nếu bạn làm theo hướng dẫn cài đặt của trang web, chạy lệnh:
cd %userprofile%\stable-diffusion-webui |
Bước 2: Cài đặt tiện ích deforum bằng cách chạy lệnh sau:
git clone https://github.com/deforum-art/deforum-for-automatic1111-webui extensions/deforum |
Sau khi khởi động lại giao diện người dùng AUTOMATIC1111, bạn sẽ thấy tab Deforum.
Cài đặt deforum trên Mac
Làm theo hướng dẫn này để cài đặt Deforum Stable Diffusion nếu bạn chạy AUTOMATIC1111 trên Mac.
Bước 1: Mở Ứng dụng Terminal. Di chuyển đến thư mục cài đặt của stable-diffusion-webui. Nếu bạn làm theo hướng dẫn của trang web, chạy lệnh sau:
cd ~/stable-diffusion-webui |
Bước 2: Cài đặt tiện ích deforum bằng cách chạy lệnh sau:
git clone https://github.com/deforum-art/deforum-for-automatic1111-webui extensions/deforum |
Sau khi khởi động lại giao diện người dùng AUTOMATIC1111, bạn sẽ thấy tab Deforum.
Tạo video thử nghiệm
Bước này tùy chọn, nhưng nó sẽ giúp bạn có cái nhìn tổng quan về cách tìm các thiết lập mà chúng ta sẽ sử dụng.
Bước 1: Trong giao diện người dùng AUTOMATIC1111, điều hướng đến trang Deforum.
Bước 2: Điều hướng đến tab keyframes.
- Bạn sẽ thấy một tab Motion ở nửa dưới của trang. Đây là nơi bạn sẽ thiết lập các thông số camera.
- Max frames là số khung hình của video. Giá trị cao hơn sẽ tạo video dài hơn.
Bạn có thể sử dụng các giá trị mặc định.
Bước 3: Điều hướng đến tab Prompts. Bạn sẽ thấy một danh sách các prompts với một số đứng trước mỗi prompt. Số đó là khung mà prompt được áp dụng.
Đối với các prompts dưới đây, nó sẽ sử dụng prompt đầu tiên ở đầu video. Sau đó, nó sẽ chuyển sang sử dụng prompt thứ hai ở khung thứ 30, và prompt thứ ba ở khung thứ 60, và prompt thứ tư ở khung thứ 90.
Bạn có thể giữ nguyên các prompts như vậy.
Bước 4: Bấm vào nút Generate để bắt đầu tạo video.
Bước 5: Khi hoàn thành, bấm vào nút ở trên nút Generate để xem video.
Bạn có thể lưu video vào lưu trữ cục bộ bằng cách bấm vào ba dấu chấm dọc ở góc dưới bên phải. Hoặc bạn có thể tìm video của bạn trong thư mục đầu ra trong thư mục img2img-images.
Các thiết lập cơ bản (với ví dụ)
Trước tiên, chúng ta sẽ đi qua hai thiết lập quan trọng nhất
- Chuyển động (2D và 3D)
- Prompts (Các gợi ý)
Trước khi tiến hành qua các ví dụ từng bước để tạo video, việc hiểu cơ bản về khả năng của Deforum là điều quan trọng.
Trong phần này, bạn sẽ thấy các ví dụ về việc thay đổi một tham số trong khi giữ nguyên các yếu tố khác. Đây là những khối xây dựng của video của bạn.
Bằng cách kết hợp chúng và bật/tắt chúng vào các thời điểm khác nhau, bạn có thể tạo ra những hiệu ứng hình ảnh tuyệt đẹp.
Thiết lập chuyển động (Motion settings)
Thiết lập chuyển động là một số tùy chọn được sử dụng nhiều nhất trong Deforum Stable Diffusion. Bằng cách đơn giản thay đổi chúng và các prompts, bạn có thể tạo một video tốt. Vì vậy, bạn nên hiểu rõ cách thiết lập chuyển động hoạt động và những gì chúng có thể làm.
Hãy tìm hiểu hai animation modes được sử dụng nhiều nhất
- 2D – xử lý hình ảnh như là 2D và thực hiện các biến đổi khác nhau như phóng to và xoay để tạo ra ảo tưởng về chuyển động.
- 3D – xem hình ảnh như là một khung cảnh 3D. Bạn có thể di chuyển khung nhìn của máy ảnh trong bất kỳ phép biến đổi 3D nào.
Thiết lập chuyển động 2D (2D motion setting)
2D Zoom (Phóng to hoặc thu nhỏ)
Sử dụng chức năng zoom để phóng to hoặc thu nhỏ hình ảnh. Sử dụng giá trị zoom lớn hơn 1 để phóng to và nhỏ hơn 1 để thu nhỏ.
Càng xa giá trị khỏi 1, tốc độ phóng to càng nhanh.
Mặc định, zoom tập trung vào trung tâm. Bạn có thể điều chỉnh trọng tâm bằng cách thiết lập Transform Center X và Transform Center Y. Chúng ta sẽ giải thích chúng trong một vài lượt cuộn xuống.
zoom 0:(0.99)
zoom 0:(0.1.01)
2D Angle (Góc xoay)
Sử dụng 2D Angle để xoay hình ảnh. Giá trị dương xoay hình ảnh theo chiều kim đồng hồ và giá trị âm xoay hình ảnh ngược chiều kim đồng hồ.
Giá trị lớn hơn sẽ xoay hình ảnh nhanh hơn.
Mặc định, xoay xung quanh trung tâm của hình ảnh. Bạn có thể điều chỉnh trung tâm xoay bằng cách thiết lập Transform Center X và Transform Center Y. Chúng ta sẽ giải thích chúng trong một vài lượt cuộn xuống.
2D angle: 2
2D angle: -2
2D Translation X (Dịch chuyển X)
Sử dụng Translation X để di chuyển hình ảnh theo chiều ngang. Sử dụng giá trị dương để di chuyển hình ảnh sang phải và giá trị âm để di chuyển hình ảnh sang trái.
2D translation X: 5
2D translation X: -5
2D Translation Y (Dịch chuyển Y)
Sử dụng Translation Y để di chuyển máy ảnh lên và xuống. Sử dụng giá trị dương để di chuyển hình ảnh xuống và giá trị âm để di chuyển hình ảnh lên.
2D translation Y: 5
2D translation Y: -5
2D Transform Center (Trung tâm biến đổi)
Trung tâm biến đổi là để thay đổi điểm lấy tiêu điểm của phóng to và/hoặc xoay.
Giá trị mặc định là 0.5 cho cả X và Y, đó là trung tâm của hình ảnh. (X, Y) = (0, 0) là góc trên bên trái và (1, 1) là góc dưới bên phải. Hãy xem hình vẽ dưới đây để thấy vị trí phổ biến khác.
Bạn có thể chỉ định các giá trị nhỏ hơn 0 hoặc lớn hơn 1. Chúng sẽ nằm bên ngoài hình ảnh.
Dưới đây là hai ví dụ về việc phóng to ở góc trên bên trái (0, 0) và góc dưới bên phải (1, 1).
Transform Center (0,0) with zoom
Transform Center (1,1) with zoom
2D Perspective flip (Phản chiếu góc nhìn)
Phản chiếu góc nhìn thực hiện các biến đổi giống như 3D để tạo ra một số hiệu ứng ấn tượng.
Bạn cần chọn Enable perspective flip để kích hoạt các tùy chọn này.
theta: 12
phi: 12
gamma: 12
Thiết lập chuyển động 3D
Chuyển động 3D là một sự lựa chọn thay thế cho chuyển động 2D. Hãy tưởng tượng bạn đang cầm một máy ảnh. Bạn có thể di chuyển và xoay máy ảnh theo ý muốn.
3D Translation X (Dịch chuyển X)
Dịch chuyển X di chuyển máy ảnh sang hai bên. Một giá trị dương di chuyển máy ảnh sang phải. Một giá trị âm di chuyển máy ảnh sang trái.
3D translation X: 2
3D Translation Y (Dịch chuyển Y)
Dịch chuyển Y di chuyển máy ảnh lên và xuống. Sử dụng giá trị dương di chuyển máy ảnh lên. Một giá trị âm di chuyển máy ảnh xuống.
3D translation Y: 2
3D Translation Z (Dịch chuyển Z)
Dịch chuyển Z trong không gian 3D tương tự như phóng to trong các chuyển động 2D.
3D translation Z: 2
3D rotation X (Xoay X)
Xoay X xoay máy ảnh quanh trục X.
3D rotation X: 2
3D rotation Y (Xoay Y)
Xoay Y xoay máy ảnh quanh trục Y.
3D rotation Y: 2
3D rotation Z (Xoay Z)
Xoay Z xoay máy ảnh quanh trục Z.
3D rotation Z: 2
Motion schedule (lịch trình chuyển động)
Các thiết lập chuyển động được ghi nhận theo dạng
khung1:(giá trị1), khung2:(giá trị2), khung3:(giá trị3), … |
Mỗi mục nhập bao gồm hai số: số khung hình mà nó có hiệu lực và giá trị của chuyển động. Mỗi khung hình và giá trị của mỗi mục nhập phải được phân tách bằng dấu hai chấm và giá trị phải được đặt trong dấu ngoặc đơn.
Bạn luôn cần một mục nhập cho khung hình thứ 0.
Bạn có thể có bao nhiêu mục nhập tùy ý.
Điều quan trọng cần lưu ý là khi bạn có hai mục nhập hoặc nhiều mục nhập, điều đó có nghĩa là tạo ra hiệu ứng nội suy giữa hai khung hình.
Ví dụ, công thức sau được sử dụng trong phóng to có nghĩa là tăng giá trị zoom từ 1 lên 1.02 theo từng bước trong 100 khung hình đầu tiên và giảm giá trị zoom về 1 trong 100 khung hình tiếp theo.
0:(1), 100:(1.02), 200:(1) |
Nếu bạn muốn giá trị phóng to mới có hiệu lực bắt đầu từ khung hình thứ 100, bạn có thể viết như sau:
0:(1), 99:(1), 100:(1.02), 150:(1.02), 151:(1), 200:(1) |
Công thức này sẽ áp dụng hiệu ứng phóng to chỉ giữa khung hình 100 và 150.
Mỗi thiết lập có lịch trình chuyển động riêng của nó.
- Phóng to (Zoom): 0:(1)
- Góc xoay (Angle): 0:(0)
- Trung tâm biến đổi X (Transform Center X): 0:(0.5)
- Trung tâm biến đổi Y (Transform Center Y): 0:(1)
- Dịch chuyển X (Translate X): 0:(0)
- Dịch chuyển Y (Translate Y): 0:(5), 60:(0)
Mẹo: không chỉ viết 180:(5). Hãy viết 0:(0), 180:(5). Mục nhập đầu tiên phải dành cho khung hình thứ 0.
Xem thêm: Cách tối ưu ánh sáng trong Stable Diffusion: 3 phương pháp đáng thử
Ví dụ từng bước
Bước 1: Tạo một hình ảnh ban đầu
Hình ảnh ban đầu là một trong những yếu tố bạn hoàn toàn kiểm soát trong video deforum stable diffusion. Nó cũng có thể xem là một trong những yếu tố quan trọng nhất vì nó thiết lập không chỉ phong cách và màu sắc cho phần còn lại của hoạt hình.
Dành thời gian để tạo một hình ảnh ban đầu tốt trong tab “txt2img”.
Trong ví dụ này, tôi sử dụng các gợi ý sau đây.
Chân dung của Henry Cavill trong vai James Bond, sòng bạc, nghệ thuật chính, chạy nước rút, cây cọ, chi tiết cao, hội hoạ kỹ thuật số, trang web ArtStation, nghệ thuật khái niệm, ánh sáng điện ảnh, tập trung sắc nét, minh hoạ, do Gaston Bussiere Alphonse Mucha tạo ra. |
Và gợi ý phủ định:
Biến dạng, bị hỏng hóc. |
Đặt giá trị seed thành random (-1).
Tôi sử dụng mô hình Protogen v2.2 để tạo phong cách minh họa giống như ảnh chân dung hiện thực.
Ghi nhớ giá trị seed (được làm nổi bật trong ảnh chụp màn hình ở trên) khi bạn thấy một hình ảnh bạn thích.
Bước 2: Tạo đoạn video đầu tiên
Nhập gợi ý vào tab Prompts. Tôi quyết định tái sử dụng prompt thứ 2 trong các prompt mặc định. Các prompt là
{ “0”: “portrait of henry cavill as james bond, casino, key art, sprinting, palm trees, highly detailed, digital painting, artstation, concept art, cinematic lighting, sharp focus, illustration, by gaston bussiere alphonse mucha –neg deformed, disfigured”, “50”: “anthropomorphic clean cat, surrounded by fractals, epic angle and pose, symmetrical, 3d, depth of field, ruan jia and fenghua zhong” } |
Gợi ý được chuyển sang miêu tả một con mèo trong khung hình thứ 50.
Bây giờ chuyển đến tab Run.
- Chọn mô hình Protogen.
- Đặt giá trị seed thành 2020548858. Điều này cho phép bạn bắt đầu với cùng một hình ảnh mỗi lần để bạn có thể tiếp tục xây dựng trên cùng một video.
Vì hình ảnh ban đầu của tôi, James Bond đang nhìn sang trái, nên tốt hơn là có máy ảnh di chuyển sang bên phải. Chúng ta sẽ sử dụng 3D animation model.
Trong tab Keyframes,
- Chọn chế độ 3D Animation.
- Đặt Max frames thành 100. Điều này để tạo ra đủ số khung hình để nhìn thấy hai prompt đầu tiên.
Trong tab Motion ở dưới, đặt:
- Translation X thành 0:(2). Điều này để di chuyển máy ảnh sang phải.
- Translation Z thành 0:(1.75). Điều này để phóng to với tốc độ chậm hơn một chút.
Giữ lại các giá trị còn lại là 0:(0) để không làm gì cả.
Nhấn Generate để bắt đầu tạo video.
Dưới đây là video cho đến nay.
Máy ảnh đang di chuyển theo cách chúng ta mong đợi. James Bond đã chuyển đổi thành một con mèo fractal một cách mượt mà.
Cho đến nay, mọi thứ đều tốt.
Bước 3: Thêm prompt tiếp theo
Bây giờ hãy brainstorming prompt tiếp theo trong tab txt2img.
Tôi quyết định sẽ tạo một hiệu ứng chuyển đổi thành một cảnh không gian. Đây là prompt cuối cùng cho deforum.
{ “0”: “portrait of henry cavill as james bond, casino, key art, sprinting, palm trees, highly detailed, digital painting, artstation, concept art, cinematic lighting, sharp focus, illustration, by gaston bussiere alphonse mucha –neg deformed, disfigured”, “50”: “anthropomorphic clean cat, surrounded by fractals, epic angle and pose, symmetrical, 3d, depth of field, ruan jia and fenghua zhong”, “90”: “giant floating space station, futuristic, star war style, highly detailed, beautiful machine aesthetic, in space, galaxies, dark deep space lora:epiNoiseoffset_v2:1 –neg bad art, amateur” } |
(Tôi đã sử dụng bộ chỉnh sửa mô hình epi_noiseoffset LoRA trong prompt thứ ba. Xem hướng dẫn LoRA để biết chi tiết.)
Đặt các thông số sau đây:
- Max frames thành 250.
- Rotation 3D X thành 0:(0), 70:(0), 71:(0.5). Điều này thêm sự thay đổi xoay tại khung hình thứ 71.
Giữ nguyên các thiết lập còn lại. Dưới đây là các thiết lập chuyển động cuối cùng.
Nhấn Generate.
Chúng ta nhận được video cuối cùng.
Bạn thường sẽ dành nhiều thời gian để chỉnh sửa chuyển động và prompts để đạt được hiệu ứng chính xác mà bạn muốn.
Bạn có thể lặp lại bước này và thêm bao nhiêu prompt tùy ý.
Mẹo
- Các prompts có chủ đề lớn hoạt động tốt hơn so với các cảnh có nhiều đối tượng nhỏ.
- Các chi tiết nhỏ sẽ thay đổi thường xuyên. Điều này chỉ là cách làm việc của image-to-image. Do đó, các prompts có các mẫu (như fractal) hoặc các đối tượng tưởng tượng thường hoạt động tốt hơn làm các prompt thứ hai và các prompt sau đó.
- Nếu bạn nhìn thấy các hiện tượng thừa trong quá trình chuyển đổi prompt, việc thay đổi khung của prompt một vài khung hình có thể loại bỏ các hiện tượng thừa.
- Tạo một gif hoạt hình bằng cách sử dụng tùy chọn đầu ra Make GIF.
- Sử dụng tùy chọn Delete Imgs trong tùy chọn đầu ra để tự động xóa các hình ảnh trung gian và chỉ giữ lại video.
- Thêm một bản nhạc nền bằng cách sử dụng tùy chọn đầu ra Add soundtrack.
Để biết thêm thông tin chi tiết về Stable Diffusion có thể tìm hiểu thêm tại khóa học Stable Diffusion – Midjourney tại Arcline Academy hoặc có thể tham khảo thêm thông tin các khóa học khác tại đây
Trụ sở chính: 32/19 Nghĩa Hòa, Phường 06, Q. Tân Bình, TPHCM (Nhà Thờ Nghĩa Hòa – Khu Bắc Hải)
Trụ sở miền Tây: L30-09, Đường số 43, Khu Dân cư Stella Megacity, P. Bình Thủy, Q. Bình Thủy, Tp. Cần Thơ
Hotline: 0988 363 967