Góc nhìn Anderson
UniTune: Kỹ Thuật Chỉnh Sửa Ảnh Neural Của Google

Nghiên cứu của Google dường như đang tấn công việc chỉnh sửa ảnh dựa trên văn bản từ nhiều hướng khác nhau, và có vẻ như họ đang chờ đợi để xem cái gì sẽ “thành công”. Ngay sau khi phát hành bài báo Imagic trong tuần này, gã khổng lồ tìm kiếm đã đề xuất một phương pháp khác dựa trên sự khuếch tán tiềm ẩn để thực hiện các chỉnh sửa không thể dựa trên lệnh văn bản trên ảnh, được gọi là UniTune.
Dựa trên các ví dụ được đưa ra trong bài báo mới của dự án, UniTune đã đạt được mức độ phân tách của tư thế và ý tưởng ngữ nghĩa từ nội dung hình ảnh thực sự:

UniTune có khả năng điều khiển thành phần ngữ nghĩa vượt trội. Lưu ý cách trong hàng ảnh trên cùng, khuôn mặt của hai người không bị biến dạng bởi sự biến đổi phi thường trên phần còn lại của ảnh nguồn (phải). Nguồn: https://arxiv.org/pdf/2210.09477.pdf
Đối với những người hâm mộ Stable Diffusion, việc áp dụng các chỉnh sửa cho các phần của ảnh mà không làm biến dạng phần còn lại của ảnh có thể là một hoạt động khó khăn, đôi khi không thể. Mặc dù các bản phân phối phổ biến như AUTOMATIC1111 có thể tạo ra các mặt nạ cho các chỉnh sửa cục bộ và hạn chế, nhưng quá trình này thường rất phức tạp và khó dự đoán.
Đáp án rõ ràng, ít nhất đối với một nhà thực hành thị giác máy tính, là chèn một lớp phân đoạn ngữ nghĩa có thể nhận biết và cô lập các vật thể trong ảnh mà không cần can thiệp của người dùng, và thực tế là đã có một số sáng kiến mới gần đây theo hướng này.
Một khả năng khác để khóa các hoạt động chỉnh sửa ảnh neural lộn xộn là tận dụng mô-đun CLIP của OpenAI, nằm ở trung tâm của các mô hình khuếch tán tiềm ẩn như DALL-E 2 và Stable Diffusion, để hoạt động như một bộ lọc tại điểm mà mô hình ảnh-văn bản sẵn sàng gửi một bản kết xuất được giải thích trở lại người dùng. Trong bối cảnh này, CLIP nên hoạt động như một người giám sát và mô-đun kiểm soát chất lượng, từ chối các bản kết xuất bị lỗi hoặc không phù hợp.
Tuy nhiên, vì CLIP có thể được coi là cả thủ phạm và giải pháp trong kịch bản như vậy (vì nó cũng thông báo cách ảnh được phát triển), và vì các yêu cầu về phần cứng có thể vượt quá những gì có sẵn cục bộ cho người dùng cuối, cách tiếp cận này có thể không lý tưởng.
Ngôn Ngữ Nén
UniTune đề xuất thay thế ‘tinh chỉnh’ một mô hình khuếch tán tiềm ẩn hiện có – trong trường hợp này, mô hình Imagen của Google, mặc dù các nhà nghiên cứu cho biết phương pháp này tương thích với các kiến trúc khuếch tán tiềm ẩn khác – để một token duy nhất được tiêm vào nó, có thể được triệu hồi bằng cách bao gồm nó trong một lời nhắc văn bản.
Trên bề mặt, điều này nghe có vẻ như DreamBooth của Google, hiện đang là một trong những chủ đề được quan tâm nhiều nhất trong cộng đồng Stable Diffusion, có thể tiêm các nhân vật hoặc vật thể mới vào một điểm kiểm tra hiện có trong ít hơn một giờ, dựa trên chỉ một vài bức ảnh nguồn; hoặc như Textual Inversion, tạo ra các tệp ‘sidecar’ cho một điểm kiểm tra, sau đó được xử lý như thể chúng đã được đào tạo ban đầu vào mô hình, và có thể tận dụng các tài nguyên khổng lồ của mô hình bằng cách sửa đổi bộ phân loại văn bản của nó, kết quả là một tệp nhỏ (so với các điểm kiểm tra được cắt tỉa tối thiểu 2GB của DreamBooth).
Trên thực tế, các nhà nghiên cứu khẳng định, UniTune đã từ chối cả hai cách tiếp cận này. Họ phát hiện ra rằng Textual Inversion bỏ qua quá nhiều chi tiết quan trọng, trong khi DreamBooth ‘hoàn thành worse và mất nhiều thời gian hơn’ so với giải pháp họ cuối cùng đã quyết định.
Tuy nhiên, UniTune sử dụng cùng cách tiếp cận ‘metaprompt’ được đóng gói như DreamBooth, với các thay đổi được đào tạo được triệu hồi bởi các từ duy nhất được chọn bởi người đào tạo, sẽ không xung đột với bất kỳ thuật ngữ nào hiện có trong một mô hình công khai được đào tạo cẩn thận.
‘Để thực hiện hoạt động chỉnh sửa, chúng tôi lấy mẫu các mô hình tinh chỉnh với lời nhắc “[rare_tokens] edit_prompt” (ví dụ: “beikkpic hai con chó trong một nhà hàng” hoặc “beikkpic một minion”).’
Quy Trình
Mặc dù có thể khó hiểu tại sao hai bài báo gần như giống hệt nhau về chức năng cuối cùng lại đến từ Google trong cùng một tuần, nhưng có ít nhất một sự khác biệt rõ ràng giữa UniTune và Imagic – cái sau sử dụng ‘ngôn ngữ tự nhiên không nén’ để hướng dẫn các hoạt động chỉnh sửa ảnh, trong khi UniTune đào tạo các token duy nhất theo kiểu DreamBooth.
Do đó, nếu bạn đang chỉnh sửa với Imagic và muốn thực hiện một biến đổi như vậy…

Từ bài báo UniTune – UniTune đặt mình chống lại khuôn khổ chỉnh sửa neural đối thủ yêu thích của Google, SDEdit. Kết quả của UniTune nằm ở phía bên phải, trong khi mặt nạ ước tính được hiển thị ở hình ảnh thứ hai từ trái.
.. trong Imagic, bạn sẽ nhập ‘người thứ ba, ngồi ở hậu cảnh, như một con quái vật dễ thương’.
Lệnh UniTune tương đương sẽ là ‘Người ở phía sau như [x]’, nơi x là từ kỳ lạ và duy nhất được gắn với khái niệm nhân vật quái vật dễ thương được tinh chỉnh.
Khi nhiều ảnh được đưa vào DreamBooth hoặc Textual Inversion với ý định tạo ra một trừu tượng giống như deepfake có thể được điều khiển vào nhiều tư thế, cả UniTune và Imagic đều đưa một ảnh duy nhất vào hệ thống – ảnh gốc, nguyên bản.
Điều này tương tự như cách nhiều công cụ chỉnh sửa dựa trên GAN trong những năm qua đã hoạt động – bằng cách chuyển đổi ảnh đầu vào thành mã tiềm ẩn trong không gian tiềm ẩn của GAN và sau đó giải quyết các mã này và gửi chúng đến các phần khác của không gian tiềm ẩn để sửa đổi (ví dụ: nhập một bức ảnh của một người trẻ có tóc đen và chiếu nó qua mã tiềm ẩn liên quan đến ‘già’ hoặc ‘tóc vàng’, v.v.).
Tuy nhiên, kết quả, trong một mô hình khuếch tán, và bằng phương pháp này, khá chính xác và ít mơ hồ:
Quy Trình Tinh Chỉnh
Phương pháp UniTune cơ bản gửi ảnh gốc qua một mô hình khuếch tán với một tập hợp các hướng dẫn về cách nó nên được sửa đổi, sử dụng các kho dữ liệu lớn có sẵn được đào tạo vào mô hình. Về cơ bản, bạn có thể làm điều này ngay bây giờ với chức năng img2img của Stable Diffusion – nhưng không phải mà không làm biến dạng hoặc thay đổi các phần của ảnh mà bạn muốn giữ lại.
Trong quá trình UniTune, hệ thống được tinh chỉnh, nghĩa là UniTune buộc mô hình phải tiếp tục đào tạo, với hầu hết các lớp không bị đóng băng (xem dưới đây). Trong hầu hết các trường hợp, tinh chỉnh sẽ làm giảm các giá trị mất mát tổng thể của một mô hình hiệu suất cao đã được đào tạo cẩn thận để tiêm hoặc tinh chỉnh một số khía cạnh khác mà người dùng muốn tạo hoặc cải thiện.
Tuy nhiên, với UniTune, dường như bản sao mô hình được tác động, mặc dù nó có thể nặng vài gigabyte hoặc hơn, sẽ được xử lý như một ‘vỏ’ phụ có thể loại bỏ được, và bị loại bỏ vào cuối quá trình, sau khi đã phục vụ một mục đích duy nhất. Loại dữ liệu này đang trở thành một cuộc khủng hoảng lưu trữ hàng ngày cho những người hâm mộ DreamBooth, những mô hình của họ, ngay cả khi được cắt tỉa, không dưới 2GB cho mỗi chủ đề.
Giống như Imagic, việc tinh chỉnh chính trong UniTune xảy ra ở hai lớp thấp nhất trong ba lớp của Imagen (64px cơ sở, 64px > 256px và 256px > 1024px). Không giống Imagic, các nhà nghiên cứu thấy một số giá trị tiềm năng trong việc tối ưu hóa việc tinh chỉnh cũng cho lớp siêu phân giải lớn nhất (mặc dù họ chưa thử nghiệm nó).
Đối với lớp 64px thấp nhất, mô hình bị thiên vị về ảnh cơ bản trong quá trình đào tạo, với nhiều cặp ảnh/văn bản trùng lặp được đưa vào hệ thống trong 128 lần lặp tại kích thước batch 4, và với Adafactor làm hàm mất mát, hoạt động tại tốc độ học 0,0001. Mặc dù máy mã hóa T5 alone bị đóng băng trong quá trình tinh chỉnh này, nó cũng bị đóng băng trong quá trình đào tạo chính của Imagen
Lấy Mẫu
Có nhiều phương pháp lấy mẫu có thể được sử dụng để thu được các thay đổi được thực hiện từ mô hình tinh chỉnh, bao gồm Hướng Dẫn Tự Do của Lớp Phân Loại (CFG), một đặc điểm chính của Stable Diffusion. CFG cơ bản xác định mức độ mà mô hình được phép ‘theo đuổi trí tưởng tượng’ của nó và khám phá các khả năng kết xuất – hoặc ở các cài đặt thấp hơn, mức độ mà nó nên tuân theo dữ liệu nguồn đầu vào và thực hiện ít thay đổi hơn:

Giống như Textual Inversion (ít hơn với DreamBooth), UniTune có thể áp dụng các phong cách đồ họa khác nhau cho ảnh gốc, cũng như các chỉnh sửa photorealistic.
Các nhà nghiên cứu cũng thử nghiệm với kỹ thuật ‘bắt đầu muộn’ của SDEdit, nơi hệ thống được khuyến khích bảo tồn chi tiết gốc bằng cách chỉ bị ‘nhiễu’ một phần từ đầu, nhưng thay vào đó duy trì các đặc điểm thiết yếu của nó. Mặc dù các nhà nghiên cứu chỉ sử dụng nó trên lớp thấp nhất (64px), họ tin rằng nó có thể là một kỹ thuật lấy mẫu hữu ích trong tương lai.
Các nhà nghiên cứu cũng khai thác lời nhắc đến lời nhắc như một kỹ thuật dựa trên văn bản bổ sung để điều kiện cho mô hình:
‘Trong cài đặt “lời nhắc đến lời nhắc”, chúng tôi tìm thấy rằng một kỹ thuật chúng tôi gọi là Hướng Dẫn Lời Nhắc đặc biệt hữu ích để tinh chỉnh tính trung thực và tính biểu đạt.
‘Hướng Dẫn Lời Nhắc tương tự như Hướng Dẫn Tự Do của Lớp Phân Loại ngoại trừ việc baseline là một lời nhắc khác thay vì mô hình không điều kiện. Điều này hướng mô hình tới sự khác biệt giữa hai lời nhắc.’
Tuy nhiên, hướng dẫn lời nhắc, theo các tác giả, chỉ cần thiết phải sử dụng đôi khi trong các trường hợp CFG không đạt được kết quả mong muốn.
Một cách tiếp cận lấy mẫu mới khác được gặp phải trong quá trình phát triển UniTune là đ间, nơi các khu vực của ảnh đủ riêng biệt để cả ảnh gốc và ảnh đã chỉnh sửa rất giống nhau về thành phần, cho phép sử dụng một đ间 ‘ngây thơ’ hơn:

Đ间 có thể làm cho các quá trình phức tạp hơn của UniTune trở nên thừa trong các trường hợp mà các khu vực cần biến đổi là rời rạc và có ranh giới rõ ràng.
Các tác giả đề xuất rằng đ间 có thể hoạt động hiệu quả đến mức nó có thể được sử dụng như một cài đặt mặc định, và quan sát rằng nó có khả năng thực hiện các biến đổi phi thường trong các trường hợp mà các che khuất phức tạp không cần phải được đàm phán bởi các phương pháp phức tạp hơn.
UniTune có thể thực hiện các chỉnh sửa cục bộ với hoặc không có mặt nạ chỉnh sửa, nhưng cũng có thể quyết định vị trí của các chỉnh sửa một cách độc lập, với sự kết hợp độc đáo của quyền lực giải thích và sự thiết yếu hóa dữ liệu nguồn đầu vào:

Trong ảnh trên cùng của cột thứ hai, UniTune, được giao nhiệm vụ chèn ‘một tàu hỏa màu đỏ ở hậu cảnh’, đã đặt nó vào một vị trí phù hợp và chân thực. Lưu ý trong các ví dụ khác về cách tính toàn vẹn ngữ nghĩa đối với ảnh nguồn được duy trì ngay cả trong các thay đổi phi thường về nội dung pixel và phong cách cốt lõi của ảnh.
Độ Trễ
Mặc dù lần lặp đầu tiên của bất kỳ hệ thống mới nào sẽ chậm, và mặc dù có thể sự tham gia của cộng đồng hoặc cam kết của công ty (thường không phải là cả hai) sẽ cuối cùng tăng tốc và tối ưu hóa một quy trình nặng về tài nguyên, nhưng cả UniTune và Imagic đều thực hiện một số thủ tục học máy lớn để tạo ra các chỉnh sửa tuyệt vời này, và có thể đặt câu hỏi về mức độ mà một quy trình nặng về tài nguyên như vậy có thể được thu nhỏ để sử dụng trong nước, thay vì truy cập qua API (mặc dù sau này có thể được mong muốn hơn bởi Google).
Hiện tại, thời gian vòng từ đầu vào đến kết quả là khoảng 3 phút trên một GPU T4, với khoảng 30 giây thêm cho suy luận (theo bất kỳ quy trình suy luận nào). Các tác giả thừa nhận rằng đây là độ trễ cao, và hầu như không đủ điều kiện là ‘tương tác’, nhưng họ cũng lưu ý rằng mô hình vẫn có sẵn cho các chỉnh sửa thêm sau khi được tinh chỉnh ban đầu, cho đến khi người dùng hoàn thành quá trình, điều này giảm thời gian chỉnh sửa mỗi lần.
Được xuất bản lần đầu vào ngày 21 tháng 10 năm 2022.














