KICCO_AI_IMAGE/flux_style_shaper_api
zhxiao 3777ea04c9 1231 2025-05-23 11:24:02 +08:00
..
perspective_fields 1231 2025-05-23 11:24:02 +08:00
.gitignore 初始化项目 2025-04-24 19:25:29 +08:00
README.md 初始化项目 2025-04-24 19:25:29 +08:00
create_venv.bat 初始化项目 2025-04-24 19:25:29 +08:00
create_venv.sh 初始化项目 2025-04-24 19:25:29 +08:00
flux_fill_api.py fill传参 2025-05-06 20:44:11 +08:00
flux_precisecam_demo.py 1231 2025-05-23 11:24:02 +08:00
flux_style_shaper_api.py 修改步数 2025-05-08 09:27:01 +08:00
startup.bat 初始化项目 2025-04-24 19:25:29 +08:00
startup.sh 初始化项目 2025-04-24 19:25:29 +08:00
text_to_image.py 优化 2025-05-06 18:51:36 +08:00

README.md

FLUX风格塑形API

一个基于ComfyUI和FLUX模型的图像风格塑形API服务可将结构图像和风格图像结合生成新的艺术图像。

概述

该API提供了FLUX风格塑形工作流的接口将结构和风格图像组合生成新的风格化图像。实现使用

  • Flux[dev] Redux 进行风格转移
  • Flux[dev] Depth 实现结构感知
  • DepthAnything V2 进行深度估计
  • SigCLIP Vision 实现图像理解

前置条件

在使用此API之前请确保

  1. 已经安装并正确配置ComfyUI
  2. 已安装FLUX模型所需的自定义节点到ComfyUI中
    • 此API依赖ComfyUI的自定义节点包括但不限于提供FLUX支持的节点
    • 运行前请确保您的ComfyUI环境中包含所有必要的自定义节点
  3. 您的系统有足够的GPU内存运行FLUX模型建议至少8GB
  4. 已安装兼容的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.batcreate_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访问令牌才能下载。请按照以下步骤设置

  1. 获取访问令牌

  2. 申请模型访问权限

  3. 设置访问令牌(选择一种方法):

    方法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="你的访问令牌"
    

安装

方法一:使用虚拟环境(推荐)

  1. 确保已安装并正常运行ComfyUI

  2. 克隆或下载此目录到ComfyUI根目录

  3. 使用提供的脚本创建虚拟环境:

    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
    

方法二:直接安装

  1. 确保已安装并正常运行ComfyUI
  2. 克隆或下载此目录到ComfyUI根目录
  3. 安装所需的Python包
    cd flux_style_shaper_api
    pip install -r requirements.txt
    

使用方法

使用虚拟环境启动(推荐)

  1. 激活虚拟环境并启动服务:

    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
    

使用启动脚本

  1. 使用提供的启动脚本:

    Windows:

    cd flux_style_shaper_api
    startup.bat
    

    Linux/MacOS:

    cd flux_style_shaper_api
    ./startup.sh
    
  2. 服务将:

    • 下载任何缺失的模型(首次运行可能需要一些时间)
    • 安装所需的自定义节点(如果需要)
    • 启动FastAPI服务
  3. API端点

    • 健康检查: GET /health
    • 图像生成: POST /generate
  4. 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文本编码器)

鸣谢