Những text-to-image diffusion model hiện có gặp khó khăn trong việc sinh ra hình ảnh theo điều kiện/dense caption, mà ở đó text prompt mô tả chi tiết vật thể nào ở vị trí nào.
Đó là lý do mà cũng đã có 1 số lượng tương đối các nhà nghiên cứu cho ra mắt các layout+text-to-image diffusion model, nổi bật như SpaText, GLIGEN, ControlNet và DenseDiffusion… Tuy nhiên tất cả những model đó đều chỉ tận dụng một kiểu layout (hoặc là bounding boxes, hoặc là mask) trong 1 lần inference. Các bạn có thể kiểm tra ở mục tham khảo.
Câu hỏi đặt ra là liệu có phương pháp hay model nào không bị hạn chế bởi định dạng layout, và thực sự chạm đến tự do không? Câu trả lời nằm ở InstanceDiffusion – SOTA – CVPR 2024.
Fig 1: Khả năng của InstanceDiffusion
Tác giả cải thiện khả năng sinh ảnh theo điều kiện bằng cách tận dụng cả hai loại thông tin, text và location. Có thể viết model của ở dạng f(cg, {(c1, l1), …, (cn, ln)}) với input là global text caption cg và (caption ci , location li )(ci, li) cho n điều kiện.
Fig 2: Kiến trúc của InstanceDiffusion, backbone Unet trong Stable Diffusion v1-5
Lý do: Chắc chắn trong bài toán này, chúng ta nhất định phải có cách để chiếu các thông tin khác nhau về cùng một không gian và kết hợp chúng lại. UniFusion sẽ giúp chúng ta xử lý điều đó một cách hiệu quả.
UniFusion chiếu các loại điều kiện có định dạng khác nhau về cùng một không gian, đồng thời, tích hợp thông tin về location, caption với thông tin visual từ diffusion backbone.
Fig 3: Kiến trúc UniFusion
Một điều cần chú ý nữa là UniFusion được tích hợp giữa 2 lớp self-attention và cross-attention.
Fig 4: Location parameterization
Tác giả chuyển đổi:
Tác giả chuyển đổi tọa độ điểm 2D pi cho các vị trí sử dụng Fourier mapping γ(·) và mã hóa caption ci sử dụng bộ CLIP text encoder τθ(·).
Với mỗi định dạng điều kiện, tác giả dùng mạng MLP khác nhau, vì thế với 1 điều kiện i, chúng ta có gscribblei, gboxi, gpointi, and gmaski.
Tuy nhiên nếu 1 điều kiện được thể hiện bởi 1 định dạng, tác giả sẽ dùng learnable null token ei cho những định dạng còn lại.
s là giá trị nhị phân thể hiện sự xuất hiện của 1 định dạng cụ thể.
Tác giả biểu thị các instance condition tokens cho từng vị trí nhưng cùng thuộc 1 định dạng là g, cho tất cả vị trí là G, và từng visual tokens là v, tất cả là V.
Tác giả quan sát thấy rằng vanilla self-attention dẫn tới việc rò rỉ thông tin của các điều kiện, (màu sắc của điều kiện này lại được thể hiện bởi điều kiện khác). Vì thế họ xây dựng mask M giúp tránh việc rò rỉ thông tin, việc này cũng khá tương tự với cơ chế masked attention của transformer.
Ivk = i nếu visual tokens vk thuộc cùng 1 vị trí với điều kiện i.
w là learnable parameter, khởi tạo bằng 0, mục đích là điều khiển tầm ảnh hưởng của điều kiện.
ScaleU giúp tinh chỉnh skip connection của UNet, có 2 learnable scaling vector: 𝑆𝑏Sb cho feature chính và 𝑆𝑠Ss cho skip-connected features.
Fig 5: Skip Connection
𝐹𝑏Fb được scaled bởi một phép nhân theo channel:
𝐹𝑏′=𝐹𝑏⊗(tanh(𝑆𝑏)+1)Fb′=Fb⊗(tanh(Sb)+1).
Đối với skip-connection features, họ chọn ra những feature có tần số xuất hiện thấp (ít hơn 𝑟threshrthresh) sử dụng frequency mask 𝛼α và scale chúng trong Fourier domain:
𝐹𝑠′=IFFT(FFT(𝐹𝑠)⊙𝛼)Fs′=IFFT(FFT(Fs)⊙α).
FFT(.) là phép biến đổi Fast-Fourier và IFFT(.) là phép biến đổi Inverse-Fast-Fourier , ⊙⊙ là phép nhân theo phần tử, và
𝛼(𝑟)=tanh(𝑆𝑠)+1α(r)=tanh(Ss)+1 if 𝑟<𝑟threshr<rthresh otherwise =1=1,
𝑟r biểu thị tần số, và 𝑟threshrthresh là một ngưỡng. 𝑆𝑏Sb và 𝑆𝑠Ss đều được khởi tạo là vectors 0.
Tác giả cũng giới thiệu một cách nữa để tránh rò rỉ thông tin, đó là chiến lược Multi-instance Sampler trong khi inference.
Fig 6: InstanceDiffusion trong quá trình inference
Có được một dataset với domain lớn cho bài toán này là rất khó. Vậy nên để có được nhiều thông tin chi tiết về điều kiện (diều hâu) và đặc trưng của điều kiện (mắt của diều hâu), tác giả xây dựng bộ dữ liệu dựa vào nhiều model.
Dưới đây là phương pháp mà họ dùng để đo độ chính xác mà vật thể được tạo ta gắn với những định dạng location khác nhau
Bounding box:
Instance mask:
Scribble:
Single-point:
Fig 7: So sánh. InstanceDiffusion có kết quả ấn tượng nhất ở tất cả các định dạng
Fig 8: InstanceDiffusion với nhiều định dạng điều kiện
Fig 9: Iterative Image Generation
Nguon: viblo
You need to login in order to like this post: click here
YOU MIGHT ALSO LIKE