Focus on prompting and generating
Fooocus基本信息
Fooocus介绍
Fooocus
Fooocus 是一款图像生成软件。
Fooocus 是 Stable Diffusion 和 Midjourney 设计的一种重新思考:
- 从 Stable Diffusion 中学到,该软件是离线、开源和免费的。
- 从 Midjourney 中学到,不需要手动调整,用户只需专注于提示和图像。
Fooocus 包含并自动化了 许多内部优化和质量改进。用户可以忘记所有那些困难的技术参数,只需享受人与计算机之间的互动,以“探索思维的新媒介,扩展人类物种的想象力” 。
Fooocus 简化了安装过程。从点击“下载”到生成第一张图像,所需的鼠标点击次数严格限制在不超过 3 次以内。最小的 GPU 内存需求为 4GB(Nvidia)。
Fooocus 还为高级用户开发了许多“仅限 Fooocus”的功能,以获得完美的结果。点击这里浏览高级功能。
下载
Windows
您可以直接下载 Fooocus:
下载文件后,请解压缩并运行 "run.bat"。
第一次启动软件时,它将自动下载模型:
- 它将从 这里 下载文件 "Fooocus\models\checkpoints\sd_xl_base_1.0_0.9vae.safetensors",文件名为 "sd_xl_base_1.0_0.9vae.safetensors"。
- 它将从 这里 下载文件 "Fooocus\models\checkpoints\sd_xl_refiner_1.0_0.9vae.safetensors",文件名为 "sd_xl_refiner_1.0_0.9vae.safetensors"。
如果您已经拥有这些文件,可以将它们复制到上述位置以加快安装速度。
以下是在一台相对低端的笔记本电脑上进行的测试,该笔记本电脑配备了 16GB 系统内存 和 6GB 显存(Nvidia 3060 笔记本)。在这台机器上的速度约为每次迭代 1.35 秒。非常令人印象深刻 - 现在的 3060 笔记本电脑通常都以非常可接受的价格出售。
请注意,最低要求为 4GB Nvidia GPU 内存(4GB 显存) 和 8GB 系统内存(8GB RAM)。这需要使用 Microsoft 的虚拟交换技术,在大多数情况下,Windows 安装会自动启用它,因此您通常无需进行任何操作。但是,如果您不确定,或者如果您手动关闭了它(有人真的会这样做吗?),您可以在此处启用它:
点击此处查看图像说明。
如果您使用类似的设备但仍无法获得可接受的性能,请打开一个问题。
Colab
(最后测试 - 2023 年 8 月 14 日)
Colab | 信息 |
---|---|
Fooocus Colab(官方版本) |
请注意,有时此 Colab 会显示“必须重新启动运行时才能使用新安装的 XX”。可以安全地忽略此提示。
感谢 camenduru 的代码!
Linux
命令行如下:
git clone https://github.com/lllyasviel/Fooocus.git
cd Fooocus
conda env create -f environment.yaml
conda activate fooocus
pip install -r requirements_versions.txt
然后下载模型:从 这里 下载文件 "Fooocus\models\checkpoints\sd_xl_base_1.0_0.9vae.safetensors",文件名为 "sd_xl_base_1.0_0.9vae.safetensors",并从 这里 下载文件 "Fooocus\models\checkpoints\sd_xl_refiner_1.0_0.9vae.safetensors",文件名为 "sd_xl_refiner_1.0_0.9vae.safetensors"。或者让 Fooocus 自动下载模型,使用启动器:
python launch.py
或者如果您想打开一个远程端口,使用
python launch.py --listen
Mac/Windows(AMD 显卡)
即将推出...
"隐藏"技巧列表
以下内容已经包含在软件中,用户无需对此做任何操作。
请注意,其中一些技巧(2023 年 8 月 11 日)无法在 Automatic1111 的界面或 ComfyUI 的节点系统中复现。(2023 年 8 月 21 日更新:我们正在努力将其中一些作为 WebUI 扩展/功能实现。)
- 单个 k-sampler 内的本地 refiner 交换。优势在于 refiner 模型可以重用从 k-sampling 收集的基础模型的动量(或 ODE 的历史参数),以实现更连贯的采样。在 Automatic1111 的高分辨率修复和 ComfyUI 的节点系统中,基础模型和 refiner 使用两个独立的 k-sampler,这意味着动量大部分被浪费,采样的连续性被打破。Fooocus 使用其自己的高级 k-diffusion 采样,确保 refiner 设置中的本地、连续和无缝交换。 (2023 年 8 月 13 日更新:实际上,我几天前与 Automatic1111 讨论过这个问题,似乎“单个 k-sampler 内的本地 refiner 交换”已经合并到 webui 的 dev 分支中。太好了!)
- 负 ADM 引导。由于 XL 的最高分辨率级别没有交叉注意力,XL 的最高分辨率级别的正负信号在 CFG 采样期间无法获得足够的对比度,导致结果在某些情况下看起来有点塑料或过于平滑。幸运的是,由于 XL 的最高分辨率级别仍然以图像宽高比(ADM)为条件,我们可以修改正负侧的 adm,以补偿最高分辨率级别中 CFG 对比度的缺失。(2023 年 8 月 16 日更新,IOS 应用程序 Drawing Things 将支持负 ADM 引导。太好了!)
- 我们实现了 "Improving Sample Quality of Diffusion Models Using Self-Attention Guidance" 第 5.1 节的一个经过精心调整的变体。权重设置为非常低,但这是 Fooocus 的最终保证,以确保 XL 永远不会产生过于平滑或塑料的外观(示例 here)。这几乎可以消除 XL 仍然偶尔产生过于平滑结果的所有情况,即使有负 ADM 引导。(2023 年 8 月 18 日更新,SAG 的高斯核改为各向异性核,以获得更好的结构保持和更少的伪影。)
- 我们对样式模板进行了一些微小的修改,并添加了 "cinematic-default"。
- 我们测试了 "sd_xl_offset_example-lora_1.0.safetensors",似乎当 lora 权重低于 0.5 时,结果总是优于没有 lora 的 XL。
- 采样器的参数经过精心调整。
- 由于 XL 使用位置编码进行生成分辨率,因此几个固定分辨率生成的图像看起来比任意分辨率生成的图像好一些(因为位置编码不太擅长处理在训练过程中未见过的整数)。这表明 UI 中的分辨率可能是硬编码的,以获得最佳结果。
- 两个不同文本编码器的分离提示似乎是不必要的。基础模型和 refiner 的分离提示可能有效,但效果是随机的,我们不打算实现这个功能。
- DPM 系列似乎非常适合 XL,因为 XL 有时会生成过于平滑的纹理,而 DPM 系列有时会在纹理中生成过于密集的细节。它们的联合效果在人类感知中看起来是中性和吸引人的。
高级功能
致谢
代码库起源于 Automatic1111 和 ComfyUI