首页
/ 使用Docker部署Fooocus图像生成工具的完整指南

使用Docker部署Fooocus图像生成工具的完整指南

2025-07-05 01:49:58作者:盛欣凯Ernestine

前言

Fooocus是一款基于先进AI技术的图像生成工具,它能够根据文本描述自动生成高质量的图像。使用Docker容器化部署Fooocus可以大大简化安装和配置过程,确保环境一致性,并方便在不同系统间迁移。本文将详细介绍如何使用Docker部署Fooocus。

系统要求

在开始部署前,请确保您的系统满足以下要求:

  1. 硬件要求

    • 支持CUDA的NVIDIA显卡
    • 已安装专有NVIDIA驱动程序
    • 足够的内存和存储空间
  2. 软件要求

    • Docker引擎(或Podman作为替代)
    • Docker Compose(可选)

快速开始

使用Docker Compose部署

这是最简单的部署方式,适合大多数用户:

  1. 获取Fooocus项目文件
  2. 在项目目录中执行以下命令:
    docker compose up
    

直接使用Docker运行

如果您需要更多自定义配置,可以直接使用Docker命令:

docker run -p 7865:7865 -v fooocus-data:/content/data -it \
--gpus all \
-e CMDARGS=--listen \
-e DATADIR=/content/data \
-e config_path=/content/data/config.txt \
-e config_example_path=/content/data/config_modification_tutorial.txt \
-e path_checkpoints=/content/data/models/checkpoints/ \
-e path_loras=/content/data/models/loras/ \
-e path_embeddings=/content/data/models/embeddings/ \
-e path_vae_approx=/content/data/models/vae_approx/ \
-e path_upscale_models=/content/data/models/upscale_models/ \
-e path_inpaint=/content/data/models/inpaint/ \
-e path_controlnet=/content/data/models/controlnet/ \
-e path_clip_vision=/content/data/models/clip_vision/ \
-e path_fooocus_expansion=/content/data/models/prompt_expansion/fooocus_expansion/ \
-e path_outputs=/content/app/outputs/ \
ghcr.io/lllyasviel/fooocus

使用Podman运行

对于使用Podman的用户,可以使用以下命令:

podman run -p 7865:7865 -v fooocus-data:/content/data -it \
--security-opt=no-new-privileges --cap-drop=ALL --security-opt label=type:nvidia_container_t --device=nvidia.com/gpu=all \
-e CMDARGS=--listen \
-e DATADIR=/content/data \
-e config_path=/content/data/config.txt \
-e config_example_path=/content/data/config_modification_tutorial.txt \
-e path_checkpoints=/content/data/models/checkpoints/ \
-e path_loras=/content/data/models/loras/ \
-e path_embeddings=/content/data/models/embeddings/ \
-e path_vae_approx=/content/data/models/vae_approx/ \
-e path_upscale_models=/content/data/models/upscale_models/ \
-e path_inpaint=/content/data/models/inpaint/ \
-e path_controlnet=/content/data/models/controlnet/ \
-e path_clip_vision=/content/data/models/clip_vision/ \
-e path_fooocus_expansion=/content/data/models/prompt_expansion/fooocus_expansion/ \
-e path_outputs=/content/app/outputs/ \
ghcr.io/lllyasviel/fooocus

当控制台显示Use the app with http://0.0.0.0:7865/时,即可在浏览器中访问该URL使用Fooocus。

容器内部路径结构

了解容器内部的路径结构有助于更好地管理模型和输出文件:

路径 说明
/content/app 应用程序主目录
/content/app/models.org 原始模型目录,容器启动时会复制到/content/app/models
/content/data 持久化数据挂载点
/content/data/models 模型目录,链接到/content/app/models
/content/data/outputs 输出目录,链接到/content/app/outputs

高级配置

手动构建容器

如果您需要自定义构建容器,可以执行以下步骤:

  1. 获取Fooocus项目文件
  2. 在项目目录中执行:

使用Docker构建:

docker build . -t fooocus

使用Podman构建:

podman build . -t fooocus

更新容器

使用docker compose持续运行容器时,不会自动更新Fooocus版本。要更新:

  1. 获取最新项目文件
  2. 执行:
docker compose build --no-cache
docker compose up

导入现有模型和输出

如果您已有模型文件或输出文件需要导入,可以在docker-compose.yml中添加以下挂载配置:

#- ./models:/import/models   # 导入完成后可移除
#- ./outputs:/import/outputs  # 导入完成后可移除

容器启动后,文件将被复制到持久化目录中,之后可以移除这些挂载配置。

环境变量配置

您可以通过环境变量覆盖config.txt中的配置,这些设置优先级高于文件配置,并会保存到config_modification_tutorial.txt中。

重要的Docker专用环境变量:

环境变量 说明
DATADIR 数据目录位置
CMDARGS 传递给entry_with_update.py的参数
config_path config.txt路径
config_example_path config_modification_tutorial.txt路径
HF_MIRROR HuggingFace镜像站点

注意事项

  1. 输出目录位置:请确保path_outputs位于/content/app下,否则可能无法正常查看历史记录
  2. Mac/Windows性能:在这些系统上使用"bind mount"可能导致性能下降,建议使用Docker卷
  3. Apple Silicon支持:目前Docker中尚不支持MPS后端(Metal Performance Shaders)
  4. 后台运行:使用docker compose up -d可在后台运行容器,通过docker compose logs -f查看日志

通过本文介绍的Docker部署方法,您可以轻松地在各种环境中运行Fooocus图像生成工具,享受AI创作的乐趣。