只需输入两个单词“森林精灵”即可非精选随机批次,
没有任何参数调整,没有任何奇怪的提示标签。
另请参阅此处、此处和此处的非精选泛化和多样性测试。
在整个开源社区中,只有 Fooocus 能够达到这种非精挑细选的质量水平。
福库斯
Fooocus 是一款图像生成软件(基于Gradio)。
Fooocus 是对 Stable Diffusion 和 Midjourney 设计的重新思考:
-
学习自Stable Diffusion,该软件是离线、开源、免费的。
-
从Midjourney了解到,不需要手动调整,用户只需关注提示和图像即可。
Fooocus 包含并自动化了许多内部优化和质量改进。用户可以忘记所有那些困难的技术参数,只享受人与计算机之间的交互,“探索新的思维媒介,扩展人类的想象力” [1]
。
Fooocus 简化了安装。在按下“下载”和生成第一张图像之间,所需的鼠标点击次数严格限制在 3 次以内。最低 GPU 内存要求为 4GB (Nvidia)。
[1]
大卫·霍尔兹,2019。
最近,当你搜索“fooocus”时,谷歌上就会出现许多假冒网站。不要相信那些——这是 Fooocus 的唯一官方来源。
安装Foocus
从中途移动到Fooocus
使用 Fooocus 和 Midjourney 一样简单(可能比 Midjourney 更容易)——但这并不意味着我们缺乏功能。以下是详细信息。
中途 | 福库斯 |
---|---|
高质量的文本到图像,无需大量即时工程或参数调整。 (未知方法) |
高质量的文本到图像,无需大量即时工程或参数调整。 (Fooocus 拥有基于离线 GPT-2 的提示处理引擎和大量采样改进,因此无论您的提示短如“花园中的房子”还是长至 1000 个单词,结果总是很漂亮) |
V1 V2 V3 V4 | 输入图像 -> 高档或变化 -> 变化(微妙)/变化(强) |
U1 U2 U3 U4 | 输入图像 -> 放大或变化 -> 放大 (1.5x) / 放大 (2x) |
修复/上/下/左/右(平移) | 输入图像 -> Inpaint 或 Outpaint -> Inpaint / 上 / 下 / 左 / 右 (Fooocus 使用自己的修复算法和修复模型,因此结果比所有其他使用标准 SDXL 修复方法/模型的软件更令人满意) |
图片提示 | 输入图像 -> 图像提示 (Fooocus 使用自己的图像提示算法,因此结果质量和提示理解比使用标准 SDXL 方法(如标准 IP 适配器或修订版)的所有其他软件更令人满意) |
- 风格 | 高级 -> 风格 |
--风格化 | 高级 -> 高级 -> 指导 |
——尼吉 | 多个启动器:“run.bat”、“run_anime.bat”和“run_realistic.bat”。 Fooocus在Civitai上支持SDXL型号 (不知道的可以google搜索“Civitai”) |
- 质量 | 高级->质量 |
- 重复 | 高级 -> 图像编号 |
多重提示 (::) | 只需使用多行提示即可 |
提示重量 | 你可以使用“我是(快乐:1.5)”。 Fooocus使用A1111的重新加权算法,因此如果用户直接从Civitai复制提示,结果会比ComfyUI更好。(因为如果提示是用ComfyUI的重新加权编写的,用户不太可能复制提示文本,因为他们更喜欢拖动文件) 要使用嵌入,可以使用“(embedding:file_name:1.1)” |
- 不 | 高级 -> 否定提示 |
--ar | 高级 -> 宽高比 |
洞察面 | 输入图像->图像提示->高级->FaceSwap |
描述 | 输入图像 -> 描述 |
我们还借鉴了 LeonardoAI 最好的部分:
莱昂纳多人工智能 | 福库斯 |
---|---|
瞬发魔法 | 高级 -> 风格 -> Fooocus V2 |
高级采样器参数(如对比度/锐度/等) | 高级 -> 高级 -> 采样清晰度/等等 |
用户友好的 ControlNet | 输入图像->图像提示->高级 |
Fooocus 还开发了许多“fooocus-only”功能,供高级用户获得完美的结果。单击此处浏览高级功能。
下载
视窗
您可以直接下载Fooocus:
>>>点击此处下载<<<
下载文件后,请将其解压缩,然后运行“run.bat”。
第一次启动软件时,它会自动下载模型:
- 它将根据不同的预设将默认模型下载到文件夹“Fooocusmodelscheckpoints”。如果您不想自动下载,可以提前下载。
- 注意,如果你使用inpaint,第一次修复图像时,它会从这里下载Fooocus自己的inpaint控制模型,文件为“Fooocusmodelsinpaintinpaint_v26.fooocus.patch”(该文件的大小为1.28)国标)。
在 Fooocus 2.1.60 之后,您还将拥有run_anime.bat
和run_realistic.bat
。它们是不同的模型预设(并且需要不同的模型,但它们会自动下载)。请查看此处了解更多详细信息。
如果您已有这些文件,可以将它们复制到上述位置以加快安装速度。
请注意,如果您看到"MetadataIncompleteBuffer" 或 "PytorchStreamReader",则您的模型文件已损坏。请重新下载模型。
下面是在一台具有16GB 系统 RAM和6GB VRAM的相对低端笔记本电脑(Nvidia 3060 笔记本电脑)上进行的测试。这台机器上的速度约为每次迭代 1.35 秒。相当令人印象深刻——如今配备 3060 的笔记本电脑通常价格非常可接受。
此外,最近许多其他软件报告称 Nvidia 532 以上的驱动程序有时比 Nvidia 驱动程序 531 慢 10 倍。如果您的生成时间很长,请考虑下载Nvidia Driver 531 Laptop或Nvidia Driver 531 Desktop。
请注意,最低要求是4GB Nvidia GPU 内存 (4GB VRAM)和8GB 系统内存 (8GB RAM)。这需要使用 Microsoft 的虚拟交换技术,在大多数情况下,Windows 安装会自动启用该技术,因此您通常不需要对此执行任何操作。但是,如果您不确定,或者您手动将其关闭(真的有人会这样做吗?),或者如果您看到任何“RuntimeError:CPUAllocator”,您可以在此处启用它:
单击此处查看图像说明。
如果您使用类似的设备但仍然无法达到可接受的性能,请提出问题。
请注意,不同平台的最低要求是不同的。
另请参阅此处的常见问题和疑难解答。
Linux(使用 Anaconda)
如果你想使用Anaconda/Miniconda,你可以
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
然后下载模型:将默认模型下载到文件夹“Fooocusmodelscheckpoints”。或者让 Fooocus使用启动器自动下载模型:
conda activate fooocus
python entry_with_update.py
或者,如果您想打开远程端口,请使用
conda activate fooocus
python entry_with_update.py --listen
使用python entry_with_update.py --preset anime
或python entry_with_update.py --preset realistic
用于Fooocus 动漫/现实版。
Linux(使用Python Venv)
你的 Linux 需要安装Python 3.10,假设你的 Python 可以在 venv 系统工作的情况下使用命令python3调用;你可以
git clone https://github.com/lllyasviel/Fooocus.git
cd Fooocus
python3 -m venv fooocus_env
source fooocus_env/bin/activate
pip install -r requirements_versions.txt
有关模型下载,请参阅上述部分。您可以通过以下方式启动该软件:
source fooocus_env/bin/activate
python entry_with_update.py
或者,如果您想打开远程端口,请使用
source fooocus_env/bin/activate
python entry_with_update.py --listen
使用python entry_with_update.py --preset anime
或python entry_with_update.py --preset realistic
用于Fooocus 动漫/现实版。
Linux(使用本机系统Python)
如果您知道自己在做什么,并且您的 Linux 已经安装了Python 3.10 ,并且可以使用命令python3调用您的 Python (以及使用pip3的 Pip ),您可以
git clone https://github.com/lllyasviel/Fooocus.git
cd Fooocus
pip3 install -r requirements_versions.txt
有关模型下载,请参阅上述部分。您可以通过以下方式启动该软件:
python3 entry_with_update.py
或者,如果您想打开远程端口,请使用
python3 entry_with_update.py --listen
使用python entry_with_update.py --preset anime
或python entry_with_update.py --preset realistic
用于Fooocus 动漫/现实版。
Linux(AMD GPU)
请注意,不同平台的最低要求是不同的。
与上述说明相同。您需要将手电筒更改为AMD版本
pip uninstall torch torchvision torchaudio torchtext functorch xformers
pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/rocm5.6
然而,AMD 并未经过深入测试。AMD 支持处于测试阶段。
使用python entry_with_update.py --preset anime
或python entry_with_update.py --preset realistic
用于Fooocus 动漫/现实版。
Windows(AMD GPU)
请注意,不同平台的最低要求是不同的。
与 Windows 相同。下载软件并编辑内容为run.bat
:
.python_embededpython.exe -m pip uninstall torch torchvision torchaudio torchtext functorch xformers -y
.python_embededpython.exe -m pip install torch-directml
.python_embededpython.exe -s Fooocusentry_with_update.py --directml
pause
然后运行run.bat
.
然而,AMD 并未经过深入测试。AMD 支持处于测试阶段。
对于 AMD,请使用.python_embededpython.exe entry_with_update.py --directml --preset anime
或.python_embededpython.exe entry_with_update.py --directml --preset realistic
对于 Fooocus Anime/Realistic Edition。
苹果
请注意,不同平台的最低要求是不同的。
Mac 没有经过深入测试。以下是使用 Mac 的非官方指南。有问题可以在这里讨论。
您可以在具有 macOS“Catalina”或更新版本的 Apple Mac 芯片(M1 或 M2)上安装 Fooocus。Fooocus 通过PyTorch MPS 设备加速在 Apple 硅计算机上运行。Mac Silicon 计算机不配备专用显卡,因此与配备专用显卡的计算机相比,图像处理时间显着延长。
- 每晚安装 conda 包管理器和 pytorch。请阅读Mac Apple 开发人员指南上的 Accelerated PyTorch 培训以获取说明。确保 pytorch 能够识别您的 MPS 设备。
- 打开 macOS 终端应用程序并使用
git clone https://github.com/lllyasviel/Fooocus.git
. - 更改为新的 Fooocus 目录
cd Fooocus
. - 创建一个新的 conda 环境,
conda env create -f environment.yaml
. - 激活您的新 conda 环境,
conda activate fooocus
. - 安装 Fooocus 所需的软件包
pip install -r requirements_versions.txt
。 - 通过运行启动 Fooocus
python entry_with_update.py
。(某些 Mac M2 用户可能需要python entry_with_update.py --disable-offload-from-vram
加快模型加载/卸载速度。)首次运行 Fooocus 时,它将自动下载 Stable Diffusion SDXL 模型,并且会花费大量时间,具体取决于您的互联网连接。
使用python entry_with_update.py --preset anime
或python entry_with_update.py --preset realistic
用于Fooocus 动漫/现实版。
下载以前的版本
请参阅此处的指南。
最低要求
以下是本地运行 Fooocus 的最低要求。如果您的设备能力低于此规格,您可能无法在本地使用 Fooocus。(无论如何,如果您的设备性能较低但 Fooocus 仍然可以工作,请告诉我们。)
操作系统 | 图形处理器 | 最小 GPU 内存 | 最小系统内存 | 系统交换 | 笔记 |
---|---|---|---|---|---|
视窗/Linux | 英伟达 RTX 4XXX | 4GB | 8GB | 必需的 | 最快的 |
视窗/Linux | 英伟达 RTX 3XXX | 4GB | 8GB | 必需的 | 通常比 RTX 2XXX 更快 |
视窗/Linux | 英伟达 RTX 2XXX | 4GB | 8GB | 必需的 | 通常比 GTX 1XXX 更快 |
视窗/Linux | 英伟达 GTX 1XXX | 8GB(* 6GB 不确定) | 8GB | 必需的 | 仅比 CPU 快一点点 |
视窗/Linux | 英伟达 GTX 9XX | 8GB | 8GB | 必需的 | 比CPU更快或更慢 |
视窗/Linux | Nvidia GTX < 9XX | 不支持 | / | / | / |
视窗 | AMD显卡 | 8GB(2023 年 12 月 30 日更新) | 8GB | 必需的 | 通过 DirectML(* ROCm 处于保留状态),比 Nvidia RTX 3XXX 慢约 3 倍 |
Linux | AMD显卡 | 8GB | 8GB | 必需的 | 通过 ROCm,比 Nvidia RTX 3XXX 慢约 1.5 倍 |
苹果 | M1/M2 MPS | 共享 | 共享 | 共享 | 比 Nvidia RTX 3XXX 慢约 9 倍 |
Windows/Linux/Mac | 只使用CPU | 0GB | 32GB | 必需的 | 比 Nvidia RTX 3XXX 慢约 17 倍 |
* AMD GPU ROCm(暂停):AMD 仍在努力支持 Windows 上的 ROCm。
* Nvidia GTX 1XXX 6GB 不确定:有人报告 6GB 在 GTX 10XX 上成功,但也有人报告失败案例。
请注意,Fooocus 仅适用于生成极高质量的图像。我们不会支持较小的模型来降低要求并牺牲结果质量。
故障排除
请参阅此处的常见问题。
默认型号
考虑到不同的目标,Fooocus的默认模型和配置是不同的:
任务 | 视窗 | Linux 参数 | 主要型号 | 精炼师 | 配置 |
---|---|---|---|---|---|
一般的 | 运行.bat | juggernautXL v6_RunDiffusion | 不曾用过 | 这里 | |
实际的 | 运行现实.bat | --预设现实 | 现实库存照片 | 不曾用过 | 这里 |
日本动画片 | 运行动画.bat | --预设动画 | 蓝铅笔_v50 | dreamharper_v8 (SD1.5) | 这里 |
请注意,下载是自动的- 如果互联网连接正常,您无需执行任何操作。但是,如果您(或从其他地方移动它们)有自己的准备,则可以手动下载它们。
“隐藏”技巧列表
以下内容已经在软件内部,用户不需要对这些进行任何操作。
- 基于GPT2的提示扩展为动态风格“Fooocus V2”。(类似于 Midjourney 的隐藏预处理和“原始”模式,或 LeonardoAI 的 Prompt Magic)。
- 本机精炼器在一个 k 采样器内进行交换。优点是细化器模型现在可以重用从 k 采样收集的基础模型的动量(或 ODE 的历史参数),以实现更一致的采样。在Automatic1111的高分辨率修复和ComfyUI的节点系统中,基础模型和细化器使用两个独立的k采样器,这意味着动量被大量浪费,并且采样连续性被破坏。Fooocus 使用自己先进的 k 扩散采样,确保精炼机设置中的无缝、原生和连续交换。(8月13日更新:实际上,几天前我与Automatic1111讨论过这个问题,似乎“单个k-sampler内的本机精炼器交换”已合并到webui的dev分支中。太棒了!)
- ADM 负面指导。由于 XL Base 的最高分辨率级别没有交叉注意力,因此 XL 最高分辨率级别的正负信号在 CFG 采样过程中无法获得足够的对比度,导致结果在某些情况下看起来有点塑料或过于平滑。幸运的是,由于XL的最高分辨率级别仍然以图像长宽比(ADM)为条件,因此我们可以修改正/负侧的ADM,以补偿最高分辨率级别中CFG对比度的不足。(8 月 16 日更新,IOS 应用程序Drawing Things将支持 Negative ADM Guidance。太棒了!)
- 我们对“使用自注意力指导提高扩散模型的样本质量”第 5.1 节进行了精心调整的变体。重量设置得很低,但这是 Fooocus 的最终保证,以确保 XL 永远不会产生过于光滑或塑料的外观(示例此处)。这几乎可以消除所有 XL 偶尔仍会产生过于平滑结果的情况,即使在 ADM 指导为负的情况下也是如此。(2023 年 8 月 18 日更新,SAG 的高斯内核更改为各向异性内核,以实现更好的结构保留和更少的伪影。)
- 我们稍微修改了样式模板并添加了“电影默认”。
- 我们测试了“sd_xl_offset_example-lora_1.0.safetensors”,似乎当lora权重低于0.5时,结果总是比没有lora的XL更好。
- 采样器的参数经过仔细调整。
- 由于 XL 使用位置编码来生成分辨率,因此由多个固定分辨率生成的图像看起来比任意分辨率生成的图像要好一些(因为位置编码不太擅长处理训练期间看不到的 int 数字)。这表明 UI 中的分辨率可能会被硬编码以获得最佳结果。
- 针对两个不同文本编码器的单独提示似乎没有必要。对基本模型和细化器的单独提示可能有效,但效果是随机的,我们不会实现这一点。
- DPM 系列似乎非常适合 XL,因为 XL 有时会生成过于平滑的纹理,但 DPM 系列有时会生成过于密集的纹理细节。它们的联合效应看起来是中性的,并且对人类的感知很有吸引力。
- 精心设计的系统,用于平衡多种风格并快速扩展。
- 使用automatic1111的方法规范提示强调。当用户直接从 civitai 复制提示时,这会显着改善结果。
- 精炼机的联合交换系统现在也无缝支持img2img和upscale。
- 当 CFG 大于 10 时,CFG 比例和 TSNR 校正(针对 SDXL 进行调整)。
定制化
第一次运行 Fooocus 后,将在Fooocusconfig.txt
. 可以编辑此文件以更改模型路径或默认参数。
例如,编辑后的文件Fooocusconfig.txt
(该文件将在首次启动后生成)可能如下所示:
{
"path_checkpoints": "D:Fooocusmodelscheckpoints",
"path_loras": "D:Fooocusmodelsloras",
"path_embeddings": "D:Fooocusmodelsembeddings",
"path_vae_approx": "D:Fooocusmodelsvae_approx",
"path_upscale_models": "D:Fooocusmodelsupscale_models",
"path_inpaint": "D:Fooocusmodelsinpaint",
"path_controlnet": "D:Fooocusmodelscontrolnet",
"path_clip_vision": "D:Fooocusmodelsclip_vision",
"path_fooocus_expansion": "D:Fooocusmodelsprompt_expansionfooocus_expansion",
"path_outputs": "D:Fooocusoutputs",
"default_model": "realisticStockPhoto_v10.safetensors",
"default_refiner": "",
"default_loras": [["lora_filename_1.safetensors", 0.5], ["lora_filename_2.safetensors", 0.5]],
"default_cfg_scale": 3.0,
"default_sampler": "dpmpp_2m",
"default_scheduler": "karras",
"default_negative_prompt": "low quality",
"default_positive_prompt": "",
"default_styles": [
"Fooocus V2",
"Fooocus Photograph",
"Fooocus Negative"
]
}
许多其他密钥、格式和示例都在Fooocusconfig_modification_tutorial.txt
(该文件将在首次启动后生成)。
在真正更改配置之前请三思。如果您发现自己破坏了东西,只需删除Fooocusconfig.txt
. Fooocus 将恢复默认状态。
更安全的方法是尝试“run_anime.bat”或“run_realistic.bat” - 它们应该已经足以胜任不同的任务。
请注意,它(编辑:它已经被删除了。)user_path_config.txt
已被弃用,并将很快被删除。
所有 CMD 标志
entry_with_update.py [-h] [--listen [IP]] [--port PORT]
[--disable-header-check [ORIGIN]]
[--web-upload-size WEB_UPLOAD_SIZE]
[--external-working-path PATH [PATH ...]]
[--output-path OUTPUT_PATH] [--temp-path TEMP_PATH]
[--cache-path CACHE_PATH] [--in-browser]
[--disable-in-browser] [--gpu-device-id DEVICE_ID]
[--async-cuda-allocation | --disable-async-cuda-allocation]
[--disable-attention-upcast] [--all-in-fp32 | --all-in-fp16]
[--unet-in-bf16 | --unet-in-fp16 | --unet-in-fp8-e4m3fn | --unet-in-fp8-e5m2]
[--vae-in-fp16 | --vae-in-fp32 | --vae-in-bf16]
[--clip-in-fp8-e4m3fn | --clip-in-fp8-e5m2 | --clip-in-fp16 | --clip-in-fp32]
[--directml [DIRECTML_DEVICE]] [--disable-ipex-hijack]
[--preview-option [none,auto,fast,taesd]]
[--attention-split | --attention-quad | --attention-pytorch]
[--disable-xformers]
[--always-gpu | --always-high-vram | --always-normal-vram |
--always-low-vram | --always-no-vram | --always-cpu]
[--always-offload-from-vram] [--disable-server-log]
[--debug-mode] [--is-windows-embedded-python]
[--disable-server-info] [--share] [--preset PRESET]
[--language LANGUAGE] [--disable-offload-from-vram]
[--theme THEME] [--disable-image-log]
高级功能
单击此处浏览高级功能。
Fooocus 也有很多社区分支,就像 SD-WebUI 的vladmandic/automatic和anapnoe/stable-diffusion-webui-ux一样,适合想要尝试的热心用户!
福克斯的叉子 |
---|
fenneishi/Fooocus-Control runew0lf/RuinedFooocus MoonRide303/Fooocus-MRE metcai/SimpleSDXL 等等... |
另请参阅关于分叉和分叉升级。
谢谢
特别感谢twri、3Diva和Marc K3nt3L在 Fooocus 中创建了其他可用的 SDXL 样式。感谢daswer123贡献 Canvas Zoom!
更新日志
日志在这里。
本地化/翻译/I18N
我们需要你的帮助!请帮助将Fooocus 翻译成国际语言。
您可以将 json 文件放入该language
文件夹中来翻译用户界面。
例如,以下内容是Fooocus/language/example.json
:
{
"Generate": "生成",
"Input Image": "入力画像",
"Advanced": "고급",
"SAI 3D Model": "SAI 3D Modèle"
}
如果添加--language example
arg,Fooocus 将读取Fooocus/language/example.json
并翻译 UI。
例如,您可以将 Windows 的结束行编辑run.bat
为
.python_embededpython.exe -s Fooocusentry_with_update.py --language example
或者run_anime.bat
作为
.python_embededpython.exe -s Fooocusentry_with_update.py --language example --preset anime
或者run_realistic.bat
作为
.python_embededpython.exe -s Fooocusentry_with_update.py --language example --preset realistic
对于实际翻译,您可以创建自己的文件,例如Fooocus/language/jp.json
或Fooocus/language/cn.json
,然后使用标志--language jp
或--language cn
。显然,这些文件现在不存在。我们需要您的帮助来创建这些文件!
请注意,如果没有--language
给出并且同时Fooocus/language/default.json
存在,Fooocus 将始终加载Fooocus/language/default.json
进行翻译。默认情况下,该文件Fooocus/language/default.json
不存在。