提示词被内容安全拦截怎么办
每个图片、视频模型背后都有模型方的内容安全检查,最多查三处:你写的提示词、你传的参考图或参考视频、模型生成出来的画面。任何一处没通过,任务就以 state 为 "failed"、failCode 为 "CONTENT_MODERATION" 结束,failMsg 会写明被拦的是哪一部分。
被拦的请求不扣费。建任务时冻结的额度会全部退回,你可以改完再试,失败的那一次不花钱。
在我们的错误码里,CONTENT_MODERATION 标为「不可重试」:同样的提示词、同样的图,再发几乎都会被拒。解决办法是改内容,或者换一个规则适合你这类内容的模型。
先看报错:被拦的是哪一部分
不同模型的措辞不一样,但都能归到下面几类。在 failMsg 里找第二列的说法即可。
| 被拦的是什么 | 报错里的说法 | 怎么办 |
|---|---|---|
| 提示词 | "Your prompt was blocked by the content safety policy"、"rejected by the upstream content safety system"、"triggered the sensitive-word filter" | 改写提示词,见下一节 |
| 生成结果:提示词过了,画面没过 | "The generated image was filtered by the safety policy"、"The generated images appear to be unsafe"、"the output image may contain sensitive information" | 每次生成的画面都不一样,偶尔重试一次能过;连续两次被过滤,就改提示词里要画面呈现的内容 |
| 参考图(或提示词) | "Your prompt or reference image was blocked"、"the input image may contain sensitive information"、"change the image or prompt" | 先换一张图试 |
| 参考素材里有可识别的真人 | "a reference image or video appears to show a real, identifiable person" | 这个模型不收真人;换成插画或合成人脸,或者改用我们的 Seedance 2.0 / 2.0 Mini |
| 任何看起来像未成年人的内容 | "may involve the depiction of minors"、"Prompts involving minors" | 所有模型都不支持,不要尝试绕过 |
| 裸露或色情内容 | "may involve nudity or sexual content" | 标准模型不允许;见下面「换个模型」一节 |
正常内容被误拦时,提示词怎么改
正常的商业或创作内容被拦,大多是几个词或几处细节触发的,不是创意本身有问题。用中性、具体的词描述画面里看得见的东西,画面用不上的细节都删掉。
删掉真实人名。提示词里出现明星、政治人物等公众人物,是最常见的触发原因之一;想要什么样子就直接描述外形,不要点名。自己不拥有的品牌名也一并去掉。
服装、产品图写清用途和衣物,不要写身体:「电商目录图,成年模特穿连体泳衣,全身、正面、纯白背景」和一段描写模特身材的文字,在审核眼里完全是两回事。
打斗、恐怖、战争场面,写动作、紧张感和氛围,不写伤口、血和受伤的细节。
参考图裁到真正要用的部分(产品、衣服、房间),画面里用不上的人去掉。
什么时候换个模型
每家模型方划的线不一样,同一条提示词,这个模型拒、那个模型可能就过了。常见的是下面两种情况。
参考照片或视频里有真人。有些图片、视频模型只要参考素材里有可识别的真人就会拒,重试也没用。我们的 Seedance 2.0 和 Seedance 2.0 Mini(模型名 seedance-2.0、seedance-2.0-mini)可以接收真人参考照片和视频。
内容合法、但超出严格模型接受范围的,比如泳装、人体艺术、风格化的打斗。名字带 Spicy 的模型审核更宽松:图片有 Seedream 5.0 Pro Spicy(画质和请求格式与 Seedream 5.0 Pro 相同)、Z-Image Spicy、Qwen Image Edit Spicy,图生视频有 Wan 2.7 / Wan 2.2 Spicy。它们仍然有模型自身的安全系统,涉及未成年人的内容在任何模型上都不接受。
在程序里怎么处理
按 failCode 判断,不要按报错文字判断,因为各模型的措辞不一样。failCode 为 "CONTENT_MODERATION" 时:不要自动重试同样的输入,把 failMsg 展示给你的用户,让他改提示词或换图。只对标为可重试的错误码自动重试,比如 UPSTREAM_BUSY 和 TIMEOUT。完整的错误码列表见 API 文档。
调用示例
cURL
# A blocked task, as returned when you poll it (video tasks: /v1/video/generations)
curl "https://api.apimodels.app/v1/images/generations?task_id=TASK_ID" \
-H "Authorization: Bearer $APIMODELS_API_KEY"
# → { "code": 200, "data": { "taskId": "...", "state": "failed",
# "failCode": "CONTENT_MODERATION",
# "failMsg": "Your prompt was blocked by the content safety policy. Please adjust your prompt and try again." } }Python
import os, requests
H = {"Authorization": f"Bearer {os.environ['APIMODELS_API_KEY']}"}
d = requests.get("https://api.apimodels.app/v1/images/generations",
headers=H, params={"task_id": task_id}).json()["data"]
if d["state"] == "failed":
if d.get("failCode") == "CONTENT_MODERATION":
# Not charged. The same input will be blocked again: ask the user to edit it.
print("Blocked:", d["failMsg"])
elif d.get("failCode") in ("UPSTREAM_BUSY", "TIMEOUT"):
pass # safe to retry the same request常见问题
被内容安全拦截会扣费吗?
不扣。任务失败时,建任务时冻结的额度全部退回;不管被拦的是提示词、参考图还是生成结果,都一样。
为什么同一个提示词有时能过、有时被拦?
如果拦截发生在生成结果上,每次画出来的都不一样,所以这次能过、下次可能就不过。模型方也会不时调整审核规则。同一个提示词连续两次被过滤,就改写,不要再重试。
能关掉内容审核吗?
不能,审核是模型方服务的一部分。正常内容反复被严格的模型拒,可以试审核更宽松的模型,比如名字带 Spicy 的几款。涉及未成年人的内容在哪里都会被拒。
参考图是真人照片被拒了怎么办?
这个模型不收可识别的真人,同一张照片再发还是会失败。换成插画或合成人脸,或者把任务交给可以接收真人参考照片和视频的 Seedance 2.0、Seedance 2.0 Mini。
程序怎么区分是被审核拦了还是别的错误?
看 failCode。被审核拦下一律是 "CONTENT_MODERATION",并且标为不可重试;临时性问题用的是 UPSTREAM_BUSY、TIMEOUT 等其他错误码。
