繁中 ▾
取得 API 金鑰

ChatGPT SDXL 提示詞產生器 vs 你自己的 API 腳本

更新

chatgpt sdxl 提示詞產生器工作流程意味著開啟聊天視窗、輸入想法、將答案複製到您的圖像工具中,然後重複。這對於十個提示詞來說沒問題,但對於一千個提示詞來說就很痛苦。本文將該常規流程與呼叫 API 的短腳本進行比較,並對兩者進行量化。

等距分割場景:緩慢的手動紙本流程 vs 自動化發光磚的輸送帶
小型舞台的立體模型,發光的對話氣泡代表文字角色扮演情境

重點摘要

  • 手動聊天最適合探索風格;一旦您需要大量或可重複性,腳本就是最佳選擇。
  • 每個手動提示詞 30 秒,1,000 個提示詞約需 8.3 小時;腳本則可在數分鐘內完成。
  • 在此 API 上,1,000 個約 300 token 輸入和 200 token 輸出的提示詞成本約為 $0.145。
  • 腳本還能提供固定格式、已儲存的輸入和重試功能,這是聊天視窗所沒有的。

兩種從語言模型獲取 SDXL 提示詞的方式

第一種方式是聊天助手。您只需貼上一次系統類型的指令,然後一次發送一個短想法,並將每個回覆複製到您的圖像工具中。它不需要程式碼,您可以立即看到答案,並且可以說「更暗、更具電影感」來獲得修改。對於探索來說,這很難被超越。

第二種方式是腳本。你在程式碼中寫一次指令,從檔案載入想法清單,為每個想法呼叫聊天完成端點,並將結果寫入檔案或直接傳送到你的影像產生器。此服務是一個 OpenAI 相容的純文字 API,提供來自獨立供應商的單一開放權重模型。它不是 ChatGPT,也不是 OpenAI 的產品,但只要你更改 Base URL 和金鑰,任何 OpenAI SDK 都可以與它通訊。

兩種方法都不繪製圖片。兩者都是模型產生文字,由 SDXL 等獨立工具進行渲染。

並排比較

因素聊天視窗API 腳本
設定無金鑰,30 行 Python
最佳批次大小1 到 20 個提示詞數百到數千個
輸出格式聊天返回的任何內容;你需要手動清理JSON 模式返回可解析的欄位
可重複性隨著對話增長而偏離每次呼叫使用相同的指令,可選種子
迭代自然:回覆反饋編輯腳本並重新執行
計費模式取決於你持有的方案;請查看其當前條款按 token 付費,預付額度
拒絕回應取決於助手的內容政策此模型在合法成人用途下,回答時不會拒絕內容

誠實的總結:如果你每週製作少量影像並享受與它們對話,請繼續使用聊天。當複製貼上成為你工作流程中最耗時的步驟時,腳本開始變得划算。

複製貼上的時間成本

採取一個適度的假設:每個提示詞輸入想法、等待、複製結果並貼上到正確位置需 30 秒。對於 1,000 個提示詞,那就是 1,000 × 30 秒 = 30,000 秒,或約 8.3 小時的注意力。

腳本的運作方式不同。假設每次 API 呼叫約需 5 秒(這是一個假設,請測量你自己的)。若有 8 個請求同時進行(這是完整金鑰的並行限制),1,000 次呼叫約需 1,000 / 8 × 5 秒 = 625 秒,略多於 10 分鐘。每分鐘 300 個請求的限制意味著絕對下限略多於 3 分鐘。你啟動它,去泡杯咖啡,然後再閱讀檔案。

節省的時間是主要論點。金錢是次要的,如下節所示。

每 1,000 個提示詞的成本

此 API 的費率為輸入 token 每 1M 收取 $0.15,輸出 token 每 1M 收取 $0.50。假設每次呼叫傳送 250-token 的指令和 50-token 的想法(共 300 輸入),並返回 200-token 的提示詞。

  • 輸入:1,000 × 300 = 300,000 token × $0.15 / 1M = $0.045。
  • 輸出:1,000 × 200 = 200,000 token × $0.50 / 1M = $0.10。
  • 總計:$0.145 用於 1,000 個提示詞。

為了與聊天訂閱或其他 API 進行比較,請將該方案的價格除以你每月實際產生的提示詞數量,並查看他們當前的定價,而不是相信文章中的數字。註冊後,在 API 金鑰頁面 上一鍵即可領取 $0.50 試用額度,可涵蓋略多於 3,400 個此類大小的提示詞。請見 定價頁面 進行儲值,金額從 $20 到 $500 不等,支援加密貨幣。

帶有重試功能的批次腳本

下方的腳本從 ideas.txt 讀取想法(每行一個),並寫入 prompts.jsonl。它以 6 個工作程序並行運行,並在遇到 429 時重試。

import json, time
from concurrent.futures import ThreadPoolExecutor
from openai import OpenAI, RateLimitError

client = OpenAI(base_url="https://api.sdxlapi.com/v1", api_key="YOUR_KEY", max_retries=0)

SYSTEM = (
    "Expand the idea into one SDXL prompt of 40 to 60 words: subject, setting, "
    "lighting, style, mood, comma-separated. Return JSON with key 'prompt'."
)

def make(idea):
    for attempt in range(5):
        try:
            r = client.chat.completions.create(
                model="uncensored",
                messages=[{"role": "system", "content": SYSTEM},
                          {"role": "user", "content": idea}],
                response_format={"type": "json_object"},
                temperature=0.8,
            )
            return {"idea": idea, **json.loads(r.choices[0].message.content)}
        except RateLimitError:
            time.sleep(5 * (attempt + 1))
    return {"idea": idea, "prompt": None}

ideas = [l.strip() for l in open("ideas.txt") if l.strip()]
with ThreadPoolExecutor(max_workers=6) as pool, open("prompts.jsonl", "w") as out:
    for row in pool.map(make, ideas):
        out.write(json.dumps(row, ensure_ascii=False) + "\n")

完整金鑰請將工作程序數量保持在 8 或以下,試用金鑰則為 2。如果看到錯誤代碼為 concurrency 的 429,請降低它;rate_limited 表示你超過了每分鐘上限。失敗的請求不會計費,因此重試是免費的。更多參數資訊請見 文件。

從腳本獲得更好的輸出

批次的第一次運行很少是最好的。三個便宜的更改比切換工具更能改善結果。

  • 在系統提示詞中加入兩三個範例。 貼上讓你喜歡影像的提示詞,每個都附上產生它的短想法。模型會複製結構和詳細程度。
  • 傳遞風格欄位。 保留一個小字典,例如「電影劇照」、「水彩」、「等距渲染」,並將選定的風格附加到每個想法。一個想法清單然後可以產生多種外觀。
  • 過濾輸出。 拒絕提示詞少於 25 個字或多於 80 個字的資料列,然後只重新執行這些。程式碼中的簡短檢查比閱讀一千行更有效。

將想法與每個結果一起儲存。當一張影像效果很好時,你想看到產生它的具體內容,而聊天歷史會滾動消失。主題由你決定:該模型針對合法成人用途進行了調整,唯一的硬性限制是絕對不會產生任何涉及未成年人的性內容。

何時應繼續使用聊天

腳本並非總是更好的選擇。當你不確定想要什麼、每張圖片都需要討論構圖,或你的量足夠小以至於設定時間會超過節省的時間時,請使用聊天助手。常見的做法是先使用聊天來找到一個好的提示詞,然後將該提示詞貼上到腳本中作為系統提示詞,並在那裡執行大量工作。

也請考慮資料(隱私與使用方式)。傳送至此 API 的提示詞不會用於訓練。對於任何其他服務,在傳送未發布的創意作品之前,請閱讀他們的資料政策。

問答

此 API 與 ChatGPT 相同嗎?

不是。這是一個 OpenAI 相容的端點,提供來自獨立供應商的單一開放權重模型。它不是 OpenAI 的產品。

API 能產生 SDXL 圖片嗎?

不能。它只寫入文字。你的提示詞會傳送至 SDXL、ComfyUI、Automatic1111 或其他圖片工具。

產生 1,000 個提示詞的成本是多少?

對於輸入約 300 token、輸出 200 token 的提示詞,費用約為 $0.145,輸入 token 費率為每 1M token $0.15,輸出 token 費率為每 1M token $0.50。

批次處理的速度有多快?

完整金鑰允許 8 個並行請求和每分鐘 300 個請求,因此 1,000 個短提示詞可以在幾分鐘內完成。試用金鑰允許 2 個並行請求和每分鐘 60 個請求。

只差一張表單,即可取得金鑰

建立帳號、複製金鑰、更改基礎 URL。這就是整個設定過程。

取得 API 金鑰