ChatGPT 與 Midjourney 強強聯手,讓先秦阿房宮重現輝煌!

米開朗基楊發表於2023-04-07

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_IDREPLYING_ALL_DISCORD_CHANNEL_ID 填入的都是你的 Discord 頻道 ID。

我這裡演示的是透過 ACCESS token 來登入 ChatGPT,PUIDACCESS_TOKEN 的獲取步驟如下:

  1. Chrome 登入 ChatGPT 網頁,開啟瀏覽器除錯,依次進入 Application --> Cookies;

  2. 複製 _puid 的值,將其作為環境變數 PUID 的值填入 Deploy Manager;

  3. Chrome 開啟這個 URL:https://chat.openai.com/api/auth/session

  4. 複製 accessToken 的值,將其作為環境變數 ACCESS_TOKEN 的值填入 Deploy Manager。

最終點選「部署應用」,一個嶄新的容器就執行成功了:

點選「詳情」進入容器詳情頁面,再點選「日誌」就可以看到容器的日誌了。

來測試一下吧:

溜了溜了~

相關文章