Công cụ AI

Hướng dẫn tạo video trong Stable Diffusion năm 2023

Xem thêm:

Sử dụng Stable Diffusion AI giúp việc tạo video ngày càng dễ. Sau đây là hướng dẫn từng bước về cách sử dụng 5 kỹ thuật chuyển video-to-video. Điều hay nhất là bạn được dùng MIỄN PHÍ trên máy của bạn!

  • ControlNet-M2M script
  • ControlNet img2img
  • extension Mov2mov
  • extension SD-CN Animation
  • Temporal Kit

Tất cả kỹ thuật trên đều sử dụng một phương pháp tương tự để biến đổi từng khung hình video với sự trợ giúp của ControlNet.

Cuối cùng, tôi sẽ khảo sát các phương pháp chuyển video-to-video khác cho Stable Diffusion

Dưới đây là một video mẫu từ mỗi phương pháp. Bên dưới là video gốc.

(Tải video này tại đây nếu bạn muốn sử dụng.)

Dưới đây là một ví dụ về việc sử dụng phương pháp 1: ControlNet-M2M script.

Dưới đây là một ví dụ về việc sử dụng phương pháp 2: ControlNet img2img.

Dưới đây là một ví dụ về việc sử dụng phương pháp 3: mov2mov extension.

Dưới đây là một ví dụ về việc sử dụng phương pháp 4: SD-CN Animation extension.

Dưới đây là một ví dụ về việc sử dụng phương pháp 5: Temporal Kit.

Nội dung

Phần mềm

Bạn cần AUTOMATIC1111 Stable Diffusion GUI. Bạn có thể sử dụng GUI này trên Windows, Mac, hoặc Google Colab.

Bạn cần cài đặt ControlNet extension. Làm theo hướng dẫn cài đặt trong bài viết ControlNet.

Phương pháp 1: ControlNet m2m script

Phương pháp chuyển video-to-video này dễ sử dụng hơn nhưng bị nhấp nháy nhiều hơn.

Chúng ta sẽ sử dụng video sau đây.
https://youtu.be/iL0hL8Bveu0

Sử dụng nút sau để tải video nếu bạn muốn sử dụng video này.

Tải video đầu vào

Bước 1: Cập nhật cài đặt A1111

Trước khi sử dụng script controlnet m2m trong AUTOMATIC1111, bạn phải vào Settings > ControlNet. Chọn hai tùy chọn sau.

  • Do not append detectmap to output: Yes
  • Allow other script to control this extension: Yes

Tùy chọn đầu tiên vô hiệu hóa việc lưu hình ảnh điều khiển vào thư mục đầu ra, giúp bạn dễ dàng lấy các hình ảnh khung.

Cài đặt thứ hai cho phép script controlnet m2m cung cấp các khung hình video cho ControlNet extension.

Nhấp vào Apply Settings. Tải lại trang Web-UI.

Bước 2: Tải video lên ControlNet-M2M

Trong AUTOMATIC1111 Web-UI, di chuyển đến trang txt2img.

Trong menu thả xuống Script, chọn script ControlNet m2m.

Mở rộng phần ControlNet-M2M.

Tải lên video mp4 vào tab ControlNet-0.

Bước 3: Nhập cài đặt ControlNet

Mở rộng phần ControlNet. Nhập các cài đặt sau:

Enable: Yes

Pixel Perfect: Yes

Control Type: Lineart

Preprocessor: lineart realistic

Model: control_xxxx_lineart

Control weight: 0.6

Đối với video, bạn cần thử nghiệm với các loại điều khiển và bộ tiền xử lý khác nhau.

Bước 4: Thiết lập cài đặt txt2img

Chọn một mô hình bạn muốn sử dụng trong Stable Diffusion checkpoint ở đầu trang. Tôi sử dụng deliberate v2.

Viết prompt và negative prompt:

ảnh của cô gái Sci fi dễ thương, tóc hồng, chân dung thực tế, theo phong cách franciszek starowieyski, sci fi sứ trắng, mecha, 32k uhd, thẩm mỹ máy móc, màu trắng tối và xanh da trời, hans zatzka, màu bạc và hồng, thành phố khoa học viễn tưởng, tóc hồng bóng, nửa người, tranh sơn dầu, nền trắng
(photo of Sci fi cute girl, pink hair, photorealistic, in the style of franciszek starowieyski, white porcelain sci fi, mecha, 32k uhd, machine aesthetics, dark white and azure, hans zatzka, silver and pink, science fiction city,shiny pink hair, half body, oil painting, white background)

biến dạng, xấu xí (deformed, disfigured, ugly)

Nhập các thông số sau:

Sampling method: Euler a

Sampling steps: 20

Width: 768

Height: 512

CFG Scale: 7

Seed: 100

Giá trị seed cần được cố định để giảm nhấp nháy. Thay đổi seed sẽ thay đổi ảnh nền và diện mạo của nhân vật.

Nhấp vào Generate.

Bước 5: Tạo một ảnh GIF hoặc video mp4 động

Script của ControlNet lần lượt chuyển đổi từng khung ảnh. Bạn sẽ tìm thấy một loạt các tệp png trong thư mục đầu ra của txt2img.

Bạn có hai lựa chọn: (1) Kết hợp các tệp PNG thành một GIF động và (2) tạo một video mp4.

GIF động

Sử dụng trang EZGIF để chuyển đổi các tệp png thành GIF động.

Trong tùy chọn GIF, đặt Delay time thành 5 (tính bằng 1/100 giây) cho 20 khung hình mỗi giây.

Dưới đây là GIF động cuối cùng.

video to video stable diffusion controlnet

Video MP4

Sử dụng lệnh sau để chuyển đổi các tệp png thành video MP4. (Bạn cần phải cài đặt ffmpeg trên máy tính cá nhân của bạn)

ffmpeg -framerate 20 -pattern_type glob -i '*.png' -c:v libx264 -pix_fmt yuv420p out.mp4

Một độc giả nói rằng lệnh trên không hoạt động trên Windows và đề xuất sử dụng lệnh dưới đây thay thế.

ffmpeg -framerate 20 -pattern_type sequence -start_number 00000 -i ‘%05d-100.png’ -c:v libx264 -pix_fmt yuv420p out.mp4

Lưu ý đối với ControlNet m2m script

Rất tiếc, vào thời điểm viết bài này, chức năng ControlNet đa lớp của script m2m KHÔNG hoạt động. Như chúng ta sẽ thấy sau này, ControlNet đa lớp là một kỹ thuật giảm nhấp nháy hữu ích. Hy vọng các bản cập nhật trong tương lai sẽ khắc phục điều đó.

Dưới đây là một video khác được chuyển đổi bằng ControlNet Line art realistic.

Hãy thử nghiệm với các ControlNet khác nhau để có được các kết quả khác nhau. Dưới đây là một video với Tile resample.

Phương pháp 2: ControlNet img2img

Phương pháp video-to-video này chuyển đổi một video thành một loạt hình ảnh, sau đó sử dụng Stable Diffusion img2img của ControlNet để biến đổi từng khung hình.

Sử dụng nút sau để tải video nếu bạn muốn sử dụng video này.

Tải video đầu vào

Bước 1: Chuyển đổi video mp4 thành các tệp png

Bạn có thể sử dụng trang ezgif để chuyển đổi video mp4 thành các tệp hình ảnh png.

Tải lên tệp video mp4.

Sử dụng các cài đặt sau.

  • Size: Original
  • Frame rate: 10 fps

Nhấp vào Convert to PNG!

Nhấp vào Download frames as ZIP.

Giải nén tệp ZIP vào một thư mục chứa các tệp hình ảnh png.

Đổi tên thư mục thành video. Bây giờ bạn sẽ có một thư mục có tên video chứa các tệp png.

Hoặc dưới đây là các lệnh nếu bạn muốn sử dụng dòng lệnh để chuyển đổi video mp4 thành các tệp png.

mkdir video
ffmpeg -i girl_dance.mp4 -r 10 video/%05d.png

Bước 2: Nhập cài đặt Img2img

Bạn cần cài đặt image-to-image và ControlNet để áp dụng cho từng khung hình.

Bây giờ mở AUTOMATIC1111.

Chúng ta cần một số cài đặt đặc biệt cho ControlNet. Hãy tới Settings.

Nhấp vào Show all pages trên thanh bên trái.

Tìm kiếm văn bản (Ctrl + F cho Windows. Cmd + F cho Mac) “Quicksettings list”. Thêm “initial_noise_multiplier” và “img2img_color_correction” vào danh sách.

Nó sẽ trông như thế này:

Đi đến đầu trang. Nhấp vào Apply settings và sau đó Reload UI.

Bạn sẽ thấy hai cài đặt mới: Noise multiplier for img2imgApply color correction… ở đầu trang.

Đặt Noise multipler for img2img thành 0.5. Hệ số tỷ lệ này được áp dụng cho random latent tensor for img2img. Giảm nó giúp giảm nhấp nháy.

Kiểm tra cài đặt Apply color correction…. Tùy chọn này dùng để tạo màu phù hợp với màu sắc của nội dung gốc, giúp các khung hình có màu sắc đồng nhất.

Bây giờ cài đặt cuối cùng… Đi đến Settings > ControlNet. Chọn tùy chọn sau.

  • Do not append detectmap to output: Yes

Nhấp vào Apply Settings. Tải lại trang Web-UI.

Đi đến trang img2img.

Trong Stable Diffusion checkpoint ở đầu trang, chọn một mô hình bạn muốn sử dụng. Tôi sử dụng deliberate v2.

Viết prompt và negative prompt:

ảnh của cô gái Sci fi dễ thương, tóc hồng, chân dung thực tế, theo phong cách franciszek starowieyski, sci fi sứ trắng, mecha, 32k uhd, thẩm mỹ máy móc, màu trắng tối và xanh da trời, hans zatzka, màu bạc và hồng, thành phố khoa học viễn tưởng, tóc hồng bóng, nửa người, tranh sơn dầu (photo of Sci fi cute girl, pink hair, photorealistic, in the style of franciszek starowieyski, white porcelain sci fi, mecha, 32k uhd, machine aesthetics, dark white and azure, hans zatzka, silver and pink, science fiction city,shiny pink hair, half body, oil painting)

biến dạng, xấu xí (deformed, disfigured, ugly)

Bước 1: Tải xuống một trong các khung hình (tệp png) lên bảng img2img.

Chế độ thay đổi kích thước: Chỉ thay đổi kích thước

Resize mode: Just resize

Sampling method: DPM++ 2M Karras

Sampling Steps: 20

Width: 908 (This is set to maintain the aspect ratio of the video)

Height: 512 (The shorter dimension is fixed to 512)

CFG scale: 20 (Experiment with this. The higher you set, the more it follows the prompt.)

Denoising strength: 0.4 (Experiment with this. The higher you set, the more changes but also more flickering)

Seed: -1 (random)

Bước 3: Lập cài đặt ControlNet

Bây giờ hãy chuyển sang phần ControlNet

Tải lên cùng một khung hình lên bảng hình ảnh.

Enable: Yes

Pixel Perfect: Yes

Allow Preview: Yes

Control Type: Lineart

Preprocessor: Lineart Realistic

Model: control_xxxx_lineart

(Thử nghiệm với control type, preprocessor, and model xem loại nào cho kết quả tốt nhất. Kết quả cần đạt là các chi tiết như mắt, miệng, kiểu tóc xuất hiện trong Preview)

Control Weight: 0.6 (Hãy giảm nếu thấy màu không đẹp)

Bước 4: Chọn giá trị seed

Nhấn Generate để kiểm tra cài đặt.

Chọn hình ảnh trên bảng điều khiển bên trái nếu bạn hài lòng với hiệu ứng.

Để cố định seed, hãy nhấp vào biểu tượng tái chế bên cạnh ô giá trị Seed. Bạn sẽ thấy giá trị thay đổi từ -1 thành một số dương.

Bước 5: Tạo ảnh img2img hàng loạt với ControlNet

Sau nhiều thao tác phức tạp, bạn đã tạo ra một khung hình… Việc cần làm áp dụng cùng một cài đặt cho TẤT CẢ các khung hình. Thật may là bạn có thể làm điều đó với chức năng xử lý hàng loạt batch.

Đầu tiên, xóa ảnh mẫu trong phần ControlNet. Bước này quan trọng. Nếu không, bạn sẽ sử dụng hình ảnh tham chiếu này cho tất cả các khung hình! Nhấp vào biểu tượng dấu nhân ở góc trên bên phải để loại bỏ hình ảnh.

Anh mẫu sau khi bị xóa sẽ giống như ảnh chụp màn hình dưới đây.

Giữ nguyên các cài đặt ControlNet còn lại.

Bây giờ chuyển sang tab Batch trên trang Img2img.

Nhập các đường dẫn của

  • Input directory: Thư mục chứa các tệp PNG của video của bạn.
  • Output directory:: Một thư mục mới cho các tệp PNG đã xử lý của bạn.

Trên Windows, Input directory là vị trí thư mục của các tệp PNG trong Trình duyệt tệp.

Nếu bạn sử dụng Google Colab, sao chép các tệp PNG vào Google Drive của bạn và chỉ định một đường dẫn. Đường dẫn có thể được tìm thấy trong trình duyệt tệp ở bên trái và nhấp chuột phải vào một thư mục.

Nhấp vào Tạo để bắt đầu quá trình tạo ảnh.

Bước 6: Chuyển đổi các tệp PNG đầu ra thành video hoặc GIF hoạt hình

GIF hoạt hình

Sử dụng trang EZGIF để chuyển đổi các tệp png thành GIF hoạt hình.

Trong tùy chọn GIF, đặt Thời gian trễ thành 10 (tính bằng 1/100 giây) cho 10 khung hình mỗi giây.

Dưới đây là kết quả video-to-video (Denoising strength 0.5):

Tăng độ Denoising strength lên 0.7 sẽ thay đổi video nhiều hơn nhưng cũng làm tăng hiện tượng nhấp nháy.

Video MP4

Sử dụng lệnh sau để chuyển đổi các tệp png thành video MP4.

ffmpeg -framerate 10 -pattern_type glob -i '*.png' -c:v libx264 -pix_fmt yuv420p out.mp4

Lưu ý về ControlNet img2img

Đây có lẽ là phương pháp tốn công nhất trong số tất cả các phương pháp chuyển video-to-video. Bạn muốn sử dụng cách này vì muốn hoàn toàn kiểm soát quá trình tạo video.

Bạn sẽ thấy khá nhiều Youtubers sử dụng phương pháp này. Tôi khuyến nghị xem video của Enigmatic_e để tìm hiểu thêm về phương pháp này (và cách làm video với Stable Diffusion nói chung). Video của Corridor Crew sẽ hướng dẫn bạn một phương pháp tốn công nhưng tạo ra các video Stable Diffusion chất lượng cao.

Phương pháp 3: Mov2mov extension

Mov2mov extension tự động hóa nhiều bước thủ công của công đoạn chuyển video-to-video.

Sử dụng nút sau để tải xuống video nếu bạn muốn sử dụng cùng một video.

Tải xuống video đầu vào

Bước 1: Cài đặt extension Mov2mov

Trong AUTOMATIC1111 Web-UI, chuyển đến trang Extension.

Chọn tab Install from URL.

Trong trường URL for extension’s git repository, nhập

https://github.com/Scholar01/sd-webui-mov2mov

Nhấp vào Install.

Đóng hoàn toàn và khởi động lại Web-UI.

Bước 2: Nhập cài đặt Mov2mov

Bạn sẽ thấy một trang mới được gọi là mov2mov.

Chọn một Stable Diffusion checkpoint trong menu thả xuống ở đầu trang. Tôi đã sử dụng Deliberate v2.

Nhập prompt và negative prompt.

ảnh của cô gái cute khoa học viễn tưởng, tóc hồng, chân dung thực tế, theo phong cách của franciszek starowieyski, khoa học viễn tưởng gốm trắng, mecha, 32k uhd, thẩm mỹ máy móc, màu trắng tối và xanh da trời, hans zatzka, bạc và hồng, thành phố khoa học viễn tưởng, tóc hồng sáng, nửa người, tranh dầu, nền trắng (photo of Sci fi cute girl, pink hair, photorealistic, in the style of franciszek starowieyski, white porcelain sci fi, mecha, 32k uhd, machine aesthetics, dark white and azure, hans zatzka, silver and pink, science fiction city,shiny pink hair, half body, oil painting, white background)

biến dạng, xấu xí (deformed, disfigured, ugly)

Tải video lên bằng cách kéo và thả nó vào bảng video.

Resize mode: Crop and resize.

Đặt chiều rộng (width) thành 768 và chiều cao (height) thành 512 để tạo video nằm ngang. (Điều chỉnh cho phù hợp với video của bạn)

Extension này có thanh trượt khá hay để chỉnh noise multiplier. Giá trị 0 để giảm hiện tượng nhấp nháy.

Thay đổi CFG scale để điều khiển mức độ ảnh đầu ra tuân theo prompt. (7 trong video này)

Thay đổi denoising strength để điều khiển mức độ thay đổi của video. (0.75 trong video này)

Max frame là tổng số khung hình được tạo ra. Đặt thành một số nhỏ, ví dụ 10 để kiểm tra ban đầu. Đặt thành -1 để tạo ra một video đầy đủ chiều dài.

Seed xác định giá trị seed của KHUNG HÌNH ĐẦU TIÊN. Tất cả các khung hình sẽ sử dụng cùng một giá trị seed ngay cả khi bạn đặt giá trị seed là -1 (ngẫu nhiên).

Bước 3: Lập cài đặt ControlNet

Lập các cài đặt sau cho ControlNet.

Enable: Yes

Pixel Perfect: Yes

**Control Type: **Lineart

**Preprocessor: **lineart_realistic

**Model: **control_xxxx_lineart

Control weight: 0.6

Bước 4: Tạo video

Nhấp vào Generate để bắt đầu tạo video.

Sẽ mất một lúc… Khi hoàn thành, video của bạn sẽ xuất hiện bên phải.

Nhấp vào Save để lưu video.

Đến thư mục output/mov2mov-videos để tìm video nếu nó không hiển thị.

Hãy thử một Video Mode khác nếu có lỗi xảy ra.

Nếu quá trình tạo video thất bại, hãy tạo video bằng chính bạn từ loạt hình ảnh. Chúng có trong thư mục output/mov2mov-images. Làm theo bước này để chuyển đổi hình ảnh thành video.

Đây là video hoàn thiện từ Mov2mov.
https://youtu.be/T4J65nD5BJc
###Lưu ý đối với mov2mov

Vì một lý do nào đó, các bộ samplers (ví dụ: Euler, LMS, DPM++2M Karras…) KHÔNG hoạt động tốt khi dùng extension này. Nếu không gặp trục trặc thì đó là một cách hay để giảm hiện tượng nhấp nháy.

Phương pháp 4: SD-CN-Animation

SD-CN-Animation là một extension của AUTOMATIC1111 giúp thực hiện công đoạn tạo video-to-video bằng Stable Diffusion trở nên thuận tiện.

SD-CN-Animation sử dụng một mô hình optical flow (RAFT) để làm cho hình chuyển động mượt mà hơn. Mô hình theo dõi chuyển động của các pixel và tạo mặt nạ để tạo khung hình tiếp theo.

Lưu ý rằng extension này không áp dụng cho tất cả các video. Ví dụ, với các video dùng trong 3 phương pháp trước đó thì nó tạo ra kết quả kém chất lượng. Có lẽ, là do nó có nền tối.

Vì vậy, tôi dùng một video khác cho hướng dẫn này.

Tải video này tại đây nếu bạn muốn sử dụng nó để làm theo hướng dẫn này.

Bước 1: Cài đặt extension

Trong AUTOMATIC1111 Web-UI, chuyển đến trang Extension.

Chọn tab Cài đặt từ URL.

Trong trường URL for extension’s git repository, nhập

https://github.com/volotat/SD-CN-Animation

Nhấp vào Install

Đóng hoàn toàn và khởi động lại Web-UI.

Bước 2: Nhập các tham số SD-CN-Animation

Trong AUTOMATIC1111 Web-UI, di chuyển chuột đến trang SD-CN-Animation.

Kiêm tra ô “Apply color correction to img2img results to match original colors.” có ở trạng thái KHÔNG được chọn không. (Có thể bạn đã bật tùy chọn này khi thử nghiệm phương pháp trước đó). Việc sửa đổi màu sắc này ảnh hưởng đến mô hình RAFT và tạo ra kết quả kém.

Tải lên tệp video mp4 vào phần Input video

Đặt chiều rộng (width) thành 512. Đặt chiều cao (height) thành 512. (Điều chỉnh cho phù hợp với video của bạn.)

Đặt Prompt thành

ảnh của cô gái Sci fi dễ thương, tóc hồng, chân dung thực tế, theo phong cách franciszek starowieyski, sci fi sứ trắng, mecha, 32k uhd, thẩm mỹ máy móc, màu trắng tối và xanh da trời, hans zatzka, bạc và hồng, thành phố khoa học viễn tưởng, tóc hồng bóng, nửa người, tranh sơn dầu, nền trắng (photo of Sci fi cute girl, pink hair, photorealistic, in the style of franciszek starowieyski, white porcelain sci fi, mecha, 32k uhd, machine aesthetics, dark white and azure, hans zatzka, silver and pink, science fiction city,shiny pink hair, half body, oil painting, white background)

Đặt Negative Prompt thành

biến dạng, biến dạng, xấu xí (deformed, disfigured, ugly)

Đặt sampling method thành DPM++2M Karras.

Bước 3: Lập cài đặt ControlNet

Chúng ta sẽ sử dụng 2 ControlNet. Nếu bạn không thấy nhiều tab ControlNet, hãy tới mục Settings > ControlNetđể bật lên.

Đối với ControlNet Unit 0:

  • Enable: Yes
  • Pixel Perfect: Yes
  • Control Type: Line Art
  • Preprocessor: Line art realistic
  • Model: control_xxxx_lineart
  • Control weight: 0.6

ĐỪNG tải lên hình ảnh.

Để lại tất cả các cài đặt khác như mặc định.

Đối với ControlNet Unit 1:

  • Bật: Có
  • Pixel Perfect: Có
  • Loại điều khiển: Tile
  • Bộ tiền xử lý: Tile resample
  • Mô hình: control_xxxx_tile
  • Trọng số điều khiển: 0.5

ĐỪNG tải lên hình ảnh.

Để lại tất cả các cài đặt khác ở chế độ mặc định.

Bước 4: Tạo video

Nhấp vào Generate để bắt đầu xử lý.

Sau khi hoàn thành, nhấp chuột phải vào video và bạn sẽ thấy một tùy chọn để lưu.

Đây là kết quả mà tôi nhận được.

Lưu ý đối với SD-CN-Animation

Điều tôi thích ở extension này là nó khá hoàn thiện. Mọi thứ hoạt động trơn tru. (Tôi không có nhiều kỳ vọng về sự mượt mà của phần mềm khi sử dụng A1111…)

Hãy đảm bảo bạn đã bỏ chọn “Apply Color correction…” cho img2img. Nếu không, bạn sẽ không nhận được kết quả tốt nhất.

Tất cả các bộ lấy mẫu samplers đều hoạt động khá ổn trong extension này. Hãy chọn một deterministic sampler để giảm hiện tượng nhấp nháy. (Xem nhận xét về hiện tượng nhấp nháy bên dưới)

Phương pháp 5: Temporal Kit

Temporal Kit thực hiện một số phương pháp chuyển đổi video-to-video. Tôi chỉ sẽ nói về phương pháp tốt nhất ở đây.

Ý tưởng cơ bản là chọn các khung hình chính trên video (ví dụ: 16), tạo phong cách cho chúng bằng cách sử dụng image-to-image và sử dụng chúng làm tham chiếu để vẽ các khung hình kế tiếp.

Phương pháp này đã được tiên phong bởi EbSynth, một chương trình máy tính vẽ video. Nó được tạo ra trước Stable Diffusion, nhưng khả năng img2img trong Stable Diffusion đã mang lại sức sống mới cho nó.

Tuy nhiên, kết quả sẽ kém nếu bạn thực hiện image-to-image trên từng khung hình riêng lẻ. Lý do là các hình ảnh đầu ra thiếu tính nhất quán.

Mẹo ở đây là biến đổi TẤT CẢ các khung hình chính cùng một lúc bằng cách ghép chúng lại thành một tờ giấy khổng lồ duy nhất. Như thế này:

Trước đây, chúng tôi thường làm việc này một cách thủ công. Nhưng khi dùng Temporal Kit, bạn không cần phải làm điều đó.

Bước 1: Cài đặt extension Temporal Kit

Trong AUTOMATIC1111 Web-UI, chuyển đến trang Extension.

Chọn tab Cài đặt từ URL.

Trong trường URL for extension’s git repository, nhập

https://github.com/CiaraStrawberry/TemporalKit

Nhấp vào Install.

Đóng Web-UI và khởi động lại .

Bước 2: Cài đặt FFmpeg

Truy cập trang tải xuống của FFmpeg và tải chương trình FFmpeg cho nền tảng của bạn.

Đó là một tệp zip. Sau khi giải nén, bạn sẽ thấy một tệp có tên là ffmpeg hoặc ffmpeg.exe. Đây là chương trình FFmpeg bạn cần!

Nhưng để Temporal Kit sử dụng phần mềm này, bạn cần đặt nó trong PATH để nó có thể được truy cập ở bất kỳ đâu, bởi tất cả mọi người.

Nếu biết cách dùng PATH thì hãy đưa đường dẫn phần mềm vào trong một trong các thư mục trong PATH.

Nếu không thì hãy đọc hướng dẫn dưới đây

Windows

Nhấn phím Windows. Gõ envirnoment và nhấp vào mục “Edit environment variables for your account”.

Chọn PATH, sau đó nhấp vào Edit.

Thêm một mục mới bằng cách nhấp vào New và sau đó nhập

%USERPROFILE%\bin

Sau khi thêm, bạn sẽ thấy mục mới của đường dẫn trên.

Nhấp vào OK để lưu và thoát.

Mở File Explorer.. Trong thanh địa chỉ, nhập

%USERPROFILE%

Và nhấn Enter. Bạn sẽ đi đến thư mục home.

Tạo một thư mục mới có tên là bin.

Kiểm tra bằng cách nhập vào thanh địa chỉ sau đây và nhấn Enter.

%USERPROFILE%\bin

Bạn sẽ ở trong thư mục mới tạo bin.

Bây giờ đặt ffmpeg.exe vào thư mục này và bạn đã hoàn tất. Bây giờ tệp đã nằm trong PATH của bạn.

Để kiểm tra, mở cửa sổ lệnh bằng cách nhấn phím Windows và gõ cmd. Nhấn Enter.

Trong cửa sổ lệnh, gõ

ffmpeg

và nhấn Enter.

Bạn sẽ thấy trang trợ giúp của ffmpeg.

Mac hoặc Linux

Mở Ứng dụng Terminal.

Tạo một thư mục mới bin trong thư mục home của bạn.

mkdir ~/bin

Đặt tệp ffmpeg vào thư mục mới. Bạn có thể sử dụng Finder.

Chỉnh sửa .zprofile trong thư mục chủ của bạn.

Thêm dòng sau

export PATH=~/bin:$PATH

Khởi động Terminal mới và gõ

ffmpeg

Bạn sẽ thấy trang trợ giúp của ffmpeg hiển thị. Điều này xác nhận FFmpeg đã nằm trong đường dẫn của bạn.

Bước 3: Nhập các Pre-processing parameters

Trong AUTOMATIC1111, chuyển đến trang Temporal Kit.

Chuyển đến tab Pre-Processing.

Tải lên video của bạn vào khung Input video. (Tải xuống video này nếu bạn muốn sử dụng cùng video để làm theo hướng dẫn.)

Tiếp theo là tạo một tờ giấy khổng lồ chứa các keyframes. Tờ giấy này sẽ dùng trong img2img để tất cả các khung hình chính sẽ có cùng một phong cách.

Cài đặt:

  • Side: 4 (Đây là cài đặt một lưới hình ảnh 4×4)
  • Height resolution: 2048 (Vì mỗi hình ảnh là 512, 512×4 = 2048)
  • frames per keyframe: 4 (keyframes phụ trách bao nhiêu frames)
  • fps: 30
  • EbSyth mode: Yes
  • Target Folder: Đặt một đường dẫn tên thư mục mà bạn muốn lưu dự án này. Ví dụ: G:\temporalkit\test1

Nhấp vào Run ở bảng điều khiển bên phải. Bạn sẽ thấy một tờ giấy 4×4 các khung hình chính được tạo ra.

Hãy đảm bảo các keyframes này bao phủ toàn bộ video cho video của bạn. Điều chỉnh các tham số nếu chưa được như vậy.

Nếu bạn gặp sự cố về bộ nhớ trong bước img2img tiếp theo, hãy giảm các tham số side hoặc resolution.

Nhấp vào Save Settings nếu bạn hài lòng với kết quả.

Nhấp vào Send to img2img.

Bước 4: Thực hiện Img2img trên các keyframes

Chuyển đến trang Img2img. Tờ giấy khổng lồ của các keyframes đã có sẵn trong khung hình ảnh.

Chuyển sang tab Batch.

Input directory: Tên thư mục mục tiêu của bạn với \input được thêm vào. Ví dụ: G:\temporalkit\test1\input

Output directory: Tương tự nhưng với \output được thêm vào. Ví dụ: G:\temporalkit\test1\output

Kích thước hình ảnh sẽ được sửa đổi và đặt tự động. (2048×2048).

Nhập prompt:

ảnh của cô gái Sci fi dễ thương, tóc hồng, chân dung thực tế, theo phong cách franciszek starowieyski, sci fi sứ trắng, mecha, 32k uhd, thẩm mỹ máy móc, màu trắng tối và xanh da trời, hans zatzka, bạc và hồng, thành phố khoa học viễn tưởng, tóc hồng bóng, nửa người, tranh sơn dầu, nền trắng (photo of Sci fi cute girl, pink hair, photorealistic, in the style of franciszek starowieyski, white porcelain sci fi, mecha, 32k uhd, machine aesthetics, dark white and azure, hans zatzka, silver and pink, science fiction city,shiny pink hair, half body, oil painting, white background)

Và một negative prompt:

biến dạng, biến dạng, xấu xí (deformed, disfigured, ugly)

Sampling method: DPM++2M Karras

Sampling steps: 20

**CFG scale: **7

Denoising strength: 0.5 (điều chỉnh tùy theo yêu cầu)

  • Enable: Yes
  • Pixel Perfect: Yes
  • ControlType: Tile
  • Preprocessor: tile_resample
  • Model: control_xxxx_tile

Nhấn Generate.

Sau khi hoàn thành, bạn sẽ thấy hình ảnh trong thư mục đầu ra của batch.

Hãy mở hình ảnh ở kích thước 100% và kiểm tra chi tiết ở kích thước 100%. Kiểm tra độ sắc nét và sự nhất quán về phong cách.

Bước 5: Chuẩn bị dữ liệu EbSynth

Bây giờ chúng ta cần tạo dữ liệu để đưa vào EbSynth.

Chuyển đến trang Temporal-Kit và chuyển sang tab Ebsynth-Process.

Input directory:: Đặt vào cùng **đường dẫn của target folder bạn đặt trong trang Pre-Processing. Ví dụ: G:\temporalkit\test1

Nhấp vào read last_settings. Nếu thư mục đầu vào của bạn đúng, video và cài đặt sẽ được điền vào.

Nhấp vào prepare ebsynth. Sau khi hoàn thành, bạn sẽ thấy thư mục keys có các keyframes được tạo phong cách và thư mục frames có các hình ảnh của bạn.

Bước 6: Xử lý với EbSynth

Bây giờ hãy mở chương trình EbSynth.

Mở File Explorer và chuyển đến thư mục dự án. Bạn sẽ thấy các thư mục như được hiển thị dưới đây. Chúng ta cần thư mục keys và thư mục frames cho EbSynth.

Kéo thư mục keys từ File Explorer và thả nó vào trường Keyframes trong EbSynth.

Kéo thư mục frames từ File Explorer và thả nó vào trường frames trong EbSynth.

Sau hai bước này, EbSynth sẽ được điền vào các cài đặt chính xác với một loạt nút Synth. Mỗi keyframe có một hàng. Mỗi keyframe hoạt động như một tham chiếu và tạo phong cách cho một số khung hình nhất định.

Nhấp vào Run All và đợi cho đến khi hoàn thành.

Khi hoàn thành, bạn sẽ thấy một loạt các thư mục out_##### được tạo ra trong thư mục dự án mục tiêu.

Bước 7: Tạo video hoàn thiện

Bây giờ quay trở lại AUTOMATIC1111. Bạn vẫn đang ở trang Temporal Kit và tab Ebsynth-Process.

Nhấp vào recombine ebsynth và bạn đã hoàn thành!

Hãy xem video mượt mà như thế nào. Với một số điều chỉnh, bạn có thể cải thiện video này!

Các biến thể

Nhiều ControlNet

Hãy thử nghiệm với Multiple ControlNet để sửa các chi tiết nhỏ và giảm hiện tượng nhấp nháy.

Ví dụ, bạn có thể thêm một ControlNet thứ hai để sử dụng reference only để sửa ngoại hình của nhân vật. Tôi đã sử dụng một khung hình từ một video được tạo ra trước đó.

Đây là video dùng ControlNet lineart and reference-only.

Các cài đặt khác

Thử nghiệm với denoising strengthđể cân đối giữa mức độ thay đổi và hiện tượng nhấp nháy.

Đôi khi, video đầu vào quá khó để xử lý tốt với ControlNet. Hãy thử một video khác có nhân vật to và chuyển động chậm hơn.

Giảm hiện tượng nhấp nháy

Nhiều ControlNet

Sử dụng nhiều ControlNet để sửa các đặc điểm trong video có thể giảm hiện tượng nhấp nháy đáng kể.

Ví dụ, đây là với MỘT ControlNet, Line art realistic.

Lineart realistic (weight: 0.6)

Nếu thêm một ControlNet nữa, Tile Resample thì sao?

Lineart realistic (weight: 0.6). Tile Resample (weight: 0.5).

Không chỉ giảm hiện tượng nhấp nháy, mà nó còn giúp giữ nguyên màu sắc của video gốc.

Có thể đạt được mức độ giảm hiện tượng nhấp nháy tương tự bằng cách thêm Canny ControlNet.

Lineart realistic (weight: 0.6). Canny (weight: 0.5)

Sự đánh đổi là nó sẽ mất thời gian lâu hơn để xử lý video. Nhưng tôi nghĩ đáng để làm!

Xử lý hậu kỳ

Video được tạo bằng ControlNet của Stable Diffusion vẫn có một mức độ nhấp nháy nhất định. Dưới đây là một số điều bạn có thể làm để giảm hiện tượng nhấp nháy.

Da Vinci Resolve có một plugin giảm hiện tượng nhấp nháy mà bạn có thể dễ dàng áp dụng cho video Stable Diffusion. Rất tiếc, nó chỉ có trong phiên bản trả phí (Studio).

Nếu bạn không sẵn sàng chi tiền và có kiến thức về công nghệ, hãy sử dụng mô hình giảm hiện tượng nhấp nháy này để xử lý video của bạn.

Các deterministic samplers

Sử dụng một deterministic sampler để giảm hiện tượng nhấp nháy.

Dưới đây là sử dụng Euler a, một stochastic sampler. (Được tạo bằng SD-CN-animation.)

Video dưới đây sử dụng cùng các cài đặt nhưng sử dụng DPM++2M Karas, một deterministic sampler.

Lưu ý khuôn mặt và tóc của cô ấy ít nhấp nháy hơn.

Một số ví dụ về deterministic sampler

  • Euler
  • LMS
  • Heun
  • DPM++2M
  • DPM++2M Karas

Xem bài viết về sampler để có cái nhìn tổng quan.

Các tùy chọn video-to-video khác

EbSynth

EBSynth được sử dụng để vẽ trên video, theo cách thủ công hoặc với các công cụ tạo hình ảnh AI như Stable Diffusion.

Sau đó, bạn sẽ cắt ảnh trở lại thành 4 hình ảnh riêng lẻ và sử dụng chúng như các keyframe trong EbSynth.

Lợi ích của việc này là để cải thiện tính nhất quán trên các keyframe. Nếu các keyframe được biến đổi bằng cách sử dụng img2img một cách riêng lẻ, chúng thường thay đổi quá nhiều.

Phương pháp EbSynth phát huy hiệu quả tốt nhất khi được thực hiện với Temporal Kit

Deforum

Deforum có chức năng video-to-video trong ControlNet.

Stable WarpFusion

Stable WarpFusion là một Colab Notebook trả phí cho phéo tạo ra các video tuyệt vời với các thuật toán tùy chỉnh.

Hoàng Dũng AI

AI Trainer and Automation Specialist | Passionate about Empowering Individuals with AI Skills.