YH Hsu
    • Create new note
    • Create a note from template
      • Sharing URL Link copied
      • /edit
      • View mode
        • Edit mode
        • View mode
        • Book mode
        • Slide mode
        Edit mode View mode Book mode Slide mode
      • Customize slides
      • Note Permission
      • Read
        • Only me
        • Signed-in users
        • Everyone
        Only me Signed-in users Everyone
      • Write
        • Only me
        • Signed-in users
        • Everyone
        Only me Signed-in users Everyone
      • Engagement control Commenting, Suggest edit, Emoji Reply
    • Invite by email
      Invitee

      This note has no invitees

    • Publish Note

      Share your work with the world Congratulations! 🎉 Your note is out in the world Publish Note

      Your note will be visible on your profile and discoverable by anyone.
      Your note is now live.
      This note is visible on your profile and discoverable online.
      Everyone on the web can find and read all notes of this public team.
      See published notes
      Unpublish note
      Please check the box to agree to the Community Guidelines.
      View profile
    • Commenting
      Permission
      Disabled Forbidden Owners Signed-in users Everyone
    • Enable
    • Permission
      • Forbidden
      • Owners
      • Signed-in users
      • Everyone
    • Suggest edit
      Permission
      Disabled Forbidden Owners Signed-in users Everyone
    • Enable
    • Permission
      • Forbidden
      • Owners
      • Signed-in users
    • Emoji Reply
    • Enable
    • Versions and GitHub Sync
    • Note settings
    • Note Insights New
    • Engagement control
    • Transfer ownership
    • Delete this note
    • Save as template
    • Insert from template
    • Import from
      • Dropbox
      • Google Drive
      • Gist
      • Clipboard
    • Export to
      • Dropbox
      • Google Drive
      • Gist
    • Download
      • Markdown
      • HTML
      • Raw HTML
Menu Note settings Note Insights Versions and GitHub Sync Sharing URL Create Help
Create Create new note Create a note from template
Menu
Options
Engagement control Transfer ownership Delete this note
Import from
Dropbox Google Drive Gist Clipboard
Export to
Dropbox Google Drive Gist
Download
Markdown HTML Raw HTML
Back
Sharing URL Link copied
/edit
View mode
  • Edit mode
  • View mode
  • Book mode
  • Slide mode
Edit mode View mode Book mode Slide mode
Customize slides
Note Permission
Read
Only me
  • Only me
  • Signed-in users
  • Everyone
Only me Signed-in users Everyone
Write
Only me
  • Only me
  • Signed-in users
  • Everyone
Only me Signed-in users Everyone
Engagement control Commenting, Suggest edit, Emoji Reply
  • Invite by email
    Invitee

    This note has no invitees

  • Publish Note

    Share your work with the world Congratulations! 🎉 Your note is out in the world Publish Note

    Your note will be visible on your profile and discoverable by anyone.
    Your note is now live.
    This note is visible on your profile and discoverable online.
    Everyone on the web can find and read all notes of this public team.
    See published notes
    Unpublish note
    Please check the box to agree to the Community Guidelines.
    View profile
    Engagement control
    Commenting
    Permission
    Disabled Forbidden Owners Signed-in users Everyone
    Enable
    Permission
    • Forbidden
    • Owners
    • Signed-in users
    • Everyone
    Suggest edit
    Permission
    Disabled Forbidden Owners Signed-in users Everyone
    Enable
    Permission
    • Forbidden
    • Owners
    • Signed-in users
    Emoji Reply
    Enable
    Import from Dropbox Google Drive Gist Clipboard
       Owned this note    Owned this note      
    Published Linked with GitHub
    • Any changes
      Be notified of any changes
    • Mention me
      Be notified of mention me
    • Unsubscribe
    ### [AI / ML領域相關學習筆記入口頁面](https://hackmd.io/@YungHuiHsu/BySsb5dfp) --- ## [Multimodal] CVPR 2023。Multimodal Foundation Models : From Specialists to General-Purpose Assistants<br>多模態基礎模型研究回顧 本系列筆記筆記基於2023.07 CVPR研討會Recent Advances in Vision Foundation Models 視覺基礎模型回顧的論文,與研討會5場演講(附上投影片與影片連結),更新近期視覺與多模態模型的發展趨勢與前沿技術 #### [2023。CVPR。Recent Advances in Vision Foundation Models](https://vlp-tutorial.github.io/) | 主題 | 資源 | 演講者 | 個人筆記連節 | | -------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------- | --- | | Opening Remarks & Visual and Vision-Language Pre-training<br>**CH2 Visual Understanding** | [Slides](https://datarelease.blob.core.windows.net/tutorial/vision_foundation_models_2023/slides/Zhe_CVPR2023_Tutorial.pdf), [YouTube](https://youtu.be/hE135guhTQo) | Zhe Gan | [筆記連結](https://hackmd.io/@YungHuiHsu/S1nPk2eET) | | From Representation to Interface: The Evolution of Foundation for Vision Understanding<br>**CH2 Visual Understanding** | [Slides](https://datarelease.blob.core.windows.net/tutorial/vision_foundation_models_2023/slides/Jianwei_CVPR2023_Tutorial.pdf), [YouTube](https://youtu.be/wIcTyutOlDs) | Jianwei Yang | [筆記連結](https://hackmd.io/@YungHuiHsu/HyjAklf4T) | | Alignments in Text-to-Image Generation<br>**CH3 Visual Generation** | [Slides](https://datarelease.blob.core.windows.net/tutorial/vision_foundation_models_2023/slides/Zhengyuan_Tutorial_T2I2023.pdf), [YouTube](https://youtu.be/iixMLxeuOqU) | Zhengyuan Yang | [筆記連結](https://hackmd.io/@YungHuiHsu/Bko4OHNNT) | | Large Multimodal Models | [Slides](https://datarelease.blob.core.windows.net/tutorial/vision_foundation_models_2023/slides/Chunyuan_cvpr2023_tutorial_lmm.pdf), [Notes](https://arxiv.org/pdf/2306.14895.pdf), [YouTube](https://youtu.be/mkI7EPD1vp8) | Chunyuan Li | | | Multimodal Agents: Chaining Multimodal Experts with LLMs | [Slides](https://datarelease.blob.core.windows.net/tutorial/vision_foundation_models_2023/slides/Linjie_Multimodal%20Agents.pptx), [YouTube](https://youtu.be/Wb5ZkZUNYc4) | Linjie Li | | #### 會議論文[2023.09。Multimodal Foundation Models: From Specialists to General-Purpose Assistants](https://arxiv.org/abs/2309.10020) - [個人筆記](https://hackmd.io/@YungHuiHsu/HkOjXPg46) 各章詳細內容請見演講筆記 --- :construction: 持續撰寫中 ## Alignments in Text-to-Image Generation - 對應會議論文 CH3 **Visual Generation** ![image](https://hackmd.io/_uploads/H1Ia4K4Na.png =600x) > Figure 3.1 (b): An overview of improving human intent alignments in T2I generation. > ![image](https://hackmd.io/_uploads/BJdTiB4N6.png) - Text-to-image (T2I) - Aligning with human intentions ![image](https://hackmd.io/_uploads/BJlb2SNEa.png =400x) ![image](https://hackmd.io/_uploads/rkKG3HV4a.png) ## 摘要 * **文字至圖像生成概述(Overview of Text-to-Image Generation)**:講座討論了文字至圖像生成的基礎,強調它作為條件式圖像生成問題的角色。目標是生成與文本輸入語義相關的高保真度圖像,凸顯這一領域的不斷演進。 * **對齊視角(Alignment Perspective)**: The focus is on the alignment perspective in text-to-image generation. This involves creating ):重點在於文字至圖像生成的對齊視角。這包括創建更好地與**人類意圖對齊**的模型,允許更精確地生成用戶想像的內容,並提高文字至圖像系統的易用性 * **挑戰與相關研究(Challenges and Related Works)**:提到文字至圖像生成的挑戰,特別是在處理複雜的文字描述時。它提到了模型有時忽略對象或混淆描述中的屬性的研究。介紹了該領域的各種研究作品和方法論。 * **方法論與模型實例(Methodologies and Model Examples)**:對不同的方法論進行了詳細解釋,如基於自回歸Transformer的方法、擴散過程和注意機制。使用Stable Diffusion模型作為具體示例,來說明這些概念,包括編碼器-解碼器框架和**交叉注意**(cross-attention)過程。 * **未來方向和觀察(Future Directions and Observations)**:講座以討論文字至圖像生成社區中開源與封閉源代碼庫的對比,以及合成數據在幫助理解模型方面的潛力 --- ## 3.1 Overview ### 3.1.1 視覺生成中的人類對齊 Human Alignments in Visual Generation 人工智能對齊研究在T2I生成的脈絡中是一個專門致力於開發能夠輕鬆遵循人類意圖以合成期望生成視覺內容的圖像生成模型的研究領域。當前的文獻通常聚焦於標準T2I模型的一個特定弱點,這阻礙了它們準確產生與人類意圖對齊的圖像。本章深入探討了四個常見的研究問題,如圖3.1(a)所總結的那樣,並跟進說明 ![image](https://hackmd.io/_uploads/ry1B3B4Va.png) > Figure 3.1 (a): An overview of improving human intent alignments in T2I generation. - **空間可控T2I生成(Spatial controllable T2I generation)** - 文本作為人機互動的有力媒介,使其成為條件視覺生成的焦點。然而,僅靠文本在提供精確的空間參照方面不足,比如為任意圖像區域指定開放式描述與精確的空間配置。空間可控T2I生成旨在將文本輸入與其他條件結合,以提高可控性,從而幫助用戶生成期望的圖像 - **基於文本的圖像編輯(Text-based image editing)** - 編輯是獲取人類意圖視覺內容的另一個重要手段。用戶可能擁有近乎完美的圖像,無論是由模型生成的還是自然捕獲的,但這些可能需要特定的調整以滿足他們的意圖。 - 編輯有多種目標,從局部修改對象到全局調整圖像風格。基於文本的圖像編輯探索有效的方法來創建一種多功能的編輯工具。 - **更好地遵循文字提示(Better Following Text Prompts)** - 儘管T2I模型被訓練為基於配對文本輸入重建圖像,但訓練目標並不必然確保或直接優化在圖像生成過程中嚴格遵守文本提示。標準T2I模型可能會忽略某些文本描述並生成與輸入文本不完全對應的圖像 - **視覺概念客製化(Concept Customization)** - 將視覺概念納入文本輸入,比如在不同環境中生成人們寵物狗或家庭成員的圖像,或者打造以特定角色為特色的視覺敘事 - 這些視覺元素往往包含難以用言語表達的複雜細節。作為替代,研究探索T2I模型是否可以通過專門的Token嵌入或條件圖像定制來繪製這些視覺概念。 ### 3.1.2 Text-to-Image Generation - Variational autoencoder (VAE) - GAN 經典的對抗網絡(GAN),這裡有生成器和鑑別器,生成器試圖從噪聲中創造圖像,與試圖區分真假圖像的鑑別器相對抗 - Discrete image token prediction - 「離散影像標記(tokens)預測」是一種將連續的視覺訊號轉化為有限集合的離散tokens的方法。這種方法的核心是一對影像標記器和去標記器的結合,例如向量量化生成對抗網絡(Vector Quantized Generative Adversarial Networks, VQ-GAN),圖像生成問題被轉化為一個離散tokens預測任務 - Auto-regressive 常用的策略是使用Auto-regressive Transformer,這種模型會根據文本輸入,按順序生成視覺tokens。最後,預測出的視覺tokens被去tokens化,形成最終的圖像預測 - Non-AR Transformer 有基於Transformer的自回歸方法,它將圖像分解為多個區塊,並將每個區塊映射到一個離散索引上 - Diffusion 將隨機噪聲引入到圖像中,通過多步去噪過程,最終得到一個視覺質量好且與文本輸入語義相關的圖像 ![image](https://hackmd.io/_uploads/BJ89nSEVa.png) ### Stable Diffusion (SD) Basics 擴散模型是一種利用隨機微分方程將隨機噪聲轉化為圖像的技術。穩定擴散(Stable Diffusion, SD)是此類模型的一個實例,它透過多次迭代的去噪過程,逐步預測並移除噪聲,使圖像逐漸演化並以文本輸入為條件 在穩定擴散模型中,包含幾個核心組件: - **變分自編碼器(VAE)**:它包含配對的編碼器 $\mathbf{E}$ 和解碼器 $\mathbf{D}$,負責將RGB圖像 $x \in \mathbb{R}^{H \times W \times 3}$ 編碼成潛在隨機變量 $z$,並將潛在變量 $z$ 解碼回圖像以重建圖像。在SD中,潛在變量 $z$ 的維度是原始圖像的48倍小,這增加了計算效率。 - **文本編碼器**:SD是一個條件圖像生成模型,它將輸入文本條件透過條件編碼器 $\tau$ 進行編碼。SD使用的是ViT-L/14 CLIP文本編碼器,將文本查詢轉化為一個向量 $\tau(y) \in \mathbb{R}^{N \times d}$,其中 $d$ 是嵌入的維度。 - **去噪U-Net**:擴散圖像生成過程的核心模組,負責在每個去噪步驟中預測需要從潛在空間的每個位置減去的噪聲 $\epsilon(\mathbf{z_t}, t)$。這個模組利用L2損失訓練,使預測的噪聲 $\epsilon(\mathbf{z_t}, t)$ 與目標噪聲接近。 在去噪過程中,U-Net將文本條件作為輸入,生成與文本查詢語義相關的圖像。文本條件和視覺潛在空間 $z$ 通過圖像-文本交叉注意力層進行交互: $$ \text{Attention}(Q, K, V) = \text{softmax}\left(\frac{QK^T}{\sqrt{d}}\right) V, $$ - **Cross-attention** - 使用文字編碼作為 **$Key$ 和 $Value$** - 使用視覺編碼作為 **$Query$** :::info 其中 **$K$ 和 $V$ 是從文本流 $\tau(y)$ 投影出來的**,而 $Q$ 是從視覺流 $z$ 投影出來的,softmax 函數在 $Q$ 和 $K$ 之間進行,產生大小為 $h_u \times w \times d$ 的注意力圖(attention map,即關注的權重) $M$。$M$ 進一步與 $V$ 進行組合,產出上採樣或下採樣塊的輸出。這個注意力圖顯示了每一個文本單詞在所有空間位置的細緻圖像-文本交互作用。 ::: - Figure 3.3: An overview of the latent diffusion model architecture. Image credit: Rombach et al.(2022). ![image](https://hackmd.io/_uploads/S1rM2K44T.png) > - Stable Diffusion 過程: > 1. **像素空間(Pixel Space)**:以圖像編碼器$\epsilon$將初始圖像 $x$ 編碼為$z$到一個多維的像素空間中。 > 2. **潛在空間(Latent Space)**:經過一系列的編碼過程後,圖像在潛在空間中被表示為 $z$,這個空間通常具有更低的維度,並捕捉圖像的核心特徵。 > 3. **擴散過程(Diffusion Process)**:這個過程逐步將噪聲添加到潛在表示 $z$ 中,經過 $T$ 次迭代後變成完全的噪訊$zT$,其中 $T$ 表示擴散的時間步。 > 4. **去噪U-Net $\epsilon_\theta$**:在去噪步驟中,U-Net嘗試去除噪聲,並復原出潔淨的潛在表示 $\hat{z}$。這一步是通過學習一個條件去噪函數 $\epsilon_\theta(z, t)$ 實現的,其中 $t$ 表示當前的時間步。 > 5. **條件化(Conditioning)**:文本提示被轉化為條件嵌入,並用於指導U-Net在去噪過程中考慮文本的語義內容。通過語義映射 $\tau_\theta$ 和文本表示 $\text{Text}$ 實現的,以確保生成的圖像與輸入文本對齊。 > 6. **交叉注意力(Cross-Attention)**:在去噪U-Net中,交叉注意力機制 $\text{CrossAttn}$ 被用來合併潛在表示 $z$ 和文本條件 $\text{Text}$,使模型能夠專注於與文本描述相關的圖像區域。 > > 最後再經由圖像解碼器$D$將"復原出潔淨的潛在表示 $\hat{z}$"解碼為重建的影像$\hat{x}$ > > 結合這些步驟,穩定擴散模型能夠從文本提示出發,經過編碼、條件化、去噪和解碼的過程,最終生成一個與文本描述相匹配的圖像。 - Zooming into conditional U-Net: How text condition operates on image? 如何使用**圖像-文本交叉注意力**(Image-text cross attention) 機制來使潛在表示關注文本條件。 ![image](https://hackmd.io/_uploads/HJ72AKNEp.png) > 在穩定擴散(Stable Diffusion)模型中,潛向量 $\mathbf{z_t}$ 和文本條件 $\tau(y)$ 通過交叉注意力(Cross-attention)機制進行交互,以實現圖像特徵與文本描述之間的細緻對齊。這個過程中涉及以下關鍵步驟和計算: > > 1. **視覺潛向量 $\mathbf{z_t}$ 變換**:這一步驟涉及將潛向量通過函數 $\phi$ 變換,以適配交叉注意力機制的需求。 > 2. **文字條件約束 $\tau(y)$ 的轉換**:文本輸入經過CLIP文本編碼器轉換為特徵嵌入向量$K$ 和 $V$。 > 3. **交叉注意力計算**:查詢 $Q$、鍵 $K$ 和值 $V$ 通過訓練得到的權重矩陣 $W^Q$、$W^K$ 和 $W^V$ 從變換後的潛向量和文本特徵中計算而來: > $$ > Q = W^Q \cdot \phi(z_t), \quad K = W^K \cdot \tau(y), \quad V = W^V \cdot \tau(y). > $$ > 4. **生成注意力圖**:注意力地圖 $M$ 顯示每一個文本單詞與圖像各空間位置的關聯度,由以下公式得出: > $$ > \text{Attention}(Q, K, V) = \text{softmax}\left(\frac{QK^T}{\sqrt{d}}\right) V, > $$ > 其中 $d$ 是特徵的維度。這個注意力地圖大小為 $H \times W \times 77$,反映了圖像的每一個空間位置與文本描述中每一個詞的相關性。 > > 透過這個細緻的對齊過程,穩定擴散模型能夠在生成圖像時,精確地反映文本提示中的語義信息,從而產生與文本描述高度一致的圖像。 - Inference flow ![image](https://hackmd.io/_uploads/B1ah0HVVp.png =500x) > 這幅圖說明了使用穩定擴散(Stable Diffusion)模型從文本提示生成圖像的過程: > 1. **潛在種子(Latent Seed)**: > - 首先,從一個高斯噪聲分佈 $N(0,1)$生成潛在種子,這相當於圖像生成過程的初始點。 > 2. **用戶提示(User Prompt)**: > - 使用者提供了一個描述性文本,例如:"An astronaut riding a horse"。這個文本描述將指導最終圖像的內容。 > 3. **Frozen CLIP Text Encoder**: > - 這個文本描述經過一個預訓練的CLIP文本編碼器處理,將文本轉化為一組嵌入向量,這些嵌入將用來條件化圖像生成過程。 > 4. **文本條件化潛在U-Net(Text conditioned latent U-Net)**: > - 潛在種子和文本嵌入被送入一個條件化U-Net,這個網絡將文本信息和潛在圖像表示結合起來,調整潛在種子以便生成與文本描述相匹配的圖像。 > 5. **排程算法(Scheduler algorithm)**: > - 透過重複N次排程步驟(通常是反向擴散步驟),逐步精細化潛在表示,這些步驟稱為“reconstruct”,意在將潛在表示細節化和精確化。 > 6. **變分自編碼器解碼器(Variational Autoencoder Decoder)**: > - 最後,經過條件化的潛在表示被送進變分自編碼器解碼器,它將潛在表示解碼成最終的圖像,這個圖像應該反映了用戶的原始文本描述。 > 7. **輸出圖像(Output Image)**: > - 經過上述流程,最終生成了一個 512x512 像素的輸出圖像,這個圖像視覺上呈現了用戶提示中的場景,如本例中的太空人騎馬。 ## Aligning human intentions in T2I generation ### 3.2 Spatial Controllable generation ![image](https://hackmd.io/_uploads/SJsu79EE6.png =400x) T2I生成讓使用者使用開放式文字描述他們想要的圖像。然而,僅用文字在某些描述上不夠有效,例如空間參照。空間可控T2I生成的研究探討擴展T2I模型以:pencil2: **接受額外的空間輸入條件來指導圖像生成過程**。 相關研究分為三個主題 :::success 1. Text + layout/box: localized description control 這些研究將標準T2I模型中的全圖像文字描述擴展為以區域為基礎的文字描述,讓開放式的文字描述能夠精準作用於特定的空間區域(Yang et al., 2023b; Li et al., 2023n; Avrahami et al., 2023b; Cho et al., 2023) > extend the image-level text description in vanilla T2I models to the region-grounded text description, such that open-ended text descriptions can precisely operate on a particularly spatial region. 2. Text + dense control (e.g., mask, edge, scribble, etc.) 然後我們**從物件框擴展到更密集的空間條件**,這些條件以2D陣列形式表示,如分割遮罩、邊緣地圖、深度地圖、關鍵點等(segmentation masks, edge maps, depth maps, key points)。我們審視了一些代表性的工作,如ControlNet (Zhang and Agrawala, 2023) 5. Inference-time guidance 上述兩種方法均需對T2I模型進行微調,以便理解這些擴充的空間條件。最後,探討一些在推論時進行指導的技術(Bansal et al., 2023; Chen et al., 2023e),**這些技術能夠實現空間控制而不需對模型進行微調**。 ::: #### Region-controlled T2I generation :::success 大規模的T2I模型在生成高解析度圖像方面展現了卓越的效能。然而,這些模型缺乏空間控制能力,例如無法利用自由形式的文字描述精確指定特定區域的內容。這一限制激發了對區域控制T2I生成的研究。如圖3.4左側所示,這些研究探索了在任意區域上使用開放式文字描述的額外輸入條件(即區域控制文本),增強了T2I模型中的全球圖像描述。這一新的輸入條件要求T2I模型理解空間輸入,並將其與實體文本相關聯。 ::: - ReCo: Region-Controlled T2I Generation - ReCo模型架構 **ReCo** (Yang et al., 2023b)是這一方向上最具代表性的工作之一。核心思想是擴充文本編碼器$\varepsilon$的文本詞彙,並安排不同的tokens來表示實體文本輸入。 - 研究使用一組額外的位置tokens來增強使用預訓練T2I模型理解的文本tokens,這些tokens代表量化的空間坐標。如圖3.4所示,the Position tokens(例如<687>、<204>、<999>、<833>)與Text tokens無縫混合,作為空間修飾符,表明接下來的文本僅作用於指定的空間區域,例如“棒球運動員...球衣”。 - 然後對預訓練的T2I模型進行微調,以支持這種新的輸入界面,從而促進區域控制的T2I生成。 ![image](https://hackmd.io/_uploads/Bk1MV9NVT.png =800x) > Figure 3.4: Overview of the ReCo model architecture. Image credit: Yang et al. (2023b). > 1. Input sequence expansion: box tokens > **輸入序列擴展**:ReCo模型通過加入區域描述來擴展輸入序列,讓模型能夠理解和生成細節更豐富的圖像。 > ![image](https://hackmd.io/_uploads/Bkg_XpZhT.png =400x) > 2. Grounded: box tokens operate on the text to follow > **Grounded**:這些區域描述稱為"box tokens",它們與圖像中的特定區域相對應,使得生成的圖像可以更精確地反映文本描述的細節。 > 3. Finetune T2I to understand box tokens > **Finetune T2I**:為了讓模型理解這些區域描述,ReCo模型需要進行微調,從而能夠處理和生成與這些"box tokens"相關的圖像內容。 **ReCo**討論了區域控制T2I生成在提高與人類意圖對齊方面的幾個優勢,這些優勢也被其他同方向的方法所共有。 - (i)實體文本提供了一個額外的輸入條件,允許用戶輕鬆指定期望的圖像,即在特定位置精確地擁有自由形式的區域描述。框架tokens和輸入序列設計允許用戶使用與查詢T2I模型相同的用戶界面來生成實體文本,使擴展易於使用 - (ii)額外的區域級控制文本有助於更好地生成具有正確對象計數、空間關係和區域屬性(如顏色/大小)的圖像,這可能會使標準T2I模型(Rombach et al.,2022)感到困惑 - (iii)研究還觀察到更好的圖像生成質量,推測實體文本提供了對象級別的圖像-文本聯繫,從而簡化了學習過程 ![image](https://hackmd.io/_uploads/Hk997544p.png) > - **全局圖像文本描述**:對圖像整體內容的簡單描述,例如:"a close up of a dog near a bowl."(一隻狗靠近碗的特寫)。 > > - **結合全局和區域描述的文本**:將全局描述進一步細化為包含具體區域信息的描述,如圖中所示,除了提到狗和碗,還具體到狗的舌頭伸出,碗是銀色的,並且碗裡有水。這樣的描述稱為「Grounded Region-Controlled texts」,它提供了更詳細的視覺細節,使生成的圖像可以更準確地映射文本描述的內容。 > > 透過ReCo模型,生成的圖像不僅能夠反映全局描述,還能夠捕捉到與特定區域相關的細節,從而提高圖像的質量和描述的一致性。這顯示了如何將簡單的描述轉化為一個更細節豐富且具有區域控制的複合描述,進而生成更準確的圖像。 - GLIGEN: Open-Set Grounded T2I Generation **GLIGEN**(Li et al., 2023n) i是另一項代表性工作。GLIGEN與通過擴充輸入tokens和微調整個T2I模型來生成實體描述的方法不同,它採用了一種即插即用的方案:**凍結原始T2I模型並訓練額外的閘控自注意力層**來學習新的定位技巧。 - 定位tokens攜帶兩種信息:需要在其中實體化的文本詞語的語義表示及其空間配置。這些定位tokens隨後通過新添加的閘控自注意力層添加到預訓練的T2I模型中,同時保持所有其餘的預訓練參數凍結。該層配備了一個閘控參數,初始設置為零,允許預訓練模型逐步合併實體文本輸入。 - GLIGEN支持各種類型的實體控制,包括邊界框定位、關鍵點定位、圖像提示,以及其他類型的空間對齊密集條件。 - **模型架構** ![image](https://hackmd.io/_uploads/r1qII5E4a.png) - **Grounding tokens**: grounded text entity + spatial location 結合了文本實體和空間位置信息的標記,用於精確描述圖像中特定區域的內容 - **Gated self-attention layer** with original layers frozen 模型中的一種特殊注意力層,它能夠在保持原始層結構不變的前提下,學習和更新特定的特徵 - **更新機制**:圖中展示的更新機制是通過以下公式實現 $$ v = v + \beta \cdot \tanh(\gamma) \cdot TS(SelfAttn([v, h^e])) $$ ,其中 - $v$ 是原始特徵向量, - $h^e$ 是文本編碼器的輸出 - $\beta$ 和 $\gamma$ 是閘控機制的可學習參數,這兩個參數決定了殘差信息在整個自注意力機制中的比重 - $tanh(γ)$表示通過激活函數變換的閘控信號,它調節了殘差部分的貢獻 - 個人補充:看圖示是將Grounding tokens 插入在視覺Embeddings的前綴一起做Attention計算、Gated的概念有點像LSTM ![image](https://hackmd.io/_uploads/rkjDU5ENa.png) > 這張圖展示了融合殘差學習概念的閘控自注意力(Gated Self-Attention)層。在這個機制中,模型透過閘控(gating)技術來控制自注意力(Self-Attention)層的資訊流 > - **殘差概念**:在深度學習中,殘差學習是一種使模型能夠學習到輸入和輸出之間差異的技術。這通常通過將輸入直接加到輸出上來實現,有助於避免梯度消失問題,並允許更深層次的網絡訓練。 - 效果 ![image](https://hackmd.io/_uploads/rJq_UqN4T.png) > 第二幅圖片展示了GLIGEN模型應用於不同類型的圖像和文本對齊任務,包括: > 1. **Bounding box grounding**:標記圖像中特定物體的邊界框,用於指示文本描述中提及的對象。 > 2. **Keypoint grounding**:識別圖像中的關鍵點,如人物的眼睛或手臂,以提供更細緻的對齊。 > 3. **Spatially-aligned dense conditions**:使用密集的空間對齊條件,以生成更精確地反映複雜文本描述的圖像。 > > 這兩個概念展示了如何將文本描述與圖像中的具體視覺信息緊密結合,從而生成更加準確和豐富的圖像。 #### 區域控制的T2I生成。T2I generation with dense conditions :::success 除了空間座標,還有許多其他常以2D陣列形式表示的空間條件,如分割遮罩、邊緣圖和深度圖 ::: ControlNet(Zhang和Agrawala,2023)是將這些密集空間控制整合到T2I模型中的突出例子。ControlNet建立在Stable Diffusion之上,引入了一個額外的可訓練ControlNet分支,為文字提示增加了一個額外的輸入條件。這個額外條件可以是canny邊緣圖、霍夫線、HED邊界、草圖、人體姿勢圖、分割遮罩、深度圖像、法線圖或線條圖,每一種都有其獨特的模型副本。增加的分支是從SD的U-Net中預訓練的降採樣塊初始化的。這個分支將增加的視覺潛在因素和額外的密集條件作為輸入。在將輸入的密集條件與視覺潛在因素結合到輸入中,並將ControlNet分支的輸出合併回SD的升採樣塊之前,有一個獨特的零初始化的1×1卷積層。 這一層作為一個閘控連接器,逐步將額外的條件注入到預訓練的Stable Diffusion模型中。有了額外的密集空間控制,ControlNet提供了一個有效的生成可控性渠道。 - Text+Dense Control。 - “Adding Conditional Control to Text-to-Image Diffusion Models” (**ControlNet**) - 像數層級的約束及語意對齊 Dense conditions ![image](https://hackmd.io/_uploads/BkORfoNEa.png =600x) ![image](https://hackmd.io/_uploads/S16dXiNV6.png =600x) > 1x1 Conv layer with both weight and bias initialized with zeros > 圖片介紹了「Text+Dense Control」的概念,一種在文本到圖像轉換過程中結合了密集條件(Dense conditions)的控制方法。這些密集條件包括: > > - **Canny Edge**:使用Canny算法提取的邊緣信息。 > - **Hough Line**:通過霍夫變換檢測到的直線。 > - **HED Boundary**:使用全卷積網絡提取的邊界檢測。 > - **User Sketching**:用戶手繪的草圖。 > - **Human Pose**:人體姿態信息。 > - **Semantic Segmentation**:物體的語義分割信息。 > - **Depth**:圖像的深度信息。 > - **Normal Maps**:表面法線資訊,用於表示三維結構。 > - **Cartoon Line Drawing**:卡通風格的線條畫。 > > 這些條件被用來提供額外的視覺信息,幫助生成的圖像更加準確和細緻。在模型架構中,包括了一個1x1卷積層(1x1 Conv layer),其權重和偏置都初始化為零,用於細微調整模型的輸入。這種設計可以看作是對模型原有層的一種增強或修改,使其能夠理解和處理這些額外的密集條件信息。 > > 在圖片中所展示的架構,顯示了如何將這些密集條件整合到一個擴散模型(如SD Encoder和Decoder中)以實現更精細的圖像控制。這樣的設計允許模型在學習過程中保留原始層的功能,同時通過這些額外的條件進行微調,進一步提升了生成圖像的相關性和質量。 - 補充:1x1 conv設計用意 在這邊沒有維度的變換,主要用意是在促進特徵融合 :::info 1x1卷積(1x1 Convolution),也被稱為逐點卷積(Pointwise Convolution),是一種特殊的卷積操作,其過濾器(Filter)的大小為1x1。這種卷積操作的設計與功能包括以下幾個關鍵點: - **通道轉換**:1x1卷積主要用於改變輸入數據的通道數量。它可以增加或減少特徵圖的深度,從而進行升維或降維操作。 - **降維:減少計算開銷**:在深層卷積神經網絡中,1x1卷積可以用來降低維度,從而減少參數量和計算複雜度,特別是在緊跟著3x3或更大卷積層之前使用時。 - **昇維:學習更複雜的特徵表示**:由於1x1卷積的參數量相對較少,它們可以在不顯著增加計算負擔的情況下增加模型維度的深度,有助於學習更複雜的特徵表示。 - **特徵融合**:這種卷積允許網絡學習通道之間的複雜交互,從而融合不同的特徵檢測器學習到的信息。 ::: - Uni-ControlNet, UniControl 後續研究,如Uni-ControlNet(Zhao et al.,2023b)和UniControl(Qin et al.,2023a),通過統一輸入條件進一步改進了ControlNet,使得單一模型能夠理解多種輸入條件類型,甚至可以結合兩種條件。圖3.5展示了密集控制的例子和相應生成的圖像。此外,Disco(Wang et al.,2023f)展示了ControlNet在生成可控元素如人物、視頻背景和動作姿勢序列的人類舞蹈視頻中的效率。該研究成功地分離了背景和人體姿勢條件,它們被輸入到ControlNet的兩個不同分支,分別以圖像幀和姿勢圖為條件。這種從所有三個條件中分離控制使Disco在人物前景和背景方面都達到了高保真度。 ![image](https://hackmd.io/_uploads/Hy-6XjVV6.png) > Figure 3.5: Examples of the dense controls and the corresponding generated images. Image credit: Zhao et al. (2023b) > 圖片介紹了Uni-ControlNet,也稱為UniControl,一種統一模型,能夠處理不同類型的控制條件以生成圖像。它的主要概念包括: > > 1. **統一模型(Unified models)**:這裡指同一個模型能夠接受多種不同的條件信息,如Canny邊緣檢測、Hough線檢測、HED邊界檢測、用戶草圖(Sketch)、人體姿態(Openpose)、深度(Depth)、語義分割(Segmentation)和一般內容(Content),並將它們用於影響圖像生成的過程。 > > 2. **條件組合(Condition composition)**:指將不同的條件信息組合起來,以創造出新的、更為豐富的圖像輸入。例如,組合摩托車的輪廓(使用Canny條件)和山脈的深度信息,或者組合鳥的草圖與其顏色分布來生成最終圖像。 > #### 推論時的空間指導。Inference-time spatial guidance. :::success 前述工作需要訓練模型,不論是T2I模型還是額外的模塊,以理解額外的空間條件。另一種方法是,研究 (Bansal et al., 2023; Chen et al., 2023e)探討在不進行額外模型訓練的情況下,為T2I模型提供推論時的空間指導。這個**核心思想類似於分類器指導**(Dhariwal和Nichol,2021),它**採用一個鑑別器損失來指導擴散過程**,如下所示: $$\hat{\varepsilon}'(z_t, t) = \hat{\varepsilon}(z_t, t) + s(t) \cdot \nabla_{z_t} \ell(c, f (\hat{z_0})). \quad (3.2)$$ ::: 以空間控制為例,鑑別器可以是一個Faster-RCNN物件檢測器(Ren et al.,2015),由$f$表示,它操作在中間估計圖像$\hat{z_0}$上,並計算物件檢測損失$\ell$與期望布局$c$,以指導生成$\hat{\varepsilon}(z_t, t)$。$s(t)$是指導強度。這種方法在不需要額外訓練的情況下實現了T2I生成的空間控制,質性結果顯示在圖3.6中。然而,其結果可能不如微調方法(Yang et al., 2023b; Li et al., 2023n; Zhang and Agrawala, 2023).那麼精確。 - Inference-time guidance ![image](https://hackmd.io/_uploads/BJxPB6W36.png) > Figure 3.6: Qualitative results of inference-time spatial guidance. Image credit: Bansal et al. (2023). ![image](https://hackmd.io/_uploads/r1HzNoNEp.png) > 1. **Universal Guidance for Diffusion Models**:通用的指導方法,通過擴展傳統的分類器指導來接受任何一般的指導函數。允許擴散模型在生成圖像時考慮到更多類型的條件或指標 > > 2. 擴散模型中使用的更新規則可以表示為(以物件偵測為例): > > $$ > \hat{\epsilon}_{\theta}(z_t, t) = \epsilon_{\theta}(z_t, t) + s(t) \cdot \nabla_{z_t} \ell(c, f(\hat{z}_{0})) > $$ > > - $\hat{\epsilon}_{\theta}(z_t, t)$:模型在時間 $t$ 求解的梯度項,用於指導資料從無序狀態 $z_t$ 轉變為有序狀態。$\theta$ 表示模型的參數 > - $\epsilon_{\theta}(z_t, t)$:原始無引導擴散模型預測的梯度 > - $s(t)$:隨時間變化的尺度函數(scaling function),用於控制梯度的權重。 > - $\nabla_{z_t}$:表示對於狀態 $z_t$ 的梯度。 > - $\ell(c, f(\hat{z}_{0}))$:損失函數,其中 $c$ 是真實資料或目標標籤,$f(\hat{z}_{0})$ 是模型從無序狀態 $\hat{z}_{0}$ 生成的有序資料的預測。 > - $f(\hat{z}_{0})$: 使用Faster R-CNN作為指導函數來幫助生成圖像的特定部分,如物體的位置或分割的區域 > > 公式說明了如何通過引導梯度來改進擴散模型在推理時的性能,使其能夠生成更符合目標 $c$ 的輸出。這種引導可以通過**直接操作梯度**來實現,並且可以適用於不同的引導函數,從而使模型更加通用和靈活。在圖中的實例中,這種引導被應用於物體檢測、圖像分割 > > 3. **應用實例**: > - 圖片中展示了如何應用這種方法於不同的任務,比如範例圖中以物件檢測(Detection)為例,其中包括錨點分類、邊界框回歸、以及區域標籤分類損失(利用物件檢測模型Faster R-CNN的梯度引導作為生成方向的約束); > - 右邊四個情境中還包含風格轉換(Style)、面部識別(Face recognition)和目標分割(Segmentation)等任務。 > > 通過這種通用指導方法,擴散模型能夠在生成圖像時考慮到更多的條件,從而生成更符合特定條件的高質量圖像。這種方法提高了模型的靈活性和生成圖像的多樣性。 - 補充: Faster R-CNN(Regions with Convolutional Neural Network features) - 用於物體檢測任務,即識別圖像中的物體並定位它們的位置。Faster R-CNN是R-CNN和Fast R-CNN的改進版,它引入了一種稱為Region Proposal Network (RPN) 的機制,用於自動並快速生成高質量的區域提案(region proposals)。 - 這些區域提案隨後被用於抓取特徵,然後通過一系列的卷積神經網絡進行分析,以識別物體的類別(class labels)和它們的邊界框(bounding boxes) #### 總結和趨勢 早期關於空間可控生成的研究,如布局到圖像(layout-to-image)和遮罩到圖像( mask-to-image)的生成,通常與T2I生成並行處理。然而,隨著先進的大規模T2I模型的出現,最近的研究,如本節所討論的,現在傾向於**將空間條件與文字條件整合**。我們識別出整合空間條件到T2I模型的兩個主要趨勢: - 首先,如ReCo所示的區域可控T2I生成,通過擴大文本詞彙與位置Tokens合併空間座標控制到文本輸入中。 - 其次,從ControlNet擴展的研究將一個“圖像般”的條件整合到T2I框架中,從而捕捉到一系列的密集條件。 展望未來,T2I模型可能會有一個**微調階段,允許它們同時理解圖像和文本輸入**。在這種情況下,物件框座標(box coordinates)可以通過文本合併,而密集控制可以作為圖像輸入提供。將在第3.5節探討和詳細說明 ### 3.3 基於文字的編輯 Text-based Editing 文字到圖像的編輯是從給定的圖像和輸入文本描述合成新圖像。用戶可能已經有了一個滿意的開始點,這可以是之前從T2I模型生成的圖像或一張自然圖像,目標是保留大部分視覺內容,只修改特定組件。這可能涉及改變一個局部物體或整體圖像風格,以精確符合用戶的意圖。這種基於文本的編輯方法為用戶提供了一種基於前一版本生成新圖像的工具,對於創建精準遵循人類意圖的視覺內容起著關鍵作用。 - 在基於文本的編輯中有各種定義和任務設置。有下列代表性的研究方向: - (i)改變局部圖像區域 - 例如移除或改變物體,或在某一區域添加物體 - 根據用戶生成的遮罩在圖像生成中空間操縱潛向量在是一種簡單但有效的方法 > Spatially manipulating the latent in image generation according to the user-generated masks is a simple but effective metho - 操縱圖像-文本交叉注意力遮罩對於空間編輯是有效的 > manipulating the image-text cross-attention mask is effective for spatial editing - (ii)語言也可以作為編輯指令告訴機器該做什麼 - 語言輸描述了空間區域中期望的外觀。例如“將圖像中的物體A更改為物體B” - (iii)整合編輯系統集成不同的專業模塊 - 相對於擴展單一的T2I模型進行編輯。如分割模型和大型語言模型 #### 擴散過程操控。Diffusion process manipulations :::info 隨機微分編輯(Stochastic Differential Editing,簡稱SDEdit)是一種圖像編輯方法,由Meng等人於2021年提出。這種方法首先向輸入圖像中添加噪聲進行編輯,然後透過去噪過程生成有意義的圖像編輯效果。具體來說: - **添加噪聲**:在編輯的初步階段,SDEdit會向原始圖像添加噪聲,這一步驟模擬了擴散模型中圖像生成過程的前向階段,即從清晰圖像逐步增加噪聲,進行隨機擴散。 - **去噪**:噪聲添加後,SDEdit會執行去噪過程,這是擴散模型的逆過程,逐步移除先前添加的噪聲,同時引導圖像向用戶期望的編輯方向變化。 - **產生編輯效果**:透過添加噪聲和去噪的過程,SDEdit可以在圖像上進行有意義的編輯。所謂“有意義的編輯”指的是,這些變化不僅隨機,而是根據擴散模型訓練過程中學習到的圖像結構和內容信息,以及對應用戶輸入的編輯意圖。 SDEdit的這種方法利用了擴散模型生成圖像過程中的隨機性,使得編輯操作能夠更自然地融入原始圖像的結構中,產生看似自然的編輯效果,並且對原始圖像進行有針對性的改變。 ::: - **Latents spatial blend** - Spatial editing with Image, text prompt, user input or segmented mask ![image](https://hackmd.io/_uploads/Sym5xCf36.png =500x) ![image](https://hackmd.io/_uploads/Sy97gCfn6.png =800x) > > 圖片描述了"Blended Latent Diffusion"過程,這是一種結合了用戶生成遮罩和擴散模型的圖像編輯方法。這裡的目標是在保留背景的同時編輯前景物體,如圖中的巨大酪梨。 過程如下: 1. **輸入**:原始圖像和文本描述輸入給編碼器,生成初始潛在變量 $Z_{init}$。同時,用戶生成的遮罩(物體遮罩)也被降採樣以與潛在空間的分辨率匹配。 2. **擴散過程**:在多步驟去噪過程中,潛在變量 $Z_t$ 會逐步接近最終目標圖像的潛在表示。這一過程涉及向潛在變量添加噪聲和去噪步驟。 3. **混合潛在變量**:在每一步擴散中,前景 $Z_{fg}$ 和背景 $Z_{bg}$ 的潛在變量根據用戶提供的遮罩 $m_{latent}$ 進行空間混合。混合公式 $z = z_{fg} \otimes m_{latent} + z_{bg} \otimes (1 - m_{latent})$ 決定了每個像素點上前景和背景的貢獻。 - $\otimes$ 表示逐元素相乘。 - $z_{fg}$: **由文字提示導出的前景物體的潛在空間表示** - $z_{fg}$ 是由文本描述生成的,這個描述指的是要進行編輯的物體(在這個例子中是"text prompt"),也就是用戶希望在圖像中看到變化的部分 - 如果涉及到用戶輸入或分割遮罩,這些會用於指導模型將變化應用於特定的前景區域 - $z_{bg}$: **原始背景圖像的潛在空間表示** - 它包含了噪聲。在這個背景中,背景是沒有被用戶指定進行編輯的圖像部分 - 這部分在編輯過程中保持不變,除非用戶希望改變整個圖像的某些背景特徵 - $m_{latent}$:用戶遮罩(user mask)或分割遮罩(segmented mask) - 定義了圖像中哪些部分屬於前景應該被編輯(通常在遮罩中為白色部分,1),哪些部分保留為背景(在遮罩中為黑色部分,0) 4. **解碼**:最終混合的潛在變量 $Z_0$ 通過解碼器轉換為輸出圖像。 在這個過程中,用戶生成的遮罩 $m_{latent}$ 用於控制擴散過程中哪些部分的圖像應該被編輯。遮罩的值介於0到1之間,其中1代表完全選擇前景(即文本描述中生成的編輯物體 $z_{fg}$),而0代表完全選擇背景(即原始背景圖像 $z_{bg}$)。通過這種方式,可以精確地控制圖像的特定區域在編輯過程中保持不變,而其他區域則根據文本描述進行修改。 這個技術允許用戶對生成的圖像進行細致的局部編輯,這種局部編輯之前在傳統的T2I模型中很難實現。例如,如果用戶想要將圖片中的某個物體(如人物)換成文本描述中的物體 ,就可以在不影響背景的情況下只在遮罩指定的區域內進行修改。這種方法的關鍵優勢在於,它提供了更大的靈活性和控制能力,使用戶能夠創建符合他們精確視覺意圖的圖像 - **Image-text Attention Edit** - Edit generated images - Manipulate image-text cross-attention map - Word swap, adding new phrase, attention reweighting ![image](https://hackmd.io/_uploads/SyVKZeQ2p.png) 然而,在混合空間潛在特徵上有一些限制。首先,人工生成遮罩不總是可行。其次,生成過程有時可能會在邊緣產生人工痕跡。研究者們不僅僅是在空間上混合潛在特徵,而是深入探討圖像-文本交叉注意力圖(**image-text cross-attention map**)來尋找物體編輯的線索。 :pencil2: 從依賴人工生成遮罩 > 讓模型自己判斷範圍。透過文字與語意對齊 ![image](https://hackmd.io/_uploads/ByUG8fmnp.png =600x) > [source:蓟梗。Prompt-to-prompt:让生成的图像保持一致](https://zhuanlan.zhihu.com/p/655372592) > - 用“猫骑着车”这条文本生成图像,文本有4个token,那么生成过程里Q点乘K会得到一个4层特征的特征图$M$,每层特征分别对应“猫”“骑”“着”“车”这4个token。 > - 当我想替换一个词时,比如改成用“狗骑着车”这条文本生成图像,也是4个token,那么Q点乘K'会得到一个4层特征图$M^*$,每层特征分别对应“狗”“骑”“着”“车”这4个token > - 然后用“狗”对应的特征图替换掉“猫”对应的特征图,得到新的$\hat{M}$,再进行下一步操作 具體來說,Prompt2Prompt(Hertz et al., 2022)發現交叉注意力層控制視覺區域和文本單詞之間的互動。基於這一觀察,該研究使擴散T2I模型生成的影像能夠進行三種類型的編輯,包括**單詞替換(word swap)**、**新增詞組(adding new phrases)**和**注意力重新加權(attention re-weighting)**,每一種都通過對應在圖像-文本交叉注意力圖上的操控來實現。 - Prompt2Prompt追踪由原始提示(即$M_t$)的attention map和編輯後提示(即$M_t^*$)的attention map生成的兩個cross-attention map,並將這些attention map與預定義的規則合併成新的attention map: $\hat{M_t}$,這個過程以編輯函數 $Edit$表示:$Edit(M_t, M_t^*, t)$。 - 例如,在添加新詞組時,注意力圖$\hat{M_t}$對於原始提示中出現的單詞保持不變。它僅包含修改後的注意力圖$M_t^*$中原始提示中不存在的單詞。編輯的質性結果顯示在圖3.7中。 ![image](https://hackmd.io/_uploads/BkMu0kGh6.png) > 圖 3.7:三種編輯類型(單詞置換、新增詞句、注意力重新分配),通過注意力圖操作在合成生成圖像上實現 > Figure 3.7: Three types of editing (word swap, adding new phrases, attention re-weighting) on synthetically generated images, enabled by attention map manipulation. Image credit: Hertz et al.(2022). - 演算法 ![image](https://hackmd.io/_uploads/S1pZx7mnp.png =500x) - 模型架構與設計 ![image](https://hackmd.io/_uploads/rk71DM726.png =800x) > 上半部分,原版cross-attention,下半部分,論文的cross-attention - **Text to Image Cross Attention**(原版cross-attention) 1. **像素特徵** $\phi(z_t)$ 是圖像在特定擴散步驟 $t$ 的潛在表示 2. **像素查詢** $Q$ 是將潛在特徵轉換成一組查詢,這些查詢用於從文本提示中提取相關信息 3. **Tokens Keys $K$ 和 Values $V$** 是從文本提示中提取的,它們與像素查詢 $Q$ 進行交互,生成注意力權重 $M_t$ - **Cross Attention Control**為本文提出的Cross Attention設計 模型控制交叉注意力以實現特定的圖像編輯操作,如單詞置換、新增詞句或注意力重新加權。這些操作依賴於兩套attention maps: Maintaining two sets of cross-attention maps for edit: 1. **原始文本提示的注意力映射**Original prompt $M_t$ 2. **編輯後文本提示的注意力映射**Edited prompt $M_t^*$ 編輯函數 $Edit$ 根據時間步 $t$ 和閾值 $\tau$ 決定使用哪套映射。這個函數確保了在編輯過程中,只有在需要的時候才更新相關的注意力權重。 下方的三組公式對應圖片中所展示,Cross Attention Control的三種編輯機制。每種機制都使用特定的方法來修改原始的注意力映射 $M_t$,從而對生成的圖像進行編輯。 1. **單詞置換 (Word Swap)**:如果在特定時間步 $t$ 之前 $t < \tau$,則使用編輯後的注意力映射 $M_t^*$ 替換原始的 $M_t$ - 如果是替換某個token,就在M上把那個token對應的map換成修改後的map $$ Edit(M_t, M_t^*, t) := \begin{cases} M_t^* & \text{if } t < \tau \\ M_t & \text{otherwise} \end{cases} $$ 2. **新增詞句 (Adding a New Phrase)**:如果某個詞 $j$ 在原始的文本中不存在,即 $A(j) = \text{None}$,則在注意力映射中使用 $M_t^*$ 的相應權重;否則,保持 $M_t$ 的原始權重 - :pencil2:如果新增一個token,則在對應位置插入token相對應的map $$ (Edit(M_t, M_t^*, t))_{i, j} := \begin{cases} (M_t^*)_{i, j} & \text{if } A(j) = \text{None} \\ (M_t)_{i, A(j)} & \text{otherwise} \end{cases} $$ 這裡的$()$圓括號用來表示函數調用的結果 $:=$ 在數學中用來表示「定義等於」的符號 3. **注意力重加權 (Attention Re-weighting)**:給定某個特定的權重 $c$,如果權重對應的詞 $j$ 是被編輯的詞 $j^*$,則用 $c$ 乘以 $M_t$ 的原始權重來更新這個詞的注意力權重;否則,保持不變。 - 想控制某個token對最終圖像的影響程度時,針對該token給予權重$c$來控制特定token作用的強度。例如 $$ (Edit(M_t, M_t^*, t))_{i, j} := \begin{cases} c \cdot (M_t)_{i, j} & \text{if } j = j^* \\ (M_t)_{i, j} & \text{otherwise} \end{cases} $$ ![image](https://hackmd.io/_uploads/r1onIz726.png =800x) > 圖中可以看出,隨著時間的推移,模型的注意力逐漸從分散到集中,特別是在生成"bear" 和 "bird" 這兩個詞匯時。例如,在"bear"行中,注意力從廣泛分佈逐漸集中到熊的實際位置。同樣,在"bird"行中,注意力集中到鳥的位置。這種模式表明模型在生成過程的早期階段探索不同的區域,並在接近結束時鎖定到特定的目標區域。 - **Imagic** - Generated => natural image edits E.g., different dogs - Obtain original text 超越編輯合成生成的影像,Imagic(Kawar et al., 2023)探索編輯真實自然圖像。核心理念是將要編輯的圖像表示為文字嵌入,並將此嵌入與描述期望圖像的目標文字嵌入融合。這種融合確保生成的圖像在與目標文字提示中詳細描述的美學對齊的同時,保留來自原始圖像的元素。在實際應用中,需要進行測試時微調,以生成高質量的圖像 ![image](https://hackmd.io/_uploads/rJD28Tf3a.png) ![image](https://hackmd.io/_uploads/ryTaU6znp.png) - 損失函數$\mathcal{L}$ $$\mathcal{L}(x, e, \theta) = \mathbb{E}_{t, e}\left[ \| e - f_{\theta}(x_t, t, e) \|_2^2 \right]$$ 計算嵌入 $e$ 和由模型 $f_{\theta}$ 在給定時間 $t$ 和嵌入 $e$ 下的輸出之間的歐幾里得距離(L2標準)。這裡 $x_t$ 代表在時間 $t$ 的圖像狀態,$\theta$ 代表模型參數。期望 $\mathbb{E}_{t, e}$ 表明該損失是在所有可能的時間點 $t$ 和嵌入 $e$ 上進行平均。 > - 下標2指的是歐幾里得範數,也就是通常意義上的二維空間或三維空間中的直線距離。在n維空間中,它是根據畢達哥拉斯定理來計算各個分量的平方和的平方根 > - 上標2表示取平方,這是在計算該範數時對差異向量的每個分量進行平方操作 - 混合兩種不同嵌入的策略 $\hat{e}$ 是最終嵌入,$e_{tgt}$ 是目標嵌入,$e_{opt}$ 是最佳嵌入,$\eta$ 是混合參數,它決定了 $e_{tgt}$ 和 $e_{opt}$ 在最終嵌入中的權重 $$\hat{e} = \eta \cdot e_{tgt} + (1 - \eta) \cdot e_{opt}$$ ![image](https://hackmd.io/_uploads/ByZ3_Tf3T.png =300x) > 圖片顯示了隨著混合參數 $\eta$ 變化,“image fidelity”(影像忠實度)和“text alignment”(文本對齊度)兩個指標的變化情況 > - "Image Fidelity"代表生成的圖像保持原始圖像特徵的程度,數值越高,表示圖像與原始圖像越相似。 > - "Text Alignment"則代表生成的圖像與文本描述匹配的程度,數值越高,表示生成的圖像越能符合文本描述的要求。 > 兩條線的交會區域(灰色區域)表明存在一個平衡點,在這一點上,圖像的忠實度和文本對齊度達到了一種折衷 #### Edit instruction(Text instruction editing) ![image](https://hackmd.io/_uploads/rkEEJxGha.png) > Figure 3.8: Examples of text instruction editing. Image credit: Brooks et al. (2023). ![image](https://hackmd.io/_uploads/BJYHklzha.png) > Figure 3.9: The editing data generation pipeline proposed in InstructPix2Pix. Image credit: Brooks et al. (2023). #### External models(Editing with external pre-trained models) ### 3.4 Better following prompts (Text Prompts Following) ### 3.5 Concept customization ## Summary and discussion

    Import from clipboard

    Paste your markdown or webpage here...

    Advanced permission required

    Your current role can only read. Ask the system administrator to acquire write and comment permission.

    This team is disabled

    Sorry, this team is disabled. You can't edit this note.

    This note is locked

    Sorry, only owner can edit this note.

    Reach the limit

    Sorry, you've reached the max length this note can be.
    Please reduce the content or divide it to more notes, thank you!

    Import from Gist

    Import from Snippet

    or

    Export to Snippet

    Are you sure?

    Do you really want to delete this note?
    All users will lose their connection.

    Create a note from template

    Create a note from template

    Oops...
    This template has been removed or transferred.
    Upgrade
    All
    • All
    • Team
    No template.

    Create a template

    Upgrade

    Delete template

    Do you really want to delete this template?
    Turn this template into a regular note and keep its content, versions, and comments.

    This page need refresh

    You have an incompatible client version.
    Refresh to update.
    New version available!
    See releases notes here
    Refresh to enjoy new features.
    Your user state has changed.
    Refresh to load new user state.

    Sign in

    Forgot password

    or

    By clicking below, you agree to our terms of service.

    Sign in via Facebook Sign in via Twitter Sign in via GitHub Sign in via Dropbox Sign in with Wallet
    Wallet ( )
    Connect another wallet

    New to HackMD? Sign up

    Help

    • English
    • 中文
    • Français
    • Deutsch
    • 日本語
    • Español
    • Català
    • Ελληνικά
    • Português
    • italiano
    • Türkçe
    • Русский
    • Nederlands
    • hrvatski jezik
    • język polski
    • Українська
    • हिन्दी
    • svenska
    • Esperanto
    • dansk

    Documents

    Help & Tutorial

    How to use Book mode

    Slide Example

    API Docs

    Edit in VSCode

    Install browser extension

    Contacts

    Feedback

    Discord

    Send us email

    Resources

    Releases

    Pricing

    Blog

    Policy

    Terms

    Privacy

    Cheatsheet

    Syntax Example Reference
    # Header Header 基本排版
    - Unordered List
    • Unordered List
    1. Ordered List
    1. Ordered List
    - [ ] Todo List
    • Todo List
    > Blockquote
    Blockquote
    **Bold font** Bold font
    *Italics font* Italics font
    ~~Strikethrough~~ Strikethrough
    19^th^ 19th
    H~2~O H2O
    ++Inserted text++ Inserted text
    ==Marked text== Marked text
    [link text](https:// "title") Link
    ![image alt](https:// "title") Image
    `Code` Code 在筆記中貼入程式碼
    ```javascript
    var i = 0;
    ```
    var i = 0;
    :smile: :smile: Emoji list
    {%youtube youtube_id %} Externals
    $L^aT_eX$ LaTeX
    :::info
    This is a alert area.
    :::

    This is a alert area.

    Versions and GitHub Sync
    Get Full History Access

    • Edit version name
    • Delete

    revision author avatar     named on  

    More Less

    Note content is identical to the latest version.
    Compare
      Choose a version
      No search result
      Version not found
    Sign in to link this note to GitHub
    Learn more
    This note is not linked with GitHub
     

    Feedback

    Submission failed, please try again

    Thanks for your support.

    On a scale of 0-10, how likely is it that you would recommend HackMD to your friends, family or business associates?

    Please give us some advice and help us improve HackMD.

     

    Thanks for your feedback

    Remove version name

    Do you want to remove this version name and description?

    Transfer ownership

    Transfer to
      Warning: is a public team. If you transfer note to this team, everyone on the web can find and read this note.

        Link with GitHub

        Please authorize HackMD on GitHub
        • Please sign in to GitHub and install the HackMD app on your GitHub repo.
        • HackMD links with GitHub through a GitHub App. You can choose which repo to install our App.
        Learn more  Sign in to GitHub

        Push the note to GitHub Push to GitHub Pull a file from GitHub

          Authorize again
         

        Choose which file to push to

        Select repo
        Refresh Authorize more repos
        Select branch
        Select file
        Select branch
        Choose version(s) to push
        • Save a new version and push
        • Choose from existing versions
        Include title and tags
        Available push count

        Pull from GitHub

         
        File from GitHub
        File from HackMD

        GitHub Link Settings

        File linked

        Linked by
        File path
        Last synced branch
        Available push count

        Danger Zone

        Unlink
        You will no longer receive notification when GitHub file changes after unlink.

        Syncing

        Push failed

        Push successfully