Fooocus是一款革命性的开源AI图像生成软件,由知名开发者lllyasviel(张吕敏)创建。作为ControlNet的作者,lllyasviel将Stable Diffusion的开源特性与Midjourney的简洁操作界面相结合,创造出了这款让用户能够专注于创意而非复杂参数调整的图像生成工具。在AI225导航,我们致力于为用户提供最全面的AI工具指南,本文将详细介绍如何充分利用Fooocus的强大功能。
项目地址:https://github.com/lllyasviel/Fooocus
什么是Fooocus?¶
Fooocus是一个基于Gradio的图像生成软件,它重新思考了图像生成工具的设计理念。该软件具有以下特点:
- 完全离线运行:无需联网,保护用户隐私
- 开源免费:代码完全开放,任何人都可以自由使用和修改
- 简化操作:用户只需关注提示词和图像,无需手动调整复杂参数
- 高质量输出:基于SDXL模型,生成高分辨率、细节丰富的图像
- 低硬件要求:最低只需4GB显存(Nvidia)和8GB系统内存
技术特点¶
Fooocus在技术上具有多项创新和优化:
基于GPT-2的提示处理引擎:Fooocus拥有离线的GPT-2基于提示处理引擎和大量采样改进,使得无论您的提示词是像"花园里的房子"一样简短,还是长达1000字,结果总是美丽的。
高级采样技术:实现了"使用自注意力引导改进扩散模型样本质量"(https://arxiv.org/pdf/2210.00939.pdf)论文第5.1节的精心调整版本。权重设置得很低,但这是Fooocus的最终保证,确保XL永远不会产生过于平滑或塑料般的外观。
负向ADM引导:因为XL最高分辨率级别没有交叉注意力,所以XL最高分辨率级别的正负信号在CFG采样期间无法获得足够的对比度,导致结果在某些情况下看起来有点塑料或过于平滑。幸运的是,由于XL的最高分辨率级别仍然以图像宽高比(ADM)为条件,我们可以在正负侧修改adm来补偿最高分辨率级别中CFG对比度的不足。
原生精炼器交换:在单个k采样器内进行原生精炼器交换。优点是精炼器模型现在可以重用从k采样收集的基础模型动量(或ODE的历史参数),以实现更连贯的采样。在Automatic1111的高分辨率修复和ComfyUI的节点系统中,基础模型和精炼器使用两个独立的k采样器,这意味着动量很大程度上被浪费了,采样连续性被打破。
优化的采样器参数:采样器的参数经过精心调整,确保最佳输出质量。
多风格平衡系统:精心设计的系统,用于平衡多种风格以及提示扩展。
使用Automatic1111的方法进行提示强调归一化:当用户直接从civitai复制提示时,这显著改善了结果。
这些技术特点使Fooocus能够在保持简单易用的同时,生成高质量的图像,无需用户进行复杂的参数调整。
项目背景与设计理念¶
Fooocus的设计理念是对传统图像生成工具的一次重新思考。它从Stable Diffusion中继承了离线、开源和免费的特点,同时从Midjourney中汲取了简化用户操作的经验。这种结合使得Fooocus既保持了开源工具的灵活性,又提供了接近商业软件的易用性。
Fooocus目前处于有限长期支持(LTS)状态,主要专注于bug修复,现有功能已相对稳定。项目完全基于Stable Diffusion XL架构,暂无迁移到新模型架构的计划。不过,随着开源社区的发展,如果社区趋向于某一种主导的图像生成方法,Fooocus也可能会迁移到该方法。
重要提示:最近在Google搜索"fooocus"时出现许多假冒网站。请不要相信这些网站——这里是Fooocus的唯一官方来源。我们从未有过"fooocus.com"、"fooocus.net"、"fooocus.co"、"fooocus.ai"、"fooocus.org"、"fooocus.pro"、"fooocus.one"等网站。这些网站都是假的,与我们没有任何关系。Fooocus是100%非商业的离线开源软件。
安装与设置¶
Windows系统安装¶
Windows用户可以通过以下步骤轻松安装Fooocus:
下载软件:
直接下载Fooocus Windows整合包。解压文件:
将下载的文件解压到不含中文的路径。运行程序:
双击运行run.bat文件,首次运行时会自动下载所需模型。开始使用:
启动成功后,浏览器会自动打开Web界面(地址通常为127.0.0.1:7865)。
不同预设版本¶
Fooocus提供多种预设版本,每个版本使用不同的模型和配置:
| 预设版本 | Windows启动文件 | Linux参数 | 主模型 | 精炼模型 | 配置文件 |
|---|---|---|---|---|---|
| 通用版 | run.bat | juggernautXL_v8Rundiffusion | 未使用 | 配置 | |
| 写实版 | run_realistic.bat | --preset realistic | realisticStockPhoto_v20 | 未使用 | 配置 |
| 动漫版 | run_anime.bat | --preset anime | animaPencilXL_v500 | 未使用 | 配置 |
注意:下载是自动的 - 如果互联网连接正常,您不需要做任何事情。但是,如果您有自己的准备(或从其他地方移动它们),可以手动下载它们。
首次运行软件时,它会自动下载模型:
1. 它会根据不同的预设将默认模型下载到"Fooocus\models\checkpoints"文件夹。如果您不想自动下载,可以提前下载它们。
2. 注意,如果您使用修复功能,首次修复图像时,它会从这里下载Fooocus自有的修复控制模型作为文件"Fooocus\models\inpaint\inpaint_v26.fooocus.patch"(此文件大小为1.28GB)。
在Fooocus 2.1.60之后,您还将拥有run_anime.bat和run_realistic.bat。它们是不同的模型预设(需要不同的模型,但会自动下载)。点击此处查看更多详情。
在Fooocus 2.3.0之后,您也可以直接在浏览器中切换预设。如果要更改默认行为,请记住添加以下参数:
* 使用--disable-preset-selection禁用浏览器中的预设选择。
* 使用--always-download-new-model在预设切换时下载缺失的模型。默认是回退到相应预设中定义的previous_default_models,另请参见终端输出。
Linux系统安装¶
Linux用户可以通过以下多种方式安装:
使用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
# 运行
python entry_with_update.py
使用Python Venv¶
您的Linux需要安装Python 3.10,并且可以使用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
使用原生系统Python¶
如果您的Linux已经安装了Python 3.10,并且可以使用python3命令调用:
# 克隆仓库
git clone https://github.com/lllyasviel/Fooocus.git
cd Fooocus
pip3 install -r requirements_versions.txt
# 运行
python3 entry_with_update.py
Linux (AMD GPU)¶
与上述说明相同,但需要将torch更改为AMD版本:
pip uninstall torch torchvision torchaudio torchtext functorch xformers
pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/rocm5.6
AMD支持处于测试阶段,未经过充分测试。
远程访问¶
如需打开远程端口,使用以下命令:
python entry_with_update.py --listen
不同预设版本¶
使用以下命令启动不同预设版本:
- python entry_with_update.py --preset anime (动漫版)
- python entry_with_update.py --preset realistic (写实版)
其他平台安装¶
Colab在线使用¶
Fooocus也支持在Google Colab上运行,无需本地安装。您可以通过以下链接访问:
在Colab中,您可以修改最后一行为:
- !python entry_with_update.py --share --always-high-vram (默认版)
- !python entry_with_update.py --share --always-high-vram --preset anime (动漫版)
- !python entry_with_update.py --share --always-high-vram --preset realistic (写实版)
Mac系统安装¶
Fooocus可以在Apple Mac硅(M1或M2)上安装,需要macOS 'Catalina'或更新版本。Fooocus通过PyTorch MPS设备加速在Apple硅计算机上运行。Mac硅计算机没有专用显卡,导致图像处理时间明显长于拥有专用显卡的计算机。
安装步骤:
1. 安装conda包管理器和pytorch nightly。阅读"Apple Developer上的PyTorch加速训练指南"(https://developer.apple.com/metal/pytorch/)获取说明。确保pytorch能识别您的MPS设备。
2. 打开macOS终端应用,使用git clone https://github.com/lllyasviel/Fooocus.git克隆此仓库。
3. 切换到新的Fooocus目录,cd Fooocus。
4. 创建新的conda环境,conda env create -f environment.yaml。
5. 激活您的新conda环境,conda activate fooocus。
6. 安装Fooocus所需的包,pip install -r requirements_versions.txt。
7. 通过运行python entry_with_update.py启动Fooocus。(一些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 (写实版)
Windows (AMD GPU)¶
与Windows相同。下载软件并编辑run.bat的内容为:
.\python_embeded\python.exe -m pip uninstall torch torchvision torchaudio torchtext functorch xformers -y
.\python_embeded\python.exe -m pip install torch-directml
.\python_embeded\python.exe -s Fooocus\entry_with_update.py --directml
pause
然后运行run.bat。
AMD支持处于测试阶段。对于AMD,使用以下命令启动不同预设版本:
- .\python_embeded\python.exe Fooocus\entry_with_update.py --directml --preset anime (动漫版)
- .\python_embeded\python.exe Fooocus\entry_with_update.py --directml --preset realistic (写实版)
系统要求¶
以下是运行Fooocus的最低系统要求。如果您的设备配置低于此规格,可能无法在本地使用Fooocus。
| 操作系统 | 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 (2023年12月30日更新) | 8GB | 必需 | 通过DirectML (*ROCm暂停),比Nvidia RTX 3XXX慢约3倍 |
| Linux | AMD GPU | 8GB | 8GB | 必需 | 通过ROCm,比Nvidia RTX 3XXX慢约1.5倍 |
| Mac | 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不确定:有些人报告在GTX 10XX上6GB显存成功,但也有人报告失败案例。
注意:Fooocus专用于极高质量图像生成。我们不会支持较小的模型来降低要求并牺牲结果质量。
基础使用技巧¶
1. 简洁的界面操作¶
Fooocus的界面设计非常简洁,基础界面只包含三个核心元素:
- 图像展示窗口
- 提示词输入窗口
- 生成按钮
这种设计让新手用户能够快速上手,无需学习复杂的参数设置。
2. 提示词编写技巧¶
好的提示词示例:
一只坐在花园里的橘猫,阳光透过树叶洒在猫身上,照片级真实感,细节丰富,自然光
避免的提示词:
画只猫
3. 高级功能使用¶
勾选"Advanced"选项可以展开高级设置窗口,包括:
- 画面宽高比调整
- 风格选择(超过180种预设风格)
- 图像数量设置
- 随机种子数值
- 反向提示词
- 模型和LoRA选择
- 图像锐度调整
隐藏技巧¶
Fooocus包含许多"隐藏"的技术实现细节,了解这些可以帮助您更好地使用软件:
图像种子:Fooocus的图像种子与Stable Diffusion不同。它使用两个不同的随机种子,一个用于Karras噪声调度器,另一个用于潜在空间。这确保了即使使用相同的种子,每次生成的图像也会有所不同。
提示词处理:Fooocus使用GPT-2来处理提示词,这意味着它可以理解上下文并生成更自然的图像。它还支持使用括号来强调某些词,例如
(word:1.5)会增加该词的权重。采样器:Fooocus使用自定义的采样器,结合了多种技术,包括自注意力引导和负向ADM引导,以确保生成高质量的图像。
精炼器:Fooocus支持使用精炼器来提高图像质量。精炼器在单个k采样器内工作,可以重用基础模型的动量,从而产生更连贯的采样。
修复和扩展:Fooocus的修复功能使用自定义的修复控制模型,可以更精确地控制修复过程。扩展功能则可以无缝地扩展图像边界。
性能优化:Fooocus使用了多种优化技术,包括xFormers、半精度浮点数等,以提高性能并减少内存使用。
多语言支持:Fooocus支持多种语言,包括中文、日文、韩文等,可以处理非英文提示词。
批处理:Fooocus支持批处理,可以一次生成多张图像,提高效率。
预设切换:在Fooocus 2.3.0之后,您可以直接在浏览器中切换预设,无需重新启动软件。
自定义配置:Fooocus支持自定义配置文件,您可以根据自己的需求调整各种参数。
远程访问:Fooocus支持远程访问,您可以通过网络从其他设备访问Web界面。
模型管理:Fooocus会自动下载所需的模型,但也支持手动添加和管理模型。
内存优化:Fooocus使用了多种内存优化技术,包括模型卸载、缓存管理等,以减少内存使用。
GPU支持:Fooocus支持多种GPU,包括Nvidia和AMD,并针对不同GPU进行了优化。
这些技巧可以帮助您更好地使用Fooocus,生成更高质量的图像。记住,Fooocus的设计理念是简化操作,所以大多数情况下,您只需要关注提示词和图像,而不需要手动调整复杂参数。
高级应用技巧¶
1. 风格选择¶
Fooocus提供了丰富的预设风格,包括:
- 写实风格
- 胶片质感
- 电影风格
- 动漫风格
- 水彩风格
- 3D渲染
- 像素艺术
- 霓虹风格
- 赛博朋克
- 波普艺术
选择合适的风格可以显著提升生成效果。
2. 图像提示功能¶
Fooocus支持图像提示功能,允许用户上传参考图像来引导生成结果。这一功能使用了Fooocus独有的图像提示算法,效果优于标准的SDXL方法。
3. 图像修复与扩展¶
Fooocus提供了强大的图像修复(Inpaint)和扩展(Outpaint)功能:
- 修复:对图像的特定区域进行修改或重新生成
- 扩展:向上、下、左、右四个方向扩展图像内容
这些功能使用了Fooocus自有的修复算法和模型,效果优于其他使用标准SDXL修复方法的软件。
实用应用场景¶
1. 创意设计¶
- 概念艺术:快速生成角色设计、场景概念
- 插画创作:为书籍、文章创作配图
- 视觉设计:设计海报、宣传册等视觉材料
2. 内容创作¶
- 社交媒体:为社交平台创建吸引人的图像内容
- 博客配图:生成与文章主题相关的配图
- 视频素材:为视频创作背景或关键帧
3. 产品设计¶
- 产品原型:快速可视化产品概念
- 包装设计:设计产品包装和标签
- 广告素材:创建产品广告图像
4. 教育与研究¶
- 教学材料:为教学内容创建直观的图像
- 研究可视化:将复杂概念转化为图像
- 艺术教育:演示不同艺术风格的特点
最佳实践¶
1. 硬件优化¶
为了获得最佳性能,建议:
- 使用Nvidia显卡(RTX系列效果最佳)
- 确保有足够的系统内存(建议16GB以上)
- 启用系统虚拟内存(特别是低显存设备)
- 保持足够的硬盘空间(建议40GB以上)
2. 提示词优化¶
- 具体描述:提供详细、具体的场景描述
- 风格指定:明确指出想要的风格或艺术流派
- 质量关键词:添加"高质量"、"细节丰富"等质量描述词
- 迭代优化:通过多轮生成逐步优化结果
3. 参数调整¶
- 图像数量:根据需要调整生成的图像数量
- 宽高比:根据使用场景选择合适的宽高比
- 随机种子:固定种子可以获得可重复的结果
- 反向提示词:使用反向提示词避免不想要的元素
常见问题解答¶
Q: Fooocus与其他AI图像生成工具有什么区别?¶
A: Fooocus结合了Stable Diffusion的开源特性和Midjourney的简洁操作,既保持了开源工具的灵活性,又提供了接近商业软件的易用性。它完全离线运行,保护用户隐私,同时对硬件要求相对较低。
Q: 如何提高生成图像的质量?¶
A: 可以通过以下方式提高质量:
1. 使用更具体、详细的提示词
2. 选择合适的风格
3. 调整高级参数如图像锐度
4. 使用高质量的参考图像(图像提示功能)
Q: Fooocus支持哪些模型?¶
A: Fooocus主要基于SDXL模型,支持多种检查点模型和LoRA模型。用户可以从Civitai等平台下载兼容的模型文件,放置在相应的模型目录中。
Q: 如何解决生成速度慢的问题?¶
A: 可以尝试以下方法:
1. 确保使用合适的Nvidia驱动(某些版本可能有性能问题)
2. 降低生成图像的分辨率
3. 减少同时生成的图像数量
4. 关闭不必要的后台程序释放资源
进阶技巧¶
1. 批量生成¶
Fooocus支持批量生成图像,可以通过设置图像数量参数一次生成多张图像,提高工作效率。
2. 自定义模型¶
用户可以添加自定义的检查点模型和LoRA模型,扩展Fooocus的功能。模型文件需要放置在相应的目录中:
- 检查点模型:Fooocus\models\checkpoints\
- LoRA模型:Fooocus\models\loras\
3. 脚本自动化¶
Fooocus支持通过脚本进行自动化操作,高级用户可以编写脚本实现批量处理、参数调整等复杂功能。
4. 结合其他工具¶
Fooocus可以与其他工具结合使用:
- 图像编辑软件:对生成的图像进行后期处理
- 3D建模工具:将生成的图像作为纹理或参考
- AI资源平台:如AI225导航,获取更多AI工具和资源
命令行参数与配置文件¶
命令行参数¶
Fooocus支持多种命令行参数,可以通过修改启动文件或在命令行中添加这些参数来自定义运行方式。以下是一些常用的命令行参数:
| 参数 | 说明 | 默认值 | 示例 |
|---|---|---|---|
--preset | 指定预设配置 | default | --preset anime |
--port | 指定Web界面端口 | 7865 | --port 7860 |
--share | 创建公共链接 | False | --share |
--listen | 允许网络访问 | False | --listen |
--disable-preset-selection | 禁用浏览器中的预设选择 | False | --disable-preset-selection |
--always-download-new-model | 预设切换时下载缺失的模型 | False | --always-download-new-model |
--disable-offline-download | 禁用离线模型下载 | False | --disable-offline-download |
--disable-metadata-check | 禁用元数据检查 | False | --disable-metadata-check |
--disable-safe-unpickle | 禁用安全反序列化 | False | --disable-safe-unpickle |
--theme | 指定UI主题 | dark | --theme light |
--disable-image-preview | 禁用图像预览 | False | --disable-image-preview |
--disable-analytics | 禁用分析 | False | --disable-analytics |
--disable-auto-launch | 禁用自动启动浏览器 | False | --disable-auto-launch |
例如,要在Linux上使用动漫预设并允许网络访问,可以使用以下命令:
python entry_with_update.py --preset anime --listen
配置文件¶
Fooocus使用JSON格式的配置文件来管理预设和设置。配置文件位于presets目录下,每个预设都有一个对应的JSON文件。
配置文件结构¶
配置文件包含以下主要部分:
{
"default_model": "juggernautXL_v8Rundiffusion.safetensors",
"default_refiner": "None",
"default_refiner_switch": 0.5,
"default_loras": [],
"default_cfg_scale": 4,
"default_sample_sharpness": 2.0,
"default_sampler": "dpmpp_2m",
"default_scheduler": "karras",
"default_performance": "Speed",
"default_prompt_negative": "",
"default_styles": [
"Fooocus V2",
"Fooocus Enhance",
"Fooocus Sharp"
]
}
配置文件参数说明¶
default_model: 默认使用的主模型default_refiner: 默认使用的精炼器模型default_refiner_switch: 精炼器切换点(0-1之间的值)default_loras: 默认加载的LoRA模型列表default_cfg_scale: 默认的CFG比例default_sample_sharpness: 默认的采样锐度default_sampler: 默认的采样器default_scheduler: 默认的调度器default_performance: 默认的性能模式(Speed/Quality/Extreme Quality)default_prompt_negative: 默认的负面提示词default_styles: 默认的风格列表
自定义配置文件¶
您可以创建自己的配置文件,方法如下:
- 复制现有的配置文件(如
default.json) - 重命名新文件(如
my_preset.json) - 修改文件中的参数
- 使用
--preset参数指定您的自定义配置
例如,创建一个名为my_preset.json的配置文件,然后使用以下命令启动:
python entry_with_update.py --preset my_preset
内联提示功能¶
Fooocus支持内联提示功能,允许您在提示词中直接使用通配符、数组和LoRA。这些功能可以大大提高创作的灵活性。
通配符¶
您可以在提示词中使用{}来包含通配符,Fooocus会自动替换为随机内容。例如:
一只{猫|狗|兔子}在{花园|公园|森林}里
数组处理¶
您可以使用[]来创建数组,Fooocus会随机选择数组中的一个元素。例如:
一只[猫,狗,兔子]在[花园,公园,森林]里
内联LoRA¶
您可以在提示词中直接使用LoRA,格式为<lora:模型名:权重>。例如:
一只猫<lora:cat_style:0.8>在花园里
这些内联提示功能可以组合使用,创造出更加丰富多样的图像生成效果。
总结¶
Fooocus是一款强大的开源AI图像生成工具,它成功地将Stable Diffusion的灵活性与Midjourney的易用性相结合。关键特点包括:
- 离线运行:完全本地运行,保护隐私
- 开源免费:无需付费,代码完全开放
- 简化操作:专注于创意而非复杂参数
- 高质量输出:基于SDXL模型,生成高质量图像
- 低硬件要求:最低只需4GB显存即可运行
掌握这些技巧,你就能更好地利用Fooocus进行创意图像生成。记住,AI是工具,最终的创意和艺术判断仍然需要人类的智慧。
想了解更多AI工具使用技巧?请访问AI225导航,我们提供最全面的AI工具使用指南和资源。
