{
  "loai_tai_lieu": "hop_dong_chien_dich_thi_giac_nghiem_ngat",
  "phien_ban": "rev0",
  "ngon_ngu": "vi-VN",
  "project_id": "gacmai_20260718_091744",
  "tieu_de": "Bàn Số Bốn",
  "muc_dich": "Ràng buộc việc tạo ba nguồn tranh áp phích độc lập nhưng đồng nhất thành một chiến dịch điện ảnh minh họa bán hiện thực cao cấp; tài liệu này không tạo ảnh.",
  "rang_buoc_nguon": {
    "truyen_chinh_tac": {
      "duong_dan": "/home/hermes/gacmai_20260718_091744_story_candidate_rev6.json",
      "sha256": "fd016b65cfd699e9d4e97c5e491894135117a12d56c2b467204ab68efd68be98",
      "trang_thai_kiem_tra": "khop"
    },
    "y_tuong_chinh_tac": {
      "duong_dan": "/home/hermes/gacmai_20260718_091744_concept_selected.json",
      "sha256": "f1585ec7358be91fbf09cfc312cbd3f8ac11532a368a83f9c66ad29fa8ff5f8f",
      "trang_thai_kiem_tra": "khop"
    },
    "quy_tac_bat_bien": [
      "Mọi diễn giải hình ảnh phải tôn trọng giới hạn tuyên bố: chỉ thể hiện cơ chế tiếp cận, thời gian chờ và quy trình công khai; không ám chỉ gian lận, tham nhũng, thiên vị có chủ ý hoặc động cơ xấu.",
      "Nguyễn Hoài Lan là điểm nhìn cảm xúc duy nhất của chiến dịch.",
      "Không đưa dữ kiện, chức danh, quan hệ hay hành vi trái với hai nguồn chính tắc."
    ]
  },
  "dinh_huong_chien_dich": {
    "dinh_danh_phong_cach": "premium cinematic semi-realistic illustrated poster campaign",
    "mo_ta_bat_buoc": "Tranh áp phích điện ảnh minh họa bán hiện thực cao cấp, nét cọ tinh vi, chất liệu đời thực có độ sờ thấy, khuôn mặt tự nhiên và ánh sáng có chủ đích; tuyệt đối không phải ảnh chụp, 3D nhựa hoặc minh họa phẳng.",
    "nhan_de_cam_xuc": "Thời gian chờ trở nên hữu hình; công bằng xuất hiện như một quy trình công khai chứ không như chiến thắng cá nhân.",
    "cap_do_kich_tinh": "Căng thẳng kiềm chế, quan sát được, không đối đầu kiểu phản diện và không kịch hóa thành tố cáo.",
    "bang_mau_lien_tuc": {
      "xanh_mat_ban": "#174E58",
      "xanh_bong_sau": "#0E2930",
      "vang_den_cu": "#D5A34F",
      "kem_giay_ve": "#D8C7A5",
      "tim_muc_dau": "#59405D",
      "do_gach_nhan": "#9B493B",
      "trang_bong": "#E8E4D8",
      "den_than": "#171A19",
      "quy_tac_ty_le": "Xanh mặt bàn và xanh bóng sâu chiếm ưu thế; vàng đèn cũ tạo vùng người; kem giấy vé và tím mực chỉ là điểm chứng cứ; đỏ gạch dùng rất tiết chế, không biến thành mã báo động."
    },
    "vat_lieu_lien_tuc": [
      "Mặt bàn bóng bàn xanh sẫm hơi xước, cạnh bàn kim loại sơn cũ và lưới vải thật, không bóng nhựa.",
      "Nền gạch terrazzo xám ấm đã mòn, tường vôi xanh xám, quầy gỗ phủ laminate cũ và bảng nam châm tôn men.",
      "Vé giấy kem mỏng có mép cong và dấu mực nhưng mọi ký tự phải vô nghĩa hoặc không đọc được trong ảnh nguồn.",
      "Túi vợt vải bố nâu ô-liu bạc màu; vợt gỗ cũ với cán gỗ nhẵn và mặt cao su đỏ sẫm/đen mờ.",
      "Đồng hồ treo tường kính xước, khung kim loại ngà; không nhãn hiệu."
    ],
    "xu_ly_hinh_anh": {
      "net_ve": "Bán hiện thực với nét cọ kiểm soát, chi tiết cao ở mắt, tay, vé và vợt; nền giảm nét theo chiều sâu điện ảnh.",
      "tuong_phan": "Tương phản mềm ở da, đen sâu có chi tiết, highlight không cháy; hạt màu rất mịn như poster in cao cấp.",
      "cam_giac_khong_gian": "Nhà sinh hoạt cộng đồng ven khu công nghiệp, sử dụng thật, khiêm tốn nhưng không nhếch nhác hoặc bi lụy."
    },
    "cam_toan_chien_dich": [
      "Ảnh chụp hoặc giả ảnh chụp siêu thực.",
      "Nhân vật 3D, da sáp, bề mặt nhựa, CGI bóng loáng, render trò chơi điện tử.",
      "Minh họa phẳng, vector, cel-shading, hoạt hình, truyện tranh cường điệu hoặc anime.",
      "Mỹ học cổ động tuyên truyền, biểu tượng cán cân công lý, búa xét xử, hào quang anh hùng hoặc phản diện hóa.",
      "Bối cảnh câu lạc bộ sang trọng, đấu trường chuyên nghiệp, bàn thi đấu có thương hiệu hoặc trang phục tuyển thủ.",
      "Bất kỳ chữ, tiêu đề, phụ đề, số đọc được, watermark, logo, nhãn hiệu hay giao diện ứng dụng nào nằm trong ảnh nguồn."
    ]
  },
  "ho_so_nhan_vat_lien_tuc": {
    "Nguyễn Hoài Lan": {
      "tuoi": 42,
      "gioi_tinh": "nữ",
      "vai_tro": "thợ sửa quần áo tại nhà, người mua vé lẻ, người đề xuất nhưng không điều phối",
      "ngoai_hinh_khoa": "Phụ nữ Việt Nam 42 tuổi, dáng trung bình hơi gầy, cao khoảng 158 cm, gương mặt trái xoan hơi góc cạnh, da nâu sáng tự nhiên, mắt nâu sâu có quầng mệt nhẹ, tóc đen ngang vai buộc thấp không quá chỉnh tề; không trang điểm nổi bật.",
      "trang_phuc_khoa": "Áo sơ mi cotton xanh xám tay xắn vừa cẳng tay, quần vải than dáng thẳng, giày vải màu ngà đã dùng; túi vợt vải bố nâu ô-liu và vợt gỗ cũ.",
      "ngon_ngu_co_the": "Kiềm chế, quan sát kỹ, vai hơi căng khi chờ; không chỉ tay kết tội, không chiếm bảng hoặc vị trí điều hành."
    },
    "Lê Thu Hạnh": {
      "tuoi": 35,
      "gioi_tinh": "nữ",
      "vai_tro": "bán vé, đóng dấu, giữ chứng từ và thao tác bảng theo quy trình",
      "ngoai_hinh_khoa": "Phụ nữ Việt Nam 35 tuổi, dáng nhỏ gọn, mặt tròn vừa, da trung tính, tóc đen búi thấp gọn, ánh mắt tập trung và hơi mệt của ca trực.",
      "trang_phuc_khoa": "Áo sơ mi màu kem nhạt, áo khoác mỏng xanh rêu xám mở cúc, quần sẫm; không đồng phục quyền lực, không bảng tên đọc được.",
      "ngon_ngu_co_the": "Một tay thao tác thẻ ở bảng, thân vẫn liên hệ với quầy; chính xác nhưng không ra lệnh."
    },
    "Phạm Quốc Dũng": {
      "tuoi": 51,
      "gioi_tinh": "nam",
      "vai_tro": "quản lý cơ sở, đối chiếu đồng hồ và chốt vận hành",
      "ngoai_hinh_khoa": "Đàn ông Việt Nam 51 tuổi, cao khoảng 168 cm, thân chắc vừa, mặt chữ điền mềm, tóc đen pha bạc cắt ngắn, nếp nhăn nhẹ quanh mắt.",
      "trang_phuc_khoa": "Áo polo xanh than không logo, quần kaki xám, chùm chìa khóa nhỏ ở thắt lưng.",
      "ngon_ngu_co_the": "Đứng tách khỏi bảng và người chơi, kiểm tra đồng hồ bằng quan sát; không chạm vé hoặc thẻ của Hạnh."
    },
    "Trần Minh Quang": {
      "tuoi": 48,
      "gioi_tinh": "nam",
      "vai_tro": "người chơi lâu năm có giờ đã trả tiền, không có quyền chia lượt",
      "ngoai_hinh_khoa": "Đàn ông Việt Nam 48 tuổi, tầm vóc trung bình chắc, mặt dài, tóc đen ngắn có bạc ở thái dương, biểu cảm nghiêm nhưng không hiểm ác.",
      "trang_phuc_khoa": "Áo thể thao dệt màu gạch trầm không logo, quần thể thao than, giày tối; cầm thẻ khung đã trả bằng bìa kem không chữ đọc được.",
      "ngon_ngu_co_the": "Giữ thẻ sát thân, đứng phía người chơi chứ không đứng sau quầy hoặc điều khiển bảng."
    },
    "Vũ Minh Thư": {
      "tuoi": 29,
      "gioi_tinh": "nữ",
      "vai_tro": "công nhân đóng gói làm ca luân phiên, bạn chơi và người mua vé",
      "ngoai_hinh_khoa": "Phụ nữ Việt Nam 29 tuổi, dáng nhỏ nhanh nhẹn, mặt trái tim, da nâu ấm, tóc đen buộc cao hơi rối với dấu hằn dây buộc, vẻ vừa tan ca nhưng tỉnh táo.",
      "trang_phuc_khoa": "Áo thun vàng mù tạt nhạt dưới sơ mi khoác xám xanh, quần thể thao đen, giày chơi bóng đã dùng, túi đeo chéo vải tối và vợt không thương hiệu.",
      "ngon_ngu_co_the": "Tư thế sẵn sàng chơi ở phía sân, không đứng tại bảng, quầy hoặc đồng hồ."
    },
    "quy_tac_nhan_dang": "Các đặc điểm trên là khóa continuity của chiến dịch. Không trẻ hóa, làm đẹp thời trang, đổi tóc, đổi vóc dáng, đảo trang phục hoặc hoán đổi đạo cụ giữa ba nguồn."
  },
  "bo_cuc_theo_vai_tro": {
    "intro": {
      "vai_tro_nguon": "key_art_mo_dau",
      "hinh_hoc_goc": {
        "huong": "ngang",
        "ty_le": "16:9",
        "kich_thuoc_px_chuan_hoa_dich": [3840, 2160],
        "kich_thuoc_nguon_toi_thieu": [1280, 720],
        "sai_so_ty_le_toi_da": 0.005,
        "quy_tac_do": "Đo pixel thực của output provider; nguồn phải là landscape 16:9 nguyên sinh. Nếu nhỏ hơn kích thước đích nhưng đạt minimum/aspect/QA, chỉ được lossless-quality upscale riêng sang 3840x2160 và ghi cả source SHA lẫn normalized SHA; không được crop ảnh sai tỷ lệ để hợp thức hóa."
      },
      "khoanh_khac_tu_su": "Lan đứng ngay sau vạch chờ trước bàn số bốn ở cuối mười phút ân hạn; vé trong tay, vợt còn trong túi. Bảng trạng thái công khai và đồng hồ cùng cho thấy quyết định sắp được chốt, nhưng Lan không tự bước vào, không chạm bảng và không tố cáo bất kỳ ai.",
      "nhan_vat_chinh_tac_xuat_hien": ["Nguyễn Hoài Lan"],
      "nhan_vat_chinh_tac_cam_xuat_hien": ["Lê Thu Hạnh", "Vũ Minh Thư", "Trần Minh Quang", "Phạm Quốc Dũng", "Đỗ Văn Phúc"],
      "bo_cuc": "Lan chiếm khoảng 34% chiều cao khung, nằm gần giao điểm một phần ba trái nhưng trọng tâm thị giác hướng vào bàn số bốn ở trung tâm. Bàn số bốn tạo trục phối cảnh thấp dẫn tới bảng nam châm và đồng hồ ở lớp giữa bên phải. Vạch chờ chạy ngang tiền cảnh, tách Lan khỏi bàn. Vé và quai túi tạo tam giác nhỏ ở tay; mặt bàn trống sạch, không mang vẻ bị chiếm đoạt.",
      "may_anh": "Góc máy ngang ngực, ống kính tương đương 40 mm full-frame, khoảng cách vừa, phối cảnh tự nhiên; không wide méo, không góc thấp anh hùng, không cận cảnh tố cáo.",
      "anh_sang": "Đèn huỳnh quang trần xanh lạnh phủ mặt bàn; một vùng tungsten vàng cũ từ hành lang viền mặt và tay Lan. Đồng hồ và bảng có độ sáng đủ nhận hình nhưng mọi ký tự không đọc được.",
      "mau_sac": "Xanh mặt bàn và xanh bóng sâu chiếm khoảng hai phần ba; vàng đèn ôm Lan; vé kem và dấu tím là điểm nhấn nhỏ; đỏ gạch gần như vắng mặt.",
      "muc_dich_cam_xuc": "Đặt người xem vào giây phút công bằng phụ thuộc vào quy trình công khai: căng thẳng nhưng không kết tội, hy vọng nhưng chưa được trao lượt.",
      "vung_an_toan": {
        "chu_the": "Mắt, mặt, hai tay, vé, túi vợt, toàn bộ lưới và vùng nhận dạng bàn số bốn phải nằm trong 80% trung tâm theo cả hai trục.",
        "bien_cat": "Không đặt mặt, tay, vé, vợt, bảng hoặc đồng hồ trong 6% sát mỗi cạnh.",
        "vung_phu_de_ngoai_anh": "Giữ 18% phía trên-trái tương đối ít chi tiết cho lớp chữ composite về sau; nguồn vẫn tuyệt đối không chứa chữ."
      },
      "negative_prompts": [
        "Lan chỉ tay, hét, tranh cãi, giật thẻ, chạm bảng, bước qua vạch trước khi được gọi",
        "đám đông nhìn Lan như bị cáo hoặc người chiến thắng, bố cục phòng xử án",
        "bàn có người ẩn danh rõ mặt, thẻ ghi tên hoặc số đọc được",
        "đồng hồ khổng lồ siêu thực, biểu tượng buộc tội, ánh sáng đỏ báo động",
        "ảnh chụp, photoreal, 3D nhựa, vector phẳng, anime, da sáp, tay lỗi, vật thể thừa"
      ],
      "tieu_chi_chap_nhan": [
        "Nguồn provider đo đạt tối thiểu 1280 x 720 px và aspect 16:9 trong sai số 0.5%; bản chuẩn hóa riêng phải đúng 3840 x 2160. Ghi cả hai kích thước và SHA, không tin nhãn provider.",
        "Chỉ có một gương mặt nhận dạng được và đó chính xác là Lan 42 tuổi theo hồ sơ continuity.",
        "Lan, bàn số bốn, vạch chờ, bảng trạng thái và đồng hồ đều hiện diện; vé và vợt cũ cùng hiện diện.",
        "Hành vi là chờ quyết định cuối ân hạn, không phải giành bàn hoặc cáo buộc sai phạm.",
        "Đạt ngữ nghĩa poster điện ảnh minh họa bán hiện thực cao cấp; không bị đọc thành ảnh phim, ảnh sự kiện hoặc infographic."
      ]
    },
    "left_rail": {
      "vai_tro_nguon": "chan_dung_duong_ray_trai",
      "hinh_hoc_goc": {
        "huong": "doc_that",
        "ty_le": "9:16",
        "kich_thuoc_px_chuan_hoa_dich": [2160, 3840],
        "kich_thuoc_nguon_toi_thieu": [720, 1280],
        "sai_so_ty_le_toi_da": 0.005,
        "toan_tran": true,
        "quy_tac_do": "Đo pixel thực của output provider; nguồn phải là portrait 9:16 nguyên sinh full-bleed. Nếu nhỏ hơn đích nhưng đạt minimum/aspect/QA, chỉ được lossless-quality upscale riêng sang 2160x3840 và ghi source/normalized SHA; cấm crop nguồn ngang hoặc nguồn sai tỷ lệ để hợp thức hóa."
      },
      "khoanh_khac_tu_su": "Lan chờ một mình sát tường khu chờ, vé hơi cong trong một tay và túi vợt mở vừa đủ lộ cán vợt mòn; cô đứng toàn thân, sẵn sàng nhưng chưa bước qua vạch.",
      "nhan_vat_chinh_tac_xuat_hien": ["Nguyễn Hoài Lan"],
      "nhan_vat_chinh_tac_cam_xuat_hien": ["Lê Thu Hạnh", "Vũ Minh Thư", "Trần Minh Quang", "Phạm Quốc Dũng", "Đỗ Văn Phúc"],
      "bo_cuc": "Chân dung toàn thân thật sự từ đỉnh đầu đến giày, Lan chiếm 72-78% chiều cao khung. Cơ thể lệch nhẹ sang phải của chính khung rail để ánh nhìn mở vào khoảng âm phía trên-trái. Vạch sơn chạy chéo dưới chân; quai túi kéo một đường dọc, cán vợt mòn là điểm neo thấp. Một dải bàn xanh mất nét ở hậu cảnh chỉ gợi địa điểm, không cắt ngang người.",
      "may_anh": "Máy thấp hơn ngực rất nhẹ nhưng không tôn tượng, ống kính 55 mm full-frame, camera lùi đủ xa để giữ toàn thân và tỷ lệ tự nhiên; độ sâu trường ảnh vừa.",
      "anh_sang": "Một dải đèn vàng từ cửa tạo viền vai và tay cầm vé; fill xanh phản từ bàn lên nửa dưới; khuôn mặt vẫn đọc rõ, bóng đổ dài mềm trên terrazzo.",
      "mau_sac": "Xám xanh và than ở trang phục hòa nền; vé kem, cán gỗ và viền vàng là ba điểm ấm; không dùng màu neon.",
      "muc_dich_cam_xuc": "Biến sự chờ đợi thành phẩm giá có trọng lượng: Lan mong manh nhưng không bất lực, kiên định nhưng không được anh hùng hóa.",
      "vung_an_toan": {
        "toan_than": "Đỉnh tóc cách mép trên 7-10%; đế giày cách mép dưới 5-8%; khuỷu tay, vé và túi cách hai cạnh ít nhất 8%.",
        "bien_cat": "Không vật thể nhận dạng quan trọng nào nằm trong 5% biên; khoảng âm không được lấp bằng người hoặc chữ.",
        "vung_phu_de_ngoai_anh": "Giữ 16% trên-trái nhẹ chi tiết; nguồn không có chữ."
      },
      "negative_prompts": [
        "crop nửa người, crop chân, cận mặt, khổ ngang giả cắt thành dọc",
        "tư thế người mẫu thời trang, tạo dáng chiến thắng, khóc lóc, quỳ, nắm đấm biểu tình",
        "vợt mới bóng loáng, túi thể thao có logo, vé khổng lồ hoặc chữ đọc được",
        "thêm người nhận dạng, chân dung nền, phản chiếu thành gương mặt",
        "ảnh chụp, 3D nhựa, flat illustration, anime, anatomy sai, ngón tay thừa"
      ],
      "tieu_chi_chap_nhan": [
        "Nguồn provider đo đạt tối thiểu 720 x 1280 px và aspect 9:16 trong sai số 0.5%, là bố cục dọc nguyên sinh toàn tràn; bản chuẩn hóa riêng phải đúng 2160 x 3840. Ghi source/normalized dimensions và SHA; cấm crop ảnh ngang.",
        "Lan hiện đủ từ tóc đến đế giày, chiếm 72-78% chiều cao; mặt, tay, vé, cán vợt và giày không bị cắt.",
        "Chỉ Lan nhận dạng được; vé kem, túi bố nâu ô-liu, cán vợt cũ và vạch chờ đều rõ.",
        "Hình vẫn đọc như key visual poster điện ảnh khi xem riêng ở kích thước rail hẹp, không như ảnh nhân vật studio.",
        "Khoảng âm và phân lớp được sáng tác riêng cho 9:16, không phải bản sao bố cục intro."
      ]
    },
    "right_rail": {
      "vai_tro_nguon": "tap_the_duong_ray_phai",
      "hinh_hoc_goc": {
        "huong": "doc_that",
        "ty_le": "9:16",
        "kich_thuoc_px_chuan_hoa_dich": [2160, 3840],
        "kich_thuoc_nguon_toi_thieu": [720, 1280],
        "sai_so_ty_le_toi_da": 0.005,
        "toan_tran": true,
        "quy_tac_do": "Đo pixel thực của output provider; nguồn phải là portrait 9:16 nguyên sinh full-bleed. Nếu nhỏ hơn đích nhưng đạt minimum/aspect/QA, chỉ được lossless-quality upscale riêng sang 2160x3840 và ghi source/normalized SHA; cấm crop nguồn ngang hoặc nguồn sai tỷ lệ để hợp thức hóa."
      },
      "khoanh_khac_tu_su": "Trong lúc mốc ân hạn sắp hết, Hạnh đứng tại bảng với tay gần thẻ nhưng chờ xác nhận; Dũng đứng tách một lớp, đối chiếu đồng hồ; Quang giữ thẻ khung đã trả ở phía người chơi; Thư cầm vợt, ở hàng sẵn sàng vào bàn. Cả bốn cùng tồn tại trong một quyết định vận hành nhưng không ai lấn quyền của ai.",
      "nhan_vat_chinh_tac_xuat_hien": ["Lê Thu Hạnh", "Phạm Quốc Dũng", "Trần Minh Quang", "Vũ Minh Thư"],
      "nhan_vat_chinh_tac_cam_xuat_hien": ["Nguyễn Hoài Lan", "Đỗ Văn Phúc"],
      "bo_cuc": "Tập thể dọc phân bốn lớp độc lập: Hạnh ở lớp gần trên-trái cạnh bảng, tay dừng trước thẻ; Dũng ở lớp giữa trên-phải dưới đồng hồ, hai tay không chạm bảng; Quang ở lớp giữa thấp-trái phía sau vạch, giữ thẻ sát ngực; Thư ở lớp gần thấp-phải, vợt hạ ngang đùi và hướng về sân. Không xếp hàng ngang kiểu ảnh nhóm; các đường nhìn hội tụ vào khoảng trống giữa bảng và vạch, không nhân vật nào nhìn như phản diện. Khoảng cách vật lý giữa bảng, đồng hồ, thẻ trả tiền và vợt làm rõ bốn thẩm quyền/vai trò.",
      "may_anh": "Ống kính tương đương 45 mm full-frame, máy ngang ngực, phối cảnh nén vừa để tạo lớp nhưng không nhập vai; nét chọn lọc giữ đủ bốn khuôn mặt, tay và đạo cụ.",
      "anh_sang": "Bảng và Hạnh nhận ánh tungsten trung tính từ quầy; Dũng có viền xanh lạnh từ đèn trần và đồng hồ; Quang ở vùng ấm-trầm không đổ bóng đe dọa; Thư nhận dải sáng trắng từ mặt bàn như lời mời vào chơi.",
      "mau_sac": "Bốn nhân vật thống nhất trong xanh than/xám; áo gạch trầm của Quang và vàng mù tạt nhạt của Thư là hai nhịp ấm; bảng xanh-vàng-trắng chỉ hiện bằng mảng màu, không chữ đọc được.",
      "muc_dich_cam_xuc": "Cho thấy căng thẳng được chứa trong sự tách bạch quyền hạn: hồ sơ, vận hành, quyền giờ đã mua và sự sẵn sàng chơi đều hợp lệ nhưng không thể thay thế nhau.",
      "vung_an_toan": {
        "khuon_mat": "Bốn khuôn mặt nằm trong vùng từ 10% đến 82% chiều cao và cách cạnh trái/phải ít nhất 9%; không chồng mặt.",
        "dao_cu": "Tay Hạnh và thẻ bảng, đường nhìn Dũng với đồng hồ, thẻ của Quang, tay-vợt của Thư đều nằm trong 84% trung tâm.",
        "bien_cat": "Không cắt mặt, tay mang nghĩa, đồng hồ, bảng hoặc vợt; 5% biên chỉ chứa nền/vật liệu không thiết yếu.",
        "vung_phu_de_ngoai_anh": "Không dành vùng chữ lớn; ưu tiên ensemble toàn tràn. Nguồn tuyệt đối không chứa chữ."
      },
      "negative_prompts": [
        "Lan hoặc Phúc xuất hiện, nhân vật thứ năm nhận dạng được",
        "Hạnh ra lệnh cho Dũng, Dũng cầm vé/quầy, Quang chạm bảng hoặc chỉ đạo, Thư thao tác thẻ",
        "Quang phản diện, gương mặt giận dữ quá mức, nắm vợt đe dọa, đối đầu trực diện",
        "ảnh ghép bốn headshot, ảnh nhóm xếp hàng, montage chia ô, crop từ bố cục ngang",
        "bảng có tên hoặc số đọc được, logo, watermark, poster chữ trong nền",
        "ảnh chụp, photoreal, CGI nhựa, flat vector, anime, tay lỗi, nhân bản gương mặt"
      ],
      "tieu_chi_chap_nhan": [
        "Nguồn provider đo đạt tối thiểu 720 x 1280 px và aspect 9:16 trong sai số 0.5%, là ensemble dọc nguyên sinh toàn tràn; bản chuẩn hóa riêng phải đúng 2160 x 3840. Ghi source/normalized dimensions và SHA; cấm crop từ intro hoặc ảnh ngang.",
        "Có đúng bốn gương mặt nhận dạng: Hạnh 35, Dũng 51, Quang 48, Thư 29; không có Lan, Phúc hoặc người thứ năm nhận dạng.",
        "Bốn vai trò đọc được qua vị trí và đạo cụ nhưng không hoán quyền: Hạnh-bảng, Dũng-đồng hồ, Quang-thẻ đã trả, Thư-vợt sẵn sàng.",
        "Bốn khuôn mặt, tay mang nghĩa và đạo cụ không bị che/cắt; phân lớp vẫn rõ ở chiều rộng rail.",
        "Ngữ nghĩa là poster điện ảnh ensemble có căng thẳng kiềm chế, không phải ảnh nhóm, infographic hoặc cảnh kết tội."
      ]
    }
  },
  "quy_tac_nguoi_phu_va_chu": {
    "khuon_mat_nhan_dang_toi_da": {
      "intro": 1,
      "left_rail": 1,
      "right_rail": 4
    },
    "nguoi_khong_ten": "Chỉ được dùng khi tuyệt đối cần để gợi phòng đang hoạt động; phải là bóng dáng trừu tượng không nét mặt, ngoài vùng nét, không có đặc điểm nhận dạng, không chiếm quá 8% diện tích và không che nhân vật/đạo cụ. Ưu tiên không dùng.",
    "cam": [
      "Thêm bất kỳ gương mặt nhận dạng nào ngoài danh sách của từng vai trò nguồn.",
      "Dùng phản chiếu, ảnh treo tường, màn hình hoặc bóng gương để lách giới hạn gương mặt.",
      "Nhúng chữ, số đọc được, tiêu đề Bàn Số Bốn, tên nhân vật, khẩu hiệu, logo, watermark, chữ ký họa sĩ hoặc nhãn hiệu vào ảnh nguồn."
    ]
  },
  "quy_tac_composite": {
    "nguyen_tac": "Mỗi ảnh nguồn được sáng tác nguyên sinh cho vai trò và tỷ lệ của nó; composite chỉ đặt nguồn đúng ô, không thiết kế lại bố cục bằng crop mạnh.",
    "fit": "aspect-preserving cover only",
    "cat_bien_cho_phep": "Chỉ trim mép đối xứng cực nhỏ, tối đa 0.75% mỗi cạnh trên cùng một trục và tối đa 1.5% tổng chiều tương ứng; hai phía đối diện phải bằng nhau trong sai số 1 px.",
    "bao_ve": "Không trim, che, biến dạng hoặc đặt overlay lên mặt, mắt, tay mang nghĩa, vé, vợt, bảng, đồng hồ hay bất kỳ chữ composite hợp pháp nào được thêm ở công đoạn sau.",
    "cam": [
      "letterbox",
      "pillarbox",
      "padding",
      "kéo giãn hoặc bóp méo",
      "non-uniform scale",
      "crop lệch một phía",
      "smart crop đổi trọng tâm",
      "dùng intro cho rail hoặc rail cho intro"
    ],
    "chiem_day_rail": "Cả hai rail phải chiếm đủ 100% chiều cao ô đích và full-bleed theo chiều ngang; không khoảng trắng, khung viền, mép mờ hoặc nền bù.",
    "kiem_tra_sau_composite": "So sánh landmark trước/sau bằng overlay: tỷ lệ khuôn mặt và hình tròn đồng hồ không đổi quá 0.2%; không landmark bảo vệ nào dịch ra ngoài vùng thấy; trim phải được ghi bằng pixel."
  },
  "qa_nguon_rieng": {
    "noi_dung": {
      "bat_buoc": [
        "Đối chiếu đúng danh sách nhân vật của từng nguồn và đúng tuổi, giới, ngoại hình, trang phục, đạo cụ continuity.",
        "Khoảnh khắc thể hiện trạng thái ân hạn/quyết định/chờ hoặc sẵn sàng đúng mô tả, không hợp nhất các thời điểm trái nhau.",
        "Không ám chỉ Lan điều hành; không cho Quang quyền chia lượt; không cho Hạnh quyền chốt chính sách; không cho Dũng giữ hồ sơ quầy.",
        "Không có hành vi kết tội, biểu tượng sai phạm hoặc suy diễn động cơ.",
        "Không có chữ, số, logo, watermark hay nhãn hiệu đọc được."
      ],
      "ket_qua": "dat_truot_tung_tieu_chi; bat_ky_loi_nao_la_truot_nguon"
    },
    "hinh_hoc_vai_tro_nguyen_sinh": {
      "bat_buoc": [
        "Đọc metadata và đo raster thực tế, không dựa vào tên tệp.",
        "Intro đúng 3840x2160; mỗi rail đúng 2160x3840.",
        "Sai số tỷ lệ không quá 0.0005; orientation đúng; không padding hoặc pixel trong suốt ở biên.",
        "Phân tích saliency xác nhận bố cục được sáng tác cho đúng vai trò, không phải crop/rotate/upscale từ vai trò khác.",
        "Rail có nội dung hữu dụng và nền ảnh phủ liên tục đủ 100% chiều cao."
      ],
      "ket_qua": "dat_truot_tung_nguon; sai_mot_pixel_o_kich_thuoc_bat_buoc_la_truot"
    },
    "ngu_nghia_poster_dien_anh": {
      "bat_buoc": [
        "Có phân lớp tiền-trung-hậu cảnh hoặc chiều sâu ánh sáng đủ rõ.",
        "Có một điểm căng thẳng thị giác chính và một chuỗi đọc phụ, không phải ảnh minh họa mô tả dàn đều.",
        "Chất da, giấy, vải, gỗ, kim loại và mặt bàn cho cảm giác được vẽ bán hiện thực, không giả ảnh hoặc nhựa 3D.",
        "Giữ độ tinh tế cao cấp, ánh sáng điện ảnh và khoảng âm có chủ đích khi xem ở kích thước nhỏ.",
        "Không rơi vào flat illustration, infographic, ảnh sự kiện, portrait studio hoặc keyframe phim giả ảnh."
      ],
      "ket_qua": "hoi_dong_qa_phai_xac_nhan_ro_ba_nhan: minh_hoa, ban_hien_thuc, poster_dien_anh"
    }
  },
  "qa_lien_ket_chien_dich": {
    "tinh_nhat_quan": [
      "Khớp tuyệt đối hồ sơ Lan giữa intro và left rail về khuôn mặt, tuổi, tóc, trang phục, túi và vợt.",
      "Right rail dùng cùng vật liệu phòng, bảng, đồng hồ, ánh sáng xanh-vàng và mức hạt màu với hai nguồn còn lại.",
      "Không đổi mùa, thời đại, loại cơ sở, mức sang trọng hoặc thiết kế bàn giữa ba nguồn.",
      "Ba ảnh có ba silhouette/composition riêng; không lặp pose, không tái sử dụng nền hoặc crop cùng một cảnh.",
      "Nhịp màu tổng thể lần lượt là quyết định rộng, phẩm giá cá nhân, tách bạch thẩm quyền; vẫn nhận ra cùng một chiến dịch khi che mọi metadata."
    ],
    "kiem_tra_dinh_luong": {
      "chenh_lech_mau": "Mẫu xanh mặt bàn, kem vé và vàng đèn giữa các nguồn có Delta E 2000 trung vị <= 6 sau khi chuẩn hóa không gian màu sRGB.",
      "nhan_dang_lan": "Đánh giá thủ công xác nhận cùng một nhân vật; không dùng face-swap và không làm trẻ hóa. Sai khác tuổi cảm nhận quá 3 năm là trượt.",
      "so_mat": "intro=1, left_rail=1, right_rail=4; không dung sai.",
      "kiem_tra_chu": "OCR đa hướng phải trả về rỗng đối với chuỗi có độ tin cậy >= 0.35; mọi logo/watermark phát hiện được là trượt."
    },
    "dieu_kien_phat_hanh": "Chỉ phát hành bộ ba khi từng nguồn vượt cả ba cổng QA riêng và toàn bộ QA liên kết; không thay một nguồn đơn lẻ mà không chạy lại QA coherence cho cả bộ."
  },
  "rang_buoc_checksum_dau_ra": {
    "thuat_toan": "SHA-256",
    "ma_hoa_json": "UTF-8",
    "nguon_bat_bien": {
      "/home/hermes/gacmai_20260718_091744_story_candidate_rev6.json": "fd016b65cfd699e9d4e97c5e491894135117a12d56c2b467204ab68efd68be98",
      "/home/hermes/gacmai_20260718_091744_concept_selected.json": "f1585ec7358be91fbf09cfc312cbd3f8ac11532a368a83f9c66ad29fa8ff5f8f"
    },
    "yeu_cau_cho_anh_tuong_lai": "Mỗi ảnh nguồn tương lai phải có đường dẫn, kích thước đo, profile màu và SHA-256 trong manifest riêng; manifest phải lặp lại hai checksum nguồn bất biến và SHA-256 của hợp đồng này. Không có ảnh nào được xem là ràng buộc nếu thiếu checksum.",
    "chinh_sach_sai_khop": "Bất kỳ sai khác checksum nào ở truyện, concept, hợp đồng hoặc ảnh đều vô hiệu hóa phê duyệt; phải dừng pipeline, xác minh nguồn và chạy lại toàn bộ QA.",
    "duong_dan_hop_dong": "/home/hermes/gacmai_20260718_091744_visual_campaign_contract_rev0.json",
    "quy_tac_sha256_hop_dong": "SHA-256 của toàn bộ byte tệp hợp đồng hoàn tất được báo kèm khi bàn giao; không tự nhúng checksum vào chính tệp để tránh vòng lặp tự tham chiếu."
  },
  "trang_thai_tao_anh": "khong_tao_anh"
}
