Fooocus-API

GitHub
659 185 中等 1 次阅读 1周前GPL-3.0图像
AI 解读 由 AI 自动生成,仅供参考

Fooocus-API 是为知名 AI 绘图工具 Fooocus 打造的 FastAPI 接口服务,旨在将原本主要面向图形界面操作的功能转化为可编程调用的 API。它解决了开发者难以将 Fooocus 强大的图像生成与增强能力集成到自有应用、自动化工作流或后端服务中的痛点,让复杂的绘图逻辑可以通过简单的 HTTP 请求轻松触发。

这款工具特别适合后端开发者、AI 应用构建者以及希望实现批量图像处理的研究人员使用。对于熟悉 Python 或需要搭建自定义绘图服务的团队,它提供了极大的灵活性;而普通用户若希望通过脚本自动执行任务,也能从中受益。

其技术亮点在于完整保留了 Fooocus 的核心特性,包括基于描述的重绘(DescribeImage)、智能图像增强(ImageEnhance)以及多阶段控制网络(ControlNets)支持。特别是在图像增强方面,Fooocus-API 允许通过参数精细控制放大、变异(Upscale/Vary)的顺序与强度,并支持结合 GroundingDINO 和 SAM 模型进行基于文本提示的局部遮罩修复。此外,项目提供了 Docker 镜像及多种本地部署方案(如 Conda、venv),大幅降低了环境配置门槛,帮助用户快速在云端或本地服务器中构建稳定的 AI 绘图服务。

使用场景

某电商设计团队需要将数百张商品模特图批量进行高清重绘与局部细节优化,以适配不同营销渠道的展示需求。

没有 Fooocus-API 时

  • 设计师必须人工登录 Fooocus 网页界面,逐张上传图片并手动勾选“高清修复”与“局部重绘”选项,效率极低且无法夜间无人值守运行。
  • 面对复杂的局部增强需求(如仅重绘面部或衣物),每次都需要手动调整 GroundingDINO 提示词和 SAM 掩码参数,操作繁琐且容易出错。
  • 难以将图像增强流程嵌入现有的订单处理系统,导致从“收到修图需求”到“交付成品”之间存在数小时的人工等待断层。
  • 批量处理时若中途报错,缺乏自动重试机制,往往需要人工介入检查日志并重新开始任务,浪费大量算力资源。

使用 Fooocus-API 后

  • 开发团队通过 FastAPI 接口编写脚本,一键提交包含 enhance_input_imageenhance_checkbox 的 JSON 请求,实现数百张图片的自动化队列处理。
  • 利用 enhance_ctrlnets 参数列表,在代码中精准预设 enhance_mask_dino_prompt(如"face"或"coat"),自动完成特定区域的智能掩码生成与高质量重绘。
  • 将 API 无缝集成至内部 CMS 系统,运营人员上传原图后系统自动触发增强流程,并通过 save_final_enhanced_image_only 直接返回最终成品,实现秒级响应。
  • 结合 Docker 部署方案,服务具备稳定的错误处理与重试逻辑,即使在高并发下也能确保任务完整执行,无需人工干预。

Fooocus-API 将原本依赖人工点击的复杂图像增强工作流,转化为可编程、可集成的自动化生产线,极大提升了视觉内容的产出效率与一致性。

运行环境要求

操作系统
  • Linux
  • Windows
GPU

必需 NVIDIA GPU (支持 CUDA),具体显存需求取决于 Fooocus 主项目 (通常建议 8GB+),推荐 CUDA 12.1

内存

未说明 (取决于 Fooocus 主项目)

依赖
notes1. 硬件需求与 Fooocus 主项目一致。2. 推荐使用 conda 或 venv 创建环境。3. 首次运行会自动下载模型,也可手动预下载。4. Windows 中文环境下安装 'groundingdino-py' 可能报错,需参考特定 Issue 解决。5. 更新到 Fooocus 2.5+ 后,除非已手动更新依赖,否则启动时不要使用 '--skip-pip' 参数。6. 支持 Docker 部署,需预先安装 NVIDIA Container Toolkit。
python3.10+
torch==2.1.0
torchvision==0.16.0
torchaudio==2.1.0
fastapi
uvicorn
groundingdino-py
Fooocus-API hero image

快速开始

Docker镜像CI

[ 英文 | 中文 ]

注意:

尽管我已经进行了测试,但我仍然建议您在正式更新之前再次进行测试。

Fooocus 2.5 包含重大更新,大多数依赖项都已升级。因此,在更新后,请不要使用 --skip-pip 选项,除非您已经手动完成了更新。

此外,groundingdino-py 在安装时可能会遇到错误,尤其是在中文 Windows 环境下。解决方案可以在以下 issue 中找到。

GenerateMask 与 DescribeImage 相同,它不会作为一个任务来处理,结果会直接返回。

ImageEnhance 接口使用说明

以下是包含 ImageEnhance 所需主要参数的示例。V1 接口采用了类似于 ImagePrompt 的表单式设计,将增强控制器分解开来。

{
  "enhance_input_image": "",
  "enhance_checkbox": true,
  "enhance_uov_method": "Vary (Strong)",
  "enhance_uov_processing_order": "Before First Enhancement",
  "enhance_uov_prompt_type": "Original Prompts",
  "save_final_enhanced_image_only": true,
  "enhance_ctrlnets": [
    {
      "enhance_enabled": false,
      "enhance_mask_dino_prompt": "face",
      "enhance_prompt": "",
      "enhance_negative_prompt": "",
      "enhance_mask_model": "sam",
      "enhance_mask_cloth_category": "full",
      "enhance_mask_sam_model": "vit_b",
      "enhance_mask_text_threshold": 0.25,
      "enhance_mask_box_threshold": 0.3,
      "enhance_mask_sam_max_detections": 0,
      "enhance_inpaint_disable_initial_latent": false,
      "enhance_inpaint_engine": "v2.6",
      "enhance_inpaint_strength": 1,
      "enhance_inpaint_respective_field": 0.618,
      "enhance_inpaint_erode_or_dilate": 0,
      "enhance_mask_invert": false
    }
  ]
}
  • enhance_input_image:需要增强的图像,这是必填项,对于 V2 接口可以提供图片 URL。
  • enhance_checkbox:一个开关,如果您想使用增强图像功能,则必须将其设置为 true。
  • save_final_enhanced_image_only:由于图像增强是一个流水线操作,可能会生成多张结果图像,此参数允许您只返回最终的增强图像。

与 UpscaleVary 相关的有三个参数,用于在增强之前或之后执行 Upscale 或 Vary 操作。

  • enhance_uov_method:与 UpscaleOrVary 接口类似,Disabled 表示关闭该功能。
  • enhance_uov_processing_order:决定是在增强之前还是之后处理图像。
  • enhance_uov_prompt_type:我不太确定其具体功能,您可以根据 WebUI 进行进一步研究。

enhance_ctrlnets 元素是一个 ImageEnhance 控制器对象的列表,列表中最多可包含三个元素,多余的元素将被忽略。这些参数大致对应于 WebUI,其中值得注意的参数有:

  • enhance_enabled:此参数控制增强控制器是否启用。如果没有启用的增强控制器,任务将被跳过。
  • enhance_mask_dino_prompt:此参数是必需的,用于指示需要增强的区域。如果为空,即使启用了增强控制器,任务也会被跳过。

简介

基于 FastAPI 的 API,用于 Fooocus

当前加载的 Fooocus 版本:2.3.0

Fooocus

这部分内容来自 Fooocus 项目。 Fooocus 是一款基于 Gradio 的图像生成软件。 Fooocus 重新思考了 Stable Diffusion 和 Midjourney 的设计理念:

  • 借鉴 Stable Diffusion,该软件是离线、开源且免费的。
  • 借鉴 Midjourney,无需手动调整参数,用户只需专注于提示词和图像即可。 Fooocus 内置并自动化了许多内部优化和质量提升功能。用户可以不再关注那些复杂的技术参数,而只需享受人机交互带来的乐趣,从而“探索新的思维媒介,拓展人类的想象力”。

Fooocus-API

我想您一定尝试过使用 Gradio 客户端 来调用 Fooocus,但对我来说那是一次非常糟糕的体验。 Fooocus API 使用 FastAPI 提供了用于调用 Fooocus 的 REST API。现在,您可以使用任何您喜欢的语言来利用 Fooocus 的强大功能。 此外,我们还提供了详细的 文档示例代码

快速开始

通过 Replicate 运行

现在您可以通过 Replicate 使用 Fooocus-API,模型位于 konieshadow/fooocus-api。 预设配置包括:

我认为这是利用 Fooocus 功能生成图像的最简单方式。

自托管

您需要 Python 3.10 或更高版本,或者使用 conda 创建一个新的环境。 硬件要求与 Fooocus 相同。详细信息请参见 此处

conda

您可以按照以下步骤轻松使用 conda 启动应用:

conda env create -f environment.yaml
conda activate fooocus-api

然后运行 python main.py 启动应用,默认情况下,服务器会监听 http://127.0.0.1:8888

如果您是第一次运行该项目,可能需要等待一段时间,在此期间程序将完成剩余的安装并下载必要的模型。您也可以手动完成这些步骤,稍后我会提到。

venv

与使用 conda 类似,创建一个虚拟环境,然后启动并等待一段时间。

# windows
python -m venv venv
.\venv\Scripts\Activate
# linux
python -m venv venv
source venv/bin/activate

然后运行 python main.py

预先下载并安装

如果您希望手动处理环境问题并提前下载模型,可以参考以下步骤:

使用 conda 或 venv 创建完整环境后,您可以手动完成后续环境的安装,只需按照以下步骤操作:

首先,安装依赖:pip install -r requirements.txt

然后,安装带有 CUDA 的 PyTorch:pip install torch==2.1.0 torchvision==0.16.0 torchaudio==2.1.0 --index-url https://download.pytorch.org/whl/cu121。有关更多信息,请参阅 此处

请注意,对于 PyTorch 和 CUDA 的版本,建议使用 Fooocus 推荐的版本,即当前的 PyTorch 2.1.0 + CUDA 12.1。如果您坚持使用其他版本,在启动应用时需要添加 --skip-pip 参数,否则系统会自动安装推荐版本。

进入 repositories 目录,下载模型并将其放入 repositories\Fooocus\models 文件夹中。

如果您已经安装了 Fooocus,请参阅 already-exist-fooocus

以下是启动时需要下载的文件列表(根据不同的 启动参数 可能有所不同):

我已上传我正在使用的模型,其中包含了 Fooocus 将要使用的所有基础模型!您可以从 这里 下载,提取码为:D4Mk

已存在 Fooocus

如果您已经安装了 Fooocus,并且运行良好,推荐的方式是复用现有模型。您只需将本地 Fooocus 文件夹中的 config.txt 文件复制到 Fooocus-API 的根目录即可。详细信息请参阅 Customization

使用此方法,您可以同时运行 Fooocus 和 Fooocus-API,两者独立运作,互不干扰。

请勿将 Fooocus 复制到 repositories 目录下。

使用 Docker 启动

在使用带有 GPU 的 Docker 之前,您应先 安装 NVIDIA Container Toolkit

运行以下命令:

docker run -d --gpus=all \
    -e NVIDIA_DRIVER_CAPABILITIES=compute,utility \
    -e NVIDIA_VISIBLE_DEVICES=all \
    -p 8888:8888 konieshadow/fooocus-api

对于更复杂的使用场景:

mkdir ~/repositories
mkdir -p ~/.cache/pip

docker run -d --gpus=all \
    -e NVIDIA_DRIVER_CAPABILITIES=compute,utility \
    -e NVIDIA_VISIBLE_DEVICES=all \
    -v ~/repositories:/app/repositories \
    -v ~/.cache/pip:/root/.cache/pip \
    -p 8888:8888 konieshadow/fooocus-api

这样可以持久化依赖的仓库和 pip 缓存。

您还可以在 docker run 命令中添加 -e PIP_INDEX_URL={pypi-mirror-url} 来更改 pip 的索引地址。

从版本 0.4.0.0 开始,Docker 镜像中已包含完整的环境,如有需要,可映射 models 或项目根目录。 例如:

docker run -d --gpus all \
    -v /Fooocus-API:/app \
    -p 8888:8888 konieshadow/fooocus-api

命令行参数

  • -h, --help 显示帮助信息并退出
  • --port PORT 设置监听端口,默认为 8888
  • --host HOST 设置监听主机,默认为 127.0.0.1
  • --base-url BASE_URL 设置外部访问的基础 URL,默认为 http://host:port
  • --log-level LOG_LEVEL 设置 Uvicorn 的日志级别,默认为 info
  • --skip-pip 在设置时跳过自动 pip 安装
  • --preload-pipeline 在启动 HTTP 服务器前预加载管道
  • --queue-size QUEUE_SIZE 工作队列大小,默认为 100,超出工作队列大小的生成请求将返回失败
  • --queue-history QUEUE_HISTORY 已完成任务的保留数量,超过限制的任务将被删除,包括输出图像文件,默认为 0,表示无限制
  • --webhook-url WEBHOOK_URL 用于通知生成结果的 webhook 地址,默认为 None
  • --persistent 将历史记录存储到数据库中
  • --apikey APIKEY 设置 API 密钥以启用安全 API,默认为 None

自 v0.3.25 起,新增了对 Fooocus 命令行参数的支持。您可以传递任何 Fooocus 支持的参数。

例如,要启动图像生成(需要更多显存):

python main.py --all-in-fp16 --always-gpu

有关 Fooocus 的命令行参数,请参阅 此处

更改日志

CHANGELOG

更早的更改历史可以在 发布页面 中找到。

API

所有 API 的详细信息请参阅 此处

许可证

本仓库采用 GNU 通用公共许可证 v3.0 许可。

默认的检查点由 RunDiffusion 发布,采用 CreativeML Open RAIL-M 许可。

或者,您也可以在 这里 找到相关信息。

感谢 :purple_heart:

感谢各位为改进 Fooocus API 所做出的贡献和努力。我们感谢您成为我们 :sparkles: 社区 :sparkles:!

版本历史

v0.5.0.12024/08/15
v0.4.1.12024/07/01
v0.4.1.02024/06/25
v0.4.0.62024/04/24
v0.4.0.52024/04/16
v0.4.0.42024/04/15
v0.4.0.22024/04/09
v0.4.0.12024/04/08
v0.4.0.02024/04/08
v0.3.332024/04/07
v0.3.322024/03/21
v0.3.312024/03/21
v0.3.302024/01/26
v0.3.292024/01/04
v0.3.282024/01/03
v0.3.272023/12/29
v0.3.262023/12/28
v0.3.252023/12/22
v0.3.242023/12/19
v0.3.232023/12/14

相似工具推荐

openclaw

OpenClaw 是一款专为个人打造的本地化 AI 助手,旨在让你在自己的设备上拥有完全可控的智能伙伴。它打破了传统 AI 助手局限于特定网页或应用的束缚,能够直接接入你日常使用的各类通讯渠道,包括微信、WhatsApp、Telegram、Discord、iMessage 等数十种平台。无论你在哪个聊天软件中发送消息,OpenClaw 都能即时响应,甚至支持在 macOS、iOS 和 Android 设备上进行语音交互,并提供实时的画布渲染功能供你操控。 这款工具主要解决了用户对数据隐私、响应速度以及“始终在线”体验的需求。通过将 AI 部署在本地,用户无需依赖云端服务即可享受快速、私密的智能辅助,真正实现了“你的数据,你做主”。其独特的技术亮点在于强大的网关架构,将控制平面与核心助手分离,确保跨平台通信的流畅性与扩展性。 OpenClaw 非常适合希望构建个性化工作流的技术爱好者、开发者,以及注重隐私保护且不愿被单一生态绑定的普通用户。只要具备基础的终端操作能力(支持 macOS、Linux 及 Windows WSL2),即可通过简单的命令行引导完成部署。如果你渴望拥有一个懂你

349.3k|★★★☆☆|1周前
Agent开发框架图像

stable-diffusion-webui

stable-diffusion-webui 是一个基于 Gradio 构建的网页版操作界面,旨在让用户能够轻松地在本地运行和使用强大的 Stable Diffusion 图像生成模型。它解决了原始模型依赖命令行、操作门槛高且功能分散的痛点,将复杂的 AI 绘图流程整合进一个直观易用的图形化平台。 无论是希望快速上手的普通创作者、需要精细控制画面细节的设计师,还是想要深入探索模型潜力的开发者与研究人员,都能从中获益。其核心亮点在于极高的功能丰富度:不仅支持文生图、图生图、局部重绘(Inpainting)和外绘(Outpainting)等基础模式,还独创了注意力机制调整、提示词矩阵、负向提示词以及“高清修复”等高级功能。此外,它内置了 GFPGAN 和 CodeFormer 等人脸修复工具,支持多种神经网络放大算法,并允许用户通过插件系统无限扩展能力。即使是显存有限的设备,stable-diffusion-webui 也提供了相应的优化选项,让高质量的 AI 艺术创作变得触手可及。

162.1k|★★★☆☆|1周前
开发框架图像Agent

ComfyUI

ComfyUI 是一款功能强大且高度模块化的视觉 AI 引擎,专为设计和执行复杂的 Stable Diffusion 图像生成流程而打造。它摒弃了传统的代码编写模式,采用直观的节点式流程图界面,让用户通过连接不同的功能模块即可构建个性化的生成管线。 这一设计巧妙解决了高级 AI 绘图工作流配置复杂、灵活性不足的痛点。用户无需具备编程背景,也能自由组合模型、调整参数并实时预览效果,轻松实现从基础文生图到多步骤高清修复等各类复杂任务。ComfyUI 拥有极佳的兼容性,不仅支持 Windows、macOS 和 Linux 全平台,还广泛适配 NVIDIA、AMD、Intel 及苹果 Silicon 等多种硬件架构,并率先支持 SDXL、Flux、SD3 等前沿模型。 无论是希望深入探索算法潜力的研究人员和开发者,还是追求极致创作自由度的设计师与资深 AI 绘画爱好者,ComfyUI 都能提供强大的支持。其独特的模块化架构允许社区不断扩展新功能,使其成为当前最灵活、生态最丰富的开源扩散模型工具之一,帮助用户将创意高效转化为现实。

109.2k|★★☆☆☆|今天
开发框架图像Agent

gemini-cli

gemini-cli 是一款由谷歌推出的开源 AI 命令行工具,它将强大的 Gemini 大模型能力直接集成到用户的终端环境中。对于习惯在命令行工作的开发者而言,它提供了一条从输入提示词到获取模型响应的最短路径,无需切换窗口即可享受智能辅助。 这款工具主要解决了开发过程中频繁上下文切换的痛点,让用户能在熟悉的终端界面内直接完成代码理解、生成、调试以及自动化运维任务。无论是查询大型代码库、根据草图生成应用,还是执行复杂的 Git 操作,gemini-cli 都能通过自然语言指令高效处理。 它特别适合广大软件工程师、DevOps 人员及技术研究人员使用。其核心亮点包括支持高达 100 万 token 的超长上下文窗口,具备出色的逻辑推理能力;内置 Google 搜索、文件操作及 Shell 命令执行等实用工具;更独特的是,它支持 MCP(模型上下文协议),允许用户灵活扩展自定义集成,连接如图像生成等外部能力。此外,个人谷歌账号即可享受免费的额度支持,且项目基于 Apache 2.0 协议完全开源,是提升终端工作效率的理想助手。

100.8k|★★☆☆☆|1周前
插件Agent图像

LLMs-from-scratch

LLMs-from-scratch 是一个基于 PyTorch 的开源教育项目,旨在引导用户从零开始一步步构建一个类似 ChatGPT 的大型语言模型(LLM)。它不仅是同名技术著作的官方代码库,更提供了一套完整的实践方案,涵盖模型开发、预训练及微调的全过程。 该项目主要解决了大模型领域“黑盒化”的学习痛点。许多开发者虽能调用现成模型,却难以深入理解其内部架构与训练机制。通过亲手编写每一行核心代码,用户能够透彻掌握 Transformer 架构、注意力机制等关键原理,从而真正理解大模型是如何“思考”的。此外,项目还包含了加载大型预训练权重进行微调的代码,帮助用户将理论知识延伸至实际应用。 LLMs-from-scratch 特别适合希望深入底层原理的 AI 开发者、研究人员以及计算机专业的学生。对于不满足于仅使用 API,而是渴望探究模型构建细节的技术人员而言,这是极佳的学习资源。其独特的技术亮点在于“循序渐进”的教学设计:将复杂的系统工程拆解为清晰的步骤,配合详细的图表与示例,让构建一个虽小但功能完备的大模型变得触手可及。无论你是想夯实理论基础,还是为未来研发更大规模的模型做准备

90.1k|★★★☆☆|1周前
语言模型图像Agent

Deep-Live-Cam

Deep-Live-Cam 是一款专注于实时换脸与视频生成的开源工具,用户仅需一张静态照片,即可通过“一键操作”实现摄像头画面的即时变脸或制作深度伪造视频。它有效解决了传统换脸技术流程繁琐、对硬件配置要求极高以及难以实时预览的痛点,让高质量的数字内容创作变得触手可及。 这款工具不仅适合开发者和技术研究人员探索算法边界,更因其极简的操作逻辑(仅需三步:选脸、选摄像头、启动),广泛适用于普通用户、内容创作者、设计师及直播主播。无论是为了动画角色定制、服装展示模特替换,还是制作趣味短视频和直播互动,Deep-Live-Cam 都能提供流畅的支持。 其核心技术亮点在于强大的实时处理能力,支持口型遮罩(Mouth Mask)以保留使用者原始的嘴部动作,确保表情自然精准;同时具备“人脸映射”功能,可同时对画面中的多个主体应用不同面孔。此外,项目内置了严格的内容安全过滤机制,自动拦截涉及裸露、暴力等不当素材,并倡导用户在获得授权及明确标注的前提下合规使用,体现了技术发展与伦理责任的平衡。

88.9k|★★★☆☆|1周前
开发框架图像Agent