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 许可证获得许可。