[English | 中文]
如果这是您第一次使用,建议使用重写的新项目 FooocusAPI
迁移指南在这里。
:warning: 兼容性警告 :warning:
从版本3.x升级到版本4.0时,请阅读以下不兼容说明:
- 如果您正在使用外部Fooocus模型(即,模型不位于
repositories
目录中),请直接删除repositories
目录,然后更新git pull
。 - 如果没有,将
repositories
目录移动到任何目录,删除repositories
目录,然后更新git pull
,更新完成后将models
目录移回原位置。
介绍
基于FastAPI的Fooocus API。
当前加载的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
然后,安装PyTorch和CUDA: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的版本,目前是pytorch2.1.0+cuda12.1。如果坚持使用其他版本,你需要在启动应用程序时添加
--skip-pip
,否则将自动安装推荐版本。
转到repositories
目录,下载模型并放入repositories\Fooocus\models
。
如果已安装Fooocus,请参见已有Fooocus。
以下是启动所需下载项目的列表(根据不同的启动参数可能有所不同):
-
检查点:路径为
repositories\Fooocus\models\checkpoints
-
vae_approx:路径为
repositories\Fooocus\models\vae_approx
-
lora:路径为
repositories\Fooocus\models\loras
我已上传我使用的模型,几乎包含了Fooocus将使用的所有基础模型!我将其放在这里 提取码:
D4Mk
已有Fooocus
如果你已经安装了Fooocus,并且它运行良好,推荐的方法是重用模型,只需将本地Fooocus文件夹中的config.txt
文件复制到Fooocus-API根文件夹。详情请参见自定义。
使用此方法,你将同时运行Fooocus和Fooocus-API。它们独立运行,不会互相干扰。
不要将Fooocus复制到repositories目录
使用docker启动
在使用带有GPU的docker之前,你应该首先安装NVIDIA容器工具包。
运行
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运行命令中添加-e PIP_INDEX_URL={pypi-mirror-url}
更改pip索引URL。
从版本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 URL,默认:None--persistent
将历史存储到数据库--apikey APIKEY
设置apikey以启用安全API,默认:None
从v0.3.25开始,添加了Fooocus的CMD标志支持。你可以传递Fooocus支持的任何参数。
例如,启动图像生成(需要更多vRAM):
python main.py --all-in-fp16 --always-gpu
关于Fooocus CMD标志,请参见这里。
变更日志
较早的变更历史可以在发布页面找到
Apis
你可以在这里找到所有API细节。
许可
该库在GUN通用公共许可协议v3.0下授权。
默认检查点由RunDiffusion发布,符合CreativeML Open RAIL-M许可协议。
你可以在这里找到。
感谢 :purple_heart:
感谢所有对改进Fooocus API的贡献和努力。感谢你成为我们:sparkles:社区:sparkles:的一员!