作者注:圖像接口返回 HTTP 451、錯誤碼 image_safety 時,被過濾的是生成出來的那張圖,不是 Key 沒通過。本文按 API易 文檔的說明與複測,講清它和 401、429 的區別,以及應該改什麼、不該怎麼重試。
調圖像接口時,突然收到 HTTP 451,error.code 是 image_safety。很多人的第一反應是 Key 失效、餘額不夠,或者提示詞裏有敏感詞,於是換 Key、充值、反覆重試,結果一樣失敗。本文要說的是 451 image_safety 攔的是生成出來的那張圖,審覈發生在出圖之後,所以排查方向應該放在畫面描述上,而不是賬號上。
這不是一篇泛泛的“內容安全科普”,下面的內容來自 API易 文檔對 451 的說明和其中已經公開的匿名化複測,本文不另編測試數據。
核心價值:讀完本文,你能在 1 分鐘內把 451 和 401、429 分開,並按“單變量修改提示詞”的方法讓請求重新出圖。

生圖返回 451 image_safety 核心要點
先看最重要的幾條結論。它們都來自錯誤信息本身和文檔描述,不需要猜。
| 要點 | 說明 | 對你的價值 |
|---|---|---|
| 審覈對象是輸出圖 | message 寫的是 The generated image was filtered by the safety policy | 不用再懷疑 Key 和餘額 |
| 屬於後置審覈 | 接口可能先生成圖片,再對輸出做安全審覈,不通過就不返回 | 理解爲什麼“提示詞看起來沒問題”也會被攔 |
| 不等於輸入違規 | 後置審覈失敗不代表提示詞或參考圖本身有明確違規詞 | 不必大面積刪詞或更換參考圖 |
| 改法是改畫面 | 把衣着、構圖等畫面要素寫清楚,比追加否定句更有效 | 有針對性地改,少走彎路 |
| 不要原樣重試 | 原組合連續失敗時,重試大概率還是 451 | 節省時間和調用成本 |
先對錯誤碼:451 image_safety 與 401、429 的區別
拿到報錯後的第一步是看狀態碼和 error.code,而不是先改代碼。以下是 API易 文檔對 451 的說明(apiyi.com 文檔中心的 FAQ 與動態裏都有收錄):響應爲 HTTP 451,error.code 爲 image_safety,message 爲 The generated image was filtered by the safety policy.。關鍵詞是 generated image,意思是“已經生成出來的那張圖”被安全策略過濾了。
這和鑑權、限流屬於完全不同的層面。401 一般表示請求在進入模型之前就沒通過身份校驗,429 表示請求過於頻繁或通道繁忙,餘額類錯誤則與計費有關。三者都和“畫了什麼”無關,而 451 恰恰只和“畫了什麼”有關。
| 錯誤 | 常見含義 | 發生階段 | 正確處理 | 是否適合原樣重試 |
|---|---|---|---|---|
HTTP 451 image_safety |
生成圖未通過輸出側安全審覈 | 出圖之後 | 改畫面描述,單變量排查 | 否,原組合連續失敗不要原樣重試 |
| HTTP 401 | Key 無效或未正確傳入 | 請求入口 | 檢查 Key 和請求頭 | 否,Key 不對重試沒有意義 |
| HTTP 429 | 限流或通道繁忙 | 請求入口或排隊階段 | 退避後重試,必要時換通道 | 是,按退避策略重試 |
| 餘額類錯誤 | 額度不足 | 計費校驗 | 充值或調整額度 | 否 |
特別要注意:451 和 401 不能共用一套重試邏輯。401 要去修 Key 配置,451 要去改提示詞。把兩者都放進“失敗就重試 3 次”的通用分支裏,只會讓排查更亂。
爲什麼 451 image_safety 會在出圖之後纔出現
文檔把這種機制稱爲後置審覈,也叫輸出側審覈。流程可以簡單理解爲:請求通過鑑權,模型按提示詞和參考圖生成圖片,系統再對這張圖做一次安全檢查,檢查不通過就不返回圖片,直接給出 451。
所以你可能遇到“提示詞裏一個敏感詞都沒有,也被攔了”的情況。原因不在單個詞,而在於多個條件組合後,模型實際畫出來的畫面觸發了過濾。理解這一點後,排查思路就會從“找違禁詞”變成“控制最終畫面”。

451 image_safety 文檔複測解讀
API易 文檔給出了一組匿名化複測,模型爲 gpt-image-2.5-sunburst-vip。場景是人物參考圖加定妝需求,包含面部特寫加全身正面、側面、背面視圖,白色背景。以下數據均爲文檔複測,本文只做解讀。
| 文檔複測組合 | 結果 | 耗時 | 說明 |
|---|---|---|---|
| 原提示詞 + 原參考圖 | 3/3 失敗 | 81.8–95.9 秒 | 基線組,穩定 451 |
| 同一參考圖,改爲中性日常服裝半身像 | 1/1 成功 | 35.7 秒 | 去掉全身多視圖後通過 |
| 原提示詞,去掉參考圖,改用文生圖端點 | 1/1 成功 | 29.1 秒 | 沒有參考圖人物特徵後通過 |
| 只追加“衣着完整、不透明、不做性感化” | 1/1 仍 451 | 216.8 秒 | 否定句無效 |
| 明確成年人物、高領長袖、長褲、運動鞋 | 3/3 成功 | 65.1–238.6 秒 | 正向寫清衣着後穩定通過 |
從文檔複測看 451 image_safety 的觸發方式
這組複測裏最值得關注的是第二、三組:只要拆開“參考圖人物特徵”和“全身多視圖”中的任意一方,請求就能出圖。文檔據此得出的結論是,更支持“參考圖人物特徵與全身多視圖綁定在一起時,生成畫面觸發了過濾”這一解釋。
文檔同樣明確了不能下的結論:不能據此說參考圖違規,也不能說某個單詞就是觸發詞。這一點很重要。很多開發者看到 451 就去換參考圖或者大面積刪詞,結果把真正需要的畫面信息也刪掉了。
爲什麼否定句改不好 451 image_safety
第四組只是追加了“衣着完整、不透明、不做性感化”,仍然 451。第五組改成正向的具體描述:明確成年人物、高領長袖、長褲、運動鞋,3 次全部成功。
原因並不複雜。否定句只告訴模型“不要什麼”,沒有告訴它“畫什麼”,最終畫面仍然不確定。正向描述把上衣、下裝、鞋子都定死,生成結果更可控,輸出側審覈自然更容易通過。
關於耗時,文檔特別提醒:耗時只能作爲輔助參考,不能單獨用來判斷審覈發生在哪一層。複測中成功和失敗的耗時區間互有重疊,所以不要寫“超過 X 秒就是被審覈攔了”這類判斷邏輯。

對比說明:上表與對比圖的數據均來自 API易 文檔複測,原文可在 apiyi.com 文檔中心的圖片輸出安全審覈 FAQ 中查閱,便於你與自己的報錯對照。
生圖返回 451 image_safety 快速上手排查
再對模型 ID:確認你調用的 gpt-image 型號
確認是 451 之後,第二步是覈對模型 ID。文檔複測使用的是 gpt-image-2.5-sunburst-vip,而你調用的 gpt-image 系列具體有哪些型號、各自叫什麼,請以 API易 型號列表爲準,可在 apiyi.com 控制檯的模型列表中核對。
覈對模型 ID 的目的有兩個。其一,排查過程中必須保持模型不變,否則無法判斷是哪個變量起了作用。其二,避免把“模型名寫錯”這類問題誤判成審覈問題,模型名錯誤通常會返回別的錯誤,不會是 image_safety。
451 image_safety 排查時的請求參數
本文不放大段代碼,只列出排查時需要固定的參數。接口爲 OpenAI 兼容格式,base_url 填 https://api.apiyi.com/v1,SDK 裏的 api_key 換成你自己的 Key 即可。
| 參數 | 示例值 | 排查時是否允許修改 |
|---|---|---|
base_url |
https://api.apiyi.com/v1 |
不改 |
model |
以 API易 型號列表爲準,如文檔複測用的 gpt-image-2.5-sunburst-vip |
不改 |
| 端點 | 圖像編輯(帶參考圖)或文生圖 | 不改,除非專門測試參考圖影響 |
| 參考圖 | 原參考圖 | 不改 |
| 尺寸、數量等參數 | 保持原值 | 不改 |
prompt |
原提示詞 | 每次只改一個變量 |
在代碼層面,建議單獨爲 451 加一個分支:讀取響應狀態碼和 error.code,如果是 451 且爲 image_safety,就記錄當次提示詞並停止自動重試,轉入人工或規則化改寫流程。401 走 Key 檢查分支,429 走退避重試分支,三條路徑互不混用。
451 image_safety 單變量排查步驟
文檔給出的排查方法可以整理成下面的順序:
- 固定其他條件:模型、端點、參考圖、參數全部保持不變,只動提示詞。
- 每次只改一個變量:比如只改服裝,或者只改視圖數量,不要一次改三處。
- 用正向描述替代否定句:把上衣、下裝、鞋子寫清楚,例如“高領長袖、長褲、運動鞋”,必要時明確“成年人物”。
- 迴歸 2 到 3 次:單次通過不代表穩定,文檔複測裏穩定的組合是 3/3 成功。
- 原組合連續失敗就停止重試:基線組 3/3 失敗說明原樣重試沒有意義。
- 需要定位原因時再拆組合:分別測試“去掉全身多視圖”和“去掉參考圖”,判斷是哪種組合觸發了過濾。
🚀 快速開始:如果想先在一個乾淨的環境裏復現和驗證,推薦通過 API易 apiyi.com 獲取免費測試額度,用同一個 Key 固定模型和參數做單變量對照,驗證完成後再接入生產流程。
451 image_safety 提示詞改寫示例
下面按文檔複測的思路給出改寫方向,寫法可以按自己的業務調整。
| 改寫方向 | 低效寫法 | 推薦寫法 |
|---|---|---|
| 衣着 | 不要暴露、衣着完整 | 高領長袖上衣、長褲、運動鞋 |
| 人物 | 一個模特 | 明確成年人物 |
| 視圖 | 面部特寫加全身正側背一次出 | 先出半身像,或分步驟出視圖 |
| 風格 | 不做性感化 | 中性日常服裝、自然站姿 |
改寫的核心是把模糊空間壓縮掉。描述越具體,模型可以自由發揮的部分越少,生成圖被過濾的概率越低。

常見問題 FAQ
Q1: 什麼是 451 image_safety?
它表示圖片已經生成,但輸出圖沒有通過安全審覈,所以接口不返回圖片,而是返回 HTTP 451,`error.code` 爲 `image_safety`。這屬於後置審覈,也叫輸出側審覈。
Q2: 451 image_safety 和 401 有什麼區別?要不要一起重試?
401 發生在請求入口,和 Key 是否有效有關;451 發生在出圖之後,和畫面內容有關。兩者不能共用一套重試邏輯:401 要修 Key 配置,451 要改畫面描述,原樣重試對兩者都沒用。
Q3: 451 image_safety 和 429 怎麼區分?
429 是限流或通道繁忙,退避後重試通常能恢復,必要時可以切換通道。451 是內容被過濾,原組合連續失敗時重試仍會失敗。看 `error.code` 即可分開,是 `image_safety` 就按內容問題處理。
Q4: 收到 451 image_safety,是不是說明我的參考圖違規?
不能這樣判斷。文檔複測中,同一張參考圖改爲中性日常服裝半身像後就能出圖。文檔的結論是更支持“參考圖人物特徵與全身多視圖組合後,生成畫面觸發過濾”,而不是參考圖本身違規,也不能認定某個單詞是觸發詞。
Q5: 如何確認自己調用的 gpt-image 型號並復現 451?
推薦按以下步驟操作:
1. 在 API易 apiyi.com 註冊並獲取 API Key 和免費測試額度
2. 在型號列表中核對 gpt-image 系列的準確模型 ID
3. 將 `base_url` 設爲 `https://api.apiyi.com/v1`,固定模型和參數,按本文步驟單變量排查
Q6: 能不能用耗時判斷請求是否被審覈攔截?
不建議。文檔明確說耗時只能輔助,不能單獨斷定審覈層級。複測中成功與失敗的耗時區間有重疊,用耗時閾值寫判斷邏輯容易誤判。
Q7: 改完提示詞通過了一次,就可以上線了嗎?
還不夠。文檔建議迴歸 2 到 3 次,單次通過並不穩定。複測中穩定的組合是 3/3 成功,建議以同樣標準驗收後再上線。
451 image_safety 核心要點 Key Takeaways
- 審覈對象:451
image_safety過濾的是生成出來的那張圖,不是 Key。 - 先看錯誤碼:451、401、429 分屬內容、鑑權、限流,處理方式各不相同。
- 不要混用重試:401 修 Key,429 退避重試,451 改畫面描述。
- 單變量排查:固定模型、端點、參考圖和參數,每次只改一處提示詞。
- 正向描述更有效:寫清上衣、下裝、鞋子,比追加否定句更可靠。
- 迴歸驗證:改寫後迴歸 2 到 3 次,穩定通過再上線。
- 上手方式:模型 ID 以 API易 型號列表爲準,用免費額度先做對照驗證。
總結
生圖返回 451 image_safety 的核心要點:
- 定性:這是輸出側審覈,攔的是生成圖,與 Key、餘額、限流無關。
- 分流:按狀態碼和
error.code把 451 與 401、429 分開處理,不要放進同一套重試。 - 改法:固定其他變量,用正向具體的衣着和構圖描述替代否定句,並回歸 2 到 3 次。
遇到 451 時,先別急着換 Key,先換一種更具體的畫面描述。推薦通過 API易 apiyi.com 用同一個 Key 固定模型做單變量對照,快速找到能穩定出圖的寫法。
📚 參考資料
- API易 FAQ:圖片輸出安全審覈: 451
image_safety的定義與排查方法 - 鏈接:
docs.apiyi.com/faq/image-output-safety-review.md -
說明: 包含響應形態、後置審覈說明和單變量排查建議
-
API易 動態:圖片輸出安全審覈(2026-11): 文檔複測記錄
- 鏈接:
docs.apiyi.com/live/2026-11/image-output-safety-review.md - 說明: 收錄
gpt-image-2.5-sunburst-vip上的匿名化複測與結論邊界
作者: APIYI 技術團隊
技術交流: 歡迎在 API易 apiyi.com 首頁聯繫我們,更多圖像接口錯誤碼說明可查閱 docs.apiyi.com 文檔中心
