项目背景
众所周知,Midjourney并没有提供任何的Api服务,但是基于Midjourney目前的行业龙头位置,很多企业以及个人会有相关的需求。TTApi平台基于Midjourney现有功能整理出一套完整的可集成性高的服务,如果你有类似的需求,那么恭喜你找到了正确的使用方式。
新用户注册免费送 100 配额,最多可以免费请求 50 次imagine接口
使用方式
首先:注册TTApi平台, 注册地址,注册后跳转至激活页面
点击 Send Activate Email,发送激活邮件至您的邮箱
在您的邮箱中点击Verify Email(如果找不到激活邮件,有可能被邮件服务商勿拦,请翻阅垃圾邮件)
点击后即激活成功,自动跳转至平台主页,同时您的邮件中将会收到成功邮件,首页点击转个人中心即可查看TT-API-KEY以及其他相关信息
注册激活成功系统赠送100quota,可以免费请求50次imagine接口。具体相关支持请查看文档地址
功能特点
包含Midjourney目前所有功能 imagine U V zoom pan vary blend describe seed 等等
支持Midjourney所有命令 --v --cref --ar 等等
支持webhook回调任务状态交互以及主动查询任务结果
Imagine接口示例
Midjourney中文文档
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最多会进行通知三遍