Midjourney 是一款非常特殊的 AI 绘画聊天机器人,它并不是软件,也不用安装,而是直接搭载在 Discord 平台之上,所有的功能都是通过调用 Discord 的聊天机器人程序实现的。要想使用 Midjourney,只能进入他们的 Discord 服务器,并选择其中一个频道然后调用指令,输入 Prompt 提示词即可。
问题就在这里。
Midjourney 的提示词并不完全是自然语言,需要很多的技巧描述主题和设计风格以及画面设定等等。虽然官方也提供了文档,但是学习也是需要花成本的,关键词的数量非常多,不同关键词的结合、顺序、语境都会造成不同的结果,但目前官方没有给出一套标准化的公式,我们也无法像使用常规工具那样非常精准的输出。有没有办法无需学习就能直接上手呢?直接输入我的原始描述就能生成相应的画作,岂不美哉?
聪明的你应该想到了 ChatGPT,通过 ChatGPT 的自然语言理解和 Midjourney 的绘画能力,可以将文字描述转化为绘画指令,让 Midjourney 成功画出各种美妙的画作。
这里的难点在于如何利用 ChatGPT 将用户的中文输入准确地转化为 Midjourney 的绘画指令。不用担心,我这里提供了一个现成的 ChatGPT Prompt 提示词:
从现在开始,你是一名中英翻译,你会根据我输入的中文内容,翻译成对应英文。请注意,你翻译后的内容主要服务于一个绘画AI,它只能理解具象的描述而非抽象的概念,同时根据你对绘画AI的理解,比如它可能的训练模型、自然语言处理方式等方面,进行翻译优化。由于我的描述可能会很散乱,不连贯,你需要综合考虑这些问题,然后对翻译后的英文内容再次优化或重组,从而使绘画AI更能清楚我在说什么。请严格按照此条规则进行翻译,也只输出翻译后的英文内容。 例如,我输入:一只想家的小狗。 你不能输出: /imagine prompt: A homesick little dog. 你必须输出: /imagine prompt: A small dog that misses home, with a sad look on its face and its tail tucked between its legs. It might be standing in front of a closed door or a gate, gazing longingly into the distance, as if hoping to catch a glimpse of its beloved home. 如果你明白了,请回复"我准备好了",当我输入中文内容后,请以"/imagine prompt:"作为开头,翻译我需要的英文内容。
高贵的 ChatGPT Plus 用户已经可以体验到目前 OpenAI 最强大的 GPT4 模型,建议人傻钱多的憨憨有钱的成功人士直接开会员体验 GPT4。
如果你不想花钱又想体验 GPT4,可以加入我们 Sealos 官方的 Discord 群组免费体验:https://discord.gg/eDH3wscx
先来看看效果:
说明 ChatGPT 理解了我的需求,并给出了预期的回答。下面把提示词贴到 Midjourney 中:
完美!
我觉得第三张图不错,直接点击 U3,便会将第三张图的高清大图发给我。
怎么样,效果还不错吧?
再来看看更强的,拿《阿房宫》试一下:
最终画出来的图效果如下:
还真就五步一楼,十步一阁啊?
再来试试陶渊明的《桃花源记》:
太强了!假以时日,以后所有的故事情节都可以用 AI 来做插画了。
最后,如果你也想将 ChatGPT 接入 Discord,可以参考下面的步骤。
首先你需要打开这个页面 https://discord.com/developers/applications 创建一个 Discord Application,然后在这个 Application 中创建一个 Discord 机器人,在 Bot 的设置页面中找到 token 并复制下来。
将 MESSAGE CONTENT INTENT 打开:
通过 OAuth2 URL Generator 将机器人邀请到你的服务器中:
下面需要用到一个可以将 ChatGPT 对接到 Discord 机器人的项目:https://github.com/Zero6992/chatGPT-discord-bot
该项目虽然提供了 Dockerfile,但是没有提供构建好的镜像,我提交了自动构建镜像的 PR 也还没有合并。不过问题不大,我自己构建了镜像,大家可以先用我的:ghcr.io/yangchuansheng/chatgpt-discord-bot:latest
要想通过容器来运行该项目,首先需要找个能访问 ChatGPT 的环境。接下来需要用到一个非常神奇的云操作系统:Sealos
虽然它是基于 Kubernetes 作为内核,但是它跟其他所有基于 Kubernetes 的平台都不一样,你和它进行交互的唯一方式就是云桌面:
云桌面上有各种 App,与个人电脑几乎无异。
像使用个人电脑一样在 Kubernetes 上一键安装任意高可用分布式应用程序,几乎不需要任何专业的交付和运维成本。当然,你也不需要知道 Kubernetes 是个啥,也不用具备与 Kubernetes 相关的任何知识,就是这么神奇。
直接在云桌面中打开 Deploy Manager,然后点击「新建应用」:
填入应用名称、镜像名,设置一下需要用到多少 CPU 和内存,以及实例数量。
在高级配置中新增一些环境变量:
完整的环境变量配置可以通过 yaml 查看:
DISCORD_BOT_TOKEN 就是上文提到的 Discord 机器人的 token。 DISCORD_CHANNEL_ID 和 REPLYING_ALL_DISCORD_CHANNEL_ID 填入的都是你的 Discord 频道 ID。我这里演示的是通过 ACCESS token 来登录 ChatGPT,PUID 与 ACCESS_TOKEN 的获取步骤如下:
Chrome 登录 ChatGPT 网页,打开浏览器调试,依次进入 Application --> Cookies;
复制 _puid 的值,将其作为环境变量 PUID 的值填入 Deploy Manager;
Chrome 打开这个 URL:https://chat.openai.com/api/auth/session;
复制 accessToken 的值,将其作为环境变量 ACCESS_TOKEN 的值填入 Deploy Manager。
最终点击「部署应用」,一个崭新的容器就运行成功了:
点击「详情」进入容器详情页面,再点击「日志」就可以看到容器的日志了。
来测试一下吧:
溜了溜了~