|
||
---|---|---|
.. | ||
perspective_fields | ||
.gitignore | ||
README.md | ||
create_venv.bat | ||
create_venv.sh | ||
flux_fill_api.py | ||
flux_precisecam_demo.py | ||
flux_style_shaper_api.py | ||
startup.bat | ||
startup.sh | ||
text_to_image.py |
README.md
FLUX风格塑形API
一个基于ComfyUI和FLUX模型的图像风格塑形API服务,可将结构图像和风格图像结合生成新的艺术图像。
概述
该API提供了FLUX风格塑形工作流的接口,将结构和风格图像组合生成新的风格化图像。实现使用:
- Flux[dev] Redux 进行风格转移
- Flux[dev] Depth 实现结构感知
- DepthAnything V2 进行深度估计
- SigCLIP Vision 实现图像理解
前置条件
在使用此API之前,请确保:
- 已经安装并正确配置ComfyUI
- 已安装FLUX模型所需的自定义节点到ComfyUI中
- 此API依赖ComfyUI的自定义节点,包括但不限于提供FLUX支持的节点
- 运行前请确保您的ComfyUI环境中包含所有必要的自定义节点
- 您的系统有足够的GPU内存运行FLUX模型(建议至少8GB)
- 已安装兼容的CUDA版本和对应的PyTorch版本
- 对于CUDA 12.x(包括CUDA 12.6):需要PyTorch 2.2.0+cu121
- 对于CUDA 11.8/11.7/11.6:需要PyTorch 2.0.1+cu118/cu117/cu116
- 使用我们提供的
create_venv.bat
或create_venv.sh
脚本可以简化安装过程
模型说明
本API需要使用以下模型,首次运行时会自动下载(可能需要一些时间):
模型文件 | 大小 | 用途 | 保存位置 |
---|---|---|---|
flux1-redux-dev.safetensors | ~1.3GB | 风格模型 | models/style_models |
flux1-depth-dev.safetensors | ~1.4GB | 扩散模型 | models/diffusion_models |
sigclip_vision_patch14_384.safetensors | ~0.3GB | CLIP视觉模型 | models/clip_vision |
depth_anything_v2_vitl_fp32.safetensors | ~0.3GB | 深度模型 | models/depthanything |
ae.safetensors | ~0.2GB | VAE模型 | models/vae/FLUX1 |
clip_l.safetensors | ~0.2GB | CLIP文本编码器 | models/text_encoders |
t5xxl_fp16.safetensors | ~5.0GB | T5文本编码器 | models/text_encoders/t5 |
注意事项:
- 所有模型总共约需要8-9GB磁盘空间
- 首次运行时会自动从Hugging Face下载这些模型
- 下载后,这些模型将保存在ComfyUI的标准模型目录中
- 如果下载中断,下次运行时会继续完成下载
Hugging Face访问令牌设置
重要:FLUX模型是受限模型,需要Hugging Face访问令牌才能下载。请按照以下步骤设置:
-
获取访问令牌:
- 访问 Hugging Face Token设置页面
- 创建新的访问令牌(选择Read权限即可)
- 复制生成的令牌
-
申请模型访问权限:
- 访问以下模型页面并点击"Access repository"申请访问:
-
设置访问令牌(选择一种方法):
方法1:创建.env文件:
# 在flux_style_shaper_api目录中创建.env文件,写入: HUGGING_FACE_HUB_TOKEN=你的访问令牌
方法2:设置环境变量:
# Windows命令提示符 set HUGGING_FACE_HUB_TOKEN=你的访问令牌 # Windows PowerShell $env:HUGGING_FACE_HUB_TOKEN="你的访问令牌" # Linux/Mac export HUGGING_FACE_HUB_TOKEN="你的访问令牌"
安装
方法一:使用虚拟环境(推荐)
-
确保已安装并正常运行ComfyUI
-
克隆或下载此目录到ComfyUI根目录
-
使用提供的脚本创建虚拟环境:
Windows:
cd flux_style_shaper_api create_venv.bat
Linux/MacOS:
cd flux_style_shaper_api chmod +x create_venv.sh ./create_venv.sh
或者手动创建虚拟环境:
Windows:
cd flux_style_shaper_api python -m venv venv venv\Scripts\activate pip install -r requirements.txt
Linux/MacOS:
cd flux_style_shaper_api python -m venv venv source venv/bin/activate pip install -r requirements.txt
方法二:直接安装
- 确保已安装并正常运行ComfyUI
- 克隆或下载此目录到ComfyUI根目录
- 安装所需的Python包:
cd flux_style_shaper_api pip install -r requirements.txt
使用方法
使用虚拟环境启动(推荐)
-
激活虚拟环境并启动服务:
Windows:
cd flux_style_shaper_api venv\Scripts\activate python flux_style_shaper_api.py
Linux/MacOS:
cd flux_style_shaper_api source venv/bin/activate python flux_style_shaper_api.py
使用启动脚本
-
使用提供的启动脚本:
Windows:
cd flux_style_shaper_api startup.bat
Linux/MacOS:
cd flux_style_shaper_api ./startup.sh
-
服务将:
- 下载任何缺失的模型(首次运行可能需要一些时间)
- 安装所需的自定义节点(如果需要)
- 启动FastAPI服务
-
API端点:
- 健康检查:
GET /health
- 图像生成:
POST /generate
- 健康检查:
-
Swagger文档:访问
http://localhost:8000/docs
查看交互式API文档
API接口说明
图像生成 /generate
请求方式: POST (multipart/form-data)
参数:
prompt
: 文本提示(可选)structure_image
: 结构图像(必须)style_image
: 风格图像(必须)depth_strength
: 深度强度,控制结构保留程度(默认15.0)style_strength
: 风格强度,控制风格应用程度(默认0.5)
响应:
- 成功:返回生成的图像文件
- 失败:返回错误信息JSON
使用示例
Python客户端
import requests
# API端点
url = "http://localhost:8000/generate"
# 参数
data = {
"prompt": "一个漂亮的风景", # 可选
"depth_strength": 15.0, # 可选,默认15
"style_strength": 0.5 # 可选,默认0.5
}
# 图像文件
files = {
"structure_image": open("结构图像.jpg", "rb"),
"style_image": open("风格图像.jpg", "rb")
}
# 发送请求
response = requests.post(url, data=data, files=files)
# 保存生成的图像
if response.status_code == 200:
with open("生成图像.png", "wb") as f:
f.write(response.content)
print("图像已保存到 生成图像.png")
else:
print(f"生成失败: {response.json()}")
cURL示例
curl -X POST "http://localhost:8000/generate" \
-F "prompt=一个漂亮的风景" \
-F "depth_strength=15.0" \
-F "style_strength=0.5" \
-F "structure_image=@结构图像.jpg" \
-F "style_image=@风格图像.jpg" \
--output 生成图像.png
所需模型
该服务会自动从Hugging Face下载以下模型(如果它们不存在):
- flux1-redux-dev.safetensors (风格模型)
- flux1-depth-dev.safetensors (扩散模型)
- sigclip_vision_patch14_384.safetensors (CLIP视觉模型)
- depth_anything_v2_vitl_fp32.safetensors (深度模型)
- ae.safetensors (FLUX的VAE)
- clip_l.safetensors (CLIP文本编码器)
- t5xxl_fp16.safetensors (FLUX的T5文本编码器)
鸣谢
- 原始ComfyUI工作流由Nathan Shipley提供
- FLUX模型由Black Forest Labs开发
- DepthAnything由Kijai开发