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 的核心功能有哪些?
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 用户
-
下载文件:从官方发布下载 Fooocus_win64_2-5-0.7z。 -
解压缩文件。 -
运行 “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 来在切换预设时下载缺失模型。
如果你有模型文件,可以手动复制到相应位置加速安装。
测试:在 16GB 系统 RAM 和 6GB VRAM(Nvidia 3060 笔记本)的低端笔记本上,速度约 1.35 秒/迭代。
如果生成时间长,考虑下载 Nvidia Driver 531。
最低要求:4GB Nvidia GPU 内存和 8GB 系统内存。使用 Microsoft 的 Virtual Swap,通常自动启用。如果看到 “RuntimeError: CPUAllocator”,手动启用它,并确保每个驱动器有至少 40GB 空闲空间。
对于 Colab 用户
使用 Colab 笔记本:修改最后一行如 !python entry_with_update.py –share –always-high-vram,或添加 –preset anime/realistic。
Colab 免费版资源有限,会禁用 refiner,但基本文本到图像功能可用。使用 –always-high-vram 优化 T4 实例。
对于 Linux 用户(Anaconda)
-
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 自动下载:python entry_with_update.py
使用 –listen 打开远程端口。添加 –preset anime/realistic 用于动漫/现实版。
对于 Linux 用户(Python Venv)
需要 Python 3.10。
-
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
对于 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。
-
安装 conda 和 pytorch nightly,确保 MPS 加速。 -
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 -
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 |
自动下载模型,或手动放置。
如何访问 Fooocus UI 并添加认证?
除了本地运行,你可以用 –listen(指定端口如 –port 8888)暴露本地 UI,或 –share 暴露 API(到 .gradio.live)。
默认无认证。创建 auth.json 在主目录,包含 user 和 pass 的 JSON 对象(见示例)。
Fooocus 的隐藏技巧和高级功能
Fooocus 有一些隐藏技巧,基于 SDXL:
-
GPT2 基于的提示扩展作为动态风格 “Fooocus V2″。 -
单 k-sampler 内原生 refiner 交换,利用基础模型动量。 -
负面 ADM 指导,补偿 CFG 对比不足。 -
自注意力指导变体,防止过度平滑。 -
修改风格模板,添加 “cinematic-default”。 -
测试 lora 权重 <0.5 改善结果。 -
仔细调优采样器参数。 -
固定分辨率生成更好结果。 -
不需要分离提示。 -
DPM 家族适合 XL。 -
平衡多风格和提示扩展系统。 -
规范化提示强调。 -
refiner 交换支持 img2img 和 upscale。 -
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。无论是生成动漫还是现实图像,它都提供了一个平衡的起点。如果你有特定问题,欢迎在评论中问——我会基于经验回答。享受图像生成的过程!