Stable Diffusion 3論文終於發布,架構細節大揭秘,對復現Sora有幫助?
Stable Diffusion 3 的论文终于来了!
这个模型于两周前发布,采用了与 Sora 相同的 DiT(Diffusion Transformer)架构,一经发布就引起了不小的轰动。
与之前版本相比,Stable Diffusion 3 生成的图质量有了显著提升,现在支持多主题提示,并且文字书写效果也得到了改善,不再出现乱码情况。
Stability AI 指出,Stable Diffusion 3 是一个系列模型,其参数量从800M到8B不等。这一参数范围意味着该模型可以在许多便携设备上直接运行,从而显著降低了使用AI大型模型的门槛。
在最新发布的论文中,Stability AI 表示,在基于人类偏好的评估中,Stable Diffusion 3 优于当前最先进的文本到图像生成系统,如 DALL・E 3、Midjourney v6 和 Ideogram v1。不久之后,他们将公开该研究的实验数据、代码和模型权重。
在论文中,Stability AI 透露了关于 Stable Diffusion 3 的更多细节。
- 论文标题:Scaling Rectified Flow Transformers for High-Resolution Image Synthesis
- 论文链接:https://stabilityai-public-packages.s3.us-west-2.amazonaws.com/Stable Diffusion 3 Paper.pdf
架构细节
对于文本到图像的生成,Stable Diffusion 3 模型必须同时考虑文本和图像两种模式。因此,论文作者称这种新架构为 MMDiT,意指其处理多种模态的能力。与之前版本的 Stable Diffusion 一样,作者使用预训练模型来推导合适的文本和图像表征。具体来说,他们使用了三种不同的文本嵌入模型 —— 两种 CLIP 模型和 T5—— 来编码文本表征,并使用改进的自编码模型来编码图像 token。
Stable Diffusion 3 模型架构。
改进的多模态扩散 transformer:MMDiT 块。
SD3 架构基于 Sora 核心研发成员 William Peebles 和纽约大学计算机科学助理教授谢赛宁合作提出的 DiT。由于文本嵌入和图像嵌入在概念上有很大不同,因此 SD3 的作者对两种模态使用两套不同的权重。如上图所示,这相当于为每种模态设置了两个独立的 transformer,但将两种模态的序列结合起来进行注意力运算,从而使两种表征都能在各自的空间内工作,同时也将另一种表征考虑在内。
在训练过程中测量视觉保真度和文本对齐度时,作者提出的 MMDiT 架构优于 UViT 和 DiT 等成熟的文本到图像骨干。
通过这种方法,信息可以在图像和文本 token 之间流动,从而提高模型的整体理解能力,并改善所生成输出的文字排版。正如论文中所讨论的那样,这种架构也很容易扩展到视频等多种模式。
得益于 Stable Diffusion 3 改进的提示遵循能力,新模型有能力制作出聚焦于各种不同主题和质量的图像,同时还能高度灵活地处理图像本身的风格。
透過re-weighting 改進Rectified Flow
Stable Diffusion 3 採用Rectified Flow(RF)公式,在訓練過程中,資料和雜訊以線性軌跡相連。這使得推理路徑更加平直,從而減少了取樣步驟。此外,作者還在訓練過程中引入了新的軌跡採樣計劃。他們假設,軌跡的中間部分會帶來更具挑戰性的預測任務,因此該計劃給予軌跡中間部分更多權重。他們使用多種資料集、指標和採樣器設定進行比較,並將自己提出的方法與 LDM、EDM 和 ADM 等 60 種其他擴散軌跡進行了測試。結果表明,雖然先前的 RF 公式在少步採樣情況下性能有所提高,但隨著步數的增加,其相對性能會下降。相較之下,作者提出的重新加權 RF 變體能持續提高性能。
擴展Rectified Flow Transformer 模型
作者利用重新加權的Rectified Flow 公式和MMDiT 骨幹對文本到圖像的合成進行了擴展(scaling)研究。他們訓練的模型從帶有450M 個參數的15 個區塊到帶有8B 個參數的38 個區塊不等,並觀察到驗證損失隨著模型大小和訓練步驟的增加而平穩降低(上圖的第一行)。為了檢驗這是否轉化為對模型輸出的有意義改進,作者也評估了自動影像對齊指標(GenEval)和人類偏好分數(ELO)(上圖第二行)。結果表明,這些指標與驗證損失之間存在很強的相關性,這表明後者可以很好地預測模型的整體性能。此外,scaling 趨勢沒有顯示出飽和的跡象,這讓作者對未來繼續提高模型表現持樂觀態度。
靈活的文字編碼器
透過移除用於推理的記憶體密集型4.7B 參數T5 文字編碼器,SD3 的內存需求可顯著降低,而性能損失卻很小。如圖所示,移除此文字編碼器不會影響視覺美感(不使用 T5 時的勝率為 50%),只會略微降低文字一致性(勝率為 46%)。不過,作者建議在生成書面文本時加入T5,以充分發揮SD3 的性能,因為他們觀察到,如果不加入T5,生成排版的性能下降幅度更大(勝率為38%),如下圖所示:
只有在呈現涉及許多細節或大量書面文字的非常複雜的提示時,移除T5 進行推理才會導致效能顯著下降。上圖顯示了每個範例的三個隨機樣本。
模型效能
作者將Stable Diffusion 3 的輸出映像與其他各種開源模型(包括SDXL、SDXL Turbo、Stable Cascade、 Playground v2.5 和Pixart-α)以及閉源模型(如DALL-E 3、Midjourney v6 和Ideogram v1)進行了比較,以便根據人類回饋來評估表現。在這些測試中,人類評估員從每個模型中獲得輸出範例,並根據模型輸出在多大程度上遵循所給提示的上下文(prompt following)、在多大程度上根據提示渲染文字(typography)以及哪幅影像具有更高的美學品質(visual aesthetics)來選擇最佳結果。
以 SD3 為基準,這個圖表概述了它在基於人類對視覺美學、提示遵循和文字排版的評估中的勝率。
從測試結果來看,作者發現 Stable Diffusion 3 在上述所有方面都與當前最先進的文本到圖像生成系統相當,甚至更勝一籌。
在消費級硬體上進行的早期未優化推理測試中,最大的8B 參數SD3 模型適合RTX 4090 的24GB VRAM,使用50 個採樣步驟生成分辨率為1024x1024 的影像需要34 秒。
此外,在最初發佈時,Stable Diffusion 3 將有多種變體,從 800m 到 8B 參數模型不等,以進一步消除硬體障礙。
更多細節請參考原始論文。
參考連結:https://stability.ai/news/stable-diffusion-3-research-paper
以上是Stable Diffusion 3論文終於發布,架構細節大揭秘,對復現Sora有幫助?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

使用C 中的chrono庫可以讓你更加精確地控制時間和時間間隔,讓我們來探討一下這個庫的魅力所在吧。 C 的chrono庫是標準庫的一部分,它提供了一種現代化的方式來處理時間和時間間隔。對於那些曾經飽受time.h和ctime折磨的程序員來說,chrono無疑是一個福音。它不僅提高了代碼的可讀性和可維護性,還提供了更高的精度和靈活性。讓我們從基礎開始,chrono庫主要包括以下幾個關鍵組件:std::chrono::system_clock:表示系統時鐘,用於獲取當前時間。 std::chron

DMA在C 中是指DirectMemoryAccess,直接內存訪問技術,允許硬件設備直接與內存進行數據傳輸,不需要CPU干預。 1)DMA操作高度依賴於硬件設備和驅動程序,實現方式因係統而異。 2)直接訪問內存可能帶來安全風險,需確保代碼的正確性和安全性。 3)DMA可提高性能,但使用不當可能導致系統性能下降。通過實踐和學習,可以掌握DMA的使用技巧,在高速數據傳輸和實時信號處理等場景中發揮其最大效能。

在C 中處理高DPI顯示可以通過以下步驟實現:1)理解DPI和縮放,使用操作系統API獲取DPI信息並調整圖形輸出;2)處理跨平台兼容性,使用如SDL或Qt的跨平台圖形庫;3)進行性能優化,通過緩存、硬件加速和動態調整細節級別來提升性能;4)解決常見問題,如模糊文本和界面元素過小,通過正確應用DPI縮放來解決。

C 在實時操作系統(RTOS)編程中表現出色,提供了高效的執行效率和精確的時間管理。 1)C 通過直接操作硬件資源和高效的內存管理滿足RTOS的需求。 2)利用面向對象特性,C 可以設計靈活的任務調度系統。 3)C 支持高效的中斷處理,但需避免動態內存分配和異常處理以保證實時性。 4)模板編程和內聯函數有助於性能優化。 5)實際應用中,C 可用於實現高效的日誌系統。

在C 中測量線程性能可以使用標準庫中的計時工具、性能分析工具和自定義計時器。 1.使用庫測量執行時間。 2.使用gprof進行性能分析,步驟包括編譯時添加-pg選項、運行程序生成gmon.out文件、生成性能報告。 3.使用Valgrind的Callgrind模塊進行更詳細的分析,步驟包括運行程序生成callgrind.out文件、使用kcachegrind查看結果。 4.自定義計時器可靈活測量特定代碼段的執行時間。這些方法幫助全面了解線程性能,並優化代碼。

交易所內置量化工具包括:1. Binance(幣安):提供Binance Futures量化模塊,低手續費,支持AI輔助交易。 2. OKX(歐易):支持多賬戶管理和智能訂單路由,提供機構級風控。獨立量化策略平台有:3. 3Commas:拖拽式策略生成器,適用於多平台對沖套利。 4. Quadency:專業級算法策略庫,支持自定義風險閾值。 5. Pionex:內置16 預設策略,低交易手續費。垂直領域工具包括:6. Cryptohopper:雲端量化平台,支持150 技術指標。 7. Bitsgap:

在MySQL中,添加字段使用ALTERTABLEtable_nameADDCOLUMNnew_columnVARCHAR(255)AFTERexisting_column,刪除字段使用ALTERTABLEtable_nameDROPCOLUMNcolumn_to_drop。添加字段時,需指定位置以優化查詢性能和數據結構;刪除字段前需確認操作不可逆;使用在線DDL、備份數據、測試環境和低負載時間段修改表結構是性能優化和最佳實踐。

C 中使用字符串流的主要步驟和注意事項如下:1.創建輸出字符串流並轉換數據,如將整數轉換為字符串。 2.應用於復雜數據結構的序列化,如將vector轉換為字符串。 3.注意性能問題,避免在處理大量數據時頻繁使用字符串流,可考慮使用std::string的append方法。 4.注意內存管理,避免頻繁創建和銷毀字符串流對象,可以重用或使用std::stringstream。
