mrhan1993 / Fooocus-API

FastAPI powered API for Fooocus
GNU General Public License v3.0
502 stars 131 forks source link

Fooocus 能力相关接口中的各种任务发起接口,似乎用一个就行了吧 #322

Open hqsh opened 1 month ago

hqsh commented 1 month ago

我想讨教一下,您接口文档(https://github.com/mrhan1993/Fooocus-API/blob/main/docs/api_doc_zh.md)中提到有如下这些接口: 文生图 | text-to-image 图像放大 | image-upscale-vary 局部重绘 | image-inpaint-outpaint 图生图 | image-prompt text-to-image-with-image prompt 图像反推 | describe

其中,您提到 ”图生图 | image-prompt“ 接口,自 v0.3.27 后,可同时实现 ”局部重绘 | image-inpaint-outpaint“ 接口功能。 并且,我测试使用相同的 image_seed,发现使用 ”图生图 | image-prompt“ 接口能和 ”text-to-image-with-image prompt“ 接口跑出来的图片完全一样。 并且,我测试使用相同的 image_seed,发现使用 ”图生图 | image-prompt“ 接口参数中只有文本 prompt、不填任何图片的情况下,跑出来的图片和 ”文生图 | text-to-image“ 的相同文本 prompt 完全一样。

”图像放大 | image-upscale-vary“ 和 ”图像反推 | describe“ 我还没测,或许也有可能可以用同一个接口。

我看 Fooocus 源码,各种不同类型的任务,是走到同一个代码逻辑中,这个代码逻辑并未区分任务类型,仅仅是把页面中传来各种模型参数、文本或图片 prompt 提取出来,输入到模型中去。

所以,想讨教一下,Fooocus-API 弄出这么多不同任务的不同接口,而不是一个统一的接口?是否有哪些我没注意到的不同接口无法共用的细节,比如什么参数情况下只能用 ”图生图 | image-prompt“,而不能用 ”text-to-image-with-image prompt“?

谢谢!

mrhan1993 commented 1 month ago

是可以,这属于历史遗留问题。而且我觉得分开挺好的==

hqsh commented 1 month ago

是可以,这属于历史遗留问题。而且我觉得分开挺好的==

这个能够和 fooocus 官方 demo web 程序一一对应,确实挺好的。

而我想说的是:能否弄一个通用接口出来(支持各种任务的提交,并且多个任务可以一次性做了)。因为实际应用的时候,可能会有这样的需求:可能同时需要把一个图片局部重绘、并且还要放大或扩展,现在接口得跑两次任务,而模型是能支持一次任务就行了是吧?(当然还有其他各种可能的操作组合)

分开来,只是 fooocus 官方因为要演示模型功能用,也有可能他分阶段的开发出来一个个功能。只有面向 fooocus 官方的页面做相应接口,是否被这个 demo 给限制了呢?

所以,再加个接口从 fooocus 内部实际功能出发(模型输入的参数或图片)的通用接口,让这个接口和 fooocus 模型的各种入参一一对应起来,能够完全发挥出模型应有的功能,而不仅限于官方 demo 页面中的这些配置组合,有没有这种可能呢?

mrhan1993 commented 1 month ago

你说的这个,SD或者Comfy UI比较合适干。Fooocus项目就是简化使用,然后预定义了一大堆的参数。

git363 commented 1 week ago

图片重绘功能接口2,当指定重绘区域的内容是自己传的图片时,功能失效,结果和图生图一样,传的是啥图生成结果就是啥图,这个是不是接口参数继承导致的?,我看FOOOCUS是可以指定重绘区域图片内容的

mrhan1993 commented 1 day ago

我发布了一个新的项目 https://github.com/mrhan1993/FooocusWithFastAPI ,只有一个 Allinone 接口,而且可以和Fooocus的WebUI同时启动。当然还处于开发阶段,而且还没有文档,如果有兴趣,你可以测试下