当前位置:AIGC资讯 > AIGC > 正文

教你接入Midjourney,不用梯子也能玩

1、效果

话不多说,先上最终出图效果, 我给的关键词是一只白色的猫

2、接入流程

API文档可以来这里查(可以白嫖100次midjourney出图和10次gpt4体验),我这里精简一下接入流程,方便大家快速接入

2.1、文字生图

首先是先通过文字生图,token可以去api文档中复制粘贴过来即可,请求如下:

const { data } = await axios({
    url: 'https://api.zhishuyun.com/midjourney/imagine?token=your token',
    method: 'POST',
    timeout: 60000,
    headers: {
        'content-type': 'application/json'
    },
    data: {
        prompt: 'a white cat',
        callback_url: `https://xxx.com/api/xxx`,
    },
});

prompt参数,必填,就是要输入的文字,注意必需是英文,中文是不准确的,你可以前置接入一个翻译工具把用户输入的文字变成英文,我的解决办法是前置接入了一个gpt 3.5,给的prompt是:

"messages": [
    { content: "请将我接下来的描述翻译成英文,不要夹带其他文字,如果准备好了,请回复", role: "user" },
    { content: "If you are ready, please reply.", role: "system" },
    { content: text, role: "user" },
]

callback_url参数,非必填,是一个回调地址就是当图片生成好后,会把生成结果发到这个地址,如果不填这个参数,那这个接口会一直pedding,指到图片生成结束,在把结果返给你,这个我建议是加上去不然对服务器压力很大,毕竟要pedding不少时间,我们看看他返回的结果,如下的一个json

 我们只要关注几个等会需要用到的字段,分别是image_id和actions,然后我们其中image_url就是生成的图片,我们查看一下效果,效果还是很不错的

会发现是4张图合成一张图,这其实是midjourney的一种节省资源的策略,之后我们可以对这张图做两种操作,分别是变换和放大,对接也十分简单

2.2、变换

选择一张图片,变换成同等风格的其他图片,比如我们想对左下角的图片做变换,我们就新增两个参数,分别是image_id表示刚才那张四宫格的图片image_id,另一个就是action,如果传upsample4代表要变换右下角那张图,其他操作上面都可以根据上一张图返回的actions字段来,如下

const { data } = await axios({
    url: 'https://api.zhishuyun.com/midjourney/imagine?token=your token',
    method: 'POST',
    timeout: 60000,
    headers: {
        'content-type': 'application/json'
    },
    data: {
        prompt: 'a white cat',
        // 要操作的图片id
        image_id: '1109284549273333971',
        // 表示变换右下角
        action: 'upsample4',
        callback_url: `https://xxx.com/api/xxx`,
    },
});

然后看下变换后的效果,会发现大致风格一致对一些细节做了调整

2.3、放大

选择一张图片,获取他的高清大图,主要用途是对单张图片做下载操作,传参跟上面的变换一样,只要把参数action改一下就行,比如我要放大左下角那张图,就把action改成传upsample3即可

action: "upsample3"

然后我们看下放大后的效果

如果我还想对这张做变换呢?聪明的你一定猜到了,那还是一样传这张放大图的image_id,同时action参数对应成变换的参数字符串即可,以上就是对接的内容了,我已经接入我的工具站了,分享给大家看看效果


更新时间 2023-12-06