AI繪圖之Midjourney初體驗

geoli91發表於2024-05-27

Midjourney (MJ) 使用筆記

最近嘗試了 Midjourney 繪圖,簡單記錄下使用流程。

註冊及登陸

首先是賬號註冊和登陸,基本上就是一路下一步,唯一需要注意的是加入MJ頻道,具體流程為:

  1. 開啟Discord,點選右上角Login進入登陸介面
  2. 點選登陸頁面下方的Register,進入註冊頁面
  3. 輸入用於註冊的相關資訊,點選下方continue完成註冊。
  4. MJ會傳送一份驗證郵件,需要進入郵箱點選完成驗證。
  5. 繼續登陸MJ,進入MJ主介面
  6. 點選左側的探索可發現的伺服器按鈕,開啟伺服器介面,找到下方的Midjourney群組並點選。如果下方沒有找到,也可以在搜尋框搜尋
    AI繪圖之Midjourney初體驗
    AI繪圖之Midjourney初體驗
  7. Getting Started進入到伺服器,進來之後點選最上面的加入Midjourney,加入MJ群組。如果此處一直加入不了群組,可能是代理的國家人數太多受限了。嘗試切換代理的國家,再次嘗試。但是如果IP換得頻繁,也有可能觸發風控。
  8. 加入群組後,點選左上角的私信,開啟Midjourney Bot,即可開啟和MJ機器人的對話方塊。
    20240527211811
  9. 如果需要訂購會員,在對話方塊輸入/subscribe命令,點選彈出的Manage Account,進入訂閱介面。此處選擇月付的標準版會員,切換到Monthly Billing,點選Standard Plan下放到的Subscribe進行訂閱,在彈出的視窗中輸入自己的支付方式,完成支付即可。

下次使用時,從 https://discord.com/channels/@me 登陸即可。

執行指令

登陸以後,點選左上角私信,接著選中Midjourney Bot,即可開啟和MJ機器人的對話方塊。
20240324204643

在對話方塊中輸入各種指令(按下/即會有智慧提示,可以透過Tab鍵進行選擇),並回車執行指令。常用引數包括:

  1. /imagine <prompt> 為生成影像的指令,其中 prompt 是用於生成影像的文字命令
    20240324205934
  2. /info 瞭解賬戶的訂閱資訊和剩餘時間
  3. /relax 切換到relax模式。該模式生成影像不消耗賬戶的GPU時間,但是需要排隊,可能生成速度較慢
  4. /fast 切換到fast模式,該模式可以在60s內生成影像,但是需要消耗賬戶的GPU時間。
  5. /blend 將兩個圖片進行融合
  6. /settings 調整MJ的設定,包括MJ的版本、風格、質量引數、風格引數和輸出模式等。
    20240324205908
  7. /stealth 切換到隱身模式,標準版不可用
  8. /describe 圖片生成文字。上傳圖片,MJ返回對該圖片的文字描述
  9. /ask 問問題,類似ChatGPT
  10. /show 使用圖片作業ID(job id可在MJ記錄中檢視或複製)重新生成 Discord 中的作業
  11. /help 檢視幫助資訊
  12. /subscribe 管理訂閱
  13. /prefer option set 建立指定變數
  14. /prefer option list 列出之前設定的所有變數
  15. /prefer suffix 指定要新增每個提示末尾的字尾,用來統一調整後續繪圖的引數

繪圖

掌握了MJ的基本用法後,就可以開始繪圖了。比如使用命令 /imagine Diagrammatic isometric the water cycle or water cycle diagram shows four seasons of watering of Earth's surface, in the style of forest vistas, whistlerian, photoillustration, left forests but right fragment trees, 2d game art, rough-edged 2d animation Three dimensional 命令生成一個四季的水文迴圈的圖。

命令執行時,可以在右側看到進度,等待進度到100%,即會展示繪製的圖片。

20240324213708

繪圖最關鍵的就是設計prompt。比如上面的繪圖命令中:

  1. Diagrammatic isometric提示用於科研繪圖展示
  2. four seasons 指定4個子圖分別生成4季的影像
  3. rough-edged 2d animation Three dimensional 用於展示2d風格和三維風格

可以嘗試讓ChatGPT生成繪圖prompt,再自己微調。

也可以考慮上傳先找到一張樣圖,使用/describe命令獲取MJ對該圖片的描述。將該描述略微修改後,作為/imagine命令生成影像的prompt。

比如先使用 /describe 命令對下圖進行描述。

20240324212128

描述後,生成了4個可選的圖片介紹,選擇第一個描述,稍作修改後作為prompt生成影像 /imageine An educational poster titled "The Water JCyle" that depicts the water cycle from its source to oceans, highlighting key elements such as clouds and raindrops in blue color on one side of the page. The other half shows an illustration showing vegetation, rivers, lakes, etc., with arrows connecting them all around. There is also text detailing each step in the process, along with notes about soil, air, atmosphere, and Earth's surface waters.

等待片刻,即可得到基於該圖生成的示意圖。還是有一些相似,可以在此基礎上再修改。可以看到,MJ對文字的支援不好,推薦只用MJ生成圖片,後期自己加文字標註。

20240324212437

繪圖引數

繪圖時,可以在繪圖的prompt後面新增一些引數,用來控制繪圖的一些設定,如影像比例、清晰度之類的。常用的引數有:

  1. --aspect--ar,繪圖比例,比如 4:3、16:9,預設為1:1
  2. --chaos <0-100> 或者 --c <0-100>,控制圖片的創意度和多樣性,數字越大,創意性越強,預設為0
  3. --no,控制圖片中不要出現的元素,比如--no dogs,會嘗試從影像中移除狗
  4. --quality--q,控制圖片的精細質量程度,預設值是1。數值越大,越多細節,但渲染時間越長
  5. --seed <0-4294967295>,繪圖種子,用來控制圖片相似性。使用相同的種子編號和提示將產生相似(也就是並不相同)的結果影像。seed值可以影響影像的細節、顏色、形狀等方面,但不會改變影像的主題和內容
  6. --stop <10-100>,控制圖片渲染到哪一個進度停止,預設為100,即全部渲染完成後再停止
  7. --style <1, 2, 3, 4, 5.0, 5.1, 5.2, or 6>,模型版本切換,從MJ V1到MJ V6有非常多個版本可以切換。預設使用最新的 V6版本
  8. --stylize <0-1000>或者--s,控制圖片的風格化程度,數值越高圖片的藝術性越強,和寫的內容偏差就越大,預設是100 (style med)
  9. --iw <0–2> 設定相對於文字粗細的影像提示粗細。預設值為 1
  10. --repeat <1–40> 重複執行n次,用於多次執行選最好的。

圖片調整

MJ可以在之前繪圖的基礎上做各種調整。比如,初次繪圖後,圖片的下方會出現9個圖示,可以對之前生成的影像進行調整:

  1. U1~U4 (Upscale) 可以選擇剛才的某一個子圖放大,並新增更多的細節
  2. V1~V4 (Vary) 可以對所選影像進行進一步變化,生成圖的風格和構圖會與所選影像相似
  3. 最後一個迴圈箭頭的圖示用於重新生成影像。

20240324213824

選擇需要的子圖後,可以繼續點選下方按鈕對圖片進行修改,主要包括 Upscale(提高解析度)、Zoom out(向外括圖)、vary(更新影像)和平移括圖。

  1. Upscale 是提升圖片的解析度,並新增更多細節。
  2. Zoom out 是以當前影像為中心,根據提示詞向外括圖
  3. Vary 是對影像的原始內容進行更新。其中:
    1. Vary (Subtle) 和 Vary (Strong) 是對影像整體進行重繪,Strong修改程度比Subtle更大
    2. Vary (Region) 則是對圖片的區域性進行重繪。點選按鈕後,在彈出的新視窗中透過方框或者套索選擇要重繪的區域,然後在下方視窗中輸入用於重繪的prompt。該prompt僅需要提示如何對選定區域進行重繪,不需要新增原來的prompt。
  4. 4個方向按鈕則是在不改變原來影像的情況下,向指定方向平移括圖。

20240324214610

更具體的解釋Vary (Region):

  1. 為了保證整體的協調,區域性修改仍然受之前全域性prompt的約束,所以如果要大面積的修改影像,仍然需要調整全域性的prompt,而不是選中大範圍後進行區域性重繪
  2. 區域性重繪後,沒有選中的地方不會變化,選擇的地方重繪後可能和原來差別很大。如果想要保證和原來繪圖儘量一直,可以在繪圖時設定和原來相同的隨機數種子(--seed xx),並且增大iw引數 (比如--iw 2,iw的範圍為[0,2])。其中,2就是深度參考之前的圖片,基本上構圖不會發生什麼變化。

如果想要重繪部分也儘可能的與原來保持一致,可以嘗試Stable Diffusion。SD中繪圖時可以使用ControlNet,可以在該模型中使用Candy邊緣檢測,使生成的影像與原圖輪廓比較相近,具體可參考 stable diffusion 繪圖 區域性重繪

儲存高畫質大圖

  1. 儲存圖片時不要直接右鍵儲存,這樣儲存的是影像的縮圖。解析度僅為798*798。應該在點選開啟影像後,點選影像左下角的在瀏覽器開啟按鈕,開啟影像的原始高解析度圖,再右鍵儲存。
  2. 繪圖完成後生成的是4個子圖拼接,可以透過下方的U1~U4按鈕展開繪製某一個圖,預設情況下得到的解析度是1024*1024。
  3. 選到某個子圖後,可以使用Upscale提升解析度,其中Upscale(Subtle)將盡量保留原來的細節,得到2048*2048解析度。
  4. MJ目前最高只能做到2k解析度,如果需要再高的解析度,可以考慮影像超解析度。但是嘗試找了一下,目前很少有免費的大於2k的線上影像超解析度,可能還是得本地部署超解析度模型,比如Real-ESRGAN

總結起來,MJ目前最高可以生成2k解析度的影像。

以下是一些2024.05(MJ V6)時已經失效的提升解析度的方法:

  1. 之前可以執行/setting命令,在設定中將解析度調整為High quality(2x cost)模式以提升解析度。但是V6設定中已經沒有解析度的選項了
  2. 之前可以在繪圖時新增--hd引數進行高畫質繪圖,V6時已無法使用,提示--hd is not compatible with --version 6
  3. 繪圖時可以使用--q引數設定繪圖質量,但是該引數的可選範圍是0.25~1,而預設引數已經是最高值1了,無法再調整。
  4. 有教程提到可以透過--w width的方式自定義繪圖寬度,從而實現高畫質繪圖。但是V6時測試繪圖時加上--w 2048,最終繪製出來的單子圖仍然是1024*1024的,透過upscale最後也只能達到2048*2048解析度,沒有變化。

prompt設計的技巧

MJ的prompt包含3部分:影像prompt、文字prompt和引數。其中:

  1. 影像prompt以影像連結的形式給出,可以影響最終結果的樣式和內容。影像prompt始終應該在prompt的最前方
  2. 文字prompt,最常用的prompt,給出要生成的影像的文字說明
  3. 引數,用來更改影像的生成方式,可以更改縱橫比、型號、升頻器等。位於prompt的末尾。

20240324222208

對於prompt的設計,官方有一些建議:

  1. 用詞儘量具體。在許多情況下,更具體的同義詞效果更好。比如對於大小,可以使用try tiny, huge, gigantic, enormous或者immense等詞。
  2. 控制描述的長度。更少的詞意味著每個詞的影響力更大。單詞間透過逗號、括號或者連字元來組織想法。如果描述太複雜,可能產生一些克蘇魯的東西……
  3. 專注於想要的,而不是不想要的。描述時不要寫反向表達,就正向思維說想要XX呈現在圖片中。如果想要控制這個XX不在生成的圖片中,可以使用--no引數
  4. 儘可能處理好背景和細節,可以從以下幾個方面來描述:
    1. 主題:人、動物、人物、地點、物體等 (Subject: person, animal, character, location, object, etc.)
    2. 媒介:照片、繪畫、插圖、雕塑、塗鴉、掛毯等 (Medium: photo, painting, illustration, sculpture, doodle, tapestry, etc.)
    3. 環境:室內、室外、月球上、納尼亞、水下、翡翠城等 (Environment: indoors, outdoors, on the moon, in Narnia, underwater, the Emerald City, etc.)
    4. 照明:柔和、環境、陰天、霓虹燈、工作室燈等 (Lighting: soft, ambient, overcast, neon, studio lights, etc)
    5. 顏色:充滿活力、柔和、明亮、單色、彩色、黑白、柔和等 (Color: vibrant, muted, bright, monochromatic, colorful, black and white, pastel, etc.)
    6. 情緒:穩重、平靜、喧鬧、精力充沛等 (Mood: Sedate, calm, raucous, energetic, etc.)
    7. 構圖:人像、頭像、特寫、鳥瞰圖等 (Composition: Portrait, headshot, closeup, birds-eye view, etc.)
  5. 如果要控制圖片中某個物體的數量,儘量具體化。比如說"two dogs",或者"flock of birds"
  6. 不用考慮大寫英文單詞

個人感覺MJ對文字的支援不好,不要企圖讓MJ在圖片中加入文字,不然可能會很怪。

關於MJ的更多使用,可以檢視其官方文件


本文參考:

  1. Midjourney官方文件
  2. Midjourney 新手快速起步指南
  3. Midjourney嘗試科研繪圖,圖文摘要,效果驚豔!
  4. Midjourney指南 - 生成高解析度圖片(內容已更新至V5)
  5. midjourney人工智慧繪圖如何上手,新手小白完全攻略
  6. Midjourney的安裝和訂閱
  7. stable diffusion 繪圖 區域性重繪
  8. 爆肝!超詳細的胎教級Midjourney使用教程,看這一篇就夠!

相關文章