AI_Art 板


LINE

今天查詢Flux.1在reddit找到一篇覺得很棒的文章 [A detailled Flux.1 architecture diagram] 作者:TheLatentExplorer 看完後對Flux.1的Blocks結構(double & single)與作用有了一些概略的理解了 __________________ 底下內文使用chatgpt翻譯 __________________ 一個月前,u/nrehiew_ 在 X 上發佈了一張 Flux 架構的圖, 後來這張圖被 u/pppodong 轉發到 Reddit 上。 這張圖很棒,但對我來說有點亂,而且缺少了一些細節,讓我無法更好地理解 Flux.1。 所以我決定自己做一張,並想分享在這裡,也許有些人會感興趣。 以這種方式展示完整的架構幫助我很大,尤其是因為這個模型沒有真正的論文 (真可惜...)。 我必須做出幾個表示上的選擇,我很希望聽聽你們的批評,這樣我可以改進, 並在未來做出更好的版本。 我計劃使用 TikZ 製作一個更乾淨的版本,並標註完整的張量形狀, 但由於模型相當龐大,我需要先做個草稿,所以我在 draw.io 製作了這個版本。 我擔心 Reddit 會把圖片壓縮得太厲害,所以我把它上傳到 Github,請點擊這裡查看。 https://github.com/brayevalerien/Flux.1-Architecture-Diagram/ __________________ Flux.1 global architecture https://i.imgur.com/u9tNMu9.png
SingleStream block https://i.imgur.com/RyIXL5u.png
DoubleStream block https://i.imgur.com/DZ14PUR.png
MLP Emb./LastLayer/Modulation/QKNorm https://i.imgur.com/DIEiATa.png
__________________ [wh @nrehiew_] Flux's Architecture diagram :) https://x.com/nrehiew_/status/1820404554795802684 [TheLatentExplorer] A detailled Flux.1 architecture diagram https://reurl.cc/DKn2ed https://www.reddit.com/r/StableDiffusion/comments/1fds59s/ a_detailled_flux1_architecture_diagram/ __________________ 底下是zefy_zef將架構圖餵給claude後的解釋 https://reurl.cc/qnzR6D __________________ 感謝您提供這張圖片。這個圖示展示了 Flux.1 的global架構, 這似乎是一個影像生成模型。讓我為您拆解關鍵組件和結構: 主要架構(上半部分): 該模型的左側有一系列輸入,包括「img」、「cond_emb」、「guidances」等。 這些輸入經過各種處理步驟後,進入主流程。 架構的核心由 N=19 個 DoubleStream 區塊組成,接著是 M=38 個 SingleStream 區塊。 從 SingleStream 區塊的輸出到 DoubleStream 區塊的輸入之間有一個反饋循環。 SingleStream 區塊(左下角): 這顯示了 SingleStream 區塊的內部結構。 它包括幾個處理步驟,並包含跳躍連接和乘法操作。 DoubleStream 區塊(右下角): 這顯示了 DoubleStream 區塊的較複雜結構。 它有兩個主要的平行流程,並且有交叉連接和多個處理步驟。 附加組件(底部): - MLP Emb.: 用於嵌入的多層感知機。 - LastLayer: 模型的最終處理層。 - Modulation: 用於調製模型輸出的組件。 - QKNorm: 可能是注意力機制中查詢和鍵操作的正規化技術。 參考資料: 該圖示引用了幾個來源,包括 GitHub 倉庫和研究論文, 表明這一架構是基於或受現有領域工作啟發的。 這個架構似乎是一個複雜的影像生成模型,融合了來自各種先進技術的元素。 DoubleStream 和 SingleStream 區塊可能允許在不同的尺度或 抽象層次上進行複雜的特徵處理和精煉。 __________________ zefy_zef繼續將相關python程式給claude後的解釋: __________________ 感謝您提供 model.py 的內容。這個檔案確實給我們提供了對 Flux.1 架構的寶貴洞見。 讓我為您詳細解析: FluxParams 資料類別: 這定義了模型的超參數,包括輸入維度、隱藏層大小、頭數、 不同區塊的深度以及其他配置選項。 Flux 類別: 這是主要的模型類別,實現了我們在圖示中看到的架構。 Flux 類別的主要組件: a. 輸入處理: - pe_embedder: 用於輸入序列的位置信嵌入。 - img_in: 用於處理影像輸入的線性層。 - time_in: 用於處理時間步驟信息的 MLP。 - vector_in: 用於處理向量輸入的 MLP(可能是圖示中的 'y')。 - guidance_in: 用於處理引導信息的可選 MLP。 - txt_in: 用於處理文本輸入的線性層。 b. 主要架構: - double_blocks: 一組 DoubleStreamBlock 模組(圖示中的 N=19)。 - single_blocks: 一組 SingleStreamBlock 模組(圖示中的 M=38)。 - final_layer: 用於產生最終輸出的 LastLayer 模組。 c. Forward 方法: - 處理輸入(影像、文本、時間步驟、y、引導)。 - 應用位置編碼。 - 將數據傳遞通過 DoubleStreamBlocks。 - 串接文本和影像特徵。 - 將結合的特徵傳遞通過 SingleStreamBlocks。 - 應用最終層來產生輸出。 此實現與圖示高度一致: 它展示了各種輸入如何被處理和結合。 DoubleStreamBlocks 分別處理影像和文本,但有交互作用。 SingleStreamBlocks 處理結合後的特徵。該模型使用時間步驟嵌入, 這是擴散模型中常見的做法。 該架構表明這是一個多模態模型,能夠處理影像和文本輸入, 可能用於文本到影像生成或基於文本提示的影像編輯等任務。 __________________ 架構圖TheLatentExplorer作者對claude見解的回覆: 這基本上是對的,雖然有點模糊! 不過要小心,單流區塊(SingleStream block) 並沒有回饋迴路到雙流區塊(DoubleStream block)。 我對 Claude 的視覺能力印象深刻,也很佩服你做出的精彩總結! __________________ 底下是ChodaGreg詢問single與double stream的區別 https://reurl.cc/36rn9V __________________ ChodaGreg: 單流(single stream)和雙流(double stream)區塊有什麼區別? 它們使用不同的 CLIP 嗎? TheLatentExplorer: 雙流區塊會將影像和文本信息分開處理,並使用像是時間步驟、 CLIP 輸出和位置嵌入(PE)等信息來調製它們。 而單流區塊則將影像和文本流視為一體,允許兩者之間有更靈活的信息交換 (例如文本可以關注影像,反之亦然)。 towelpluswater: 你的圖示讓我對這些資料集有很多想法。 與其用標題描述影像是什麼,或根本不標註, 或者使用觸發詞——那麼如果我們直接從 VAE 獲得潛在表示, 並使用描述詞作為每一層的轉換,會怎樣呢? 例如:“讓它更紅”搭配著影像逐步變紅的進程, 但資料集本身(或許是其中的一部分)是影像,而每一階段產生的嵌入表示。 這樣每一個進程就與雙流和單流區塊中的潛在表示相對應,並且與 T5 轉換文本搭配。 有人嘗試過這個方法嗎?這是普遍的知識嗎?是一個壞主意還是好主意? 在昨晚讀到這些之後我一直無法停止思考。 我在 flux-fp8-api 上寫了一個簡單的原型(嗯,是 Claude 按照我的規格寫的), 由於這些都是程式碼,對我來說比使用 Comfy 更簡單—— 如果這是大家普遍知道的事情或是有人嘗試過這個方法的話,我很希望能聽聽你的回饋。 TheLatentExplorer: 我不太確定理解你的意思——如果你有程式碼可以分享,我很樂意閱讀。 有一個用來訓練 Flux.1 滑動 LoRA 的腳本,我沒有嘗試過, 但或許你可以達到類似的效果。 至於這個想法,我不太確定文本是與影像編輯模型互動的最佳方式。 談到這個,我很少單純使用 txt2img,通常都會搭配 ControlNet。 不過它可能會是一個有趣的工具,讓影像編輯對更多人來說變得更容易。 __________________ Koke_Cacao進行比較後發現的一些內容 https://reurl.cc/d1z3ok __________________ Koke_Cacao: 查看架構程式碼並將其與 SD3、PixArt 和原始的 DiT 進行比較, Flux 中有幾個有趣或令人震驚的地方。 (1) 單流區塊(single stream block) 是並行運行線性層和注意力機制(attention),而不是順序運行。 (2) 雙流區塊(double stream block) 本質上是 T5 和影像 token 之間的標籤串接,但每個 token 都是單獨正規化的。 對於 (1),我無法找到一個好的解釋, 除了在犧牲線性結構的情況下增加更多的並行性。 至於 (2),我個人認為,與交叉注意力(cross-attention)相比, token 串接有些浪費。 這兩個設計選擇似乎都是針對擁有更大顯示記憶體的 GPU 進行優化的。 從程式碼來看,雙流區塊與 SD3 論文中的 MMDiT 完全相同。 而單流區塊則與原始 DiT 完全相同。 對於需要源程式碼的人: https://github.com/black-forest-labs/flux/blob/main/src/flux/model.py 另外,感謝你指出單流區塊來自 https://arxiv.org/pdf/2302.05442 __________________ 最後的這個是我覺得講的不錯的flux.1原始碼解讀文章: Stable Diffusion 3「精神續作」FLUX.1 原始碼深度前瞻解讀 https://zhouyifan.net/2024/09/03/20240809-flux1/ __________________ --



※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 220.129.21.173 (臺灣)
※ 文章網址: https://webptt.com/m.aspx?n=bbs/AI_Art/M.1731750338.A.C2D.html







like.gif 您可能會有興趣的文章
icon.png[問題/行為] 貓晚上進房間會不會有憋尿問題
icon.pngRe: [閒聊] 選了錯誤的女孩成為魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一張
icon.png[心得] EMS高領長版毛衣.墨小樓MC1002
icon.png[分享] 丹龍隔熱紙GE55+33+22
icon.png[問題] 清洗洗衣機
icon.png[尋物] 窗台下的空間
icon.png[閒聊] 双極の女神1 木魔爵
icon.png[售車] 新竹 1997 march 1297cc 白色 四門
icon.png[討論] 能從照片感受到攝影者心情嗎
icon.png[狂賀] 賀賀賀賀 賀!島村卯月!總選舉NO.1
icon.png[難過] 羨慕白皮膚的女生
icon.png閱讀文章
icon.png[黑特]
icon.png[問題] SBK S1安裝於安全帽位置
icon.png[分享] 舊woo100絕版開箱!!
icon.pngRe: [無言] 關於小包衛生紙
icon.png[開箱] E5-2683V3 RX480Strix 快睿C1 簡單測試
icon.png[心得] 蒼の海賊龍 地獄 執行者16PT
icon.png[售車] 1999年Virage iO 1.8EXi
icon.png[心得] 挑戰33 LV10 獅子座pt solo
icon.png[閒聊] 手把手教你不被桶之新手主購教學
icon.png[分享] Civic Type R 量產版官方照無預警流出
icon.png[售車] Golf 4 2.0 銀色 自排
icon.png[出售] Graco提籃汽座(有底座)2000元誠可議
icon.png[問題] 請問補牙材質掉了還能再補嗎?(台中半年內
icon.png[問題] 44th 單曲 生寫竟然都給重複的啊啊!
icon.png[心得] 華南紅卡/icash 核卡
icon.png[問題] 拔牙矯正這樣正常嗎
icon.png[贈送] 老莫高業 初業 102年版
icon.png[情報] 三大行動支付 本季掀戰火
icon.png[寶寶] 博客來Amos水蠟筆5/1特價五折
icon.pngRe: [心得] 新鮮人一些面試分享
icon.png[心得] 蒼の海賊龍 地獄 麒麟25PT
icon.pngRe: [閒聊] (君の名は。雷慎入) 君名二創漫畫翻譯
icon.pngRe: [閒聊] OGN中場影片:失蹤人口局 (英文字幕)
icon.png[問題] 台灣大哥大4G訊號差
icon.png[出售] [全國]全新千尋侘草LED燈, 水草

請輸入看板名稱,例如:WOW站內搜尋

TOP