Fooocus:一个基于 Stable Diffusion XL 的开源图像生成工具

你是否曾经想过,只需输入几句描述,就能生成高质量的图片,而不需要复杂的参数调整?Fooocus 就是这样一个工具。它是一个开源的图像生成软件,基于 Stable Diffusion XL 架构,旨在让用户专注于提示词和图像本身,而非技术细节。今天,我们来聊聊 Fooocus 的各种方面,从安装到高级功能,帮助你快速上手。如果你正寻找一个简单、免费的离线图像生成解决方案,这篇文章会一步步带你了解它。

Fooocus 的设计理念是简化用户体验。它类似于在线工具如 Midjourney,但它是完全离线的,开源的,而且免费。安装过程只需几个点击,GPU 内存最低只需 4GB(Nvidia)。最近,有许多假网站冒充 Fooocus,但记住,这里的信息来自官方来源,确保你从正确的地方获取。

Fooocus 是什么,以及它为什么适合你?

想象一下,你是一个设计师或爱好者,想生成一张“花园里的房子”的图片。Fooocus 让你只需输入提示词,就能得到高质量结果,而不用手动调整参数。它内置了 GPT-2 基于的提示处理引擎,以及采样改进,确保即使简短的提示也能产生美观图像。

Fooocus 现在处于有限长期支持(LTS)状态,只修复 bug。没有计划迁移到新模型架构,如 Flux。但如果你想尝试新模型,可以看看其他平台如 WebUI Forge 或 ComfyUI/SwarmUI。还有几个优秀的 Fooocus 分支可供实验。

为什么选择 Fooocus?它简化了图像生成过程,支持文本到图像、图像变体、内绘和外绘等功能。而且,它对提示词的处理很智能,支持多行提示、权重和嵌入。

Fooocus Logo

Fooocus 的核心功能有哪些?

Fooocus 借鉴了 Midjourney 和 LeonardoAI 的示例,提供了一系列实用功能。让我们用表格来比较一下,看看它如何对应其他工具的特性。

Midjourney 功能 Fooocus 对应功能
高质量文本到图像,无需过多提示工程或参数调整(未知方法) 高质量文本到图像,无需过多提示工程或参数调整(使用离线 GPT-2 提示处理引擎和采样改进,无论提示短如“花园里的房子”还是长达 1000 字,都能产生美观结果)
V1 V2 V3 V4 输入图像 -> 放大或变体 -> 变体(微妙)/ 变体(强烈)
U1 U2 U3 U4 输入图像 -> 放大或变体 -> 放大(1.5x)/ 放大(2x)
内绘 / 上 / 下 / 左 / 右(平移) 输入图像 -> 内绘或外绘 -> 内绘 / 上 / 下 / 左 / 右(Fooocus 使用自己的内绘算法和模型,结果比标准 SDXL 内绘方法更满意)
图像提示 输入图像 -> 图像提示(Fooocus 使用自己的图像提示算法,质量和提示理解比标准 SDXL 方法如 IP-Adapters 或 Revisions 更好)
–style 高级 -> 风格
–stylize 高级 -> 高级 -> 指导
–niji 多个启动器:”run.bat”、”run_anime.bat” 和 “run_realistic.bat”。Fooocus 支持 Civitai 上的 SDXL 模型
–quality 高级 -> 质量
–repeat 高级 -> 图像数量
多提示 (::) 只需使用多行提示
提示权重 可以使用 “I am (happy:1.5)”。Fooocus 使用 A1111 的重加权算法,结果比 ComfyUI 更好,如果用户直接从 Civitai 复制提示(因为 ComfyUI 的提示更倾向于拖拽文件)
要使用嵌入,可以用 “(embedding:file_name:1.1)”
–no 高级 -> 负面提示
–ar 高级 -> 纵横比
InsightFace 输入图像 -> 图像提示 -> 高级 -> 换脸
描述 输入图像 -> 描述
LeonardoAI 功能 Fooocus 对应功能
Prompt Magic 高级 -> 风格 -> Fooocus V2
高级采样参数(如对比度/锐度等) 高级 -> 高级 -> 采样锐度 / 等
用户友好的 ControlNets 输入图像 -> 图像提示 -> 高级

此外,Fooocus 还有许多高级功能,如通过讨论页面浏览更多细节。

如何下载和安装 Fooocus?

下载和安装 Fooocus 非常简单,尤其是对于 Windows 用户。让我们一步步来。

对于 Windows 用户

  1. 下载文件:从官方发布下载 Fooocus_win64_2-5-0.7z。
  2. 解压缩文件。
  3. 运行 “run.bat”。

第一次启动时,它会自动下载模型:

  • 默认模型到 “Fooocus\models\checkpoints” 文件夹,根据预设不同。
  • 如果使用内绘,第一次内绘时会下载 Fooocus 的内绘控制模型(1.28GB)。

Fooocus 2.1.60 后,你会有 “run_anime.bat” 和 “run_realistic.bat”,用于不同预设(会自动下载模型)。

Fooocus 2.3.0 后,你可以在浏览器中切换预设。使用 –disable-preset-selection 来禁用浏览器中的预设选择,或 –always-download-new-model 来在切换预设时下载缺失模型。

Fooocus Interface

如果你有模型文件,可以手动复制到相应位置加速安装。

测试:在 16GB 系统 RAM 和 6GB VRAM(Nvidia 3060 笔记本)的低端笔记本上,速度约 1.35 秒/迭代。

如果生成时间长,考虑下载 Nvidia Driver 531。

最低要求:4GB Nvidia GPU 内存和 8GB 系统内存。使用 Microsoft 的 Virtual Swap,通常自动启用。如果看到 “RuntimeError: CPUAllocator”,手动启用它,并确保每个驱动器有至少 40GB 空闲空间。

Virtual Swap Instructions

对于 Colab 用户

使用 Colab 笔记本:修改最后一行如 !python entry_with_update.py –share –always-high-vram,或添加 –preset anime/realistic。

Colab 免费版资源有限,会禁用 refiner,但基本文本到图像功能可用。使用 –always-high-vram 优化 T4 实例。

对于 Linux 用户(Anaconda)

  1. git clone https://github.com/lllyasviel/Fooocus.git
  2. cd Fooocus
  3. conda env create -f environment.yaml
  4. conda activate fooocus
  5. pip install -r requirements_versions.txt

下载模型或让 Fooocus 自动下载:python entry_with_update.py

使用 –listen 打开远程端口。添加 –preset anime/realistic 用于动漫/现实版。

对于 Linux 用户(Python Venv)

需要 Python 3.10。

  1. git clone https://github.com/lllyasviel/Fooocus.git
  2. cd Fooocus
  3. python3 -m venv fooocus_env
  4. source fooocus_env/bin/activate
  5. pip install -r requirements_versions.txt

启动:source fooocus_env/bin/activate; python entry_with_update.py

对于 Linux 用户(本地 Python)

类似以上,但直接 pip3 install -r requirements_versions.txt; python3 entry_with_update.py

对于 Linux AMD GPU 用户

卸载 torch 并安装 AMD 版:pip uninstall torch …; pip install torch torchvision torchaudio –index-url https://download.pytorch.org/whl/rocm5.6

AMD 支持是 beta 版。

对于 Windows AMD GPU 用户

编辑 run.bat:卸载 torch,安装 torch-directml,并添加 –directml。

AMD 支持是 beta 版。

对于 Mac 用户

需要 macOS Catalina 或更高,M1/M2。

  1. 安装 conda 和 pytorch nightly,确保 MPS 加速。
  2. git clone https://github.com/lllyasviel/Fooocus.git
  3. cd Fooocus
  4. conda env create -f environment.yaml
  5. conda activate fooocus
  6. pip install -r requirements_versions.txt
  7. python entry_with_update.py

一些 M2 用户需添加 –disable-offload-from-vram。Mac 处理时间较长,因为无专用显卡。

Docker 安装

参考 docker.md。

下载旧版本

参考讨论页面指南。

Fooocus 的最低硬件要求是什么?

Fooocus 针对高质量图像生成设计,最低要求因平台而异。以下表格总结:

操作系统 GPU 最低 GPU 内存 最低系统内存 系统交换 备注
Windows/Linux Nvidia RTX 4XXX 4GB 8GB 所需 最快
Windows/Linux Nvidia RTX 3XXX 4GB 8GB 所需 通常比 RTX 2XXX 快
Windows/Linux Nvidia RTX 2XXX 4GB 8GB 所需 通常比 GTX 1XXX 快
Windows/Linux Nvidia GTX 1XXX 8GB (6GB 不确定) 8GB 所需 仅略快于 CPU
Windows/Linux Nvidia GTX 9XX 8GB 8GB 所需 快于或慢于 CPU
Windows/Linux Nvidia GTX < 9XX 不支持 / / /
Windows AMD GPU 8GB 8GB 所需 通过 DirectML,比 Nvidia RTX 3XXX 慢 3x
Linux AMD GPU 8GB 8GB 所需 通过 ROCm,比 Nvidia RTX 3XXX 慢 1.5x
Mac M1/M2 MPS 共享 共享 共享 比 Nvidia RTX 3XXX 慢 9x
Windows/Linux/Mac 只用 CPU 0GB 32GB 所需 比 Nvidia RTX 3XXX 慢 17x

注意:Fooocus 不支持更小模型以降低要求,因为优先高质量。

默认模型和预设如何工作?

默认模型根据任务不同:

任务 Windows Linux args 主模型 Refiner 配置
通用 run.bat juggernautXL_v8Rundiffusion 未使用 默认 json
现实 run_realistic.bat –preset realistic realisticStockPhoto_v20 未使用 现实 json
动漫 run_anime.bat –preset anime animaPencilXL_v500 未使用 动漫 json

自动下载模型,或手动放置。

Preset Switch

如何访问 Fooocus UI 并添加认证?

除了本地运行,你可以用 –listen(指定端口如 –port 8888)暴露本地 UI,或 –share 暴露 API(到 .gradio.live)。

默认无认证。创建 auth.json 在主目录,包含 user 和 pass 的 JSON 对象(见示例)。

Fooocus 的隐藏技巧和高级功能

Fooocus 有一些隐藏技巧,基于 SDXL:

  1. GPT2 基于的提示扩展作为动态风格 “Fooocus V2″。
  2. 单 k-sampler 内原生 refiner 交换,利用基础模型动量。
  3. 负面 ADM 指导,补偿 CFG 对比不足。
  4. 自注意力指导变体,防止过度平滑。
  5. 修改风格模板,添加 “cinematic-default”。
  6. 测试 lora 权重 <0.5 改善结果。
  7. 仔细调优采样器参数。
  8. 固定分辨率生成更好结果。
  9. 不需要分离提示。
  10. DPM 家族适合 XL。
  11. 平衡多风格和提示扩展系统。
  12. 规范化提示强调。
  13. refiner 交换支持 img2img 和 upscale。
  14. CFG 规模和 TSNR 校正当 CFG >10。

更多高级功能在讨论页面。

如何自定义 Fooocus?

运行后,生成 config.txt 可编辑,如路径、默认模型、lora 等。

示例 config.txt:

{
    "path_checkpoints": "D:\\Fooocus\\models\\checkpoints",
    // ... 其他键
}

参考 config_modification_tutorial.txt。删除 config.txt 恢复默认。

尝试 run_anime.bat 或 run_realistic.bat 作为安全方式。

所有 CMD 标志:–listen、–port 等,详见列表。

内联提示功能

通配符

提示:color flower

从 wildcards/color.txt 随机选择颜色。启用 “Read wildcards in order” 以顺序读取。

支持嵌套和组合。

数组处理

提示:[[red, green, blue]] flower

生成每个元素的图像。设置图像数量匹配。

不支持嵌套,但多数组可。

内联 LoRAs

提示:flower lora:sunflowers:1.2

应用 LoRA,从 models/loras。

Fooocus 的分支和致谢

一些分支:fenneishi/Fooocus-Control、runew0lf/RuinedFooocus 等。

感谢 twri、3Diva、Marc K3nt3L 贡献 SDXL 风格,daswer123 贡献 Canvas Zoom。

项目基于 Stable Diffusion WebUI 和 ComfyUI。

更新日志在 update_log.md。

如何本地化 Fooocus?

在 language 文件夹放 json 文件,如 example.json:

{
  "Generate": "生成",
  // ...
}

使用 –language example。创建如 jp.json 并用 –language jp。

如果无 –language 但 default.json 存在,会加载它。

常见问题解答(FAQ)

Fooocus 支持哪些模型?

基于 Stable Diffusion XL,支持 Civitai SDXL 模型。默认如 juggernautXL_v8Rundiffusion。

如果模型文件损坏怎么办?

如果见 “MetadataIncompleteBuffer” 或 “PytorchStreamReader”,重新下载模型。

Fooocus 能运行在低端硬件上吗?

见最低要求表格。低于规格可能无法运行。

如何解决 “RuntimeError: CPUAllocator”?

启用 Virtual Swap,确保 40GB 空闲空间。

Fooocus 有移动版吗?

无,但 iOS App Draw Things 支持一些功能如负面 ADM 指导。

如何在浏览器中切换预设?

Fooocus 2.3.0 后支持,但可能需等待下载或重新加载。

Fooocus 是商业软件吗?

不,100% 非商业、离线开源。没有如 fooocus.com 等网站,那些是假的。

如何获取更多帮助?

见 troubleshoot.md 或讨论页面。

通过这些细节,你应该能轻松上手 Fooocus。无论是生成动漫还是现实图像,它都提供了一个平衡的起点。如果你有特定问题,欢迎在评论中问——我会基于经验回答。享受图像生成的过程!