GPT Image 審核調整指南:如何減少 moderation_blocked 400 錯誤

CryptoCrypto
·2026年9月18日·約 8 分鐘閱讀·更新 2026年9月18日·38 次瀏覽
#GPT Image#圖像生成#內容審核#提示詞工程#API 指南
GPT Image 審核調整指南:如何減少 moderation_blocked 400 錯誤

如果您以任何規模使用 GPT Image 模型(gpt-image-2, gpt-image-2.5)生成圖像,最終都會遇到一個令人沮喪的錯誤:HTTP 400,並顯示您的請求被安全系統拒絕的訊息。沒有圖像,沒有部分輸出,而且提示詞看起來對您來說完全合理。

本指南解釋了該錯誤的實際含義、在實踐中觸發它的原因,以及如何調整提示詞和參考圖像以減少其發生頻率。本指南基於 TokenLab 圖像 API 30 天的生產數據(2026 年 8 月 19 日至 9 月 18 日),以及 OpenAI 的官方圖像生成文檔。我們引用的數字均為平台匯總統計數據;未複製任何客戶內容。

該錯誤的實際含義

GPT Image 模型會根據供應商的內容政策過濾每個提示詞、每個輸入圖像和每個生成的圖像。當過濾器觸發時,請求會失敗並返回 400,其穩定的識別碼為錯誤代碼:

{
  "error": {
    "type": "image_generation_user_error",
    "code": "moderation_blocked",
    "moderation_details": {
      "moderation_stage": "input",
      "categories": ["sexual"]
    }
  }
}

根據官方文檔,moderation_details 是可選的且刻意粗略:moderation_stage 會告訴您封鎖是來自您的輸入(input)還是生成的圖像(output),而 categories 則包含廣泛的公共標籤,例如 harassment(騷擾)、self-harm(自殘)、sexual(性)或 violence(暴力)。它從不公開內部的分類器評分。

在 TokenLab 上,同一事件以兩種形式出現:

  • 同步調用/v1/images/generations, /v1/images/edits)立即返回 HTTP 400。
  • 異步任務轉變為 failed 狀態,並顯示訊息「The request was rejected by the safety system.」(請求被安全系統拒絕)。

無論哪種方式,兩個運營事實都很重要。首先,審核封鎖對於相同的內容是確定性的:重試未更改的請求基本上永遠不會成功。其次,在 TokenLab 上,被審核封鎖的任務被視為失敗任務,預先扣除的配額會自動全額退還 — 您永遠不需要為被封鎖的生成付費。

三十天的生產數據

在 2026 年 8 月 19 日至 9 月 18 日期間,TokenLab 上約 4.3% 的 GPT Image 任務(大約每 23 個任務中就有一個)被上游安全系統拒絕。這種分佈並非隨機;被封鎖的請求緊密地聚集在幾個模式周圍:

信號被封鎖任務所有其他任務解讀
提示詞提及未成年人 (child, kid, baby, "7-year-old", ...)79%33%最強的單一預測指標
照片級渲染措辭 ("photorealistic", "real human", "live-action")77%57%放大器,特別是針對未成年人
性相關描述詞 (nude, sexy, lingerie, body-focused wording)43%17%強預測指標
通用動作/暴力詞彙 (battle, sword, explosion)~50%~50%本身無預測價值

來自同一窗口期的另外三個發現:

  • 參考圖像會增加風險。 帶有輸入/參考圖像的任務被封鎖率為 8.4%,而純文字生成僅為 3.7% — 超過兩倍。圖像與文字受到同樣嚴格的審核。
  • 長提示詞更容易失敗。 被封鎖的提示詞平均約為 3,600 個字符,超過一半超過了 2,000 個字符。每一個額外的子句都會增加分類器的檢查範圍。
  • 重試從未恢復。 窗口期內每個被封鎖的任務最終都處於終止失敗狀態;沒有一個通過重新提交相同的輸入而成功。而且每一個任務都自動獲得了退款。

我們觀察到最常被封鎖的工作流程是:未成年人的照片級角色設計表 — 即「選角參考」風格的提示詞,描述一個具有超真實渲染、精確身體比例和服裝說明的兒童角色。將未成年人相關詞彙與照片級渲染相結合的提示詞被封鎖率為 ~9.5%,是基準率的 2.2 倍。

觸發封鎖的五種模式

縱觀被封鎖的群體,幾乎所有的拒絕都屬於以下類別之一:

  1. 未成年人的照片級描繪。 被渲染為「在攝影棚拍攝的真實人類」、「超照片級真實」、「非 CGI,非插圖」的兒童或嬰兒角色。未成年人與照片級真實感的結合是圖像審核中防守最嚴密的界限,即使意圖是無辜的角色設計表,它也會觸發封鎖。
  2. 圍繞未成年人的服裝或身體焦點措辭。 諸如「未穿衣的鎖骨以上特寫」(本意是簡單的肖像裁剪)或兒童角色的詳細全身比例測量等短語。單獨看是無辜的,但綜合起來會被解讀為對未成年人的身體焦點描述。
  3. 成人角色的性化描述詞。 即使在其他方面是 SFW(適合工作場所)的構圖中,使用姿勢、皮膚和內衣相關的詞彙(「內衣」、「裸體」、「誘人姿勢」)。
  4. 血腥解剖圖。 描述腐爛的肉體、暴露的器官、開放性傷口或寄生蟲等解剖細節的恐怖和黑暗奇幻提示詞。
  5. 真實人物的參考圖像。 未成年人的真實照片、皮膚暴露度高的圖像,或用作編輯輸入的名人面孔。

兩個放大器使上述所有情況更容易觸發封鎖:非常長的提示詞(文字越多,出現不良組合的機會就越多)和負面詞彙列表。像「無裸體、無性內容、無血腥」這樣的語句並不能讓分類器放心 — 它重複了您想要避免的概念,並將它們添加到輸入中。描述您想要的,而不是您不想要的。

提示詞調整指南

這些是與數據相對應的重寫策略。(範例僅供說明,非來自客戶流量。)

1. 讓未成年人遠離照片級真實感

如果您的故事、漫畫或遊戲需要兒童角色,請以清晰的風格化媒介渲染它們:

修改前:"Ultra-photorealistic casting photo of a 7-year-old girl, real human
child photographed in a studio, detailed body proportions, collarbone-up
unclothed facial close-up ..."

修改後:"Storybook watercolor illustration of a young girl in Ming-dynasty
dress, shoulder-up portrait, round face, twin hair buns tied with cloth
ribbons, gentle expression, plain white background"

更改媒介(水彩、2D 動畫、3D 卡通、繪本風格),放棄「真實人類/攝影」的框架,並完全跳過身體測量。如果您必須描述服裝,請描述角色穿著什麼(「穿著圓領布夾克」),而不是他們沒穿什麼。

2. 刪除負面詞彙列表

用正面措辭替換「無裸體、無血腥、無文字、無浮水印」:例如「完全穿著」、「乾淨的構圖」、「純色背景」。只保留不涉及受限類別的負面詞(例如「無浮水印」是可以的;「無裸體」則沒有幫助)。

3. 精簡提示詞

如果您生成多面板角色表,請勿在每個面板描述中重複相同的風格塊。一個共享的風格句子加上每個面板的具體細節,可以讓您保持在觸發閾值以下,避免意外的觸發組合。

4. 用氛圍而非解剖細節來化解血腥感

修改前:"her body rotting, exposed skull, flesh, pustules and parasites ..."

修改後:"one half serene and maternal, the other half dissolving into shadow
and tidal mist, decay suggested through silhouette and lighting rather than
anatomical detail"

當恐怖感通過氛圍、光影和輪廓而非組織級別的描述來傳達時,黑暗奇幻內容可以通過審核。

5. 中和成人內容的關聯性

對於成人角色,將身體和內衣相關的詞彙替換為時尚和氛圍語言:用「晚禮服」代替「內衣」,用「自信的對位姿勢」代替「誘人姿勢」。

參考圖像衛生

由於圖像輸入也會被審核 — 且在我們的數據中,它們使封鎖率增加了一倍以上 — 請將參考圖像視為提示詞的一部分:

  • 優先為未成年人選擇風格化參考。 兒童角色的插圖或 3D 渲染比兒童的真實照片安全得多,且通常在角色一致性方面效果同樣好。
  • 裁剪到重點。 如果您需要面部以保持一致性,請上傳面部裁剪圖,而不是全身海灘照。更少的皮膚和更少的背景意味著更小的分類器檢查範圍。
  • 移除覆蓋的文字和浮水印。 參考圖像上的標題、迷因文字和浮水印字串會被讀取為輸入文字,並可能攜帶您忽略的觸發詞。
  • 避免使用真實名人的肖像,無論是作為參考圖像還是作為「in the style of <actor>」的提示詞文字。

審核參數

根據官方文檔,GPT Image 模型接受一個 moderation 參數,包含兩個值:

  • auto(預設):標準過濾,限制某些類別的潛在年齡不適宜內容。
  • low:較寬鬆的過濾。

TokenLab 在 /v1/images/generations/v1/images/edits 上都會傳遞此參數:

curl https://api.tokenlab.sh/v1/images/generations \
  -H "Authorization: Bearer $TOKENLAB_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "gpt-image-2",
    "prompt": "Storybook watercolor illustration of a young girl in Ming-dynasty dress, shoulder-up portrait",
    "size": "1024x1024",
    "moderation": "low"
  }'

當您的內容明顯無害但仍不斷被標記時,請使用 low — 風格化插圖作品是經典案例。兩點提醒:low 並非 off(非法類別如 CSAM 始終會被封鎖),且它是一個調節器,而非保證 — 請先修復提示詞,再使用該參數。

代碼中的封鎖處理

官方指導很明確:image_generation_user_error 失敗是使用者可修正的,在未更改請求的情況下不應重試。我們的數據也證實了這一點 — 在 30 天的窗口期內,沒有一個被封鎖的任務通過重試未更改的請求而恢復。正確的處理方式:

  • 根據 error.code 進行區分,而不是訊息文字。只有 moderation_blocked(以及一般的 image_generation_user_error)意味著「修復輸入」。速率限制和 5xx 錯誤仍然可以重試。
  • 讀取階段。 moderation_stage: "input" 意味著重寫提示詞或更換參考圖像;"output" 意味著生成的圖像本身被標記 — 使用稍微調整、降低風險的提示詞重新生成通常可以解決問題。
  • 保持給終端使用者的訊息通用(「此請求因內容安全要求而無法完成」),並記錄 moderation_details 和請求 ID 以供您自己的調試和支援使用。
  • 不要循環。 每個唯一輸入在一次審核封鎖後應中斷循環;重新提交相同的內容會浪費延遲和調試時間,即使 TokenLab 會退款。

檢查清單

您的情況可能的觸發因素修復方法
兒童角色設計表未成年人 × 照片級真實感風格化媒介,無身體測量,正面服裝措辭
照片級成人肖像被封鎖性化描述詞時尚/氛圍措辭;考慮使用 moderation="low"
黑暗奇幻/恐怖生物血腥解剖氛圍和輪廓而非組織細節
帶參考照片的編輯被封鎖真實人物/皮膚暴露多的輸入圖像更緊密的裁剪,使用風格化參考,去除覆蓋文字
長多面板提示詞被封鎖提示詞檢查範圍 + 負面詞列表刪除重複的樣板,刪除負面詞列表
良性風格化作品仍被標記分類器保守性使用 moderation="low"

常見問題解答

我需要為被封鎖的生成付費嗎? 不需要。在 TokenLab 上,被審核封鎖的任務會失敗,預先扣除的配額會自動全額退還。

重試相同的提示詞有幫助嗎? 沒有。在 30 天的數據中,沒有一個被封鎖的任務在未更改的情況下重試成功。請先更改輸入。

moderation="low" 會禁用安全過濾嗎? 不會。它只是降低了限制性;非法內容類別無論如何都會被封鎖。

參考圖像真的會被審核嗎? 是的 — 提示詞和每個輸入圖像都會被過濾,在我們的數據中,帶有參考圖像的任務被封鎖率是純文字任務的兩倍以上。

我能看到具體觸發了哪條規則嗎? 只能在粗略的 moderation_details.categories 層級看到,且僅在上游包含該資訊時。供應商刻意不公開分類器的內部細節。

限制

上述統計數據是來自 TokenLab 生產流量的 30 天匯總數據,描述的是趨勢而非保證;審核分類器會隨時間變化,同一個提示詞在上游更新後可能會被不同地對待。重寫範例僅為說明性模板,非客戶數據。在進行批量運行之前,請務必先通過小規模測試驗證當前行為。

要嘗試這些模型,請瀏覽 圖像模型目錄,查看 異步圖像生成指南 以了解任務生命週期處理,並查看 docs.tokenlab.sh 以獲取當前的請求格式。

分享:

公開模型最近更新

用本文涉及的模型開始構建

比較價格、測試路由,把文章研究直接變成可執行的 API 呼叫。