科技 > 人工智能 > aigc

Midjourney

96人参与 2024-08-05 aigc

知数云 | 数字化服务的智慧之选

midjourney quick start guide

midjourney是一款ai制图工具,只要输入关键字,透过ai算法就能生成相对应的图片。

使用spring接口与midjourney官方api交互涉及几个步骤。首先,确保你已经在midjourney官方网站上注册了账户并获取了api密钥。

以下是一个简单的示例,展示如何使用spring boot创建一个接口来与midjourney api进行交互:

1.添加依赖:

在你的pom.xml中,确保你已经添加了spring boot的依赖。

<dependency>
    <groupid>org.springframework.boot</groupid>
    <artifactid>spring-boot-starter-web</artifactid>
</dependency>

2.创建配置类:

创建一个配置类来存储midjourney api的密钥和其他相关配置。

@configuration
public class midjourneyconfig {
    @value("${midjourney.apikey}")
    private string apikey;
    @bean
    public resttemplate resttemplate() {
        return new resttemplate();
    }
}

3.创建接口:

创建一个接口来封装与midjourney api的交互。

@restcontroller
public class midjourneycontroller {
    @autowired
    private resttemplate resttemplate;
    @value("${midjourney.apikey}")
    private string apikey;
    @getmapping("/generate")
    public responseentity<string> generateimage(@requestparam string prompt) {
        string url = "https://api.midjourney.com/v3/image"; // 注意: 这是一个示例url,请使用实际的midjourney api url。
        httpheaders headers = new httpheaders();
        headers.set("authorization", "bearer " + apikey); // 设置你的api密钥
        headers.set("content-type", "application/json");
        httpentity<string> entity = new httpentity<>("{\"prompt\":\"" + prompt + "\"}", headers);
        responseentity<string> response = resttemplate.exchange(url, httpmethod.post, entity, string.class);
        return response; // 这里返回响应体,根据midjourney的实际返回值进行适当的处理。
    }
}

4.配置属性:

在application.properties或application.yml中,添加midjourney api的密钥和其他相关配置。

midjourney.apikey=your_midjourney_api_key_here

5.运行你的spring boot应用:

使用spring boot运行你的应用,并测试你的接口。例如,通过发送get请求到/generate?prompt=your+prompt来生成图像。

6.注意事项:

确保你遵循midjourney的使用条款和条件。

midjourney 官方并没有提供接口,市面上一般是通过抓取 discord 频道内的 midjourney bot 绘图数据提供相应的接口,github 上也有一些开源项目,下面就来介绍一下几个热门开源 midjourney api 项目的使用体验。

一、idjourney-proxy

https://github.com/novicezk/midjourney-proxy

midjourney-proxy 项目使用 java 开发的 midjourney api 服务,目前 3.5k star。该项目通过 user token 获取 discord 用户实时消息实现 api 服务,有完善的接口文档,基本可以说是开箱即用。

这个项目有一些优点:

1.能够比较准确的获取任务进度和错误信息;

2.支持 base64 作为垫图;

3.支持中文翻译;

4.支持多账号配置;

5.支持多种搭建使用方式。

二、erictik/midjourney-api

https://github.com/erictik/midjourney-api

midjourney-api 项目使用 nodejs 开发的工具库,目前 1.4k star。这个项目也是通过 user token 获取 discord 用户实时消息提供绘图方法,注意不是提供的 api,因此还是要二次开发成接口。

这个项目的优点是提供的功能比较全面,几乎包含 midjourney bot 所有功能,还支持 niji bot 和换脸 ai。

不足的是可能还要自己实现中文翻译、多账号配置等,还有图片链接错误、提示词匹配结果不准确、封号风险问题可能同样存在。

三、yokonsan/midjourney-api

https://github.com/yokonsan/midjourney-api

这个项目是通过nodejs实现的api项目,是通过discord实现机器人监听用户消息,功能相对比较全面。discord机器人是官方提供的实现,因此不会有封号风险。不过获取消息可能没有那么准确,获取不到私有信息。还有中文翻译、多账号配置等功能也要自己实现。

详细介绍midjourney代理服务api搭建

搭建一个服务来代理 midjourney 的discord频道,实现api形式调用ai绘图。

需要准备:

1.一台能魔法上网的服务器,开启8080端口

2.一个midjourney付费discord账号

安装步骤:

一、discord部分

如何购买midjourney账号和加入midjourney官方频道这里就不多说了,有需要的参考下官方的文档https://docs.midjourney.com/docs/quick-start

有账号后,我们需要创建一个自己的频道和机器人,请使用网页版进行以下操作。

1、在discord内添加一个自己的频道

2、邀请midjourney机器人到自己的频道

在midjourney官方频道找到midjourney机器人进行邀请

成功后在自己的频道就能看见midjourney bot,可以在自己频道用/imagine试一下。

3、创建添加自己的discord机器人

我们需要创建一个自己的discord机器人来读取midjourney机器人的消息

网址:https://discord.com/developers/applications

刷新token后显示,即机器人token,请做好记录,后续它将配置到 mj.discord.bot-token

如图勾选后,在底部复制url,然后打开进行授权,选择midjourney bot所在的服务器

 

 

勾选上图这两个选项,点击 save changes
进入频道,打开f12 选择network,然后在频道内随便发个消息,这里的 authorization 即用户token,请做好记录,后续它将设置到 mj.discord.user-token

频道的url里取出 服务器id、频道id ,前者为服务器id,后者为频道id,后续配置到mj.discord.guild-id和mj.discord.channel-id,请做好记录

在频道中确认是否存在mj机器人和新创建的机器人,注意mj机器人名称为"midjourney bot",不一致时需要改启动参数 mj.discord.mj-bot-name

到这里discord的部分就配置完成了。

二、服务部署

1、安装docker

服务部署用的方法是使用docker部署,因此我们需要在服务器内先安装一个docker。

(1)宝塔安装

在宝塔面板的软件商店找到宝塔docker模块进行安装。

安装完成后可以在首页找到对应模块,打开菜单左侧开关

 

在这个界面可以安装管理docker容器

(2)服务器直接安装

参考https://docs.docker.com/engine/install/,选择自己的系统进行安装

2、服务部署

(1)下载镜像

docker pull novicezk/midjourney-proxy:1.4

(2)启动容器,并设置参数

方法a:复制出 src/main/resources/application.yml,更改配置

docker run -d --name midjourney-proxy \
 -p 8080:8080 \
 -v /home/xxx/data/application.yml:/home/spring/config/application.yml \
 --restart=always \
 novicezk/midjourney-proxy:1.4

方法b:或者直接在启动命令中设置参数,将xxx替换为前边记录的相关参数

docker run -d --name midjourney-proxy \
 -p 8080:8080 \
 -e mj.discord.guild-id=xxx \
 -e mj.discord.channel-id=xxx \
 -e mj.discord.user-token=xxx \
 -e mj.discord.bot-token=xxx \
 --restart=always \
 novicezk/midjourney-proxy:1.5

如果有的同学对guild-id、channel-id、discord.user-token、discord.bot-token这四个参数的具体位置还模糊不清,可以看看以下几张标注图片:

方法c:有的同学反馈宝塔docker 容器设置时一直无法成功,具体原因我目前还不清楚,但可以直接在宝塔的管理界面运行命令,点击终端,输入用户名密码登录,然后还是采用方法b,编辑好命令粘贴回车。

配置成功标志:

1.访问 http://你的服务器ip:8080/mj 提示 "项目启动成功"

2.discord频道中新创建的个人机器人显示在线

建议:

1、调用api接口的根路径为 http://你的服务器ip:port/mj

2、接口最好本地调用,如果需要远程调用的时候,建议开启防火墙ip白名单。

3、midjourney本身不支持中文prompt,接口代理程序本身集成了百度翻译进行机翻,如果需要使用:

进入https://fanyi-api.baidu.com/manage/developer获取自己的app id和密钥

在启动指令中配置环境

-e mj.translate-way=baidu \
-e mj.baidu-translate.appid=xxx \
-e mj.baidu-translate.app-secret=xxx \

4、mj.discord.user-token可能会过期,过期后重新获取,更改环境配置后重启容器。

(0)
打赏 微信扫一扫 微信扫一扫

您想发表意见!!点此发布评论

推荐阅读

新版 Midjourney 怎么玩?免费的傻瓜教程来了!

08-05

最新ChatGPT网站源码+支持GPT4+支持ai绘画(Midjourney)+一键在线更新版本+永久更新!

08-05

So-vits-svc如何合并输出和制作合唱,Midjourney指令详细教学

08-05

【粉丝福利社】Midjourney从入门到实战应用(文末送书-进行中)

08-05

《一》Midjourney 傻瓜式入门教程

08-05

AI绘画Stable Diffusion玩转局部重绘,哪里不行点哪里

08-05

猜你喜欢

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论