富强、民主、文明、和谐、合规
自由、平等、公正、法治、合法
爱国、敬业、诚信、友善、合理
这是一个ComfyUI的API聚合项目,针对ComfyUI的API进行了封装,比较适用的场景如下
- 给微信小程序提供AI绘图的API;
- 封装大模型的统一API调用平台,实现模型多台服务器的负载均衡;
- 启用JOB,可以在本地自动生成AI图片,生成本地的图片展览馆;
- 定制不同的工作流,通过API进行调用;
依赖: JDK 17 + Maven 3.8.6 +
我们需要修改如下配置
wechat.appid=小程序 appId
wechat.secret=小程序 appSecret
comfy.ips=ComfyUI所在服务器的IP,比如`127.0.0.1`
生成的图片的存储地址(默认是放到磁盘里,我的磁盘地址是/Users/xiangyuanmeng/Documents/MyProjectSpace/comfy-flow-api/static/
,需要替换)
file.storage.type=disk
file.storage.disk=/Users/xiangyuanmeng/Documents/MyProjectSpace/comfy-flow-api/static/
file.storage.view=http://127.0.0.1:8189/static/
其中
- 类型目前只支持本地磁盘,即
file.storage.type=disk
; - 生成的图片存储在磁盘上,通过
file.storage.disk=/xxx/xxx/
配置磁盘文件夹; - 生成的图片可以进行访问,通过
file.storage.view=
进行配置;
PS:若需要使用阿里云的对象存储、Aws的S3存储、SM.MS等其他存储方式,需要扩展FileStorage.java进行实现。
我们需要修改如下配置
[
{
"name": "工作流的名称,比如动漫风格转换",
"path": "在服务器上,动漫风格转换的workflow-api.json所在的位置,比如/comfyui/workflow-api.json"
}
]
工作流文件中,某些需要替换的参数需要替换,可以参考:角色设计XL-简单的二次元.json
目前支持:
- seed 随机种子
- prompt 提示词
- negative_prompt 反向提示词
- image 图片
- localDate 日期
- localTime 时间
- key 关键字
可以访问地址: http://127.0.0.1:8189/q/dev-ui/extensions
可以访问地址: http://127.0.0.1:8189/q/swagger-ui/
可以访问地址: http://127.0.0.1:8189/drawNow.html
这个工作流使用到的资源如下
- 模型: https://www.liblib.art/userpage/0f37258e861044879b8728309c0ac3b0/publish
- 插件: https://github.com/SoftMeng/
只是个流程测试,没有进度条。
对项目进行打包
./mvnw package -Dquarkus.package.type=uber-jar
打完包的程序在target
中,安装JDK17或者21后,可以使用命令行启动
java -jar target/comfy-flow-api-runner.jar
这需要你安装GraalVM
./mvnw package -Dnative -Dquarkus.native.container-build=true
打包后可以使用下面命令启动
./target/comfy-flow-api-1.0.0-SNAPSHOT-runner
访问: http://localhost:8189/drawNow.html
配置文件开启JOB, 在配置文件里开启
启动JOB后可以看到日志,正在执行生图的任务
访问: http://localhost:8189/lib.html 点击搜索