Hướng dẫn tinh chỉnh kiểm duyệt hình ảnh GPT: Cách giảm lỗi 400 moderation_blocked

CryptoCrypto
·18 tháng 9, 2026·21 phút đọc·Cập nhật 18 tháng 9, 2026·34 lượt xem
#GPT Image#Tạo hình ảnh#Kiểm duyệt nội dung#Kỹ thuật câu lệnh#Hướng dẫn API
Hướng dẫn tinh chỉnh kiểm duyệt hình ảnh GPT: Cách giảm lỗi 400 moderation_blocked

Nếu bạn tạo hình ảnh bằng các mô hình GPT Image (gpt-image-2, gpt-image-2.5) với bất kỳ khối lượng nào, cuối cùng bạn sẽ gặp phải một lỗi gây khó chịu: HTTP 400, kèm theo thông báo rằng yêu cầu của bạn đã bị hệ thống an toàn từ chối. Không có hình ảnh, không có kết quả đầu ra một phần, và một câu lệnh trông hoàn toàn hợp lý đối với bạn.

Hướng dẫn này giải thích lỗi đó thực sự là gì, điều gì kích hoạt nó trong thực tế, và cách tinh chỉnh câu lệnh cũng như hình ảnh tham chiếu để giảm thiểu tình trạng này. Hướng dẫn dựa trên 30 ngày dữ liệu sản xuất từ API hình ảnh của TokenLab (19 tháng 8 – 18 tháng 9 năm 2026), cộng với tài liệu tạo hình ảnh chính thức của OpenAI. Các con số được trích dẫn là số liệu thống kê tổng hợp của nền tảng; không có nội dung khách hàng nào được sao chép lại.

Lỗi này thực sự là gì

Các mô hình GPT Image lọc mọi câu lệnh, mọi hình ảnh đầu vào và mọi hình ảnh được tạo ra dựa trên chính sách nội dung của nhà cung cấp. Khi bộ lọc được kích hoạt, yêu cầu sẽ thất bại với mã 400, trong đó mã lỗi xác định ổn định là:

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

Theo tài liệu chính thức, moderation_details là tùy chọn và cố tình được để ở mức khái quát: moderation_stage cho bạn biết liệu việc chặn đến từ đầu vào của bạn (input) hay từ hình ảnh được tạo ra (output), và categories chứa các nhãn công khai rộng như harassment (quấy rối), self-harm (tự hại), sexual (tình dục), hoặc violence (bạo lực). Nó không bao giờ tiết lộ điểm số phân loại nội bộ.

Trên TokenLab, sự kiện tương tự xuất hiện dưới hai hình thức:

  • Các cuộc gọi đồng bộ (/v1/images/generations, /v1/images/edits) trả về HTTP 400 ngay lập tức.
  • Các tác vụ bất đồng bộ chuyển sang trạng thái failed với thông báo "Yêu cầu đã bị hệ thống an toàn từ chối."

Dù bằng cách nào, hai sự thật vận hành sau đây rất quan trọng. Thứ nhất, việc chặn kiểm duyệt là có tính xác định đối với cùng một nội dung: việc thử lại một yêu cầu không thay đổi về cơ bản sẽ không bao giờ thành công. Thứ hai, trên TokenLab, một tác vụ bị chặn kiểm duyệt được coi là tác vụ thất bại và hạn mức đã khấu trừ trước đó sẽ được tự động hoàn lại đầy đủ — bạn không bao giờ phải trả tiền cho một lần tạo hình ảnh bị chặn.

Ba mươi ngày dữ liệu sản xuất

Từ ngày 19 tháng 8 đến ngày 18 tháng 9 năm 2026, khoảng 4,3% các tác vụ GPT Image trên TokenLab — tương đương khoảng một trong 23 tác vụ — đã bị hệ thống an toàn thượng nguồn từ chối. Sự phân bổ không ngẫu nhiên; các yêu cầu bị chặn tập trung chặt chẽ xung quanh một vài mô hình:

Tín hiệuTác vụ bị chặnTất cả tác vụ khácĐánh giá
Câu lệnh đề cập đến trẻ vị thành niên (trẻ em, bé, "7 tuổi", ...)79%33%Dự báo mạnh nhất
Từ ngữ mô tả chân thực ("photorealistic", "người thật", "live-action")77%57%Yếu tố khuếch đại, đặc biệt với trẻ vị thành niên
Mô tả liên quan đến tình dục (khỏa thân, gợi cảm, nội y, từ ngữ tập trung vào cơ thể)43%17%Dự báo mạnh
Từ ngữ hành động/bạo lực chung (trận chiến, kiếm, vụ nổ)~50%~50%Không có giá trị dự báo riêng lẻ

Ba phát hiện khác từ cùng khoảng thời gian này:

  • Hình ảnh tham chiếu làm tăng rủi ro. Các tác vụ có hình ảnh đầu vào/tham chiếu bị chặn ở mức 8,4%, so với 3,7% đối với tạo hình ảnh chỉ bằng văn bản — cao hơn gấp đôi. Hình ảnh được kiểm duyệt nghiêm ngặt như văn bản.
  • Câu lệnh dài dễ thất bại hơn. Các câu lệnh bị chặn trung bình khoảng 3.600 ký tự, và hơn một nửa vượt quá 2.000 ký tự. Mỗi mệnh đề bổ sung là thêm một bề mặt để bộ phân loại kiểm tra.
  • Thử lại không bao giờ thành công. Mọi tác vụ bị chặn trong khoảng thời gian này đều kết thúc ở trạng thái thất bại cuối cùng; không có tác vụ nào thành công khi gửi lại cùng một đầu vào. Và tất cả đều được hoàn tiền tự động.

Quy trình làm việc bị chặn nhiều nhất mà chúng tôi quan sát được: các bảng thiết kế nhân vật chân thực của trẻ vị thành niên — các câu lệnh kiểu "tham chiếu diễn viên" mô tả một nhân vật trẻ em với kết xuất siêu thực, tỷ lệ cơ thể chính xác và ghi chú về trang phục. Các câu lệnh kết hợp từ vựng liên quan đến trẻ vị thành niên với kết xuất chân thực đã bị chặn ở mức ~9,5%, gấp 2,2 lần tỷ lệ cơ sở.

Năm mô hình kích hoạt chặn

Đọc qua nhóm bị chặn, gần như mọi sự từ chối đều rơi vào một trong các nhóm sau:

  1. Mô tả chân thực về trẻ vị thành niên. Nhân vật trẻ em hoặc em bé được kết xuất như "một người thật được chụp trong studio", "siêu thực", "không phải CGI, không phải minh họa". Sự kết hợp giữa trẻ vị thành niên và tính chân thực là ranh giới được bảo vệ nghiêm ngặt nhất trong kiểm duyệt hình ảnh, và nó kích hoạt ngay cả khi ý định chỉ là một bảng nhân vật vô hại.
  2. Từ ngữ tập trung vào trang phục hoặc cơ thể xung quanh trẻ vị thành niên. Các cụm từ như "cận cảnh từ xương đòn trở lên" (ý là cắt chân dung đơn giản) hoặc các phép đo tỷ lệ cơ thể từ đầu đến chân chi tiết của một nhân vật trẻ em. Riêng lẻ thì vô hại, nhưng tổng hợp lại chúng được đọc là mô tả tập trung vào cơ thể của trẻ vị thành niên.
  3. Mô tả gợi dục về nhân vật người lớn. Từ vựng tập trung vào tư thế, da và đồ lót ("nội y", "khỏa thân", "tư thế gợi cảm") ngay cả trong các bố cục không chứa nội dung người lớn (SFW).
  4. Giải phẫu máu me kinh dị. Các câu lệnh kinh dị và giả tưởng đen tối mô tả thịt thối, nội tạng lộ ra, vết thương hở hoặc ký sinh trùng với chi tiết giải phẫu.
  5. Hình ảnh tham chiếu của người thật. Ảnh thật của trẻ vị thành niên, hình ảnh để lộ da thịt nhiều hoặc khuôn mặt giống người nổi tiếng được sử dụng làm đầu vào chỉnh sửa.

Hai yếu tố khuếch đại khiến mọi điều trên dễ xảy ra hơn: câu lệnh rất dài (nhiều văn bản hơn nghĩa là nhiều cơ hội cho sự kết hợp xấu hơn) và danh sách từ ngữ phủ định. Một dòng như "không khỏa thân, không nội dung tình dục, không máu me" không trấn an được bộ phân loại — nó lặp lại các khái niệm bạn muốn tránh và thêm chúng vào đầu vào. Hãy mô tả những gì bạn muốn, không phải những gì bạn không muốn.

Cẩm nang tinh chỉnh câu lệnh

Đây là các bước viết lại phù hợp với dữ liệu. (Các ví dụ mang tính minh họa, không lấy từ lưu lượng truy cập của khách hàng.)

1. Giữ trẻ vị thành niên tránh xa tính chân thực

Nếu câu chuyện, truyện tranh hoặc trò chơi của bạn cần nhân vật trẻ em, hãy kết xuất chúng trong một phương tiện được cách điệu rõ ràng:

Trước: "Ảnh diễn viên siêu thực của một cô bé 7 tuổi, người thật
được chụp trong studio, tỷ lệ cơ thể chi tiết, cận cảnh khuôn mặt
không mặc quần áo từ xương đòn trở lên ..."

Sau:  "Minh họa màu nước kiểu truyện tranh về một cô bé mặc váy
thời nhà Minh, chân dung từ vai trở lên, khuôn mặt tròn, tóc búi hai bên
buộc ruy băng vải, biểu cảm dịu dàng, nền trắng trơn"

Thay đổi phương tiện (màu nước, hoạt hình 2D, hoạt hình 3D, phong cách sách tranh), bỏ khung "người thật / được chụp ảnh", và bỏ qua hoàn toàn các phép đo cơ thể. Nếu bạn phải mô tả trang phục, hãy mô tả những gì nhân vật mặc ("mặc áo khoác vải cổ tròn") thay vì những gì họ không mặc.

2. Xóa danh sách từ ngữ phủ định

Thay thế "không khỏa thân, không máu, không văn bản, không hình mờ" bằng cách diễn đạt tích cực: "mặc quần áo đầy đủ", "bố cục sạch sẽ", "nền trơn". Chỉ giữ lại các từ phủ định không nêu tên danh mục bị hạn chế (ví dụ: "không hình mờ" là ổn; "không khỏa thân" không giúp ích gì).

3. Cắt ngắn câu lệnh

Nếu bạn tạo bảng nhân vật nhiều khung hình, đừng lặp lại cùng một khối phong cách trong mỗi mô tả khung hình. Một câu phong cách chung cộng với các chi tiết cụ thể cho từng khung hình sẽ giúp bạn nằm dưới ngưỡng bề mặt nơi các kết hợp kích hoạt vô tình trở nên dễ xảy ra.

4. Làm dịu sự kinh dị bằng bầu không khí, không phải giải phẫu

Trước: "cơ thể cô ấy thối rữa, lộ hộp sọ, thịt, mụn mủ và ký sinh trùng ..."

Sau:  "một nửa thanh thản và hiền hậu, nửa còn lại tan biến vào bóng tối
và sương mù thủy triều, sự phân hủy được gợi ý qua bóng và ánh sáng thay vì
chi tiết giải phẫu"

Giả tưởng đen tối vượt qua kiểm duyệt khi sự kinh dị được truyền tải bởi tâm trạng, ánh sáng và bóng thay vì mô tả cấp độ mô.

5. Trung hòa các từ ngữ liên quan đến nội dung người lớn

Đối với nhân vật người lớn, hãy đổi các từ tập trung vào cơ thể và đồ lót bằng ngôn ngữ thời trang và tâm trạng: "váy dạ hội" thay vì "nội y", "tư thế contrapposto tự tin" thay vì "tư thế gợi cảm".

Vệ sinh hình ảnh tham chiếu

Vì hình ảnh đầu vào cũng được kiểm duyệt — và trong dữ liệu của chúng tôi, chúng làm tăng tỷ lệ chặn lên hơn gấp đôi — hãy coi hình ảnh tham chiếu là một phần của câu lệnh:

  • Ưu tiên các tham chiếu cách điệu cho trẻ vị thành niên. Một hình minh họa hoặc kết xuất 3D của nhân vật trẻ em là đầu vào an toàn hơn nhiều so với ảnh chụp thật của một đứa trẻ, và thường hoạt động tốt không kém để duy trì tính nhất quán của nhân vật.
  • Cắt theo những gì quan trọng. Nếu bạn cần khuôn mặt để duy trì tính nhất quán về danh tính, hãy tải lên ảnh cắt khuôn mặt, không phải ảnh toàn thân ở bãi biển. Ít da thịt và ít bối cảnh hơn nghĩa là ít bề mặt kiểm duyệt hơn.
  • Xóa văn bản và hình mờ đè lên. Chú thích, văn bản meme và chuỗi hình mờ trên hình ảnh tham chiếu được đọc là văn bản đầu vào và có thể mang các từ kích hoạt mà bạn quên mất là có ở đó.
  • Tránh hình ảnh người nổi tiếng thật, cả dưới dạng hình ảnh tham chiếu và dưới dạng văn bản câu lệnh "theo phong cách của <diễn viên>".

Tham số kiểm duyệt

Các mô hình GPT Image chấp nhận tham số moderation với hai giá trị, theo tài liệu chính thức:

  • auto (mặc định): lọc tiêu chuẩn giới hạn một số danh mục nội dung có khả năng không phù hợp với lứa tuổi.
  • low: lọc ít hạn chế hơn.

TokenLab chuyển tham số này qua cả /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": "Minh họa màu nước kiểu truyện tranh về một cô bé mặc váy thời nhà Minh, chân dung từ vai trở lên",
    "size": "1024x1024",
    "moderation": "low"
  }'

Sử dụng low khi nội dung của bạn rõ ràng là lành tính nhưng liên tục bị gắn cờ — tác phẩm minh họa cách điệu là trường hợp điển hình. Hai lưu ý: low không phải là off (các danh mục bất hợp pháp như CSAM luôn bị chặn), và nó là một nút điều chỉnh, không phải là sự đảm bảo — hãy sửa câu lệnh trước, sau đó mới dùng đến tham số này.

Xử lý chặn trong mã

Hướng dẫn chính thức rất rõ ràng: các lỗi image_generation_user_error là lỗi người dùng có thể sửa được và không nên thử lại mà không thay đổi yêu cầu. Dữ liệu của chúng tôi đồng ý — không có tác vụ bị chặn nào trong khoảng thời gian 30 ngày được phục hồi bằng cách thử lại một yêu cầu không thay đổi. Cách xử lý đúng:

  • Phân biệt dựa trên error.code, không phải văn bản thông báo. Chỉ moderation_blocked (và image_generation_user_error nói chung) mới có nghĩa là "sửa đầu vào". Giới hạn tốc độ và 5xx vẫn có thể thử lại.
  • Đọc giai đoạn. moderation_stage: "input" nghĩa là viết lại câu lệnh hoặc đổi hình ảnh tham chiếu; "output" nghĩa là chính hình ảnh được tạo ra đã bị gắn cờ — tạo lại với một câu lệnh đã được điều chỉnh nhẹ, giảm rủi ro thường sẽ giải quyết được vấn đề.
  • Giữ thông báo cho người dùng cuối ở mức chung chung ("Yêu cầu này không thể hoàn thành do các yêu cầu về an toàn nội dung") và ghi lại moderation_details cùng ID yêu cầu để bạn tự gỡ lỗi và hỗ trợ.
  • Đừng lặp lại. Ngắt mạch sau một lần chặn kiểm duyệt cho mỗi đầu vào duy nhất; việc gửi lại nội dung giống hệt nhau gây lãng phí độ trễ và thời gian gỡ lỗi mặc dù TokenLab hoàn tiền cho nó.

Danh sách kiểm tra

Tình huống của bạnKích hoạt có khả năngCách sửa
Bảng thiết kế nhân vật trẻ emTrẻ vị thành niên × chân thựcPhương tiện cách điệu, không đo cơ thể, từ ngữ trang phục tích cực
Chân dung người lớn chân thực bị chặnMô tả gợi dụcTừ ngữ thời trang/tâm trạng; cân nhắc moderation="low"
Sinh vật giả tưởng đen tối / kinh dịGiải phẫu máu meBầu không khí và bóng thay vì chi tiết mô
Chỉnh sửa với ảnh tham chiếu bị chặnHình ảnh đầu vào người thật / lộ da thịtCắt chặt hơn, sử dụng tham chiếu cách điệu, xóa văn bản đè lên
Câu lệnh nhiều khung hình dài bị chặnBề mặt câu lệnh + danh sách phủ địnhXóa bỏ các đoạn văn bản lặp lại, xóa danh sách từ ngữ phủ định
Tác phẩm cách điệu lành tính vẫn bị gắn cờSự bảo thủ của bộ phân loạimoderation="low"

Câu hỏi thường gặp

Tôi có phải trả tiền cho một lần tạo bị chặn không? Không. Trên TokenLab, các tác vụ bị chặn kiểm duyệt sẽ thất bại và hạn mức đã khấu trừ trước đó sẽ được hoàn lại tự động và đầy đủ.

Thử lại cùng một câu lệnh có giúp ích không? Không. Trong 30 ngày dữ liệu, không một tác vụ bị chặn nào thành công khi thử lại mà không thay đổi. Hãy thay đổi đầu vào trước.

moderation="low" có vô hiệu hóa lọc an toàn không? Không. Nó làm giảm tính hạn chế; các danh mục nội dung bất hợp pháp vẫn bị chặn bất kể thế nào.

Hình ảnh tham chiếu có thực sự được kiểm duyệt không? Có — cả câu lệnh và mọi hình ảnh đầu vào đều được lọc, và các tác vụ có hình ảnh tham chiếu bị chặn với tỷ lệ cao hơn gấp đôi so với tỷ lệ chỉ dùng văn bản trong dữ liệu của chúng tôi.

Tôi có thể thấy chính xác quy tắc nào đã kích hoạt không? Chỉ ở cấp độ khái quát moderation_details.categories, và chỉ khi thượng nguồn bao gồm nó. Các nhà cung cấp cố tình không tiết lộ nội bộ bộ phân loại.

Hạn chế

Các số liệu thống kê trên là tổng hợp 30 ngày từ lưu lượng truy cập sản xuất của TokenLab và mô tả các xu hướng, không phải sự đảm bảo; các bộ phân loại kiểm duyệt thay đổi theo thời gian, và cùng một câu lệnh có thể được xử lý khác nhau sau một bản cập nhật thượng nguồn. Các ví dụ viết lại là các mẫu minh họa, không phải dữ liệu khách hàng. Luôn xác thực với hành vi hiện tại bằng một bài kiểm tra nhỏ trước khi chạy hàng loạt.

Để thử các mô hình này, hãy duyệt qua danh mục mô hình hình ảnh, xem lại hướng dẫn tạo hình ảnh bất đồng bộ để xử lý vòng đời tác vụ, và kiểm tra docs.tokenlab.sh để biết định dạng yêu cầu hiện tại.

Chia sẻ:

Mô hình công khai gần đây

Xây dựng với các mô hình trong hướng dẫn này

So sánh giá, thử route và biến nghiên cứu thành một lệnh gọi API chạy được.