专业的JAVA编程教程与资源

网站首页 > java教程 正文

开源:ComfyUI容器Java调用客户端(开源的软件怎么调用)

temp10 2024-09-10 20:55:11 java教程 17 ℃ 0 评论

ComfyUI 是一个强大且模块化的stable diffusion图形用户界面(GUI),它采用图/节点/流程图界面,让用户可以设计和执行高级stable diffusion管道,而无需编写任何代码。

它提供一个用户友好的图形界面,可以将多个Stable Diffusion模型及其Hypernetwork组合成一个完整的工作流(Workflow),实现自动化的图像生成和优化。

开源:ComfyUI容器Java调用客户端(开源的软件怎么调用)

ComfyUI的主要功能包括:

  • 基于节点的图形界面构建Workflow
  • 支持Stable Diffusion 1.x和2.x版本
  • 支持各种模型的组合,如Upscaler、Denooiser等
  • 提供Workflow的保存、加载功能
  • 一键从PNG生成完整Workflow
  • 运行时优化,只重新执行修改过的部分


下图是ComfyUI的默认文生图流程:

相对于Stable Diffusion WebUI,ComfyUI在算法流程编排上,具有高度灵活性以及可扩展性,能够非常好的胜任一些复杂图像算法的编排。比如,对于一个熟练的算法工程师或者图像编辑人员,原来您需要在Stable Diffusion WebUI上反复操作的N个步骤,可以在ComfyUI上固化成一个流程模板。每次针对相同的复杂场景的操作,在ComfyUI上只需要加载之前已保存的流程模板,就可以快速复用,甚至是一键操作。下图是一个笔者处理过的一个稍微复杂的流程缩略图,大家感受一下:



即使是这种稍微复杂一点的图像处理流程,在Stable Diffusion WebUI上需要反复操作十多次,非常费时费力,而且步骤上也很容易出错。

既然,ComfyUI这么好用,那对于传统以Java为基础的后端程序,是否可以与之集成呢?

今天,小编就给你们介绍一款新的开源代码库:pixel-force-open-client,地址:https://github.com/hiforce/pixel-force-open-client

在使用该开源库之前,我们首先需要对ComfyUI做一些设置。打开ComfyUI,点击设置(见下图红框按钮):

在弹出的界面中,把“启用开发者模式”选中,如下:

在启用开发者模式下,管理面板上就会多出一个 “Save(API Format)”按钮。

在ComfyUI中,编辑好流程之后,可以依次点击 Save 以及 Save(API Format)按钮。会分别保存并下载 workflow.json和workflow-api.json。前者是您编辑好的流程的定义文件,而后者则是设置流程中用到的变量的数据文件。

然后,我们在Java工程中,引入pixel-force-open-client客户端,如下:

<dependency>
    <groupId>com.hiforce.pixel.open</groupId>
    <artifactId>pixel-force-open-client</artifactId>
    <version>1.0.3</version>
</dependency>

然后,我们参考该开源库提供的样例 GeneralPromptSample03.java:

public class GeneralPromptSample03 extends BaseLocalSample {

    public static void main(String[] args) {
        GeneralPromptSample03 sample = new GeneralPromptSample03();
        sample.run();
    }

    @Override
    public void execute() throws Exception {
        String workflowJSON = getTextFromResource("/general/01-default-workflow.json");
        String workflowApiJSON = getTextFromResource("/general/01-default-workflow-api.json");

        WorkflowApi workflowApi = JSON.parseObject(workflowApiJSON, WorkflowApi.class);
        workflowApi.setNodeFieldValue(6, "text",
                "1girl, beauty, long hair, close shot," +
                        "happy, walking in the park, upper body, masterpiece,absurdres,intricate,high detail");

        SimpleComfyInvoker invoker = new SimpleComfyInvoker("http://localhost:8100");
        QueueResult queueResult = invoker.startQueuePrompt(workflowApi, workflowJSON);

        System.out.println("General Prompt invoke result:" + JSON.toJSONString(queueResult));

        waitAndQueryTaskExecuteResult(queueResult.getPromptId(), invoker);
    }
}


代码中,我可以操作WorkflowApi对象,对流程的参数进行设置。比如,设置关键词、设置重绘强度、设置采样算法、设置选择的底模等等。通过SimpleComfyInvoker对指定的流程文件,以及流程参数在指定的ComfyUI实例上执行流程。在waitAndQueryTaskExecuteResult方法中,我们提供了定时查询任务进展以及处理结果的样例。运行程序效果如下:


基于Pixcel Force Open Client构建场景应用

pixel-force-open-client不仅仅提供了可以和自建的ComfyUI容器进行集成,他还提供了和PixelForce官网的集成。PixelForce是原力在线公司构建的一个在线AI绘图工具(原力创绘)。原力创绘提供了一些面向特定场景的AI绘图功能,比如:

  • 在线虚拟模特的留衣重绘
  • 智能背景重绘
  • 平铺衣服图秒变穿搭图
  • 高质量白底图、指定背景图
  • 等等

下图是使用PixelForce进行智能背景替换的操作界面:


可以看到,这个操作界面上,有丰富的参数可以设置,使用起来还是非常方便的。现在,通过pixel-force-open-client也可以直接使用API方式,来生成和界面操作一致的成品图了。而且,也非常容易和自己的系统快速集成。

对于这么一款ComfyUI开源Java客户端,有兴趣的同学赶紧用起来吧!

Tags:

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表