opendream為您的穩定擴散工作流程帶來了急需且熟悉的功能,例如分層、非破壞性編輯、可移植性和易於編寫的擴充。觀看我們的示範影片。
sh ./run_ opendream .sh
。大約 30 秒後, opendream系統的前端和後端都應該啟動並運行。 擴散模型已成為影像生成和操作領域的強大工具。雖然它們提供了顯著的好處,但由於其固有的複雜性,這些模型通常被視為黑盒子。目前的擴散影像產生生態系統是由允許一次性影像處理任務來控制這些模型的工具定義的 - text2img、in-painting、pix2pix 等。
例如,Automatic1111、Midjourney 和 Stability.AI 的 DreamStudio 等流行介面僅支援破壞性編輯:每次編輯都會「消耗」前一個影像。這意味著用戶無法輕鬆地利用先前的圖像或在同一張圖像上運行多個實驗,從而限制了他們的創造性探索的選擇。
非破壞性編輯是一種影像處理方法,它保留原始影像數據,同時允許使用者進行調整和修改,而不會覆蓋先前的工作。這種方法有助於實驗,並透過使用圖層和蒙版提供對編輯過程的更多控制。刪除圖層時,該圖層之後的所有圖層也會被刪除。這保證了畫布上目前的所有圖層都是其他現有圖層的產物。這也允許人們確定性地「重播」工作流程。
與 Photoshop 一樣, opendream支援開箱即用的非破壞性編輯。在此處了解有關 Photoshop 中無損編輯原理的更多資訊。
使用者還可以將目前的工作流程儲存為便攜式檔案格式,以便稍後開啟或與協作者共用。在這種情況下,「狀態」只是一個描述所有目前圖層及其建立方式的 JSON 檔案。
隨著開源生態系統圍繞著這些模型和工具蓬勃發展,可擴展性也成為一個主要問題。雖然Automatic1111確實提供了擴展,但它們通常難以編程、使用和安裝。它遠遠沒有像 Adobe Photoshop 這樣的應用程式功能齊全。
隨著 ControlNet 等穩定擴散的新功能的發布,用戶應該能夠以最少的過載和時間將它們無縫整合到他們的藝術工作流程中。
opendream讓編寫和使用新的擴散功能就像編寫 Python 函數一樣簡單。繼續閱讀以了解如何操作。
從一開始, opendream支援核心系統中的兩個關鍵原始操作: dream
和mask_and_inpaint
。在此儲存庫中,提供了instruct_pix2pix
、 controlnet_canny
、 controlnet_openpose
和sam
(Segment Anything) 的擴充。
任何圖像處理邏輯都可以輕鬆地編寫為擴展。透過擴展,您還可以決定某些操作的工作方式。例如,您可以覆寫dream
操作以使用 OpenAI 的 DALL-E 代替,或呼叫 AWS 或 Replicate 等服務上的無伺服器端點。這是使用 Baseten 的範例。
有兩種載入擴充功能的方法。
opendream /extensions
資料夾中。下面是編寫您自己的擴充功能的說明。以下是目前支援的擴充功能的範例。您可以使用這些連結透過 Web UI 安裝任何給定的擴充功能。
擴大 | 關聯 |
---|---|
OpenAI 的 DALL-E | 文件 |
無伺服器穩定擴散 | 文件 |
指導 Pix2Pix | 文件 |
控制網 Canny | 文件 |
ControlNet Openpose | 文件 |
分割任何東西 | 文件 |
PhotoshopGPT | 要旨 |
請注意,擴充功能可能有自己的要求,您需要將其包含在requirements.txt
檔案中。例如,如果您想使用 DALL-E 擴展,則需要新增openai
。
如果您創建了一個有用的擴展,請隨意製作 PR!
用戶可以編寫自己的擴展,如下所示:
opendream /extensions
資料夾中建立一個新的 Python 檔案。@ opendream .define_op
裝飾器的方法。該裝飾器向opendream後端註冊該方法。此方法有幾個要求:
str
、 int
、 float
、 Layer
、 MaskLayer
或ImageLayer
。Layer
或Layer
物件清單。 opendream由 Varun Shenoy、Eric Lou、Shashank Rammoorthy 和 Rahul Shiv 構建,作為史丹佛大學 CS 348K 的一部分。
請隨意提供您認為必要或有用的任何貢獻。該項目已獲得 MIT 許可證的許可。