Fooocus
像 Midjourney 一样简单好用的本地 AI 图像生成工具,基于 SDXL 架构,支持一键安装
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
像 Midjourney 一样简单好用的本地 AI 图像生成工具,基于 SDXL 架构,支持一键安装
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
项目速览:Fooocus 是一款基于 Stable Diffusion XL(SDXL)架构的开源离线图像生成软件,由独立开发者 lllyasviel 创建。它最大的特点是把 Midjourney 的"零参数焦虑"理念引入本地部署——用户只需写提示词,模型自动处理剩下的技术细节,3次点击就能出图。

图1:Fooocus 在 GitHub 上的开源仓库首页
时间拨回2023年夏秋之交。彼时,Stable Diffusion 生态已经相当丰富——AUTOMATIC1111 WebUI 功能最全但参数密密麻麻,ComfyUI 灵活性最高但需要拖节点连工作流,普通用户夹在中间,左边是"功能太多不知道从哪下手",右边是"想改个参数结果调崩了"。
lllyasviel 正是看准了这个痛点。他同时也是 ControlNet 的作者,在 AI 图像生成领域积累了大量实践经验。Fooocus 的诞生,本质上是他对"做减法"哲学的一次实践:与其给用户100个滑块,不如把最好的5个选项做成一键直达。
这种思路体现在产品设计上非常直接——Fooocus 几乎没有需要手动调整的参数。传统 SD WebUI 里常见的采样器选择、步数调节、CFG 强度、分辨率预设……在 Fooocus 里全部变成了"高级选项",默认配置下用户根本看不见。这不是阉割,而是经过精心调优的"聪明默认值"。
Fooocus V2 是该项目最具技术含量的核心创新之一。传统 AI 图像生成中,提示词的质量直接决定输出效果,但普通用户往往不知道如何写出"机器喜欢"的提示词——长句、关键词堆砌、权重标记,各种技巧让人头疼。
Fooocus V2 用一个小型 GPT-2 模型(fooocus_expansion.bin)解决了这个问题。用户只需写一句简单的英文描述,比如"A beautiful sunset over mountains",Fooocus V2 会自动将其扩展成一组丰富的、多层次的提示词,包含光线描述、构图建议、风格暗示、质量修饰词等。这相当于给每个用户配备了一个免费且离线的"提示词工程师"。
这个扩展模型本身是从 lllyasviel 的 HuggingFace 仓库 自动下载的(首次启动时),完全离线运行,不依赖任何外部 API。
Fooocus 内置了大量经过验证的风格预设(Style Presets),直接对应 Midjourney 用户熟悉的参数:
| Midjourney 参数 | Fooocus 等效 |
|---|---|
--style | Advanced → Style(内置20+种风格) |
--stylize | Advanced → Advanced → Guidance |
--ar | Advanced → Aspect Ratios(支持任意比例) |
--niji | run_anime.bat 启动器 |
--quality | Advanced → Quality |
:: (多提示词) | 多行提示词输入 |
风格预设涵盖了摄影、Cinema 4D、Low Poly、Anime、Pixel Art、Comic、Line Art 等数十种方向,用户切换风格就像切换滤镜一样简单。
Fooocus 支持以图生图(Image-to-Image)和局部重绘(Inpainting),而且实现方式经过了定制化优化:
特别是 Inpaint 局部重绘,Fooocus 使用了自定义算法,官方称其效果优于标准 IP-Adapter 和标准 Inpainting 方法。这是 lllyasviel 作为 ControlNet 作者深厚功力的体现。
Fooocus 通过配置文件(config.txt)管理模型路径,支持:
models/loras/ 目录,在提示词中用 <lora:filename:weight> 语法调用。models/embeddings/,通过 (embedding:filename:1.1) 语法引用。模型首次启动时自动从 HuggingFace 下载默认 SDXL 模型,后续可以自由切换不同风格的 Checkpoint。
Fooocus 的后端基于 Stable Diffusion XL(SDXL)Pipeline,核心代码位于 ldm_patched/ 目录。ldm_patched 是一个经过 Patch 的 LDM(Latent Diffusion Model)实现,集成了来自多个上游项目的优化:
Pipeline 的核心文件是 modules/default_pipeline.py,负责将用户输入(提示词、图像、风格参数)转换为最终的扩散采样流程。
Fooocus 的界面基于 Gradio(一个 Python 机器学习 Web UI 框架),默认监听本地端口 7865。Gradio 提供了低代码的 Web 界面构建能力,使得 lllyasviel 能够在保持代码简洁的同时,快速迭代 UI 交互设计。
关键文件:
launch.py:启动脚本,负责环境检测、PyTorch/xformers 安装、模型下载、Web UI 启动。args_manager.py:命令行参数解析,支持 --listen(远程访问)、--preset(预设模式)等。modules/gradio_hijack.py:Gradio 的 hack 扩展,用于自定义样式和交互行为。modules/html.py:自定义 HTML/CSS 模板。Fooocus 提供了三种安装路径:
Windows 一键版(推荐):
# 下载 7z 压缩包,解压后运行
run.bat # 默认模式(通用风格)
run_anime.bat # 动漫风格模式
run_realistic.bat # 写实风格模式
Linux Anaconda:
conda env create -f environment.yaml
conda activate fooocus
python entry_with_update.py
Docker 容器化(见下节容器化部署)。
requirements 核心依赖:
torch==2.1.0 + torchvision==0.16.0(CUDA 12.1)xformers==0.0.23(显存优化)transformers、diffusers、accelerate、safetensorsFooocus 提供了完整的容器化支持,这是本次分析中 Level 1 部署评估的重要加分项。
官方 Dockerfile 基于 nvidia/cuda:12.4.1-base-ubuntu22.04 构建,这是一个多阶段设计:
curl、libgl1(OpenGL 图像处理)、libglib2.0-0、git。requirements/_docker.txt + requirements/_versions.txt 安装,同时安装 xformers==0.0.23。adduser 创建 user 用户,符合容器安全最佳实践。/content/data 作为数据卷,挂载 checkpoints、LoRA、输出文件等。Dockerfile 的关键设计亮点是模型目录重定向:
RUN mv /content/app/models /content/app/models.org
应用本身的 models/ 目录被移走,运行时通过环境变量 path_checkpoints、path_loras 等将所有模型路径重定向到 /content/data/,从而实现宿主机数据与容器镜像的完全分离。
docker-compose 提供了开箱即用的编排配置:
deploy:
resources:
reservations:
devices:
- driver: nvidia
device_ids: ['0']
capabilities: [compute, utility]
这意味着 compose 部署时会自动分配指定的 GPU 设备(device_ids: ['0']),配合 NVIDIA Container Toolkit 实现 GPU 透传。
数据卷设计:
fooocus-data 命名卷:存储所有模型、配置、输出文件。path_outputs 必须在 /content/app 下才能查看历史记录(由 Gradio 限制决定)。| 维度 | 评分 | 说明 |
|---|---|---|
| Dockerfile | ✅ 完善 | CUDA 基础镜像、多阶段、非 root |
| docker-compose | ✅ 开箱即用 | GPU 透传、数据卷分离 |
| Web UI | ✅ 完备 | Gradio 自动生成,支持远程 |
| 硬件需求 | ⚠️ 高 | 最低 4GB VRAM,推荐 8GB+ |
| 部署难度 | 中等 | GPU 环境配置有一定门槛 |
推荐部署命令:
git clone https://github.com/lllyasviel/Fooocus.git
cd Fooocus
docker-compose up -d
# 访问 http://localhost:7865
Fooocus 的代码结构清晰,模块化程度较高:
modules/(30个文件):核心功能模块,含配置、Pipeline、采样器、Lora、Upscaler 等。ldm_patched/(11个子目录):扩散模型底层实现,引入外部优化组件。experiments_*.py:实验性功能(扩展生成、人脸检测、图像描述、遮罩生成),体现了项目持续迭代。args_manager.py:命令行参数管理,解耦了用户输入与系统逻辑。README 长达 33,000+ 字符,提供了详尽的功能对照表(Midjourney → Fooocus)、多平台安装指南、常见问题解答(驱动兼容性、显存不足处理)。Development 文档(development.md)对代码贡献规范有明确说明。Docker 部署文档(docker.md)详细到连 FRP 内网穿透的工作原理都做了解释。
从仓库结构来看,项目没有包含标准的单元测试套件(无 tests/ 目录),但依靠大量用户的实际使用反馈驱动迭代。考虑到这是一个快速迭代的创意工具而非基础设施项目,这个取舍是合理的。
Fooocus 的出现,让大量没有 AI 调参经验的创作者能够直接使用 SDXL 的强大能力,而不需要学习 WebUI 的复杂参数体系。这在 Midjourney 逐步走向付费闭源的背景下,提供了高质量的免费替代方案。
项目 README 明确声明,当前处于 LTS(Limited Long-Term Support) 状态——只做 bug 修复,没有计划迁移到 Flux、SD3 等新架构。lllyasviel 建议需要新架构的用户转向:
这意味着 Fooocus 的技术竞争力会在未来某个时间点相对下降,但对于当前 SDXL 生态下的稳定需求,它依然是最佳选择之一。
最低 4GB VRAM 的要求虽然已经比较亲民,但对于没有独立显卡的用户来说仍然无法本地运行。云端部署或 Google Colab 是这类用户的替代路径。
Fooocus 的核心价值在于:它让 Stable Diffusion 变得像傻瓜相机一样简单,同时保留了足够的高级选项供进阶用户使用。
如果你正在寻找一款不需要折腾参数的本地 AI 图像生成工具,Fooocus 是当前最值得推荐的选择之一。其官方维护的 Docker 部署方案也使得服务器端部署变得极其简单。
| 项目信息 | |
|---|---|
| GitHub | lllyasviel/Fooocus |
| Stars | 50,512 ⭐ |
| Forks | 8,138 |
| License | GPL-3.0 |
| 主语言 | Python |
| 架构 | Stable Diffusion XL + Gradio |
| 最新更新 | 2025年12月 |