midjourney绘画,midjourney api接口国内如何对接

项目背景

众所周知,Midjourney并没有提供任何的Api服务,但是基于Midjourney目前的行业龙头位置,很多企业以及个人会有相关的需求。TTApi平台基于Midjourney现有功能整理出一套完整的可集成性高的服务,如果你有类似的需求,那么恭喜你找到了正确的使用方式。

新用户注册免费送 100 配额,最多可以免费请求 50 次imagine接口

使用方式

  • 首先:注册TTApi平台, 注册地址,注册后跳转至激活页面

    activation.png

  • 点击 Send Activate Email,发送激活邮件至您的邮箱

    activation.png

  • 在您的邮箱中点击Verify Email(如果找不到激活邮件,有可能被邮件服务商勿拦,请翻阅垃圾邮件)

    home.png

    home.png

  • 点击后即激活成功,自动跳转至平台主页,同时您的邮件中将会收到成功邮件,首页点击转个人中心即可查看TT-API-KEY以及其他相关信息

  • 注册激活成功系统赠送100quota,可以免费请求50次imagine接口。具体相关支持请查看文档地址

功能特点

  • 包含Midjourney目前所有功能 imagine U V zoom pan vary blend describe seed 等等

  • 支持Midjourney所有命令 --v --cref --ar 等等

  • 支持webhook回调任务状态交互以及主动查询任务结果

Imagine接口示例

Python请求示例

import requests
​
endpoint = "https://api.ttapi.io/midjourney/v1/imagine"
​
headers = {
    "TT-API-KEY": your_key
}
​
data = {
    "prompt": "a cute cat",
    "mode": "fast",
    "hookUrl": "",
    "timeout": 300
}
​
response = requests.post(endpoint, headers=headers, json=data)
​
print(response.status_code)
print(response.json())

Java请求示例:

import cn.hutool.http.HttpRequest;
import cn.hutool.json.JSONUtil;

import java.util.HashMap;
import java.util.Map;

/**
 * 参考文档
 *  (中文版):https://docs-zh.mjapiapp.com/midjourney/midjourney-api
 *  (英文版):https://docs.mjapiapp.com/reference/midjourney-api
 */
public class TTApiMain {

    //TT-API-KEY
    private static final String TT_API_KET = "your_key";
    //提交绘图申请
    private static final String IMAGINE_URL = "https://api.ttapi.io/midjourney/v1/imagine";
    //查询绘图结果
    private static final String FETCH_RESULT = "https://api.ttapi.io/midjourney/v1/fetch";

    public static void main(String[] args) {
        //发送imagine绘图请求
        String result = imagine("dog");
        //查询绘图结果
        fetch(JSONUtil.parseObj(result).getJSONObject("data").getStr("jobId"));
    }

    /**
     * 发送 imagine 绘图请求
     * @param prompt
     */
    public static String imagine(String prompt){
        Map<String, Object> map = new HashMap<>();
        //提示词
        map.put("prompt", prompt);
        //模式
        map.put("mode", "fast");
        //绘图成功通知地址
        map.put("hookUrl", "");
        //超时时间
        map.put("timeout", 300);
        String result = HttpRequest.post(IMAGINE_URL)
                .body(JSONUtil.toJsonStr(map))
                .header("TT-API-KEY", TT_API_KET)
                .execute().body();
        System.out.println("绘图响应:" + result);
        return result;
    }

    /**
     * 查询绘图结果
     * @param jobId 任务ID
     */
    public static void fetch(String jobId){
        String result = HttpRequest.get(FETCH_RESULT + "?jobId=" + jobId)
                .header("TT-API-KEY", TT_API_KET)
                .execute().body();
        System.out.println("绘图结果:" + result);
    }
}
参数详解
  • header中的TT-API-KEY为全局必传参数,所有请求都需要使用,个人中心中即可获得

  • mode是我们要使用的模式支持 fast,relax,turbo对应的也就是midjourney的模式,不设置默认为fast

  • timeout参数为超时时间设置,fast模式一般300秒以内即可,relax模式一般600秒以内即可,不设置默认为300

  • hookUrl为任务成功失败回调的地址,注意该地址请保证一定可以接收请求,任务状态数据会以json格式返回到该地址,以http状态码为准200即认为通知成功,http状态码非200最多会进行通知三遍

计费说明

Midjourney的不同操作以及在不同模式下消耗的账户订阅套餐的GPU时间是不相同的,TTApi的mj服务计费同理,详见费用说明文档

技术之外

如果对我的服务有任何想法以及建议欢迎各位指出,这个平台一开始的出发点也是因为自己的实际业务需要使用,后续发现越来越多的同行企业或是个人有同样的需求,但是疲于跟官方不停的“斗智斗勇”,所以干脆做了一个平台,能赚取一些零花钱的同时能给各位coder同行提供便利。
  • 77
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要在Java中与Midjourney建立WebSocket连接,你可以使用Java的WebSocket API来实现。下面是一些基本的步骤: 1. 首先,你需要导入Java的WebSocket API库。你可以在Maven或Gradle中添加以下依赖项: ``` <!-- Maven --> <dependency> <groupId>javax.websocket</groupId> <artifactId>javax.websocket-api</artifactId> <version>1.1</version> </dependency> <!-- Gradle --> implementation 'javax.websocket:javax.websocket-api:1.1' ``` 2. 创建一个WebSocket客户端类并实现`javax.websocket.ClientEndpoint`接口。这个类将充当WebSocket客户端,处理WebSocket事件和消息。例如: ```java import javax.websocket.ClientEndpoint; import javax.websocket.OnMessage; import javax.websocket.OnOpen; import javax.websocket.Session; @ClientEndpoint public class MyWebSocketClient { @OnOpen public void onOpen(Session session) { System.out.println("WebSocket connection opened"); // 在此处添加你与Midjourney建立连接后的逻辑 } @OnMessage public void onMessage(String message) { System.out.println("Received message: " + message); // 在此处处理接收到的消息 } } ``` 3. 创建一个方法来连接到Midjourney的WebSocket服务器。在此方法中,你需要使用`javax.websocket.ContainerProvider`类和`javax.websocket.WebSocketContainer`接口来创建并连接WebSocket。例如: ```java import javax.websocket.ContainerProvider; import javax.websocket.WebSocketContainer; public class WebSocketClientExample { public static void main(String[] args) { try { WebSocketContainer container = ContainerProvider.getWebSocketContainer(); String uri = "ws://midjourney-server-url"; // 替换为Midjourney服务器的URL container.connectToServer(MyWebSocketClient.class, URI.create(uri)); } catch (Exception e) { e.printStackTrace(); } } } ``` 在上面的代码中,将`ws://midjourney-server-url`替换为Midjourney服务器的实际URL。 现在,当你运行`WebSocketClientExample`类时,它将连接到Midjourney的WebSocket服务器,并在连接打开和接收到消息时触发相应的方法。 请注意,上述代码仅为示例,你需要根据Midjourney WebSocket服务器的具体要求和协议进行适当的修改。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值