突破限制!用偽代碼讓 ChatGPT 的 GPT-4o 一次生成多張圖片

林鼎淵
Dean Lin
Published in
7 min readJun 17, 2024

--

我現在幾乎每張部落格封面都是靠 ChatGPT 的 DALL·E 來生成,儘管很方便,但一直有個痛點。

那就是我需要根據主題想合適的 Prompt,但有時候怎麼下都不對。

靈感枯竭時,我會請 ChatGPT 幫忙想 Prompt,但會多好幾個操作步驟,非常浪費時間(真是不知足)。

因此在前陣子看到尹相志老師的「GPT-4o偽代碼繪本生成術」影片後,真的是如獲至寶!生產力大增!

這篇文章在原有的 Prompt 上做了一些調整,透過偽代碼將任務流程化後,大家只要輸入圖片主題,就能一次性生成多張不同風格的圖片(文末有完整的 Prompt)!

文章大綱

一、什麼是偽代碼(Pseudocode)?
二、偽代碼結構說明
三、在 GPT-4o 用偽代碼ㄧ次生成多張圖片
四、你可能會遇到的問題

一、什麼是偽代碼(Pseudocode)?

首先,偽代碼不是真正的程式語言。

他是結合了自然語言與程式語言的描述方式,讓我們更直觀的理解演算法,通俗點講就是「用白話文寫程式」。

有時 ChatGPT 對自然語言的理解能力不足,但透過偽代碼來表達,它就更能理解使用者要做的任務。

這篇文章會用到一點程式概念,有下面的基礎觀念會更好

  • 變數(Variable): 你可以把它想像成是一個儲存資訊的小盒子,可以在需要的時候取出或更改它。比如我們可以用 image_prompts 來儲存生成圖片的指令。
  • 函式(Function): 它就像是會執行特定任務的機器人,你只要把素材給他就會得到對應的結果。像設計一個 image_generation 的函式,我們只要放入 image_prompt 與 style(特定風格)就能生成圖片。
  • 迴圈(Loop): 他可以讓程式重複執行特定任務。像這次我們就透過 for 迴圈來產生多張圖片。

二、偽代碼結構說明

尹相志老師的 Prompt 已經很完善了,下面是根據個人的實際需求去做的調整。

PART 1: 讓 ChatGPT 知道如何閱讀你的 Prompt

開頭 3 行很重要,如果沒有特別註明的話失敗率極高。

## 以下是**偽代碼 Prompt**,請依照其語意一步一步地來執行,不該有遺漏
## 停用代碼解釋器,但開啟上網瀏覽搜尋以及 Dalle 功能
## 使用繁體中文回覆

PART 2: 設定好變數讓 ChatGPT 知道要生成的主題、風格、描述

topic 可以換成自己想要的主題,style 與 image_prompts 用角色扮演能得到更好的結果。

topic= (打破框架)
style= (請扮演一個[擅長製作部落格封面的自媒體經營者],你知道怎麼樣的部落格設計可以吸引讀者的眼球。請參考 topic 來生成合適的風格)
image_prompts= (請扮演一個[擅長製作部落格封面的自媒體經營者],你了解怎麼樣的封面描述會讓讀者瘋狂。請根據 topic 產生 10 個不同的描述)

PART 3: 設計函式,讓 ChatGPT 知道要怎麼做事

可以透過 size 來指定圖片的大小,但目前只有 1024x1024、1024x1792、1792x1024 可以選擇。

def image_generation(image_prompt, style):
final_prompt=請根據[image_prompt]以及[style]補充色調、背景描述、具體風格、畫面細節,請至少放 3 個效果詞(光照效果、色彩色調、渲染效果、視覺風格)和 1 個以上的構圖技巧,以構成完整的 Prompt,不要有文字出現在圖中,使用英文撰寫
請根據以下引數內容{size="1792x1024", prompt=final_prompt}來調用內部工具 Dalle 以生成並展示圖片

PART 4: 透過迴圈執行函式來生成圖片

for image_prompt in image_prompts:
image_generation(image_prompt,style)

三、在 GPT-4o 用偽代碼ㄧ次生成多張圖片

上面的 Prompt 整合如下:

## 以下是**偽代碼 Prompt**,請依照其語意一步一步地來執行,不該有遺漏
## 停用代碼解釋器,但開啟上網瀏覽搜尋以及Dalle功能
## 使用繁體中文回覆

topic= (打破框架)
style= (請扮演一個[擅長製作部落格封面的自媒體經營者],你知道怎麼樣的部落格設計可以吸引讀者的眼球。請參考 topic 來生成合適的風格)
image_prompts= (請扮演一個[擅長製作部落格封面的自媒體經營者],你了解怎麼樣的封面描述會讓讀者瘋狂。請根據 topic 產生 10 個不同的描述)

def image_generation(image_prompt, style):
final_prompt=使用英文撰寫 prompt,並根據[image_prompt]以及[style]補充色調、背景描述、具體風格、畫面細節,請至少放 3 個效果詞(光照效果、色彩色調、渲染效果、視覺風格)和 1 個以上的構圖技巧,以構成完整的 final_prompt,並且不要有文字出現在圖中。
請根據以下引數內容{size="1792x1024", prompt=final_prompt}來調用內部工具 Dalle 以生成並展示圖片

for image_prompt in image_prompts:
image_generation(image_prompt,style)

打開 ChatGPT,選擇「ChatGPT 4o」就可以開始看他表演了。

從下圖可以看到他一次生成多張圖片。

或者透過影片可以更直觀的感受(有開倍速):

四、你可能會遇到的問題

  • 雖然靠偽代碼可以一次性大量生成圖片,但 ChatGPT 的額度還是有限制的,到達額度限制後就需要等一段時間才能繼續使用(如下圖)。
  • 儘管透過偽代碼,ChatGPT 還是有一定的機率不理你,可能一次僅產生一張圖;此時可透過「請跑完全部 prompt」嘗試讓他執行完畢。
  • ChatGPT 可能生成到一半卡住,你可以透過「繼續」等關鍵字讓他跑完。

以上就是今天分享的內容,希望這篇文章可以提升大家的生產力~

如果這篇文章對你有幫助,可以對文章拍手讓我知道 👏🏻,也歡迎點擊「Follow」來追蹤我~

76 stories
▶︎ 如果這篇文章有幫助到你

1. 可以點擊下方「Follow」來追蹤我~
2. 可以對文章拍手讓我知道 👏🏻
你們的追蹤與鼓勵是我繼續寫作的動力 🙏🏼

▶︎ 如果你對工程師的職涯感到迷茫

1. 也許我在iT邦幫忙發表的系列文可以給你不一樣的觀點 💡
2. 也歡迎您到書局選購支持,透過豐富的案例來重新檢視自己的職涯

--

--

林鼎淵
Dean Lin

職涯中培育過多名工程師,🧰 目前在外商公司擔任 Software Specialist |✍️ 我專注寫 (1)最新技術 (2)團隊合作 (3)工程師職涯的文章,出版過 5 本專業書籍|👏🏻 如果對這些主題感興趣,歡迎點擊「Follow」來關注我~